Yuan's 札记: 图文教学 -- LF2 复制AI da法
lf2吧
全部回复
仅看楼主
level 7
猫美玲 楼主
以下完全转载自 Yuan's 札记: 图文教学 -- LF2 复制AI da法
ht tp://usit-yuan.blogspot.com/2008/07/lf2-ai.html
2009年03月28日 15点03分 1
level 7
猫美玲 楼主
Copy AI 的方法:
写在前面:
※本方法只能复制电脑的行动,并无法复制特性(ex. 装甲)
※所有数值踩十六进位(HEX)
做好所有的心里建设之后,就来:
1. 开启LF2.exe 看到美丽画面之后搜寻(Ctrl + F):
----------------------------
CMP DWORD PTR DS:[ECX+6F4],X
----------------------------
X指的是你想复制的ai 的ID。(十六进位)
Ex.0~9正常输入,Woody- "0A"、Davis- "0B".....
在此范例是使用id: 4 (Henry):
2.接著你会看到如下的字码:
请注意蓝线和红线框起来的地方,另外记起来更好!
3.点两下"第三栏",修改:
Ex.修改
----------------------------
CMP DWORD PTR DS:[ECX+6F4],4
----------------------------

----------------------------
JMP 00442612
----------------------------
你会看到类似这种多出一些资料的状态
4.跳跃(Ctrl + G)到 00442612,然后在00442612的第三栏输入:
----------------------------
CMP DWORD PTR DS:[ECX+6F4],4
----------------------------
再下行输入:
----------------------------
JE 0040A0EA
----------------------------
发现了吗?红字就是红框框的位置。
接著依序输入:
----------------------------
CMP DWORD PTR DS:[ECX+6F4],想复制的ID
JE 0040A0EA
----------------------------
最后输入:
----------------------------
JMP 0040A32E
----------------------------
蓝字就是上方篮框框位置的数值。
Ex:
基本上到这里就完成了初步的AI复制。 接下来是存档的部份:
1.空白处点右键 > Copy to executable >
All modifications
2.点copy All
3. 接下来跳出的视窗之中按右键,便可以看到Save file 了
结语:
※本方法复制的AI 并不会常使用 D>A 指令
※如人物第三行不是CMP DWORD 开头的,请向下寻找MOV EAX
开头的。
※事实上这只是让程式绕个远路读取而已。而一开始要JMP 到哪里根本就是随你便的,只要是空白的地方都可以跳过去。

2009年03月28日 16点03分 3
level 7
猫美玲 楼主
猫美玲的补充说明:
原文使用的的是1.9版改的
所以打开1.9版后地址排列与原文一致
我使用2.0版改的
打开后地址和以上地址有些不同
但还是改成功了
还有个要注意的
Henry
CMP DWORD PTR DS:[EAX+6F4],4
John
CMP DWORD PTR DS:[EDX+6F4],2
从上面可以看出 ID前不一定都是EAX
我找到的John使用的是EDX(我使用的2.0版 1.9的我没试过)

2009年03月28日 16点03分 5
level 6
汇编..买了书一直没有看..等什么时候有兴趣..
2009年03月28日 16点03分 6
level 7
猫美玲 楼主
我之前先改的4楼的方法
我的角色就只会D→A
现在用3楼的方法加入角色AI后
已经可以使用D↑A D→J 了 我用的John的AI
2009年03月28日 16点03分 7
level 7
猫美玲 楼主
最后在唠叨下
发现转个贴都好辛苦喵....
2009年03月28日 16点03分 9
level 6
有劳了,改日影子可能加精的
睡吧,都这么晚了……
2009年03月28日 16点03分 10
level 9
ok,感谢搬运+翻译
所谓“扩大眼界”就是这么回事...
提示下 jmp就是跳转,跳转到后面的指令。
MODer应该都清楚“跳转”也就是next: xxx
然后cmp是比较跳转,cmp ax,bx
把ax的内容减去bx的内容,看是大是小,还是是否为零,依据此结果来做跳转
条件不明,大一刚学高级语言OTL
je是结果不为零就跳转
EAX是储存器 = =
据此可以进一步实验了
最后再次向LZ致谢
以上

2009年03月29日 01点03分 11
level 9
这东西貌似...挺强大....
膜拜下...
2009年03月29日 01点03分 12
level 1
看的有点晕呼呼的,还是支持一下
2009年03月29日 02点03分 13
level 7
猫美玲 楼主
11楼
je是结果为零就跳转
2009年03月29日 05点03分 14
level 7
猫美玲 楼主
原作者Sliva
翻译Yuan
我只是搬运...
2009年03月29日 05点03分 15
level 6
非常~非常~的强~~~
2009年03月29日 06点03分 16
level 8
2...RN要继续弄了...
2009年03月29日 06点03分 17
level 8
LS是胡说的...
2009年03月29日 06点03分 18
level 7
猫美玲 楼主
我研究的部分结果 提供给大家
00403608 cmp eax,2
让角色经常施展D→A (效果不明显 我觉得下面这个才是真的 但这2个很像...)
004036fb cmp eax,2
让角色经常施展D→A (猜想:如果有AI 可以施展其他技能)
00403A7E CMP DWORD PTR DS:[EDX+6F4],2
John的AI判断 注意这里是EDX 这里是ID
004041F1 CMP DWORD PTR DS:[EAX+6F4],4
Henry的AI判断 注意这里是EAX 这里是ID
0040436E CMP DWORD PTR DS:[EAX+6F4],5
Rudolf的AI判断 这里也是EAX 这里是ID
00404DBB CMP DWORD PTR DS:[EDX+6F4],0A
Woody的AI判断 这里又变回EDX 这里是ID
0040B393 CMP EAX,4
这里是让角色能进行远程攻击 比如4:Henry 5:Rudolf 1F:Hunter
但这里还有24:Jan 很奇怪这里的跳转 因为 Jan 不是远程攻击角色
但我的远程攻击角色确实在这里生效了
比如这里把1F去掉 Hunter 将和白痴一样不射箭了....

2009年03月29日 12点03分 19
level 7
猫美玲 楼主
对了 19楼 我说的是2.0版的
用工具打开LF2.EXE 地址就是一一对应的
2009年03月29日 13点03分 20
level 11
汗...惭愧
其实很早以前官坛就有了,一直没有弄过来
嘛,似乎精已经授了.
2009年03月30日 00点03分 21
level 7
猫美玲 楼主
> 嘛,似乎精已经授了.
怎么听着有些别扭喵...
2009年03月30日 00点03分 22
level 11
您是不是整天生怕别人不知道自己这么糟糕啊
2009年03月30日 05点03分 24
1 2 尾页