攻略详情

人类不花金币立即建造方法

作者: 雪风 2021-08-18 14:27

人类不花金币立即建造方法

在游戏《人类(humankind)》中,玩家在建造建筑时一般是需要花金币的,玩家如果感觉游戏过于繁琐,可以通过修改游戏文件来进行作弊。

玩家修改游戏文件的方法是玩家首先dnspy打开Amplitude.Mercury.firstpass.dll。

接着玩家找到Amplitude.Mercury.Simulation包下的DepartmentOfIndustry类。

找这个方法private void ProcessOrderBuyoutConstructionAt(OrderBuyoutConstructionAt order)

在方法中有一行是this.majorEmpire.DepartmentOfTheTreasury.Pay(buyoutCost);

括号里给它改成this.majorEmpire.DepartmentOfTheTreasury.Pay(FixedPoint.Zero);

具体改法就是右键编辑IL指令(因为反编译会因为引用外部dll无法再次编译,为了省事直接干IL)

然后玩家找到调用Pay的这句:26 004E callvirt instance void 

Amplitude.Mercury.Simulation.DepartmentOfTheTreasury::Pay(valuetype

 [Amplitude.Framework]Amplitude.FixedPoint)

接着找它前面一句,就是加载buyoutCost的那句,应该是ldloc.3,如果不是就看看前面的一个函数GetBuyoutCost之后存到第几个位置了,应该有一句stloc.3和这个ldloc.3是对着的先存后读的。

把ldloc.3给改成

25 0049 ldsfld valuetype [Amplitude.Framework]Amplitude.FixedPoint 

[Amplitude.Framework]Amplitude.FixedPoint::Zero

就是加载了一个FixedPoint.Zero这个静态变量。如果怕写错就找一下这个变量,然后查它的引用,找一行读取的IL指令复制过来。

保存文件后重启游戏,随意建造一个建筑,用金币直接买,如果金币不减少则修改成功。

上一篇 : 人类系统错误 ...

下一篇 : 人类解散部队 ...

相关阅读

精彩推荐