那年那个冬天,那是的我还是个那么纯洁的同学……长话短说,就那个寒假百无聊赖的玩了玩星际争霸2单机模式,然后各种被虐……劳资表示不服,于是开启上帝模式打开游戏安装目录……
随后将各种模式下的cpu玩家海扁一顿,然后发个qq空间纪念一下(别打脸,我承认为了装逼)
今天整理电脑发现当时保存的记录,将其转到csdn表示对以往的怀念(说了别打脸,我承认还是为了装逼)
废话就这些,现在先看看怎么修改游戏吧!
首先进入游戏的根目录,找到TriggerLibs文件夹
这就是我们要下手的菜,动手之前建议先备份一下。
进入文件夹可以看到一堆galaxy格式的文件,这些就是游戏运行时的逻辑代码,本次修改就是将这些代码中的攻击逻辑全部注释掉,需要被注释的行位置列出如下:
冒号前为文件名,冒号后为需被注释的行号。定位技巧
想快速定位到文件中的第几行需要使用特殊文本编辑器,本人使用的是EditPlus。如果没条件下载的话,也可以用记事本打开,然后按ctrl+f,输入AISetAttackState,然后按回车,在所有查找到的行前面加上两个斜杠//保存关闭。
修改完所有galaxy文件后运行SC2,无论是简单困难疯狂模式,cpu玩家均不会主动攻击,但会防御。还等什么,赶快爽起来吧!原理
cpu玩家指挥单位进攻需要调用AISetAttackState(),因此注释该方法的所有调用之后cpu玩家永远不会主动进攻。
但是其他逻辑正常运行,所以如果你发育到最后去cpu基地会发现大量输出单位在天上地上,这时……战个痛!其他
仔细看下AISetAttackState()的调用会发现cpu玩家会根据时间与当前作战单位数量判断是否发动第一次进攻,随后会立刻根据第一次进攻后的伤亡与当前作战单位数判断是否马上进行第二次进攻。
而且有的地方在调用前会判断当前游戏难度设置来调整作战单位产生速度与进攻频率。
还有很多有意思的地方自己看吧!All in code