[攻击后附加属性处理函数]
00405889 $ 55 push ebp ; 攻击后附加属性处理函数
0040588A . 8BEC mov ebp, esp
0040588C 83EC 14 sub esp, 14
0040588F . 894D F4 mov dword ptr [ebp-C], ecx ; 攻击信息指针
00405892 . 8B45 F4 mov eax, dword ptr [ebp-C]
00405895 . 33C9 xor ecx, ecx
00405897 . 8A88 24040000 mov cl, byte ptr [eax+424] ; 穿透类型号??
0040589D . F7D9 neg ecx ; 求补
0040589F . 1BC9 sbb ecx, ecx
004058A1 . 41 inc ecx
004058A2 . 894D FC mov dword ptr [ebp-4], ecx
004058A5 . C645 F8 00 mov byte ptr [ebp-8], 0
004058A9 . EB 09 jmp short 004058B4
004058AB > 8A55 F8 mov dl, byte ptr [ebp-8] ; 攻击后附加属性处理函数内部循环计数器
004058AE . 80C2 01 add dl, 1 ; 计数器加1
004058B1 . 8855 F8 mov byte ptr [ebp-8], dl
004058B4 > 8B45 F8 mov eax, dword ptr [ebp-8]
004058B7 . 25 FF000000 and eax, 0FF
004058BC . 8B4D F4 mov ecx, dword ptr [ebp-C]
004058BF . 33D2 xor edx, edx
004058C1 . 8A5401 10 mov dl, byte ptr [ecx+eax+10] ; 被攻击武将战场编号
004058C5 . 81FA FF000000 cmp edx, 0FF ; 当循环到第二次时会导致越界
004058CB .- E9 101A0D00 jmp 004D72E0
004058D0 90 nop
004058D1 . 8B45 F8 mov eax, dword ptr [ebp-8]
004058D4 . 25 FF000000 and eax, 0FF
004058D9 . 8B4D F4 mov ecx, dword ptr [ebp-C] ; 攻击信息指针
004058DC . 8B55 F4 mov edx, dword ptr [ebp-C]
004058DF . 8A4402 10 mov al, byte ptr [edx+eax+10] ; 被攻击武将战场编号
004058E3 . 8841 01 mov byte ptr [ecx+1], al ; 转存被攻击武将战场编号
004058E6 . 8B4D F8 mov ecx, dword ptr [ebp-8]
004058E9 . 81E1 FF000000 and ecx, 0FF
004058EF . 8B55 F4 mov edx, dword ptr [ebp-C]
004058F2 . 83BC8A 84000000 00 cmp dword ptr [edx+ecx*4+84], 0
004058FA . 75 19 jnz short 00405915
004058FC . 8B45 F8 mov eax, dword ptr [ebp-8]
004058FF . 25 FF000000 and eax, 0FF
00405904 . 8B4D F4 mov ecx, dword ptr [ebp-C]
00405907 . 83BC81 54020000 00 cmp dword ptr [ecx+eax*4+254], 0
0040590F . 0F84 55010000 je 00405A6A
00405915 >- E9 32190D00 jmp 004D724C
0040591A . 8B4A 08 mov ecx, dword ptr [edx+8]
0040591D .- E9 9F090D00 jmp 004D62C1
00405922 . 85C0 test eax, eax
00405924 . 74 18 je short 0040593E
00405926 . 6A 08 push 8
00405928 . 8B45 F4 mov eax, dword ptr [ebp-C]
0040592B . 33C9 xor ecx, ecx
0040592D . 8A48 01 mov cl, byte ptr [eax+1]
00405930 . 6BC9 24 imul ecx, ecx, 24
00405933 . 81C1 502C4B00 add ecx, 004B2C50
00405939 . E8 820D0000 call 004066C0 ; 增加ECX武将的异常状态,采用OR方法
0040593E > 8B55 F4 mov edx, dword ptr [ebp-C] ; 攻击信息指针
00405941 . 8B4A 08 mov ecx, dword ptr [edx+8] ; 攻击方武将SAV映射
00405944 . E8 C70C0000 call 00406610 ; 获取ECX武将兵种
00405949 . 25 FF000000 and eax, 0FF
0040594E 83F8 32 cmp eax, 32 ; 检查攻击方兵种是否为玄术骑
00405951 . 75 26 jnz short 00405979
00405953 . 6A 3C push 3C
00405955 . E8 D8A10700 call 0047FB32 ; 检测概率为08栈的事件是否发生
0040595A . 83C4 04 add esp, 4
0040595D . 85C0 test eax, eax
0040595F . 74 18 je short 00405979
00405961 . 6A 08 push 8 ; 混乱异常号
00405963 . 8B45 F4 mov eax, dword ptr [ebp-C] ; 攻击信息指针
00405966 . 33C9 xor ecx, ecx
00405968 . 8A48 01 mov cl, byte ptr [eax+1] ; 取被攻击武将战场编号
0040596B . 6BC9 24 imul ecx, ecx, 24
0040596E . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405974 . E8 470D0000 call 004066C0 ; 增加ECX武将的异常状态,采用OR方法
00405979 > 6A 24 push 24 ; 中毒攻击特效号
0040597B . 8B55 F4 mov edx, dword ptr [ebp-C]
0040597E . 8B4A 08 mov ecx, dword ptr [edx+8]
00405981 . E8 83200000 call 00407A09 ; 检测ECX武将是否装备特效为08栈的特殊道具
00405986 . 85C0 test eax, eax
00405988 . 74 18 je short 004059A2
0040598A . 6A 10 push 10
0040598C . 8B45 F4 mov eax, dword ptr [ebp-C]
0040598F . 33C9 xor ecx, ecx
00405991 . 8A48 01 mov cl, byte ptr [eax+1]
00405994 . 6BC9 24 imul ecx, ecx, 24
00405997 . 81C1 502C4B00 add ecx, 004B2C50
0040599D . E8 1E0D0000 call 004066C0
004059A2 > 8B55 F4 mov edx, dword ptr [ebp-C] ; 攻击信息指针
004059A5 . 8B4A 08 mov ecx, dword ptr [edx+8] ; 攻击方武将SAV映射
004059A8 . E8 630C0000 call 00406610 ; 获取ECX武将兵种
004059AD . 25 FF000000 and eax, 0FF
004059B2 . 83F8 2D cmp eax, 2D ; 检查攻击方兵种是否为力士
004059B5 . 75 26 jnz short 004059DD
004059B7 . 6A 3C push 3C ; 3CH=60
004059B9 . E8 74A10700 call 0047FB32 ; 检测概率为08栈的事件是否发生
004059BE . 83C4 04 add esp, 4
004059C1 . 85C0 test eax, eax
004059C3 . 74 18 je short 004059DD
004059C5 . 6A 02 push 2 ; 麻痹异常号
004059C7 . 8B45 F4 mov eax, dword ptr [ebp-C]
004059CA . 33C9 xor ecx, ecx
004059CC . 8A48 01 mov cl, byte ptr [eax+1]
004059CF . 6BC9 24 imul ecx, ecx, 24
004059D2 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
004059D8 . E8 E30C0000 call 004066C0 ; 增加ECX武将的异常状态,采用OR方法
004059DD > 6A 25 push 25 ; 麻痹攻击特效号
004059DF . 8B55 F4 mov edx, dword ptr [ebp-C]
004059E2 . 8B4A 08 mov ecx, dword ptr [edx+8]
004059E5 . E8 1F200000 call 00407A09 ; 检测ECX武将是否装备特效为08栈的特殊道具
004059EA . 85C0 test eax, eax
004059EC . 74 18 je short 00405A06
004059EE . 6A 02 push 2
004059F0 . 8B45 F4 mov eax, dword ptr [ebp-C]
004059F3 . 33C9 xor ecx, ecx
004059F5 . 8A48 01 mov cl, byte ptr [eax+1]
004059F8 . 6BC9 24 imul ecx, ecx, 24
004059FB . 81C1 502C4B00 add ecx, 004B2C50
00405A01 . E8 BA0C0000 call 004066C0
00405A06 > 8B55 F4 mov edx, dword ptr [ebp-C]
00405A09 . 8B4A 08 mov ecx, dword ptr [edx+8] ; 攻击方武将SAV映射
00405A0C . E8 FF0B0000 call 00406610 ; 获取ECX武将兵种
00405A11 . 25 FF000000 and eax, 0FF
00405A16 . 83F8 26 cmp eax, 26 ; 检查攻击方兵种是否为金锤骑
00405A19 . 75 26 jnz short 00405A41
00405A1B . 6A 28 push 28 ; 28H=40
00405A1D . E8 10A10700 call 0047FB32 ; 检测概率为08栈的事件是否发生
00405A22 . 83C4 04 add esp, 4
00405A25 . 85C0 test eax, eax
00405A27 . 74 18 je short 00405A41
00405A29 . 6A 08 push 8 ; 混乱异常号
00405A2B . 8B45 F4 mov eax, dword ptr [ebp-C]
00405A2E . 33C9 xor ecx, ecx
00405A30 . 8A48 01 mov cl, byte ptr [eax+1]
00405A33 . 6BC9 24 imul ecx, ecx, 24
00405A36 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405A3C . E8 7F0C0000 call 004066C0 ; 增加ECX武将的异常状态,采用OR方法
00405A41 > E9 F7360000 jmp 0040913D
00405A46 > 8B4A 08 mov ecx, dword ptr [edx+8] ; 攻击方武将SAV映射指针
00405A49 . E8 BB1F0000 call 00407A09 ; 检测ECX武将是否装备特效为08栈的特殊道具
00405A4E . 85C0 test eax, eax
00405A50 . 74 18 je short 00405A6A
00405A52 . 6A 04 push 4 ; 禁咒异常号
00405A54 . 8B45 F4 mov eax, dword ptr [ebp-C]
00405A57 . 33C9 xor ecx, ecx
00405A59 . 8A48 01 mov cl, byte ptr [eax+1]
00405A5C . 6BC9 24 imul ecx, ecx, 24
00405A5F . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405A65 . E8 560C0000 call 004066C0 ; 增加ECX武将的异常状态,采用OR方法
00405A6A - E9 A94A0D00 jmp 004DA518 ; $$精神攻击在此插入代码
00405A6F 90 nop
00405A70 90 nop
00405A71 . 25 FF000000 and eax, 0FF
00405A76 . 8B4D F4 mov ecx, dword ptr [ebp-C]
00405A79 . 8B9481 30040000 mov edx, dword ptr [ecx+eax*4+430]
00405A80 . 52 push edx
00405A81 . 6A 00 push 0
00405A83 . 6A 00 push 0
00405A85 . 8B45 F8 mov eax, dword ptr [ebp-8]
00405A88 . 25 FF000000 and eax, 0FF
00405A8D . 8B4D F4 mov ecx, dword ptr [ebp-C]
00405A90 . 8B9481 54020000 mov edx, dword ptr [ecx+eax*4+254]
00405A97 . 52 push edx
00405A98 . 8B45 F8 mov eax, dword ptr [ebp-8]
00405A9B . 25 FF000000 and eax, 0FF
00405AA0 . 8B4D F4 mov ecx, dword ptr [ebp-C]
00405AA3 . 8B9481 84000000 mov edx, dword ptr [ecx+eax*4+84]
00405AAA . 52 push edx
00405AAB . 8B45 F4 mov eax, dword ptr [ebp-C]
00405AAE . 8A08 mov cl, byte ptr [eax] ; 攻击方武将战场编号
00405AB0 . 51 push ecx
00405AB1 . 8B55 F4 mov edx, dword ptr [ebp-C]
00405AB4 . 8A42 01 mov al, byte ptr [edx+1] ; 被攻击武将战场编号
00405AB7 . 50 push eax
00405AB8 E8 C7AE0400 call 00450984 ; 被攻方扣血并附加异常动画
00405ABD . 83C4 20 add esp, 20
00405AC0 . 8B4D F4 mov ecx, dword ptr [ebp-C]
00405AC3 . 33D2 xor edx, edx
00405AC5 . 8A51 01 mov dl, byte ptr [ecx+1]
00405AC8 . 8BCA mov ecx, edx
00405ACA . 6BC9 24 imul ecx, ecx, 24
00405ACD . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405AD3 . E8 B8D10600 call 00472C90 ; 返回ECX武将当前体力
00405AD8 . 8B4D F8 mov ecx, dword ptr [ebp-8]
00405ADB . 81E1 FF000000 and ecx, 0FF
00405AE1 . 8B55 F4 mov edx, dword ptr [ebp-C]
00405AE4 . 2B848A 84000000 sub eax, dword ptr [edx+ecx*4+84]
00405AEB . 50 push eax
00405AEC . 8B45 F4 mov eax, dword ptr [ebp-C]
00405AEF . 33C9 xor ecx, ecx
00405AF1 . 8A48 01 mov cl, byte ptr [eax+1]
00405AF4 . 6BC9 24 imul ecx, ecx, 24
00405AF7 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405AFD . E8 CB9B0300 call 0043F6CD ; 将08栈的值加至ECX武将的HPCur,参考全身装备的加成
00405B02 . 8B55 F4 mov edx, dword ptr [ebp-C]
00405B05 . 33C0 xor eax, eax
00405B07 . 8A42 01 mov al, byte ptr [edx+1]
00405B0A . 8BC8 mov ecx, eax
00405B0C . 6BC9 24 imul ecx, ecx, 24
00405B0F . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405B15 . E8 26CD0600 call 00472840 ; 返回ECX武将的MPCur
00405B1A . 8B4D F8 mov ecx, dword ptr [ebp-8]
00405B1D . 81E1 FF000000 and ecx, 0FF
00405B23 . 8B55 F4 mov edx, dword ptr [ebp-C]
00405B26 . 2B848A 54020000 sub eax, dword ptr [edx+ecx*4+254]
00405B2D . 50 push eax
00405B2E . 8B45 F4 mov eax, dword ptr [ebp-C]
00405B31 . 33C9 xor ecx, ecx
00405B33 . 8A48 01 mov cl, byte ptr [eax+1]
00405B36 . 6BC9 24 imul ecx, ecx, 24
00405B39 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405B3F . E8 CA9B0300 call 0043F70E ; 将08栈的值加至ECX武将MPCur,参考全身装备加成
00405B44 - E9 474A0D00 jmp 004DA590 ; $$在此插入吸收攻击代码
00405B49 90 nop
00405B4A 90 nop
00405B4B 90 nop
00405B4C 90 nop
00405B4D . 8B45 F4 mov eax, dword ptr [ebp-C]
00405B50 . 8B8C90 30040000 mov ecx, dword ptr [eax+edx*4+430]
00405B57 . 51 push ecx
00405B58 . 6A 01 push 1
00405B5A . 8B55 F4 mov edx, dword ptr [ebp-C]
00405B5D . 33C0 xor eax, eax
00405B5F . 8A42 01 mov al, byte ptr [edx+1]
00405B62 . 8BC8 mov ecx, eax
00405B64 . 6BC9 24 imul ecx, ecx, 24
00405B67 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405B6D . E8 FE9A0500 call 0045F670 ; 获取ECX武将的DATA编号
00405B72 . 8BC8 mov ecx, eax
00405B74 . 6BC9 48 imul ecx, ecx, 48
00405B77 . 81C1 0000D600 add ecx, 0D60000 ; 被攻击武将SAV映射指针
00405B7D . E8 54270000 call 004082D6
00405B82 . 8B4D F8 mov ecx, dword ptr [ebp-8]
00405B85 . 81E1 FF000000 and ecx, 0FF
00405B8B . 8B55 F4 mov edx, dword ptr [ebp-C]
00405B8E . 83BC8A 84000000 00 cmp dword ptr [edx+ecx*4+84], 0
00405B96 . 0F8E AD000000 jle 00405C49
00405B9C 8B45 F4 mov eax, dword ptr [ebp-C]
00405B9F 33C9 xor ecx, ecx
00405BA1 . 8A48 01 mov cl, byte ptr [eax+1]
00405BA4 . 6BC9 24 imul ecx, ecx, 24
00405BA7 . 81C1 502C4B00 add ecx, 004B2C50
00405BAD . E8 DED00600 call 00472C90 ; 返回ECX武将当前体力
00405BB2 . 85C0 test eax, eax
00405BB4 . 0F86 8F000000 jbe 00405C49
00405BBA . 6A 3E push 3E ; 自动使用特效号
00405BBC . 8B55 F4 mov edx, dword ptr [ebp-C] ; 攻击信息指针
00405BBF . 33C0 xor eax, eax
00405BC1 . 8A42 01 mov al, byte ptr [edx+1]
00405BC4 . 8BC8 mov ecx, eax
00405BC6 . 6BC9 24 imul ecx, ecx, 24
00405BC9 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405BCF . E8 9C9A0500 call 0045F670 ; 获取ECX武将的DATA编号
00405BD4 . 8BC8 mov ecx, eax
00405BD6 . 6BC9 48 imul ecx, ecx, 48
00405BD9 . 81C1 0000D600 add ecx, 0D60000 ; 被攻击武将SAV映射指针
00405BDF . E8 251E0000 call 00407A09 ; 检测ECX武将是否装备特效为08栈的特殊道具
00405BE4 . 85C0 test eax, eax
00405BE6 . 74 61 je short 00405C49
00405BE8 . 8B4D F4 mov ecx, dword ptr [ebp-C] ; 攻击信息指针
00405BEB . 33D2 xor edx, edx
00405BED . 8A51 01 mov dl, byte ptr [ecx+1]
00405BF0 . 8BCA mov ecx, edx
00405BF2 . 6BC9 24 imul ecx, ecx, 24
00405BF5 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405BFB . E8 54A30300 call 0043FF54 ; 获取ECX武将属于我方??
00405C00 . 85C0 test eax, eax
00405C02 . 74 2E je short 00405C32
00405C04 . 6A 57 push 57
00405C06 . B9 70074B00 mov ecx, 004B0770
00405C0B . E8 2E7F0000 call 0040DB3E
00405C10 . 25 FF000000 and eax, 0FF
00405C15 . 85C0 test eax, eax
00405C17 . 7E 17 jle short 00405C30
00405C19 . 6A 00 push 0
00405C1B . 6A 00 push 0
00405C1D . 8B45 F4 mov eax, dword ptr [ebp-C]
00405C20 . 8A48 01 mov cl, byte ptr [eax+1] ; 被攻击武将战场编号
00405C23 . 51 push ecx
00405C24 . 6A 57 push 57 ; 馒头道具编号
00405C26 . B9 50774900 mov ecx, 00497750
00405C2B . E8 13800100 call 0041DC43 ; 使用道具动画并更新HP值
00405C30 > EB 17 jmp short 00405C49
00405C32 > 6A 01 push 1
00405C34 . 6A 00 push 0
00405C36 . 8B55 F4 mov edx, dword ptr [ebp-C]
00405C39 . 8A42 01 mov al, byte ptr [edx+1] ; 被攻击武将战场编号
00405C3C . 50 push eax
00405C3D . 6A 57 push 57 ; 馒头道具编号
00405C3F . B9 50774900 mov ecx, 00497750
00405C44 . E8 FA7F0100 call 0041DC43 ; 使用道具动画并更新HP值
00405C49 > 6A 20 push 20
00405C4B . 8B4D F4 mov ecx, dword ptr [ebp-C]
00405C4E . 33D2 xor edx, edx
00405C50 . 8A51 01 mov dl, byte ptr [ecx+1]
00405C53 . 8BCA mov ecx, edx
00405C55 . 6BC9 24 imul ecx, ecx, 24
00405C58 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
00405C5E . E8 2D0A0000 call 00406690 ; 恢复ECX武将行动
00405C63 .^ E9 43FCFFFF jmp 004058AB
00405C68 . 8BE5 mov esp, ebp
00405C6A . 5D pop ebp
00405C6B . C3 retn
004D724C 8B45 F4 mov eax, dword ptr [ebp-C] ; 攻击信息指针
004D724F E8 12000000 call 004D7266
004D7254 85C0 test eax, eax
004D7256 - 0F85 0EE8F2FF jnz 00405A6A
004D725C 6A 23 push 23 ; 混乱攻击特效号
004D725E 8B55 F4 mov edx, dword ptr [ebp-C]
004D7261 - E9 B4E6F2FF jmp 0040591A
004D62C1 E8 4317F3FF call 00407A09 ; 检测ECX武将是否装备特效为08栈的特殊道具
004D62C6 85C0 test eax, eax
004D62C8 - 0F84 70F6F2FF je 0040593E
004D62CE 6A 3C push 3C
004D62D0 E8 5D98FAFF call 0047FB32
004D62D5 83C4 04 add esp, 4
004D62D8 85C0 test eax, eax
004D62DA - 0F84 5EF6F2FF je 0040593E
004D62E0 - E9 41F6F2FF jmp 00405926
0040913D > \6A 22 push 22 ; 恶路移动特效号
0040913F . 8B55 F4 mov edx, dword ptr [ebp-C]
00409142 . 8B4A 08 mov ecx, dword ptr [edx+8] ; 攻击方武将SAV映射指针
00409145 . E8 BFE8FFFF call 00407A09 ; 检测ECX武将是否装备特效为08栈的特殊道具
0040914A . 85C0 test eax, eax
0040914C . 74 26 je short 00409174
0040914E . 6A 3C push 3C ; 3CH=60
00409150 . E8 DD690700 call 0047FB32 ; 检测概率为08栈的事件是否发生
00409155 . 83C4 04 add esp, 4
00409158 . 85C0 test eax, eax
0040915A . 74 18 je short 00409174
0040915C . 6A 02 push 2 ; 麻痹异常号
0040915E . 8B45 F4 mov eax, dword ptr [ebp-C]
00409161 . 33C9 xor ecx, ecx
00409163 . 8A48 01 mov cl, byte ptr [eax+1]
00409166 . 6BC9 24 imul ecx, ecx, 24
00409169 . 81C1 502C4B00 add ecx, 004B2C50 ; 被攻击武将战场信息指针
0040916F . E8 4CD5FFFF call 004066C0 ; 增加ECX武将的异常状态,采用OR方法
00409174 > 6A 26 push 26 ; 封杀策略特效号
00409176 . 8B55 F4 mov edx, dword ptr [ebp-C]
00409179 .^ E9 C8C8FFFF jmp 00405A46
|