水木版曹操传兵种特效
最近无聊在添加兵种特效,论坛里发现了反击后反击的兵种特效
原版的反击后反击宝物特效的是这样的:
004063D6 |. 6A 28 PUSH 28 <——特效号
004063D8 |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
004063DB |. E8 90920500 CALL 0045F670
004063E0 |. 8BC8 MOV ECX,EAX
004063E2 |. 6BC9 48 IMUL ECX,ECX,48
004063E5 |. 81C1 681B4A00 ADD ECX,004A1B68 <——计算出来的武将数据内存起始地址
004063EB |. E8 19160000 CALL 00407A09 <——判断武将身上是否带有指定特效号的装备
004063F0 |. 85C0 TEST EAX,EAX
004063F2 |. 75 0F JNZ SHORT 00406403 <——判断出武将身上带有反击后反击的宝物特效装备,跳到406403
将原来的代码修改如下(肯定不够位置,需要另外找空位置跳过改好再跳回来)
MOV ECX,DWORD PTR SS:[EBP-4]
CALL 0045F670
MOV ECX,EAX
IMUL ECX,ECX,48
ADD ECX,004A1B68
CALL 406610
CMP AL,XX <——XX就是兵种编号
JE 406403
PUSH 28
CALL 00407A09
TEST EAX,EAX
JNZ SHORT 00406403
如上更改后发现所有兵种都变成反击后反击了,有没有大大帮忙指点一下,哪里错了?还有跳转空白的汇编是要从哪里改的?我是从原地址的6A 28改的 对吗?
|