原帖内容
godtype

2008-11-5 22:05
HP回复类策略的计算

趁这几天家中病人的情况稍有好转,有了一些空闲时间,研究了一下之前一直想修改的HP回复类策略,包括HP回复量的公式和哪些策略可以进行HP回复。高人可以无视本帖。
0043C548  /$ 55                   PUSH EBP
0043C549  |. 8BEC                 MOV EBP,ESP
0043C54B  |. 83EC 10              SUB ESP,10
0043C54E  |. 56                   PUSH ESI
0043C54F  |. 894D F4              MOV DWORD PTR SS:[EBP-C],ECX
0043C552  |. 8B45 F4              MOV EAX,DWORD PTR SS:[EBP-C]
0043C555  |. 8B08                 MOV ECX,DWORD PTR DS:[EAX]
0043C557  |. 6BC9 48              IMUL ECX,ECX,48
0043C55A  |. 81C1 0000D600        ADD ECX,0D60000
0043C560  |. 894D F8              MOV DWORD PTR SS:[EBP-8],ECX
0043C563  |. C745 FC 00000000     MOV DWORD PTR SS:[EBP-4],0
0043C56A  |. 8B55 08              MOV EDX,DWORD PTR SS:[EBP+8]
0043C56D  |. 81E2 FF000000        AND EDX,0FF
0043C573  |. 8955 F0              MOV DWORD PTR SS:[EBP-10],EDX
0043C576  |. 8B45 F0              MOV EAX,DWORD PTR SS:[EBP-10]
0043C579  |. 83E8 26              SUB EAX,26  ——减去编号26之前的策略
0043C57C  |. 8945 F0              MOV DWORD PTR SS:[EBP-10],EAX
0043C57F  |. 837D F0 1D           CMP DWORD PTR SS:[EBP-10],1D  ——比较一下是否最后一条策略(即原白虎,白虎编号43,43h-26h=1Dh)
0043C583  |. 0F87 FA000000        JA 0043C683
0043C589  |. 8B55 F0              MOV EDX,DWORD PTR SS:[EBP-10]
0043C58C  |. 33C9                 XOR ECX,ECX
0043C58E  |. 8A8A 1AC74300        MOV CL,BYTE PTR DS:[EDX+43C71A]
0043C594  |. FF248D F6C64300      JMP DWORD PTR DS:[ECX*4+43C6F6]

0043C59B  |> 8B4D 0C              MOV ECX,DWORD PTR SS:[EBP+C]
0043C59E  |. 81E1 FF000000        AND ECX,0FF
0043C5A4  |. 6BC9 24              IMUL ECX,ECX,24
0043C5A7  |. 81C1 502C4B00        ADD ECX,004B2C50
0043C5AD  |. E8 31300000          CALL 0043F5E3
0043C5B2  |. 33D2                 XOR EDX,EDX
0043C5B4  |. B9 0A000000          MOV ECX,0A
0043C5B9  |. F7F1                 DIV ECX
0043C5BB  |. 83C0 28              ADD EAX,28

以上红色部分就是小补给和援队的回复量计算,即精神力/10+40
0043C5BE  |. 8945 FC              MOV DWORD PTR SS:[EBP-4],EAX
0043C5C1  |. 837D 10 00           CMP DWORD PTR SS:[EBP+10],0
0043C5C5  |. 75 2F                JNZ SHORT 0043C5F6
0043C5C7  |. 8B4D F4              MOV ECX,DWORD PTR SS:[EBP-C]
0043C5CA  |. E8 B0300000          CALL 0043F67F
0043C5CF  |. 8BF0                 MOV ESI,EAX
0043C5D1  |. 68 C8000000          PUSH 0C8                                 ; /Arg1 = 000000C8
0043C5D6  |. E8 38350400          CALL 0047FB13                     ; \0047FB13
0043C5DB  |. 83C4 04              ADD ESP,4
0043C5DE  |. 3BF0                 CMP ESI,EAX
0043C5E0  |. 76 14                JBE SHORT 0043C5F6
0043C5E2  |. 6A 06                PUSH 6                                   ; /Arg1 = 00000006
0043C5E4  |. E8 2A350400          CALL 0047FB13                     ; \0047FB13
0043C5E9  |. 83C4 04              ADD ESP,4
0043C5EC  |. 8B55 FC              MOV EDX,DWORD PTR SS:[EBP-4]
0043C5EF  |. 8D4402 05            LEA EAX,DWORD PTR DS:[EDX+EAX+5]
0043C5F3  |. 8945 FC              MOV DWORD PTR SS:[EBP-4],EAX
0043C5F6  |> E9 88000000          JMP 0043C683

0043C5FB  |> 8B4D 0C              MOV ECX,DWORD PTR SS:[EBP+C]
0043C5FE  |. 81E1 FF000000        AND ECX,0FF
0043C604  |. 6BC9 24              IMUL ECX,ECX,24
0043C607  |. 81C1 502C4B00        ADD ECX,004B2C50
0043C60D  |. E8 D12F0000          CALL 0043F5E3
0043C612  |. D1E8                 SHR EAX,1
0043C614  |. 83C0 46              ADD EAX,46

以上红色部分就是大补给、援军、输送、白虎的回复量计算,即精神力/2+70
0043C617  |. 8945 FC              MOV DWORD PTR SS:[EBP-4],EAX
0043C61A  |. 837D 10 00           CMP DWORD PTR SS:[EBP+10],0
0043C61E  |. 75 2F                JNZ SHORT 0043C64F
0043C620  |. 8B4D F4              MOV ECX,DWORD PTR SS:[EBP-C]
0043C623  |. E8 57300000          CALL 0043F67F
0043C628  |. 8BF0                 MOV ESI,EAX
0043C62A  |. 68 C8000000          PUSH 0C8                                 ; /Arg1 = 000000C8
0043C62F  |. E8 DF340400          CALL 0047FB13                     ; \0047FB13
0043C634  |. 83C4 04              ADD ESP,4
0043C637  |. 3BF0                 CMP ESI,EAX
0043C639  |. 76 14                JBE SHORT 0043C64F
0043C63B  |. 6A 06                PUSH 6                                   ; /Arg1 = 00000006
0043C63D  |. E8 D1340400          CALL 0047FB13                     ; \0047FB13
0043C642  |. 83C4 04              ADD ESP,4
0043C645  |. 8B4D FC              MOV ECX,DWORD PTR SS:[EBP-4]
0043C648  |. 8D5401 05            LEA EDX,DWORD PTR DS:[ECX+EAX+5]
0043C64C  |. 8955 FC              MOV DWORD PTR SS:[EBP-4],EDX
0043C64F  |> EB 32                JMP SHORT 0043C683

0043C651  |> 8B4D F8              MOV ECX,DWORD PTR SS:[EBP-8]
0043C654  |. E8 D3ABFCFF          CALL 0040722C
0043C659  |. 8B4D F4              MOV ECX,DWORD PTR SS:[EBP-C]
0043C65C  |. 2B41 10              SUB EAX,DWORD PTR DS:[ECX+10]
0043C65F  |. 8945 FC              MOV DWORD PTR SS:[EBP-4],EAX
0043C662  |. EB 1F                JMP SHORT 0043C683
上面这一段是26八阵图和42玄武专用的。

0043C664  |> 8B4D 08              MOV ECX,DWORD PTR SS:[EBP+8]
0043C667  |. 81E1 FF000000        AND ECX,0FF
0043C66D  |. 6BC9 46              IMUL ECX,ECX,46
0043C670  |. 81C1 C0F44A00        ADD ECX,004AF4C0
0043C676  |. E8 5594FEFF          CALL 00425AD0
0043C67B  |. 25 FF000000          AND EAX,0FF
0043C680  |. 8945 FC              MOV DWORD PTR SS:[EBP-4],EAX
上面这一段是2C建言和2D献策专用的

0043C683  |> 8B55 08              MOV EDX,DWORD PTR SS:[EBP+8]
0043C686  |. 81E2 FF000000        AND EDX,0FF
0043C68C  |. 83FA 2C              CMP EDX,2C  ——建言的编号
0043C68F  |. 74 0D                JE SHORT 0043C69E
0043C691  |. 8B45 08              MOV EAX,DWORD PTR SS:[EBP+8]
0043C694  |. 25 FF000000          AND EAX,0FF
0043C699  |. 83F8 2D              CMP EAX,2D  ——献策的编号
0043C69C  |. 75 28                JNZ SHORT 0043C6C6
0043C69E  |> 8B4D F4              MOV ECX,DWORD PTR SS:[EBP-C]
0043C6A1  |. 8B75 FC              MOV ESI,DWORD PTR SS:[EBP-4]
0043C6A4  |. 0371 14              ADD ESI,DWORD PTR DS:[ECX+14]
0043C6A7  |. 8B4D F8              MOV ECX,DWORD PTR SS:[EBP-8]
0043C6AA  |. E8 A7ABFCFF          CALL 00407256
0043C6AF  |. 3BF0                 CMP ESI,EAX
0043C6B1  |. 76 11                JBE SHORT 0043C6C4
0043C6B3  |. 8B4D F8              MOV ECX,DWORD PTR SS:[EBP-8]
0043C6B6  |. E8 9BABFCFF          CALL 00407256
0043C6BB  |. 8B55 F4              MOV EDX,DWORD PTR SS:[EBP-C]
0043C6BE  |. 2B42 14              SUB EAX,DWORD PTR DS:[EDX+14]
0043C6C1  |. 8945 FC              MOV DWORD PTR SS:[EBP-4],EAX
0043C6C4  |> EB 26                JMP SHORT 0043C6EC
0043C6C6  |> 8B45 F4              MOV EAX,DWORD PTR SS:[EBP-C]
0043C6C9  |. 8B75 FC              MOV ESI,DWORD PTR SS:[EBP-4]
0043C6CC  |. 0370 10              ADD ESI,DWORD PTR DS:[EAX+10]
0043C6CF  |. 8B4D F8              MOV ECX,DWORD PTR SS:[EBP-8]
0043C6D2  |. E8 55ABFCFF          CALL 0040722C
0043C6D7  |. 3BF0                 CMP ESI,EAX
0043C6D9  |. 76 11                JBE SHORT 0043C6EC
0043C6DB  |. 8B4D F8              MOV ECX,DWORD PTR SS:[EBP-8]
0043C6DE  |. E8 49ABFCFF          CALL 0040722C
0043C6E3  |. 8B4D F4              MOV ECX,DWORD PTR SS:[EBP-C]
0043C6E6  |. 2B41 10              SUB EAX,DWORD PTR DS:[ECX+10]
0043C6E9  |. 8945 FC              MOV DWORD PTR SS:[EBP-4],EAX
0043C6EC  |> 8B45 FC              MOV EAX,DWORD PTR SS:[EBP-4]
0043C6EF  |. 5E                   POP ESI
0043C6F0  |. 8BE5                 MOV ESP,EBP
0043C6F2  |. 5D                   POP EBP
0043C6F3  \. C2 0C00              RETN 0C
0043C6F6   . 51C64300             DD 0043C651                       ;  Switch table used at 0043C594
0043C6FA   . 9BC54300             DD 0043C59B
0043C6FE   . FBC54300             DD 0043C5FB
0043C702   . 9BC54300             DD 0043C59B
0043C706   . FBC54300             DD 0043C5FB
0043C70A   . 64C64300             DD 0043C664
0043C70E   . 51C64300             DD 0043C651
0043C712   . FBC54300             DD 0043C5FB
0043C716   . 83C64300             DD 0043C683
0043C71A   . 00                   DB 00                                    ;  Index table to switch 0043C6F6
0043C71B   . 01                   DB 01
0043C71C   . 02                   DB 02
0043C71D   . 03                   DB 03
0043C71E   . 04                   DB 04
0043C71F   . 04                   DB 04
0043C720   . 05                   DB 05
0043C721   . 05                   DB 05
0043C722   . 08                   DB 08
0043C723   . 08                   DB 08
0043C724   . 08                   DB 08
0043C725   . 08                   DB 08
0043C726   . 08                   DB 08
0043C727   . 08                   DB 08
0043C728   . 08                   DB 08
0043C729   . 08                   DB 08
0043C72A   . 08                   DB 08
0043C72B   . 08                   DB 08
0043C72C   . 08                   DB 08
0043C72D   . 08                   DB 08
0043C72E   . 08                   DB 08
0043C72F   . 08                   DB 08
0043C730   . 08                   DB 08
0043C731   . 08                   DB 08
0043C732   . 08                   DB 08
0043C733   . 08                   DB 08
0043C734   . 08                   DB 08
0043C735   . 08                   DB 08
0043C736   . 06                   DB 06
0043C737   . 07                   DB 07
上面的43C71A(UE是3BB1)开始就是从八阵图到白虎的HP回复量的设值,0和6是八阵图和玄武专用,1和3是小补给类,2、4和7是大补给类,5是MP回复专用,8是不能回复。

用户名时间功绩理由
司徒苍月 2009-1-18 17:34 +52




当前时区 GMT+8, 现在时间是 2025-2-23 08:43
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.009213 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP