模仿异能:可以模仿周围神兵的特效
最近在追看沧海兄写的冰之无限中的神兵玄奇那一卷,里面有看到魔兵无妄天诛的异能:模仿(可以模仿其它魔、神兵的异能),感觉有点意思,就动了在曹操传里修改出这个技能的念头,经过几天研究终于改出将其改出了。我是用毅兄的EXE改的,下面就是模仿异能的代码:
004D40B6 E8 B50F0000 call Ekd5.004D5070
004D5070 55 push ebp
004D5071 8BEC mov ebp,esp
004D5073 83EC 14 sub esp,14
004D5076 894D FC mov dword ptr ss:[ebp-4],ecx
004D5079 8B45 08 mov eax,dword ptr ss:[ebp+8]
004D507C 8945 F8 mov dword ptr ss:[ebp-8],eax
004D507F 6A 3B push 3B <---------------------特效号
004D5081 E8 FD28F3FF call Ekd5.00407983
004D5086 85C0 test eax,eax
004D5088 74 4A je short Ekd5.004D50D4
004D508A C745 F0 00000000 mov dword ptr ss:[ebp-10],0
004D5091 8B45 F0 mov eax,dword ptr ss:[ebp-10]
004D5094 E8 68F1FFFF call Ekd5.004D4201
004D5099 395D FC cmp dword ptr ss:[ebp-4],ebx
004D509C 74 05 je short Ekd5.004D50A3
004D509E FF45 F0 inc dword ptr ss:[ebp-10]
004D50A1 ^ EB EE jmp short Ekd5.004D5091
004D50A3 C745 EC 00000000 mov dword ptr ss:[ebp-14],0
004D50AA 8B45 F0 mov eax,dword ptr ss:[ebp-10]
004D50AD 8B5D EC mov ebx,dword ptr ss:[ebp-14]
004D50B0 3BC3 cmp eax,ebx
004D50B2 74 1B je short Ekd5.004D50CF
004D50B4 83FB 72 cmp ebx,72
004D50B7 77 1B ja short Ekd5.004D50D4
004D50B9 E8 BEF1FFFF call Ekd5.004D427C
004D50BE 85C0 test eax,eax
004D50C0 74 0D je short Ekd5.004D50CF
004D50C2 8B45 EC mov eax,dword ptr ss:[ebp-14]
004D50C5 E8 CEF2FFFF call Ekd5.004D4398
004D50CA 3A45 F8 cmp al,byte ptr ss:[ebp-8]
004D50CD 74 12 je short Ekd5.004D50E1
004D50CF FF45 EC inc dword ptr ss:[ebp-14]
004D50D2 ^ EB D6 jmp short Ekd5.004D50AA
004D50D4 8B4D FC mov ecx,dword ptr ss:[ebp-4]
004D50D7 FF75 F8 push dword ptr ss:[ebp-8]
004D50DA E8 A428F3FF call Ekd5.00407983
004D50DF EB 0F jmp short Ekd5.004D50F0
004D50E1 8B45 EC mov eax,dword ptr ss:[ebp-14]
004D50E4 E8 F1F2FFFF call Ekd5.004D43DA
004D50E9 8BD0 mov edx,eax
004D50EB B8 01000000 mov eax,1
004D50F0 8BE5 mov esp,ebp
004D50F2 5D pop ebp
004D50F3 C3 retn
里面有用到一些我自己写的参数
武将A的战场、DATA内存地址:
004D4201 55 push ebp
004D4202 8BEC mov ebp,esp
004D4204 25 FF000000 and eax,0FF
004D4209 6BC0 24 imul eax,eax,24
004D420C 05 502C4B00 add eax,Ekd5.004B2C50
004D4211 8B18 mov ebx,dword ptr ds:[eax]
004D4213 6BDB 48 imul ebx,ebx,48
004D4216 031D 70404D00 add ebx,dword ptr ds:[4D4070]
004D421C 8BE5 mov esp,ebp
004D421E 5D pop ebp
004D421F C3 retn
输入:eax=武将A战场编号
输出:eax=武将A战场内存地址,ebx=武将A DATA内存地址
武将A是否在武将B的九宫范围内:
004D427C 55 push ebp
004D427D 8BEC mov ebp,esp
004D427F E8 9EFFFFFF call Ekd5.004D4222
004D4284 3C 01 cmp al,1
004D4286 77 0C ja short Ekd5.004D4294
004D4288 80FB 01 cmp bl,1
004D428B 77 07 ja short Ekd5.004D4294
004D428D B8 01000000 mov eax,1
004D4292 EB 05 jmp short Ekd5.004D4299
004D4294 B8 00000000 mov eax,0
004D4299 8BE5 mov esp,ebp
004D429B 5D pop ebp
004D429C C3 retn
004D4222 55 push ebp
004D4223 8BEC mov ebp,esp
004D4225 33C9 xor ecx,ecx
004D4227 0FB6C8 movzx ecx,al
004D422A 6BC9 24 imul ecx,ecx,24
004D422D 81C1 502C4B00 add ecx,Ekd5.004B2C50
004D4233 8A41 06 mov al,byte ptr ds:[ecx+6]
004D4236 8A61 07 mov ah,byte ptr ds:[ecx+7]
004D4239 33C9 xor ecx,ecx
004D423B 0FB6CB movzx ecx,bl
004D423E 6BC9 24 imul ecx,ecx,24
004D4241 81C1 502C4B00 add ecx,Ekd5.004B2C50
004D4247 8A59 06 mov bl,byte ptr ds:[ecx+6]
004D424A 8A79 07 mov bh,byte ptr ds:[ecx+7]
004D424D 3AC3 cmp al,bl
004D424F 72 04 jb short Ekd5.004D4255
004D4251 2AC3 sub al,bl
004D4253 EB 04 jmp short Ekd5.004D4259
004D4255 2AD8 sub bl,al
004D4257 8AC3 mov al,bl
004D4259 3AE7 cmp ah,bh
004D425B 72 04 jb short Ekd5.004D4261
004D425D 2AE7 sub ah,bh
004D425F EB 04 jmp short Ekd5.004D4265
004D4261 2AFC sub bh,ah
004D4263 8AE7 mov ah,bh
004D4265 8ADC mov bl,ah
004D4267 25 FF000000 and eax,0FF
004D426C 81E3 FF000000 and ebx,0FF
004D4272 8BC8 mov ecx,eax
004D4274 03CB add ecx,ebx
004D4276 8BE5 mov esp,ebp
004D4278 5D pop ebp
004D4279 C3 retn
输入:eax=武将A战场编号,ebx=武将B战场编号
输出:eax=0(不是),1(是)
读取武将A的武器、防具、辅助品的特效号:
004D4398 55 push ebp
004D4399 8BEC mov ebp,esp
004D439B E8 D0FFFFFF call Ekd5.004D4370
004D43A0 6BC0 19 imul eax,eax,19
004D43A3 05 40114A00 add eax,Ekd5.004A1140
004D43A8 8A40 14 mov al,byte ptr ds:[eax+14]
004D43AB 25 FF000000 and eax,0FF
004D43B0 6BDB 19 imul ebx,ebx,19
004D43B3 81C3 40114A00 add ebx,Ekd5.004A1140
004D43B9 8A5B 14 mov bl,byte ptr ds:[ebx+14]
004D43BC 81E3 FF000000 and ebx,0FF
004D43C2 6BC9 19 imul ecx,ecx,19
004D43C5 81C1 40114A00 add ecx,Ekd5.004A1140
004D43CB 8A49 14 mov cl,byte ptr ds:[ecx+14]
004D43CE 81E1 FF000000 and ecx,0FF
004D43D4 8BE5 mov esp,ebp
004D43D6 5D pop ebp
004D43D7 C3 retn
004D4370 55 push ebp
004D4371 8BEC mov ebp,esp
004D4373 83EC 04 sub esp,4
004D4376 E8 86FEFFFF call Ekd5.004D4201
004D437B 33C0 xor eax,eax
004D437D 8A43 2E mov al,byte ptr ds:[ebx+2E]
004D4380 8945 FC mov dword ptr ss:[ebp-4],eax
004D4383 8BC3 mov eax,ebx
004D4385 33DB xor ebx,ebx
004D4387 33C9 xor ecx,ecx
004D4389 8A58 31 mov bl,byte ptr ds:[eax+31]
004D438C 8A48 34 mov cl,byte ptr ds:[eax+34]
004D438F 8B45 FC mov eax,dword ptr ss:[ebp-4]
004D4392 8BE5 mov esp,ebp
004D4394 5D pop ebp
004D4395 C3 retn
输入:eax=武将A战场编号
输出:eax=武器特效号,ebx=防具特效号,ecx=辅助品特效号
读取武将A的武器、防具、辅助品的效果值:
004D43DA 55 push ebp
004D43DB 8BEC mov ebp,esp
004D43DD E8 8EFFFFFF call Ekd5.004D4370
004D43E2 6BC0 19 imul eax,eax,19
004D43E5 05 40114A00 add eax,Ekd5.004A1140
004D43EA 8A40 16 mov al,byte ptr ds:[eax+16]
004D43ED 25 FF000000 and eax,0FF
004D43F2 6BDB 19 imul ebx,ebx,19
004D43F5 81C3 40114A00 add ebx,Ekd5.004A1140
004D43FB 8A5B 16 mov bl,byte ptr ds:[ebx+16]
004D43FE 81E3 FF000000 and ebx,0FF
004D4404 6BC9 19 imul ecx,ecx,19
004D4407 81C1 40114A00 add ecx,Ekd5.004A1140
004D440D 8A49 16 mov cl,byte ptr ds:[ecx+16]
004D4410 81E1 FF000000 and ecx,0FF
004D4416 8BE5 mov esp,ebp
004D4418 5D pop ebp
004D4419 C3 retn
输入:eax=武将A战场编号
输出:eax=武器效果值,ebx=防具效果值,ecx=辅助品效果值
|