本帖最后由 路西菲爾 于 2016-2-17 10:21 编辑
不要吐槽这中二的名字和昵称~~
效果如图:(现在已经有解锁职业全技能和添加额外技能(AWC随机技能等)的功能了!)
2.14:
自己增强的一个CE脚本,需要用CheatEngine6.5载入:
XCom2Improved.ct
(995.67 KB, 下载次数: 1348)
简单教程:
需要自己下载cheat engine 6.5
1 打开CE,载入脚本,打开游戏进程(open process或点击左上角图标),2 点开第一行soldier profile,游戏中切到一个士兵的界面,这时CE就会读到这个士兵的数据。然后自由编辑里面的内容。
2.1 添加技能时(修改不用),两个蓝字的要勾选一个,然后在下面列表里按照7行一个技能的格式改
2.1.1 已经建有AWC时,勾选上面一个,保留已有技能(勾选下面一个其实也行,但如果勾选下面一个,已经有AWC技能等额外技能(领袖技能也算)就会消失)。否则勾选下面一个。 3 添加技能根据number of addtional abilities这栏里的计数改,计数如果是1,extra ability 0就代表已经有的那1个技能,因此extra ability 1开始改,改下面7行 。增加完不要忘记把number of addtional abilities加1。
- 第一行,技能代码,如00001268(或1268,就是一个16进制数而已)
- 中间可以都为0
- 最后一行为1,表示技能激活
预留了6个技能空间(6*7=42行),如果要加第7个技能只好自己打开disect窗口找到对应位置的内存自己改了(所以建议改完再学领袖技能)。
4 技能代码直接查看别的士兵,看他刷出来什么,然后代码是什么,就可以搬过来
5 技能代码每次运行游戏都是不同的!所以只能从别的士兵那找,但还是有复杂的办法找到技能代码的,只是不太适合大家。如果真需要稍后再写。
6 至于他人物属性的方法就很简单了,不说了,直接改数值
贴士:有时候操作不当(没关闭脚本就关了游戏,或者关了CE)脚本会不生效(无法勾选),这时要一起关闭xcom进程和CE,然后再打开游戏和CE,单独关闭1个是没用的,内存里还是被锁住
====技能代码长什么样子?================
不同电脑不同时机代码不一样,所以别直接用,只是让你看看代码长什么样,就是上面讲的7行的技能结构第一行里的东西。
虽然都不一样但是又有规律,像1268 1267这两个很可能在你电脑上也是技能,但应该不是撕裂和支配。游戏的代码一般在一个范围内浮动,比如1267,1269等等。
00001268 撕裂 00001270 支配 0000035B 00000BEA 侵入 0000106C 0000125D 00001267 00001268 00001272 00001273 0001878C 00018C90 00018E64 不可碰触(我电脑上是00018E65) 000191D6 000191DE 00019220 0001932A
可以看到技能代码前面至少有3个0(至今没见过2个0的)
==============技能代码搜索方法(注意,技能定位需要靠RP,技能名猜的对才找的到)================ ①CE打开游戏进程,如下设置,然后搜索框中输入69 6D 67 3A 2F 2F 2F 55 49 4C 69 62 72 61 72 79 5F 50 65 72 6B 49 63 6F 6E 73 2E 55 49 50 65 72 6B 5F
②会搜到很多条地址,基本上(有一些不是)都是和技能相关的地址,然后右键点Browse this memory region
③会出现这个窗口,往上拖动一点会是下面这样~
④这样基本找技能的方法你就掌握了~~
⑤现在讲怎么定位技能,当然不定位想要的技能上面一个一个翻当然也可以。。。。但是挺多的,300多个技能相关地址,而且不少重复的技能(一个技能的多个状态)
首先明白这代表什么:
69 6D 67 3A 2F 2F 2F 55 49 4C 69 62 72 61 72 79 5F 50 65 72 6B 49 63 6F 6E 73 2E 55 49 50 65 72 6B 5F
这工具百度下吧,很多的,注意 处理->进制->十六进制 选上
那我们明白这串十六进制数时什么意思,就可以开始了:
找到我们想要的技能的英文名字,比如上面的swordSlash。
注意第一个单词(首字母制作人员命名完全没有规则,有可能大写与小写),slash就别输入进去了,第二个单词一般是大写开头的(但我们输入sword就已经够筛选了)
得到新的十六进制字串
69 6D 67 3A 2F 2F 2F 55 49 4C 69 62 72 61 72 79 5F 50 65 72 6B 49 63 6F 6E 73 2E 55 49 50 65 72 6B 5F 73 77 6F 72 64
然后我们按第一步的方法搜索这个字符串。注意:如果你刚搜索过一遍其他东西,你要点new scan!
我们会找到2条地址,第一条就是上面③图中的swordslash(斩杀技能似乎),能定位到技能代码,第二条如下图,是无效不是我们想要的!!也就是说一个技能至少能找到1个地址,有时有2个地址,但只有1个有效,另一个不是我们要找的东西,请无视。
附一个能查到技能英文名的网站:
http://xcom.wikia.com/wiki/Grenadier_Class_(XCOM_2)
最最后。。。英文名和游戏内存中的名字也不是一一对应,大概只有一半能对的上。比如游戏中是slash,这里就是swordslash,游戏中连环杀戮是serial,而内存中是InTheZone,这应该都是后期改的名字。
给个连环杀戮的定位代码。
69 6D 67 3A 2F 2F 2F 55 49 4C 69 62 72 61 72 79 5F 50 65 72 6B 49 63 6F 6E 73 2E 55 49 50 65 72 6B 5F 49 6E 54 68 65 5A 6F 6E 65 00 img:///UILibrary_PerkIcons.UIPerk_InTheZone 如果按上面方法试了找不到,那就是名字猜错了,还是放弃吧,或者用①方式一个一个看。。。。 找到的朋友可以跟帖发下技能对应的字符串或ASCII十六进制字串。 截图码字好累!!
====================================下面的可以不要看了=========================================== 2.8:
先说说怎么改,难度很大,一般人玩不转,如果你不能理解内存的概念,不太明白数据结构是什么我建议暂且止步。。。等成熟的修改器出来再改
①(已经变简单啦,直接用上面的CE脚本改)最重要的你要会一点点Cheatengine
②(已经变简单啦)实在不懂的朋友们别勉强,勉强不来的,千万不要浪费时间折腾,耐心等修改工具
③(请用上面给的文件)首先到这个帖子里下两个文件:http://forum.cheatengine.org/viewtopic.php?t=587511&postdays=0&postorder=asc&start=0
放同一目录下,因为两者是互相关联,载入时候要一起似乎。
③.2步骤看下面(已过时)
④载入XCom2 updated soldier structureV2.CT(注意别加载错了!加载另一个也可以,但实现不了改技能的功能,因为这是两个不同作者写的),打开xcom进程,此时会提示你加载相关table,就是XCom2.CT,点是就自动加载啦(已过时,请直接用上面的CE脚本)
提示:Structure dissect窗口怎么打开? ①先打开Memory Viewer窗口
②点Tools->dissect data/structures
------------------------------------------------------------下面的已过时,已经换ce脚本自己分配内存的方式--------------------------------------------------------------------
在执行④前,要思考一个问题,如上所示,职业技能是以数组方式存放在堆内存里的,手动扩大数组大小,有可能覆盖掉后面的有效内存数据,这样就破坏了游戏数据就会导致不可预知的后果!!!
解决方案:这个数组是动态分配的,所以有一个变量是和数组大小有关的,我们要找到这个变量(技能数),作者已经帮我们找好了,我们将他改成想要的,比如13(0级的1个技能+12个6级军衔的技能=13)或14(专家0级有2个技能),所以从上往下数1-13组4bytes都可以使用。
因此有了③.2步骤:
我们先把index for number of class skills known maybe改成11(截图是11,实际推荐改成14)
然后保存游戏!!这时我们假想游戏程序会根据这个数值将数组保存入存档,虽然这样数组会有冗余,但测试发现这冗余并不会产生错误,而且我们成功保护了数组后边的数据。
载入刚才保存的存档,将废数据填充为0000000F(扩充后的数组里有原来内存中的废数据,经测试填充这个比较好,不会被识别成技能,而且游戏不会崩)。然后进行第④步,大功告成!~~~
备份存档!后果我可不会负责的喵
|