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是不能回复。
|