给沙盒勇者加菜单,先解决数值改完又回去
记录沙盒勇者控制菜单从属性成长、采集计分到建筑与燃料管理的改进,以及保留获取倍率的一键收菜。
Game information
- GameCraft HeroSteam store page ↗
本文从早期数值回落问题写起,后续补充到 0.4.1:基础属性、采集计分和自动化领取之外,又加入快速待机、等级上限、建筑一键升满、燃料管理和一键收菜。完整操作见功能说明。
给 DEVOUR 做完控制菜单后,又开始看《沙盒勇者 / Craft Hero》。这次想调整的东西更直接:金币、生命、饱食度、法力、护盾,还有材料。最好按一下键就能打开,需要什么改什么,不必退出游戏来回找工具。
菜单的第一版很快有了轮廓。F8 呼出,几个页面分开放角色状态、战斗属性、钱包和材料。但真正试用以后才发现,能把数字写进去,只是事情的一半。
补满之前,先把上限讲清楚
一开始,角色状态页只有当前值和补满。这个设计看起来够用,实际却很容易遇到问题:原本生命上限就低,补满以后还是扛不住一下攻击。
于是又补上最大生命、最大法力、最大饱食度和护盾上限。当前值与最大值分开应用,调高上限后再点补满。这样操作多了一步,却能看清楚自己改的是哪一项;降低上限时,超出的当前值也会一起收回来。
上限还在,当前生命却掉回去了
后来收到的反馈是“生命、攻击力这些数值,好像又回去了”。检查以后,发现游戏在装备重算和读档时会重新构造角色属性。它先按原生上限限制当前值,模组随后才写回自定上限。
结果就变成了:最大生命仍然很高,当前生命却已经被压低。只检查最大值有没有保留,看不出这一层问题。攻击力也类似,之前只是单次写入,下一次重算就会回到装备和成长算出的结果。
修复后,自定上限对应的当前值会在重建过程中保留下来,再按新上限检查;自定攻击也和当前存档一起保存。隔离测试里,把生命设为 5000,扣除 17 点后再重算,得到的仍是 4983。这个结果比“始终回到 5000”更符合这次想做的功能,因为正常受伤和消耗仍然应该发生。
采集倍率也要找对入口
材料可以直接添加到背包,但有时候更希望保留采集过程,只让每次得到的数量多一点。因此材料页又加了采集倍率。
这里没有把所有获得物品的入口一起放大。采集和钓鱼走自己的奖励路径,菜单里输入添加 2 个材料,就仍然是 2 个;商店、任务和战斗掉落也不跟着改变。普通采集测试中,原本 6 个和 1 个的产物,在 3 倍设置下分别变成 18 个和 3 个。
早期版本的采集倍率只在本次启动有效,自定属性则随存档保存。后来发现,这会让高倍率采集过的存档在下次进入时重新按默认比例计分。0.3.3 把采集倍率、计分比例和跟随模式一起绑定到存档,读档首次计分就使用保存的设置,不用先打开菜单补设。
整理成可以直接安装的一版
这次把菜单、安装器和说明一起整理成了 0.2.2。安装前备份存档,退出游戏,运行安装脚本;进入存档后按 F8 即可使用,不需要其他模组作为前提。
目前的验证覆盖了原生隔离副本里的菜单、重算、保存读档和普通采集,所有地图与装备组合还需要慢慢补齐。下载、安装和具体功能都放在 Craft Hero Control 项目页里,遇到数值回落可以先对照常见问题检查版本与操作。
材料卖掉以后,金币还会把得分推高
另一次反馈是,家刚建好,采了一些材料,界面得分突然到了两万多。最初看磁盘上的旧记录还只有二十来分,等游戏重新保存后,才读到了这次跳变。这个差别也提醒我:排查正在运行的游戏,不能把上一次落盘的数据当作当前状态。
继续拆开公式,发现材料计分比例还在,遗漏的是金币。背包里的材料已经按 1/500 折算,卖掉以后却变成按原生比例计分的金币。同一批资源只是换了形态,得分贡献就变了。
0.3.4 让金币跟随同一个比例。举例来说,卖出 300 万金币,在原生比例下约增加 4,500 分,按 1/500 折算后约增加 9 分。实际余额和买卖价格不动,调整的是它们在得分与难度公式中的贡献。角色、建筑和装备仍有自己的计分,最终总分不会因此固定不变。
自动化产物,在领取时放大一次
接着检查魔力钻探机,发现它没有经过普通采集的入口。机器先把产物留在自己的库存,玩家再单独领取,或者一次收取多台建筑。只修改采集和钓鱼,自然覆盖不到这里。
0.3.5 把自动化建筑的材料与消耗品接到同一倍率上,放大的位置放在领取入背包时。机器里原本存了 2 个铁矿石,500 倍下领取就是 1,000 个;机内显示、生产速度、耗魔和容量仍照原来的规则。
这样处理还有一个原因:自动化往往不是一台机器独立工作。产物可能先转运,再进入另一台机器加工。如果每经过一站都乘一次,数量很快就失控。现在中间过程保持原始数量,单独领取和批量领取都只在最后入包时折算一次,装备以及直接增加的属性、魔力不在其中。
这两次补充从 0.3.5 开始提供,后续版本继续保留;安装请使用当前最新版。隔离验证覆盖了单独与批量领取、转运、数量上限,以及材料和金币计分;每种建筑的完整生产周期还需要继续游玩验证。菜单依旧是 F8,原来保存过的采集和计分配置可以直接沿用。
建筑升得更高,还要看能不能供上魔力
后来又遇到一个很直观的问题:矿机升到 300 级,耗魔增加了,产出却好像比以前慢。拆开生产流程才发现,升级增加的是每批数量,机器仍按原来的间隔工作,而且要凑够整批魔力才会开工。
300 级矿机一次产出 300,消耗 3,600 魔力;结晶生产建筑一次也是 300,却需要 15,000 魔力。供能没有跟上时,它们会等更久。于是等级页又补上了实际生命、每批产量、耗魔和缺魔状态,不必只凭徽章或动画判断。
快速待机也补了一处判断。原生保存会重新创建存档对象,早期实现把它当成了切换存档,等待一段时间便自己停下。0.3.7 区分正常保存和真正读档,自动保存后继续运行,换场景或死亡时仍会停止。
0.3.8 再把逐座升级整理成两个按钮:选中建筑升满,以及当前地图全部建筑升满。最终采用消耗原生材料的方式,材料不够整座升满就跳过,已满级也不会重复扣费。上限可以先设好,操作后再看成功与跳过的数量。具体步骤放在功能说明,版本变化见更新记录。
建筑升级的得分,也需要一起折算
0.3.9 起,普通建筑对得分与难度的贡献也使用材料页的同一计分比例,包含已有建筑和升级增加的价值。自定义比例与“跟随采集倒数”直接沿用当前存档,例如 500 倍采集对应 1/500 建筑计分。建筑等级、生命、产出和升级费用不变;人物、佣兵、装备及负值/特殊原生难度项保留原规则。恢复比例 1 后重新按原生价值计算,因此这不是对总分整体除以倍率。
容量可以放大,加料仍然消耗背包材料
建筑多起来以后,逐座补充燃料也变成了重复操作。这次在 0.4.0 里加了“建筑燃料”页,把容量和补充分开:先设燃料与储能容量倍率,再按需要一键补充当前地图的建筑。
容量支持 1–10,000 倍,沿用建筑原本的等级加成,并随对应存档保存。它只决定能存多少,不让一份燃料变出更多能量,也不会让矿机更快生产。降低倍率时,已经放进去的燃料继续保留,超过新容量就先停止补充,等待正常消耗。
一键加料最终采用消耗背包燃料的方式。每座建筑仍按自己的配方换算,材料不足就尽量补充或跳过,已经满的不会再次扣费。没有原生加料配方的建筑也不会凭空获得魔力;加工原料、饲料和护盾留在各自的原有流程里。
这一版已经验证了材料扣除、反复点击、容量恢复,以及正常保存和重新启动后的配置保留。使用时按 F8 打开“建筑燃料”,设置或加料完成后照常保存。完整范围见功能说明,新包放在安装页。
网站现在只提供最新版安装包,旧版本留作本地归档,不再公开下载。本文保留各阶段的实现记录,当前操作与下载以项目页为准。
一次收完建筑产物,倍率仍按领取时计算
燃料可以批量补充以后,接着要省下的就是逐座领取产物的操作。0.4.1 在“材料”页加了“一键收菜”,把当前地图己方建筑已经存好的材料和消耗品一次收进背包。
这里沿用了自动化产物原来的处理方式:生产和等级加成保留在库存中,采集倍率只在入包时应用一次。比如存了 2 个材料,当前存档设置 500 倍,收取就是 1,000 个。批量操作不会让同一份库存重复放大,也不会提前生成还没生产出来的东西。
装备、燃料和加工输入留在原处。如果某项材料会超过背包数量上限,就跳过这座建筑并保留它的库存。按钮最后汇总收取与跳过数量,收完照常保存即可。这次在隔离的存档副本中验证了 20 座建筑、500 倍入包、重复点击和保存重载,正式使用的入口与范围见功能说明。