主机手游:热门手机游戏下载网站

主机手游首页|游戏合集|最近更新

您的位置:首页  →  攻略 → 人类建造不花费金币修改方法分享 怎么免费建造

人类建造不花费金币修改方法分享 怎么免费建造

日期:2022-10-20 19:43:16栏目:游戏攻略浏览:

人类中如何免费建造?部分玩家可能还不清楚怎么操作,下面给大家分享一下建造不花费金币的修改方法,希望可以帮助到各位玩家。

  • 人类建造不花费金币修改方法分享
    首先需要dnspy这个软件
    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指令复制过来,我就是这么搞的。
    保存进游戏,造个建筑,用金币直接买,然后金币不减少,修改成功。
  • 网友评论