十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Cataclysm-DDA 建筑材料合成系统实战指南:从一次按键到建起砖墙庇护所

Cataclysm-DDA 建筑材料合成系统实战指南:从一次按键到建起砖墙庇护所 Cataclysm-DDA 建筑材料合成系统实战指南从一次按键到建起砖墙庇护所【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDACataclysm-DDA 的建筑材料合成系统就是你在地图上「按一下 b、选个配方、丢进材料」背后那套数据驱动机制32 个配方文件全部躺在data/json/construction/里执行逻辑只有src/construction.cpp等几个文件。读懂这篇文章后你能看懂任意一条建造配方、独立完成第一面砖墙并知道为什么菜单里经常「选不了」。一、系统全景32 个配方文件 一个 C 执行器 ️先说结论建造系统是「JSON 定规则C 跑流程」数据和逻辑完全分离这也是它容易被 MOD 扩展的原因。配方全部集中在 data/json/construction/data/json/construction/32 个 JSON 文件按用途切分——walls.json墙、doors.json门、floors_indoors.json/floors_outdoors.json室内外地板、windows.json、roofs.json屋顶、furniture_*.json睡眠/存储/座椅等 15 类家具还有bridges_docks.json、railroads.json这类特殊工程。data/json/construction_category.json定义建造菜单的 15 个页签CONSTRUCT 建造、REINFORCE 加固、REPAIR 修理、DECORATE 装饰、DECONSTRUCT 拆除等你按 b 打开的菜单就是按这些页签分组的。C 侧只需要看三个文件src/construction.h/src/construction.cpp配方结构体、construction_menu()菜单入口、can_construct()可建性检查、逐格预览与建造推进都在这里。src/construction_category.cpp/src/construction_group.cpp页签与「配方组」多步工程的注册表。入口src/handle_action.cpp里按 b 触发construction_menu( false )src/clzones.cpp里车辆蓝图建造走construction_menu( true )。二、配方解剖60 秒读懂一条 construction JSON 先说结论一条建造配方本质是「前置状态 → 消耗 → 后置状态」的单向转换看懂字段就懂了全部规则。以砖墙为例的核心字段data/json/construction/walls.json里的constr_brick_wall完成砖墙那一步长这样字段真实取值含义required_skillsfabrication3需要建造fabrication技能 3 级time120 m耗时 120 分钟qualitiesSMOOTHlevel 1需要一把带 SMOOTH抹平品质 1 级的工具tools如constr_bars里的welder20指定工具数字是耐久消耗componentsbrick×15材料清单见下节pre_terrain/post_terraint_brick_wall_halfway→t_brick_wall前置地形 → 结果地形这是判定「能不能在这格建」的核心categoryCONSTRUCT决定挂在哪个页签下材料清单外层 AND内层 ORcomponents是嵌套数组外层每个元素必须满足内层是任选其一。砖墙那步的写法[ [ mortar_build, 1 ], [ mortar_lime, 1 ] ]意思是「建筑砂浆 1 份或者石灰砂浆 1 份」[ [ water, 1 ], [ water_clean, 1 ] ]则是「生水或净水 1 份」都算数。多步配方靠 group 串起来group同一个group如build_brick_wall的多条配方是同一工程的先后步骤菜单里会显示成带 Step 的列表按顺序推进。半墙状态砖墙 Step 1constr_brick_wall_halfway把t_dirt变成t_brick_wall_halfwayStep 2 再把半墙变成成品墙——所以你在地图上看到的「半截墙」是配方设计的一部分不是 bug。strict 标记src/construction.h里注明strict: true的配方只认同组内的前置避免被别的组「截胡」。三、动手实战从零建一面砖墙的完整步骤 先说结论按下面的清单备料、走六步操作第一次就能把一面砖墙从泥土建到成品。备料与条件清单项目要求来源砖15 块每步各消耗一次两步共 30 块砂浆建筑砂浆或石灰砂浆各 1 份/步components内层任选水生水或净水各 1 份/步同上技能fabrication ≥ 3required_skills工具带 SMOOTH 品质 1 级的抹平工具qualities时间每步 120 分钟time: 120 m位置一格t_dirt泥土地形Step 1 的pre_terrain游戏内六步操作站到目标格按b打开建造菜单入口在src/handle_action.cpp。切到Constructions页签在列表中选中「Build a brick wall」组。菜单右侧会实时显示材料满足情况红字缺料、绿字齐备。按筛选键切换三种过滤模式——全部 / 材料技能齐备 / 此格可建construction_menu()里的filter_mode0/1/2。光标定位到那格泥土确认后进入建造每走一步消耗一次移动预览会闪烁显示建完后的样子。Step 1 完成出现半墙后重新按 b 选中 Step 2 完成收尾得到t_brick_wall。四、进阶组合混凝土柱、封门加固与蓝图建造 先说结论掌握基础后三种进阶玩法能让你从「能住」升级到「守得住」。三步混凝土柱重型工程的样板walls.json里的build_concrete_column组是典型三步流先扎钢筋笼t_reb_cage再打基础constr_column_halfwayconcrete ×6 2×4 木料 ×12 水 ×4最后成型concrete ×6 水 ×4。全程要求fabrication 6、SMOOTH 2工具并指定concrete_mix_tool耐久消耗 50。这是「高技能 指定工具」型配方的模板。封门加固10 分钟应急方案doors.json里的constr_door_boarded属于REINFORCE页签fabrication 0 级即可、耗时仅10 m、材料是 2×4 ×4 加钉子 8 枚。它不用pre_terrain而是用pre_flags: BARRICADABLE_DOOR——说明配方可以挂在「目标带某个标志」上而不是特定地形这就是你给任何普通木门钉木板时命中的那条配方。蓝图建造给车辆批量装家具src/clzones.cpp中的construction_menu( true )走的是同一套配方的蓝图模式选中车辆蓝图格位后批量应用建造/拆除。配方、材料、技能判定与手动建造完全一致区别只在批量执行——适合给你的房车一次性装好座椅、灶台。五、避坑排查「建不了」的四种常见原因与解法 先说结论九成「建不了」都卡在三处——页签过滤、材料判定范围、多步工程的中断按这个顺序排查。菜单是空的 vs 选不了目标原因load_available_constructions()按过滤模式决定列表内容默认过滤下技能或材料任一不满足就整组不显示。解法先用筛选模式切回「全部」对照红字缺什么补什么再确认required_skills里的技能等级比如金属栏杆constr_bars要 fabrication 5不是 3。包里有材料游戏却说没有原因建造判定用的是crafting_inventory()src/construction.cpp第 568 行范围是你的物品栏和你正在携带的容器不包括放在地上或远处仓库的东西。解法把材料随身带齐再开工大工程前把砂浆、砖这类消耗品集中装进背包或手推车。多步工程建到一半就断原因每步的pre_terrain必须对上中间状态如t_brick_wall_halfway中途换格子、或者地图上的半墙被破坏都会让后续步骤找不到前置。解法同一格连续建完被打断后重新按 b菜单组内会提示当前应从哪一步接续注意strict组只认自己组的前置。时间对不上预期原因time是基础值菜单显示会经过time_scale()游戏选项和adjusted_time()有 NPC 协助时缩短两层换算。解法在设置里调建造时间缩放选项带一个能搭手的 NPC 同伴实际能明显提速。从 15 块砖开始的这面墙就是你在 Cataclysm-DDA 里第一个「由自己定义状态转换」的工程。把data/json/construction/里 32 个文件当成图纸库现在就去按 b把第一面砖墙建起来吧。【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表