Board logo

标题: 在攻击中释放策略 [打印本页]

作者: aaa132536    时间: 2014-4-5 16:12     标题: 在攻击中释放策略

根据毅兄的指点及全策略效果代码分析,我完成了很早以前就想要的特效:在攻击中释放策略,下面就是这个特效的代码

00425627  /$  55                             push ebp
00425628  |.  8BEC                           mov ebp,esp
0042562A  |.  83EC 08                        sub esp,8
0042562D  |.  894D FC                        mov dword ptr ss:[ebp-4],ecx
00425630  |.  8A45 0C                        mov al,byte ptr ss:[ebp+C]
00425633  |.  50                             push eax                                            ; /Arg2
00425634  |.  8A45 08                        mov al,byte ptr ss:[ebp+8]                          ; |
00425637  |.  50                             push eax                                            ; |Arg1
00425638  |.  E8 A4FBFFFF                    call Ekd5.004251E1                                  ; \Ekd5.004251E1
0042563D  |.  8B55 FC                        mov edx,dword ptr ss:[ebp-4]
00425640  |.  8B4A 08                        mov ecx,dword ptr ds:[edx+8]
00425643  |.  E8 88040000                    call Ekd5.00425AD0
00425648  |.  25 FF000000                    and eax,0FF
0042564D  |.  33C9                           xor ecx,ecx
0042564F  |.  83F8 07                        cmp eax,7
00425652  |.  0F94C1                         sete cl
00425655  |.  51                             push ecx                                            ; /Arg3
00425656  |.  8B55 FC                        mov edx,dword ptr ss:[ebp-4]                        ; |
00425659  |.  8A42 01                        mov al,byte ptr ds:[edx+1]                          ; |
0042565C  |.  50                             push eax                                            ; |Arg2
0042565D  |.  8A02                           mov al,byte ptr ds:[edx]                            ; |
0042565F  |.  50                             push eax                                            ; |Arg1
00425660  |.  E8 64A8FFFF                    call Ekd5.0041FEC9                                  ; \Ekd5.0041FEC9
00425665  |.  83C4 0C                        add esp,0C
00425668  |.  85C0                           test eax,eax
0042566A  |.  75 0E                          jnz short Ekd5.0042567A
0042566C  |.  8B45 FC                        mov eax,dword ptr ss:[ebp-4]
0042566F  |.  8B80 AC040000                  mov eax,dword ptr ds:[eax+4AC]
00425675  |.  E9 C8020000                    jmp Ekd5.00425942
0042567A  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0042567D  |.  33D2                           xor edx,edx
0042567F  |.  8A11                           mov dl,byte ptr ds:[ecx]
00425681  |.  33C0                           xor eax,eax
00425683  |.  8A82 A0075000                  mov al,byte ptr ds:[edx+5007A0]
00425689  |.  83F8 63                        cmp eax,63
0042568C  |.  7E 28                          jle short Ekd5.004256B6
0042568E  |.  3D FF000000                    cmp eax,0FF
00425693  |.  74 21                          je short Ekd5.004256B6
00425695  |.  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00425698  |.  33D2                           xor edx,edx
0042569A  |.  8A11                           mov dl,byte ptr ds:[ecx]
0042569C  |.  8A82 A0075000                  mov al,byte ptr ds:[edx+5007A0]
004256A2  |.  50                             push eax                                            ; /Arg1
004256A3  |.  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]                        ; |
004256A6  |.  E8 54C1FFFF                    call Ekd5.004217FF                                  ; \Ekd5.004217FF
004256AB  |.  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
004256AE  |.  8981 B0040000                  mov dword ptr ds:[ecx+4B0],eax
004256B4  |.  EB 0D                          jmp short Ekd5.004256C3
004256B6  |>  8B55 FC                        mov edx,dword ptr ss:[ebp-4]
004256B9  |.  C782 B0040000 00000000         mov dword ptr ds:[edx+4B0],0
004256C3  |>  8B45 FC                        mov eax,dword ptr ss:[ebp-4]
004256C6  |.  33C9                           xor ecx,ecx
004256C8  |.  8A08                           mov cl,byte ptr ds:[eax]
004256CA  |.  894D F8                        mov dword ptr ss:[ebp-8],ecx
004256CD  |.  837D F8 48                     cmp dword ptr ss:[ebp-8],48
004256D1  |.  0F87 3A020000                  ja Ekd5.00425911
004256D7  |.  8B45 F8                        mov eax,dword ptr ss:[ebp-8]
004256DA  |.  33D2                           xor edx,edx
004256DC  |.  8A90 D0594200                  mov dl,byte ptr ds:[eax+4259D0]
004256E2  |.  FF2495 48594200                jmp dword ptr ds:[edx*4+425948]
004256E9  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
004256EC  |.  83FA 03                        cmp edx,3
004256EF  |.  74 09                          je short Ekd5.004256FA
004256F1  |.  C681 54020000 40               mov byte ptr ds:[ecx+254],40
004256F8  |.  EB 07                          jmp short Ekd5.00425701
004256FA  |>  C681 54020000 50               mov byte ptr ds:[ecx+254],50
00425701  |>  FF75 14                        push dword ptr ss:[ebp+14]                          ; /Arg2
00425704  |.  FF75 10                        push dword ptr ss:[ebp+10]                          ; |Arg1
00425707  |.  E8 32DAFFFF                    call Ekd5.0042313E                                  ; \Ekd5.0042313E
0042570C  |.  83C4 08                        add esp,8
0042570F  |.  E9 07020000                    jmp Ekd5.0042591B
00425714  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00425717  |.  C681 54020000 40               mov byte ptr ds:[ecx+254],40
0042571E  |.  E8 17EBFFFF                    call Ekd5.0042423A
00425723  |.  E9 F3010000                    jmp Ekd5.0042591B
00425728  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0042572B  |.  83FA 04                        cmp edx,4                                           ;  Switch (cases 4..7)
0042572E  |.  75 09                          jnz short Ekd5.00425739
00425730  |.  C681 54020000 62               mov byte ptr ds:[ecx+254],62                        ;  Case 4 of switch 0042572B
00425737  |.  EB 31                          jmp short Ekd5.0042576A
00425739  |>  83FA 05                        cmp edx,5
0042573C  |.  75 09                          jnz short Ekd5.00425747
0042573E  |.  C681 54020000 64               mov byte ptr ds:[ecx+254],64                        ;  Case 5 of switch 0042572B
00425745  |.  EB 23                          jmp short Ekd5.0042576A
00425747  |>  83FA 06                        cmp edx,6
0042574A  |.  75 09                          jnz short Ekd5.00425755
0042574C  |.  C681 54020000 60               mov byte ptr ds:[ecx+254],60                        ;  Case 6 of switch 0042572B
00425753  |.  EB 15                          jmp short Ekd5.0042576A
00425755  |>  83FA 07                        cmp edx,7
00425758  |.  75 09                          jnz short Ekd5.00425763
0042575A  |.  C681 54020000 61               mov byte ptr ds:[ecx+254],61                        ;  Case 7 of switch 0042572B
00425761  |.  EB 07                          jmp short Ekd5.0042576A
00425763  |>  C681 54020000 6F               mov byte ptr ds:[ecx+254],6F                        ;  Default case of switch 0042572B
0042576A  |>  6A 00                          push 0                                              ; /Arg1 = 00000000
0042576C  |.  E8 EADBFFFF                    call Ekd5.0042335B                                  ; \Ekd5.0042335B
00425771  |.  E9 A5010000                    jmp Ekd5.0042591B
00425776  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00425779  |.  83FA 08                        cmp edx,8                                           ;  Switch (cases 8..A)
0042577C  |.  75 09                          jnz short Ekd5.00425787
0042577E  |.  C681 54020000 71               mov byte ptr ds:[ecx+254],71                        ;  Case 8 of switch 00425779
00425785  |.  EB 23                          jmp short Ekd5.004257AA
00425787  |>  83FA 09                        cmp edx,9
0042578A  |.  75 09                          jnz short Ekd5.00425795
0042578C  |.  C681 54020000 70               mov byte ptr ds:[ecx+254],70                        ;  Case 9 of switch 00425779
00425793  |.  EB 15                          jmp short Ekd5.004257AA
00425795  |>  83FA 0A                        cmp edx,0A
00425798  |.  75 09                          jnz short Ekd5.004257A3
0042579A  |.  C681 54020000 72               mov byte ptr ds:[ecx+254],72                        ;  Case A of switch 00425779
004257A1  |.  EB 07                          jmp short Ekd5.004257AA
004257A3  |>  C681 54020000 74               mov byte ptr ds:[ecx+254],74                        ;  Default case of switch 00425779
004257AA  |>  6A 00                          push 0                                              ; /Arg1 = 00000000
004257AC  |.  E8 98DDFFFF                    call Ekd5.00423549                                  ; \Ekd5.00423549
004257B1  |.  E9 65010000                    jmp Ekd5.0042591B
004257B6  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
004257B9  |.  C681 54020000 FF               mov byte ptr ds:[ecx+254],0FF
004257C0  |.  E8 17E7FFFF                    call Ekd5.00423EDC
004257C5  |.  E9 51010000                    jmp Ekd5.0042591B
004257CA  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
004257CD  |.  83FA 0E                        cmp edx,0E
004257D0  |.  74 09                          je short Ekd5.004257DB
004257D2  |.  C681 54020000 80               mov byte ptr ds:[ecx+254],80
004257D9  |.  EB 07                          jmp short Ekd5.004257E2
004257DB  |>  C681 54020000 90               mov byte ptr ds:[ecx+254],90
004257E2  |>  FF75 14                        push dword ptr ss:[ebp+14]                          ; /Arg2
004257E5  |.  FF75 10                        push dword ptr ss:[ebp+10]                          ; |Arg1
004257E8  |.  E8 A0DFFFFF                    call Ekd5.0042378D                                  ; \Ekd5.0042378D
004257ED  |.  83C4 08                        add esp,8
004257F0  |.  E9 26010000                    jmp Ekd5.0042591B
004257F5  |>  90                             nop
004257F6  |.  90                             nop
004257F7  |.  90                             nop
004257F8  |.  90                             nop
004257F9  |.  90                             nop
004257FA  |.  90                             nop
004257FB  |.  90                             nop
004257FC  |.  6A 01                          push 1                                              ; /Arg1 = 00000001
004257FE  |.  E8 46DDFFFF                    call Ekd5.00423549                                  ; \Ekd5.00423549
00425803  |.  E9 13010000                    jmp Ekd5.0042591B
00425808  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0042580B  |.  83FA 10                        cmp edx,10                                          ;  Switch (cases 10..13)
0042580E  |.  75 09                          jnz short Ekd5.00425819
00425810  |.  C681 54020000 A8               mov byte ptr ds:[ecx+254],0A8                       ;  Case 10 of switch 0042580B
00425817  |.  EB 31                          jmp short Ekd5.0042584A
00425819  |>  83FA 11                        cmp edx,11
0042581C  |.  75 09                          jnz short Ekd5.00425827
0042581E  |.  C681 54020000 A2               mov byte ptr ds:[ecx+254],0A2                       ;  Case 11 of switch 0042580B
00425825  |.  EB 23                          jmp short Ekd5.0042584A
00425827  |>  83FA 12                        cmp edx,12
0042582A  |.  75 09                          jnz short Ekd5.00425835
0042582C  |.  C681 54020000 A4               mov byte ptr ds:[ecx+254],0A4                       ;  Case 12 of switch 0042580B
00425833  |.  EB 15                          jmp short Ekd5.0042584A
00425835  |>  83FA 13                        cmp edx,13
00425838  |.  75 09                          jnz short Ekd5.00425843
0042583A  |.  C681 54020000 A0               mov byte ptr ds:[ecx+254],0A0                       ;  Case 13 of switch 0042580B
00425841  |.  EB 07                          jmp short Ekd5.0042584A
00425843  |>  C681 54020000 A1               mov byte ptr ds:[ecx+254],0A1                       ;  Default case of switch 0042580B
0042584A  |>  90                             nop
0042584B  |.  90                             nop
0042584C  |.  90                             nop
0042584D  |.  90                             nop
0042584E  |.  90                             nop
0042584F  |.  90                             nop
00425850  |.  6A 01                          push 1                                              ; /Arg1 = 00000001
00425852  |.  E8 04DBFFFF                    call Ekd5.0042335B                                  ; \Ekd5.0042335B
00425857  |.  E9 BF000000                    jmp Ekd5.0042591B
0042585C  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0042585F  |.  C681 54020000 B8               mov byte ptr ds:[ecx+254],0B8
00425866  |.  E8 F5E0FFFF                    call Ekd5.00423960
0042586B  |.  E9 AB000000                    jmp Ekd5.0042591B
00425870  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00425873  |.  C681 54020000 C0               mov byte ptr ds:[ecx+254],0C0
0042587A  |.  E8 B0E2FFFF                    call Ekd5.00423B2F
0042587F  |.  E9 97000000                    jmp Ekd5.0042591B
00425884  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00425887  |.  83FA 17                        cmp edx,17                                          ;  Switch (cases 17..1F)
0042588A  |.  75 09                          jnz short Ekd5.00425895
0042588C  |.  C681 54020000 A0               mov byte ptr ds:[ecx+254],0A0                       ;  Case 17 of switch 00425887
00425893  |.  EB 31                          jmp short Ekd5.004258C6
00425895  |>  83FA 19                        cmp edx,19
00425898  |.  75 09                          jnz short Ekd5.004258A3
0042589A  |.  C681 54020000 AF               mov byte ptr ds:[ecx+254],0AF                       ;  Case 19 of switch 00425887
004258A1  |.  EB 23                          jmp short Ekd5.004258C6
004258A3  |>  83FA 1E                        cmp edx,1E
004258A6  |.  75 09                          jnz short Ekd5.004258B1
004258A8  |.  C681 54020000 A1               mov byte ptr ds:[ecx+254],0A1                       ;  Case 1E of switch 00425887
004258AF  |.  EB 15                          jmp short Ekd5.004258C6
004258B1  |>  83FA 1F                        cmp edx,1F
004258B4  |.  75 09                          jnz short Ekd5.004258BF
004258B6  |.  C681 54020000 A2               mov byte ptr ds:[ecx+254],0A2                       ;  Case 1F of switch 00425887
004258BD  |.  EB 07                          jmp short Ekd5.004258C6
004258BF  |>  C681 54020000 A4               mov byte ptr ds:[ecx+254],0A4                       ;  Default case of switch 00425887
004258C6  |>  E8 F5E3FFFF                    call Ekd5.00423CC0
004258CB  |.  EB 4E                          jmp short Ekd5.0042591B
004258CD  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
004258D0  |.  C681 54020000 90               mov byte ptr ds:[ecx+254],90
004258D7  |.  E8 90E4FFFF                    call Ekd5.00423D6C
004258DC  |.  EB 3D                          jmp short Ekd5.0042591B
004258DE  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
004258E1  |.  C681 54020000 40               mov byte ptr ds:[ecx+254],40
004258E8  |.  E8 B1F5FFFF                    call Ekd5.00424E9E
004258ED  |.  EB 2C                          jmp short Ekd5.0042591B
004258EF  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
004258F2  |.  C681 54020000 FF               mov byte ptr ds:[ecx+254],0FF
004258F9  |.  E8 12EFFFFF                    call Ekd5.00424810
004258FE  |.  EB 1B                          jmp short Ekd5.0042591B
00425900  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00425903  |.  C681 54020000 BF               mov byte ptr ds:[ecx+254],0BF
0042590A  |.  E8 04ECFFFF                    call Ekd5.00424513
0042590F  |.  EB 0A                          jmp short Ekd5.0042591B
00425911  |>  8B55 FC                        mov edx,dword ptr ss:[ebp-4]
00425914  |.  C682 54020000 00               mov byte ptr ds:[edx+254],0
0042591B  |>  8B45 FC                        mov eax,dword ptr ss:[ebp-4]
0042591E  |.  83B8 B0040000 00               cmp dword ptr ds:[eax+4B0],0
00425925  |.  74 0A                          je short Ekd5.00425931
00425927  |.  B9 88274900                    mov ecx,Ekd5.00492788
0042592C  |.  E8 6ACDFDFF                    call Ekd5.0040269B
00425931  |>  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00425934  |.  E8 D4D5FFFF                    call Ekd5.00422F0D
00425939  |.  8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0042593C  |.  8B81 AC040000                  mov eax,dword ptr ds:[ecx+4AC]
00425942  |>  8BE5                           mov esp,ebp
00425944  |.  5D                             pop ebp
00425945  \.  C2 1000                        retn 10
00425948   .  E9564200                       dd Ekd5.004256E9                                    ;  Switch table used at 004256E2
0042594C   .  14574200                       dd Ekd5.00425714
00425950   .  E9564200                       dd Ekd5.004256E9
00425954   .  E9564200                       dd Ekd5.004256E9
00425958   .  28574200                       dd Ekd5.00425728
0042595C   .  28574200                       dd Ekd5.00425728
00425960   .  28574200                       dd Ekd5.00425728
00425964   .  28574200                       dd Ekd5.00425728
00425968   .  76574200                       dd Ekd5.00425776
0042596C   .  76574200                       dd Ekd5.00425776
00425970   .  76574200                       dd Ekd5.00425776
00425974   .  76574200                       dd Ekd5.00425776
00425978   .  B6574200                       dd Ekd5.004257B6
0042597C   .  CA574200                       dd Ekd5.004257CA
00425980   .  CA574200                       dd Ekd5.004257CA
00425984   .  F5574200                       dd Ekd5.004257F5
00425988   .  08584200                       dd Ekd5.00425808
0042598C   .  08584200                       dd Ekd5.00425808
00425990   .  08584200                       dd Ekd5.00425808
00425994   .  08584200                       dd Ekd5.00425808
00425998   .  08584200                       dd Ekd5.00425808
0042599C   .  5C584200                       dd Ekd5.0042585C
004259A0   .  70584200                       dd Ekd5.00425870
004259A4   .  84584200                       dd Ekd5.00425884
004259A8   .  CD584200                       dd Ekd5.004258CD
004259AC   .  84584200                       dd Ekd5.00425884
004259B0   .  DE584200                       dd Ekd5.004258DE
004259B4   .  28574200                       dd Ekd5.00425728
004259B8   .  EF584200                       dd Ekd5.004258EF
004259BC   .  00594200                       dd Ekd5.00425900
004259C0   .  84584200                       dd Ekd5.00425884
004259C4   .  84584200                       dd Ekd5.00425884
004259C8   .  84584200                       dd Ekd5.00425884
004259CC   .  11594200                       dd Ekd5.00425911


0042313E  /$  55                             push ebp
0042313F  |.  8BEC                           mov ebp,esp
00423141  |.  83EC 10                        sub esp,10
00423144  |.  894D F8                        mov dword ptr ss:[ebp-8],ecx
00423147  |.  FF75 08                        push dword ptr ss:[ebp+8]
0042314A  |.  8A01                           mov al,byte ptr ds:[ecx]
0042314C  |.  50                             push eax
0042314D  |.  6A 02                          push 2
0042314F  |.  8A81 C9020000                  mov al,byte ptr ds:[ecx+2C9]
00423155  |.  50                             push eax
00423156  |.  8A41 01                        mov al,byte ptr ds:[ecx+1]
00423159  |.  50                             push eax
0042315A  |.  B9 50424B00                    mov ecx,Ekd5.004B4250
0042315F  |.  FF55 0C                        call dword ptr ss:[ebp+C]
00423162  |.  90                             nop
00423163  |.  90                             nop
00423164  |.  90                             nop
00423165  |.  90                             nop
00423166  |.  90                             nop
00423167  |.  90                             nop
00423168  |.  90                             nop
00423169  |.  90                             nop
0042316A  |.  8B4D F8                        mov ecx,dword ptr ss:[ebp-8]


0042378D  /$  55                             push ebp
0042378E  |.  8BEC                           mov ebp,esp
00423790  |.  83EC 10                        sub esp,10
00423793  |.  894D F8                        mov dword ptr ss:[ebp-8],ecx
00423796  |.  FF75 08                        push dword ptr ss:[ebp+8]
00423799  |.  8A01                           mov al,byte ptr ds:[ecx]
0042379B  |.  50                             push eax
0042379C  |.  6A 03                          push 3
0042379E  |.  8B55 F8                        mov edx,dword ptr ss:[ebp-8]
004237A1  |.  8A82 C9020000                  mov al,byte ptr ds:[edx+2C9]
004237A7  |.  50                             push eax
004237A8  |.  8B4D F8                        mov ecx,dword ptr ss:[ebp-8]
004237AB  |.  8A51 01                        mov dl,byte ptr ds:[ecx+1]
004237AE  |.  52                             push edx
004237AF  |.  B9 50424B00                    mov ecx,Ekd5.004B4250
004237B4  |.  FF55 0C                        call dword ptr ss:[ebp+C]
004237B7  |.  90                             nop
004237B8  |.  90                             nop
004237B9  |.  8B4D F8                        mov ecx,dword ptr ss:[ebp-8]


0043DC99  /$  55                             push ebp
0043DC9A  |.  8BEC                           mov ebp,esp
0043DC9C  |.  83EC 08                        sub esp,8
0043DC9F  |.  894D F8                        mov dword ptr ss:[ebp-8],ecx
0043DCA2  |.  8B45 F8                        mov eax,dword ptr ss:[ebp-8]
0043DCA5  |.  8A48 04                        mov cl,byte ptr ds:[eax+4]
0043DCA8  |.  51                             push ecx                                            ; /Arg2
0043DCA9  |.  8A55 08                        mov dl,byte ptr ss:[ebp+8]                          ; |
0043DCAC  |.  52                             push edx                                            ; |Arg1
0043DCAD  |.  B9 F87A4900                    mov ecx,Ekd5.00497AF8                               ; |
0043DCB2  |.  E8 A388FCFF                    call Ekd5.0040655A                                  ; \Ekd5.0040655A


0040655A  /$  55                             push ebp
0040655B  |.  8BEC                           mov ebp,esp
0040655D  |.  68 3D534500                    push Ekd5.0045533D                                  ; /Arg4 = 0045533D
00406562  |.  6A 00                          push 0                                              ; |Arg3 = 00000000
00406564  |.  FF75 0C                        push dword ptr ss:[ebp+C]                           ; |Arg2
00406567  |.  FF75 08                        push dword ptr ss:[ebp+8]                           ; |Arg1
0040656A  |.  E8 B8F00100                    call Ekd5.00425627                                  ; \Ekd5.00425627
0040656F  |.  8BE5                           mov esp,ebp
00406571  |.  5D                             pop ebp
00406572  \.  C2 0800                        retn 8


00406575  /.  55                             push ebp
00406576  |.  8BEC                           mov ebp,esp
00406578  |.  8A45 18                        mov al,byte ptr ss:[ebp+18]
0040657B  |.  8BE5                           mov esp,ebp
0040657D  |.  5D                             pop ebp
0040657E  \.  C2 1400                        retn 14


00403A70  /$  55                             push ebp
00403A71  |.  8BEC                           mov ebp,esp
00403A73  |.  51                             push ecx
00403A74  |.  8B4D 08                        mov ecx,dword ptr ss:[ebp+8]
00403A77  |.  E8 B4050D00                    call Ekd5.004D4030
00403A7C  |.  8A41 0E                        mov al,byte ptr ds:[ecx+E]
00403A7F  |.  8845 FC                        mov byte ptr ss:[ebp-4],al
00403A82  |.  8A4D 0C                        mov cl,byte ptr ss:[ebp+C]
00403A85  |.  E8 58590100                    call Ekd5.004193E2
00403A8A  |.  0FB65D FC                      movzx ebx,byte ptr ss:[ebp-4]
00403A8E  |.  3BC3                           cmp eax,ebx——————————当前MP不够释放策略跳出
00403A90  |.  72 18                          jb short Ekd5.00403AAA
00403A92  |.  68 75654000                    push Ekd5.00406575                                  ; /Arg4 = 00406575
00403A97  |.  FF75 10                        push dword ptr ss:[ebp+10]                          ; |Arg3
00403A9A  |.  FF75 0C                        push dword ptr ss:[ebp+C]                           ; |Arg2
00403A9D  |.  FF75 08                        push dword ptr ss:[ebp+8]                           ; |Arg1
00403AA0  |.  B9 F87A4900                    mov ecx,Ekd5.00497AF8                               ; |
00403AA5  |.  E8 7D1B0200                    call Ekd5.00425627                                  ; \Ekd5.00425627
00403AAA  |>  8BE5                           mov esp,ebp
00403AAC  |.  5D                             pop ebp
00403AAD  \.  C2 0C00                        retn 0C


00405990  |> \8B4D 18                        mov ecx,dword ptr ss:[ebp+18]
00405993  |.  E8 F0A90D00                    call Ekd5.004E0388
00405998  |.  85C0                           test eax,eax
0040599A  |.  75 11                          jnz short Ekd5.004059AD
0040599C  |.  8B4D 18                        mov ecx,dword ptr ss:[ebp+18]
0040599F  |.  68 BC714300                    push Ekd5.004371BC
004059A4  |.  E8 4FEA0C00                    call Ekd5.004D43F8
004059A9  |.  85C0                           test eax,eax
004059AB  |.  74 0D                          je short Ekd5.004059BA
这一段是判断被攻击方武将或装备是否具有回春特性,只适合于我的ECX,大家可以按自己的ECX自行编写

004059AD  |>  FF75 0C                        push dword ptr ss:[ebp+C]                           ; /Arg3——————受策方战场编号
004059B0  |.  FF75 0C                        push dword ptr ss:[ebp+C]                           ; |Arg2———————施策方战场编号
004059B3  |.  6A 27                          push 27                                             ; |Arg1 = 00000027———小补给策略编号
004059B5  |.  E8 B6E0FFFF                    call Ekd5.00403A70                                  ; \Ekd5.00403A70
这一段我是插在损血动画后面,表示受伤后自动对自己释放小补给策略,这一段代码可灵活运用,若写成

push dword ptr ss:[ebp+C] ————被攻击方战场编号
push dword ptr ss:[ebp+8] ————攻击方战场编号
push 0———————————————灼热策略编号
call Ekd5.00403A70
则表示攻击后对敌人释放灼热策略

备注:这些自动释放的策略也会受到地形、天气、当前剩余MP的限制,自动释放的策略只能是伤害类和补给类策略

[ 本帖最后由 aaa132536 于 2014-4-5 16:18 编辑 ]

附件: exe.rar (2014-4-5 16:12, 238.12 K) / 该附件被下载次数 135
http://xycq.org.cn/forum/attachment.php?aid=132048
作者: WHITESHIP    时间: 2014-4-5 16:32

把策略的45533d部分去掉,改到425627之前真的可行吗?
如果可行的话,我打算试试,这样很多策略的代码都能合并了。
作者: aaa132536    时间: 2014-4-5 16:40     标题: 回复 #2 WHITESHIP 的帖子

可以,把45533d输入一个参数,call 45533d就可以写成call 参数
作者: 狂笑四海    时间: 2014-4-5 20:25

这个设定挺不错的,适合封神榜这种题材。
作者: 完颜大神威    时间: 2014-4-7 19:10     标题: 回复 #1 aaa132536 的帖子



附件: Ekd5.rar (2014-4-7 19:10, 252.88 K) / 该附件被下载次数 482
http://xycq.org.cn/forum/attachment.php?aid=132087
作者: aaa132536    时间: 2014-4-9 20:15     标题: 回复 #5 完颜大神威 的帖子



附件: exe.rar (2014-4-9 20:16, 256.69 K) / 该附件被下载次数 338
http://xycq.org.cn/forum/attachment.php?aid=132114




欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/) Powered by Discuz! 5.0.0