找到getAllianceProposal_Positive方法
在return v0语句前一段加入
const/4 v0, 0x0
然后再找到getAllianceProposal_Negative方法
在return v0语句前加入
const/4 v0, -0x8
(这两个方法都在dioplmocyManager里)
好了 现在结盟可能性这辈子都不可能是“高”了。
什么?这两条语句什么意思?
好 让我们先来聊聊老卢是怎么写结盟倾向的
结盟倾向的分数获取分为两类方法 即getAllianceProposal_Positive(Negative)对应积极(消极)倾向。这个前缀下带有各种理由的分数 例如边界距离/政体/文明强度等
我们上述的这两个方法就是结盟倾向积极与消极的总获取方法。
const/4 是一条smali的指令 可以简单的理解为向某个变量(其实应该是寄存器,但在这里我们采取更易于理解的方法)存储指定的数据。
v0就是我们这个变量的名字 0x0和-0x8自然是我们要存入的内容。
为什么要存到v0里?因为下一条语句 return v0的意思就是返回v0变量的值。
那么 你可能还想要问 0x0和-0x8到底是啥? 在这里 我们不细讲 简单的化成常规的数字形式 就是0和-8。如果你还想要深究,可以了解一下16进制。
让我们把积极与消极的倾向加在一起:0+(-8)=-8。负数 那么AI自然不会同意。如果你想让每次结盟都被同意,可以试试把这两个数值改成别的数字让结果一定是正数。
嘿!如果有玩家用s和a切到别的国家强制同意结盟呢?我不想让玩家这么干!
emmmm……
当然 并不是没有办法。
通过mt管理器的dex++编辑器,搜索(代码)rebuildInGame_OfferAlliance,然后进入Menu_InGame_CivInfo_Stats_Actions$8这个结果 按道理来说编辑器会自动帮你定位到这个目标。把定位到的这一行删掉就可以了。
至于它的原理 自然非常简单:
既然玩家可以发出结盟申请然后切过去同意,那我们不让玩家发出申请不就好了?
没错,rebuildInGame_OfferAlliance就是启动结盟申请菜单的方法。 如果我们把这个方法删掉 在按下结盟申请按钮之后根本不会启动结盟申请菜单 自然发不出申请。
但你必须要注意一点:删掉这个启动调用不会让AI结盟消失,第一种方法才能让AI结盟消失。毕竟,AI可不需要点开菜单然后按下同意。
建议两个方法同时使用,毕竟谁都说不准玩家还能玩出什么花活。
--------------
这篇文章本来是写着玩的 但是发现好像现在还没有通过代码来调整结盟的教程 于是就发一下。
在return v0语句前一段加入
const/4 v0, 0x0
然后再找到getAllianceProposal_Negative方法
在return v0语句前加入
const/4 v0, -0x8
(这两个方法都在dioplmocyManager里)
好了 现在结盟可能性这辈子都不可能是“高”了。
什么?这两条语句什么意思?
好 让我们先来聊聊老卢是怎么写结盟倾向的
结盟倾向的分数获取分为两类方法 即getAllianceProposal_Positive(Negative)对应积极(消极)倾向。这个前缀下带有各种理由的分数 例如边界距离/政体/文明强度等
我们上述的这两个方法就是结盟倾向积极与消极的总获取方法。
const/4 是一条smali的指令 可以简单的理解为向某个变量(其实应该是寄存器,但在这里我们采取更易于理解的方法)存储指定的数据。
v0就是我们这个变量的名字 0x0和-0x8自然是我们要存入的内容。
为什么要存到v0里?因为下一条语句 return v0的意思就是返回v0变量的值。
那么 你可能还想要问 0x0和-0x8到底是啥? 在这里 我们不细讲 简单的化成常规的数字形式 就是0和-8。如果你还想要深究,可以了解一下16进制。
让我们把积极与消极的倾向加在一起:0+(-8)=-8。负数 那么AI自然不会同意。如果你想让每次结盟都被同意,可以试试把这两个数值改成别的数字让结果一定是正数。
嘿!如果有玩家用s和a切到别的国家强制同意结盟呢?我不想让玩家这么干!
emmmm……
当然 并不是没有办法。
通过mt管理器的dex++编辑器,搜索(代码)rebuildInGame_OfferAlliance,然后进入Menu_InGame_CivInfo_Stats_Actions$8这个结果 按道理来说编辑器会自动帮你定位到这个目标。把定位到的这一行删掉就可以了。
至于它的原理 自然非常简单:
既然玩家可以发出结盟申请然后切过去同意,那我们不让玩家发出申请不就好了?
没错,rebuildInGame_OfferAlliance就是启动结盟申请菜单的方法。 如果我们把这个方法删掉 在按下结盟申请按钮之后根本不会启动结盟申请菜单 自然发不出申请。
但你必须要注意一点:删掉这个启动调用不会让AI结盟消失,第一种方法才能让AI结盟消失。毕竟,AI可不需要点开菜单然后按下同意。
建议两个方法同时使用,毕竟谁都说不准玩家还能玩出什么花活。
--------------
这篇文章本来是写着玩的 但是发现好像现在还没有通过代码来调整结盟的教程 于是就发一下。