edlsadლ Endlessad_yl
关注数: 1 粉丝数: 111 发帖数: 2,384 关注贴吧数: 35
织丰mod士兵晋升机制 使用dnSpy反编译Shokuho.dll。在一场战役结束后,士兵在这段代码中被判定是否有资格晋升。这段代码大意为依次判断士兵的英雄击杀分、士兵击杀分是否达标,达标则添入晋升列表。那么如何算是达标呢? 英雄击杀分判定: troopPromotionTrackingAgent.HeroRemovalScore >= this._gameModel.PromotionScoreHeroThreshold 士兵击杀分判定: troopPromotionTrackingAgent.TroopRemovalScore >= this._gameModel.PromotionScoreTroopThreshold 也即英雄击杀分达到PromotionScoreHeroThreshold,或者士兵击杀分达到.PromotionScoreTroopThreshold。继续查阅,得知PromotionScoreHeroThreshold(英雄击杀分要求)值恒为5,PromotionScoreTroopThreshold(士兵击杀分要求)值为25*GlobalSettings<ShokuhoSettings>.Instance.TroopPromotionSpeedMultipler,可以推定是Mod选项中的部队晋升速度,对于默认设置为1,则值为25。见下方代码。(看起来部队晋升速度设置的越低,晋升的就越快?)接下来我们先看英雄击杀分是如何计算的:简单来说就是击杀大名直接+5,击杀家族族长或普通贵族根据士兵等阶返回2-5分不等,士兵等阶越低加分越多。实际上低于5分就不用算了,反正我还没见过哪个小兵一场能击杀两个乃至更多的贵族。只需要知道0到1阶小兵击杀普通贵族,或者0到3阶小兵击杀家族族长,也能积5分晋升就行。 然后是士兵击杀分:这是一个8*8的表,截图不全,也用不着全截。直接丢给deepseek帮忙翻译一下。 攻击者战斗等级0: [1, 4, 6, 15, 20, 20, 25, 25] 攻击者战斗等级1: [1, 4, 6, 12, 20, 20, 25, 25] 攻击者战斗等级2: [1, 3, 6, 12, 15, 20, 25, 25] 攻击者战斗等级3: [1, 3, 6, 10, 15, 20, 25, 25] 攻击者战斗等级4: [0, 1, 2, 8, 10, 12, 25, 25] 攻击者战斗等级5: [0, 1, 2, 6, 6, 8, 10, 12] 攻击者战斗等级6: [0, 1, 1, 4, 5, 7, 8, 9] 攻击者战斗等级7: [0, 1, 1, 3, 4, 6, 7, 8] 简单来说就是我方士兵等级越低,则击杀敌方加分越多。敌方士兵等级越高,我方击杀者的加分越多。士兵击杀分默认单场累计25分可以晋升,这也会受到Mod设置中的晋升速度的影响(见上文)。 好了,至此我们就明白织丰是如何判定我们麾下士兵能否晋升的了,这段代码相对还是比较简单的,逻辑也很清晰。如我有任何错误或漏掉的地方,欢迎批评指正! b站同名文章也是我:cv43127771
1 下一页