原版的反击后反击宝物特效的是这样的:
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
修改原理:
在计算出来的武将数据内存起始地址后面加上判断武将的兵种是否反击后反击的兵种编号,是的话就跳到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
类似的在已有宝物效果的基础上添加兵种特效都是这样去改,理解清楚就很容易了。
|