遊戲資訊
人類 HUMANKIND
  • 發售: 2021-08-17
  • 發行: SEGA
  • 開發: AMPLITUDE Studios
  • 平台: PC
  • 類型: 策略遊戲
  • 語言: 簡中 英文 多國
《人類(Humankind)》是Amplitude Studios 出品的誠意巨作。在這款歷史題材大戰略遊戲中,你將重新譜寫全人類的發展敘事,融合各種文化、歷史和價值觀,打造與你一樣獨特的文明。

《世嘉人類》快速刷人口軍隊方法介紹

2021-08-18

《世嘉人類》中的人口和軍隊是遊戲裡非常重要的,而且可以通過一些修改快速刷出來,但是很多玩家都不太清楚快速刷人口和軍隊的方法是什麽,其實這個快速刷的方法就是解散部隊返還人口數量5倍,然後在招募軍隊,再解散,更多如下。

《世嘉人類》快速刷人口軍隊方法介紹

快速刷人口軍隊方法介紹

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指令複製過來,我就是這麽搞的。

保存進遊戲,造個建築,用金幣直接買,然後金幣不減少,修改成功。

再來一個,解散部隊返還人口數量5倍。結合上面的免費金幣雇傭就可以原地一回合炒人口/軍隊了

namespace Amplitude.Mercury.Simulation

internal class DepartmentOfDefense : Agency, ISerializable

private void ProcessOrderDisbandUnits(OrderDisbandUnits order)

這句

population = unit.UnitDefinition.PopulationInstantCostDefinition.Constant;

進IL編輯,找到這句

67 00CF ldfld int32 [Amplitude.Mercury.Data]Amplitude.Mercury.Data.Simulation.Costs.PopulationInstantCostDefinition::Constant

後面加兩行

ldc.i4.5

mul

改好變成這樣

population = unit.UnitDefinition.PopulationInstantCostDefinition.Constant * 5;

相關攻略:不花金幣立即建造方法介紹

獲得更多的電玩狂人最新消息
按讚加入粉絲團