主页 > 新游频道 > 新游资讯 > 世嘉人类不耗费金币快速建造建筑代码分享

    世嘉人类不耗费金币快速建造建筑代码分享

    来源:未知    作者:贼兽兽    发布时间:2021-08-20 15:19    有奖投稿

      世嘉旗下的策略游戏新作《人类》拥有众多文明,玩家需要在游戏中发展文明,那么有没有什么方法可以不耗费金币快速建造建筑呢?当然有啦,下面就给各位带来人类无需金币立即建造代码,有需要的小伙伴赶紧来看看吧。

      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指令复制过来,我就是这么搞的。

      保存进游戏,造个建筑,用金币直接买,然后金币不减少,修改成功。

    责任编辑:未知

    相关阅读

    评论



    新闻排行 (24小时)

    新游推荐

    Copyright © 2002-2019 07073游戏网版权所有 关于我们 | 招聘信息 | 联系我们 | 网站地图 | 友情链接 | 意见反馈 | 厂商自助后台 商务合作:15446107@qq.com