标题: 真心求个原版引擎修改吃果后重新计算能力修改方法
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2012-11-11 13:11 资料 个人空间 短消息 看全部作者
原版的话,从0041D25D开始改造:
0041D25D     8B45 E4        MOV EAX,DWORD PTR SS:[EBP-1C]
0041D260     83F8 01        CMP EAX,1
0041D263     75 03          JNZ SHORT 0041D268
0041D265     40             INC EAX
0041D266     EB 06          JMP SHORT 0041D26E
0041D268     83F8 02        CMP EAX,2
0041D26B     75 01          JNZ SHORT 0041D26E
0041D26D     48             DEC EAX
0041D26E     50             PUSH EAX
0041D26F     33C0           XOR EAX,EAX
0041D271     8A45 EC        MOV AL,BYTE PTR SS:[EBP-14]
0041D274     50             PUSH EAX
0041D275     FF75 F0        PUSH DWORD PTR SS:[EBP-10]
0041D278     FF75 F4        PUSH DWORD PTR SS:[EBP-C]
0041D27B     8B55 E8        MOV EDX,DWORD PTR SS:[EBP-18]
0041D27E     8B4A 10        MOV ECX,DWORD PTR DS:[EDX+10]
0041D281     E8 7B2DFEFF    CALL 00400001  <==这个要自己找空白地方改写
0041D286     90             NOP

另外,这些都要NOP掉
0041D2CD  |.  8A4D F4       MOV CL,BYTE PTR SS:[EBP-C]
0041D2D0  |.  51            PUSH ECX                         ; /Arg1
0041D2D1  |.  8B55 E8       MOV EDX,DWORD PTR SS:[EBP-18]    ; |
0041D2D4  |.  8B4A 10       MOV ECX,DWORD PTR DS:[EDX+10]    ; |
0041D2D7  |.  E8 740B0000   CALL 0041DE50             ; \0041DE50   

0041D2FF  |.  8A45 F4       MOV AL,BYTE PTR SS:[EBP-C]
0041D302  |.  50            PUSH EAX                         ; /Arg1
0041D303  |.  8B4D E8       MOV ECX,DWORD PTR SS:[EBP-18]    ; |
0041D306  |.  8B49 10       MOV ECX,DWORD PTR DS:[ECX+10]    ; |
0041D309  |.  E8 C20B0000   CALL 0041DED0             ; \0041DED0 

0041D331  |.  8A55 F4       MOV DL,BYTE PTR SS:[EBP-C]
0041D334  |.  52            PUSH EDX                         ; /Arg1
0041D335  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]    ; |
0041D338  |.  8B48 10       MOV ECX,DWORD PTR DS:[EAX+10]    ; |
0041D33B  |.  E8 500B0000   CALL 0041DE90             ; \0041DE90   

0041D360  |.  8A4D F4       MOV CL,BYTE PTR SS:[EBP-C]
0041D363  |.  51            PUSH ECX                         ; /Arg1
0041D364  |.  8B55 E8       MOV EDX,DWORD PTR SS:[EBP-18]    ; |
0041D367  |.  8B4A 10       MOV ECX,DWORD PTR DS:[EDX+10]    ; |
0041D36A  |.  E8 E10B0000   CALL 0041DF50             ; \0041DF50  

0041D38F  |.  8A45 F4       MOV AL,BYTE PTR SS:[EBP-C]
0041D392  |.  50            PUSH EAX                         ; /Arg1
0041D393  |.  8B4D E8       MOV ECX,DWORD PTR SS:[EBP-18]    ; |
0041D396  |.  8B49 10       MOV ECX,DWORD PTR DS:[ECX+10]    ; |
0041D399  |.  E8 720B0000   CALL 0041DF10             ; \0041DF10   设置ecx武将运气


CALL 400001的内容:
PUSH EBP
MOV EBP,ESP
SUB ESP,14
MOV [EBP-8],ECX
MOV CL,[ECX+2B]
AND ECX,0FF
IMUL ECX,ECX,1B
ADD ECX,4ABFA0
PUSH [EBP+14]
CALL 004095A0
AND EAX,0FF
MOV [EBP-4],EAX
PUSH [EBP+14]
MOV ECX,[EBP-8]
CALL 004072FC
AND EAX,0FF
ADD EAX,[EBP-4]
SHR EAX,1
MOV [EBP-C],EAX
MOV ECX,[EBP-8]
CALL 4065D0
AND EAX,0FF
MOV EDX, [EBP-C]
IMUL EAX,EDX
MOV [EBP-C],EAX
MOV ECX,[EBP-8]
MOV EDX,[EBP+14]
XOR EAX,EAX
MOV AL,[ECX+EDX+21]
ADD EAX,[EBP-C]
PUSH EAX
PUSH [EBP+10]
CALL 0047FA9E
ADD ESP,8
MOV [EBP-10],EAX
PUSH 32
PUSH [EBP+C]
PUSH [EBP+8]
CALL 0047FAB5
ADD ESP,0C
MOV ECX,[EBP-8]
MOV EDX,[EBP+14]
MOV [ECX+EDX+21],AL
PUSH EDX
CALL 004072FC
AND EAX,0FF
ADD EAX,[EBP-4]
SHR EAX,1
MOV [EBP-14],EAX
MOV ECX,[EBP-8]
CALL 4065D0
AND EAX,0FF
MOV EDX, [EBP-14]
IMUL EAX,EDX
MOV [EBP-14],EAX
MOV ECX,[EBP-8]
MOV EDX,[EBP+14]
XOR EAX,EAX
MOV AL,[ECX+EDX+21]
ADD EAX,[EBP-14]
PUSH 0FF
PUSH [EBP-10]
PUSH EAX
CALL 0047FAB5 
ADD ESP,0C
MOV ECX,[EBP-8]
MOV EDX,[EBP+14]
MOV [ECX+EDX+15],AL
MOV ESP,EBP
POP EBP
RETN 10

测试一下吧,以上都只是理论上的东西,未经测试。


顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2012-11-27 10:54 资料 个人空间 短消息 看全部作者
重写了相关代码,下来测试一下,如有问题,提供剧本与存档。

说明:吃果后重算,同时剧本中指令增加的能力可以保留(理论上是这样,没有测试过),如果吃果前武统智敏运已经达到100,对应的攻防等可以在重算后的基础上继续额外加点(如果不需要这部分,可以将蓝色代码NOP掉)。

0041D080  /$ 55             PUSH EBP
0041D081  |. 8BEC           MOV EBP,ESP
0041D083  |. 83EC 34        SUB ESP,34
0041D086  |. 894D E8        MOV DWORD PTR SS:[EBP-18],ECX
0041D089  |. 33C0           XOR EAX,EAX
0041D08B  |. 8945 F4        MOV DWORD PTR SS:[EBP-C],EAX
0041D08E  |. 8945 EC        MOV DWORD PTR SS:[EBP-14],EAX
0041D091  |. 8B49 14        MOV ECX,DWORD PTR DS:[ECX+14]
0041D094  |. E8 D70C0000    CALL Ekd54.0041DD70
0041D099  |. 25 FF000000    AND EAX,0FF
0041D09E  |. 99             CDQ
0041D09F  |. 2BC2           SUB EAX,EDX
0041D0A1  |. D1F8           SAR EAX,1
0041D0A3  |. 8845 F0        MOV BYTE PTR SS:[EBP-10],AL
0041D0A6  |. C645 FC FF     MOV BYTE PTR SS:[EBP-4],0FF
0041D0AA  |. 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]
0041D0AD  |. FF31           PUSH DWORD PTR DS:[ECX]                  ; /Arg4
0041D0AF  |. 6A 04          PUSH 4                                   ; |Arg3 = 00000004
0041D0B1  |. FF71 18        PUSH DWORD PTR DS:[ECX+18]               ; |Arg2
0041D0B4  |. FF71 02        PUSH DWORD PTR DS:[ECX+2]                ; |Arg1
0041D0B7  |. B9 50424B00    MOV ECX,Ekd54.004B4250                   ; |
0041D0BC  |. E8 7C820300    CALL Ekd54.0045533D                      ; \Ekd54.0045533D
0041D0C1  |. 3C FF          CMP AL,0FF
0041D0C3  |. 74 39          JE SHORT Ekd54.0041D0FE
0041D0C5  |. 8B55 E8        MOV EDX,DWORD PTR SS:[EBP-18]
0041D0C8  |. 8842 03        MOV BYTE PTR DS:[EDX+3],AL
0041D0CB  |. 33C9           XOR ECX,ECX
0041D0CD  |. 8AC8           MOV CL,AL
0041D0CF  |. 6BC9 24        IMUL ECX,ECX,24
0041D0D2  |. 81C1 502C4B00  ADD ECX,Ekd54.004B2C50
0041D0D8  |. 894A 08        MOV DWORD PTR DS:[EDX+8],ECX
0041D0DB  |. 8B01           MOV EAX,DWORD PTR DS:[ECX]
0041D0DD  |. 6BC0 48        IMUL EAX,EAX,48
0041D0E0  |. 05 681B4A00    ADD EAX,Ekd54.004A1B68
0041D0E5  |. 8942 10        MOV DWORD PTR DS:[EDX+10],EAX
0041D0E8  |. 8B45 E8        MOV EAX,DWORD PTR SS:[EBP-18]
0041D0EB  |. 6A 00          PUSH 0                                   ; /Arg3 = 00000000
0041D0ED  |. FF70 03        PUSH DWORD PTR DS:[EAX+3]                ; |Arg2
0041D0F0  |. FF30           PUSH DWORD PTR DS:[EAX]                  ; |Arg1
0041D0F2  |. E8 F2F3FFFF    CALL Ekd54.0041C4E9                      ; \Ekd54.0041C4E9
0041D0F7  |. 83C4 0C        ADD ESP,0C
0041D0FA  |. 85C0           TEST EAX,EAX
0041D0FC  |. 75 05          JNZ SHORT Ekd54.0041D103
0041D0FE  |> E9 61010000    JMP Ekd54.0041D264
0041D103  |> 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]
0041D106  |. 33C0           XOR EAX,EAX
0041D108  |. 8A41 01        MOV AL,BYTE PTR DS:[ECX+1]
0041D10B  |. 83E8 46        SUB EAX,46                               ;  Switch (cases 46..4A)
0041D10E  |. 83F8 04        CMP EAX,4
0041D111  |. 77 40          JA SHORT Ekd54.0041D153
0041D113  |. 83F8 01        CMP EAX,1
0041D116  |. 75 03          JNZ SHORT Ekd54.0041D11B
0041D118  |. 40             INC EAX                                  ;  Case 47 ('G') of switch 0041D10B
0041D119  |. EB 06          JMP SHORT Ekd54.0041D121
0041D11B  |> 83F8 02        CMP EAX,2
0041D11E  |. 75 01          JNZ SHORT Ekd54.0041D121
0041D120  |. 48             DEC EAX                                  ;  Case 48 ('H') of switch 0041D10B
0041D121  |> 8945 E4        MOV DWORD PTR SS:[EBP-1C],EAX            ;  Cases 46 ('F'),49 ('I'),4A ('J') of switch 0041D10B
0041D124  |. 8A88 68D24100  MOV CL,BYTE PTR DS:[EAX+41D268]
0041D12A  |. 884D FC        MOV BYTE PTR SS:[EBP-4],CL
0041D12D  |. 8B55 E8        MOV EDX,DWORD PTR SS:[EBP-18]
0041D130  |. 8B4A 10        MOV ECX,DWORD PTR DS:[EDX+10]
0041D133  |. 8B55 E4        MOV EDX,DWORD PTR SS:[EBP-1C]
0041D136  |. 66:8B4451 11   MOV AX,WORD PTR DS:[ECX+EDX*2+11]
0041D13B  |. 66:8945 EC     MOV WORD PTR SS:[EBP-14],AX
0041D13F  |. 8A4411 21      MOV AL,BYTE PTR DS:[ECX+EDX+21]
0041D143  |. 8845 F4        MOV BYTE PTR SS:[EBP-C],AL
0041D146  |. 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]
0041D149  |. 8B49 08        MOV ECX,DWORD PTR DS:[ECX+8]
0041D14C  |. 8A4411 18      MOV AL,BYTE PTR DS:[ECX+EDX+18]
0041D150  |. 8845 F8        MOV BYTE PTR SS:[EBP-8],AL
0041D153  |> 8B55 E8        MOV EDX,DWORD PTR SS:[EBP-18]            ;  Default case of switch 0041D10B
0041D156  |. 8B42 10        MOV EAX,DWORD PTR DS:[EDX+10]
0041D159  |. 8945 D8        MOV DWORD PTR SS:[EBP-28],EAX
0041D15C  |. 33C9           XOR ECX,ECX
0041D15E  |. 8A48 2B        MOV CL,BYTE PTR DS:[EAX+2B]
0041D161  |. 6BC9 1B        IMUL ECX,ECX,1B
0041D164  |. 81C1 A0BF4A00  ADD ECX,Ekd54.004ABFA0
0041D16A  |. FF75 E4        PUSH DWORD PTR SS:[EBP-1C]               ; /Arg1
0041D16D  |. E8 2EC4FEFF    CALL Ekd54.004095A0                      ; \Ekd54.004095A0
0041D172  |. 25 FF000000    AND EAX,0FF
0041D177  |. 8945 DC        MOV DWORD PTR SS:[EBP-24],EAX
0041D17A  |. FF75 E4        PUSH DWORD PTR SS:[EBP-1C]               ; /Arg1
0041D17D  |. 8B4D D8        MOV ECX,DWORD PTR SS:[EBP-28]            ; |
0041D180  |. E8 77A1FEFF    CALL Ekd54.004072FC                      ; \Ekd54.004072FC
0041D185  |. 25 FF000000    AND EAX,0FF
0041D18A  |. 0345 DC        ADD EAX,DWORD PTR SS:[EBP-24]
0041D18D  |. D1E8           SHR EAX,1
0041D18F  |. 8945 D4        MOV DWORD PTR SS:[EBP-2C],EAX
0041D192  |. 8B4D D8        MOV ECX,DWORD PTR SS:[EBP-28]
0041D195  |. E8 3694FEFF    CALL Ekd54.004065D0
0041D19A  |. 25 FF000000    AND EAX,0FF
0041D19F  |. 8B55 D4        MOV EDX,DWORD PTR SS:[EBP-2C]
0041D1A2  |. 0FAFC2         IMUL EAX,EDX
0041D1A5  |. 8945 D4        MOV DWORD PTR SS:[EBP-2C],EAX
0041D1A8  |. 33C0           XOR EAX,EAX
0041D1AA  |. 8A45 F4        MOV AL,BYTE PTR SS:[EBP-C]
0041D1AD  |. 0345 D4        ADD EAX,DWORD PTR SS:[EBP-2C]
0041D1B0  |. 50             PUSH EAX                                 ; /Arg2
0041D1B1  |. FF75 EC        PUSH DWORD PTR SS:[EBP-14]               ; |Arg1
0041D1B4  |. E8 E5280600    CALL Ekd54.0047FA9E                      ; \Ekd54.0047FA9E
0041D1B9  |. 83C4 08        ADD ESP,8
0041D1BC  |. 8945 D0        MOV DWORD PTR SS:[EBP-30],EAX
0041D1BF  |. 33C0           XOR EAX,EAX
0041D1C1  |. 8A45 F4        MOV AL,BYTE PTR SS:[EBP-C]
0041D1C4  |. 83F8 32        CMP EAX,32
0041D1C7  |. 72 0C          JB SHORT Ekd54.0041D1D5
0041D1C9  |. 33D2           XOR EDX,EDX
0041D1CB  |. 8A55 F0        MOV DL,BYTE PTR SS:[EBP-10]
0041D1CE  |. 0155 D0        ADD DWORD PTR SS:[EBP-30],EDX
0041D1D1  |. B0 32          MOV AL,32
0041D1D3  |. EB 10          JMP SHORT Ekd54.0041D1E5
0041D1D5  |> 6A 32          PUSH 32                                  ; /Arg3 = 00000032
0041D1D7  |. FF75 F0        PUSH DWORD PTR SS:[EBP-10]               ; |Arg2
0041D1DA  |. FF75 F4        PUSH DWORD PTR SS:[EBP-C]                ; |Arg1
0041D1DD  |. E8 D3280600    CALL Ekd54.0047FAB5                      ; \Ekd54.0047FAB5
0041D1E2  |. 83C4 0C        ADD ESP,0C
0041D1E5  |> 8B4D D8        MOV ECX,DWORD PTR SS:[EBP-28]
0041D1E8  |. 8B55 E4        MOV EDX,DWORD PTR SS:[EBP-1C]
0041D1EB  |. 884411 21      MOV BYTE PTR DS:[ECX+EDX+21],AL
0041D1EF  |. 52             PUSH EDX                                 ; /Arg1
0041D1F0  |. E8 07A1FEFF    CALL Ekd54.004072FC                      ; \Ekd54.004072FC
0041D1F5  |. 25 FF000000    AND EAX,0FF
0041D1FA  |. 0345 DC        ADD EAX,DWORD PTR SS:[EBP-24]
0041D1FD  |. D1E8           SHR EAX,1
0041D1FF  |. 8945 CC        MOV DWORD PTR SS:[EBP-34],EAX
0041D202  |. 8B4D D8        MOV ECX,DWORD PTR SS:[EBP-28]
0041D205  |. E8 C693FEFF    CALL Ekd54.004065D0
0041D20A  |. 25 FF000000    AND EAX,0FF
0041D20F  |. 8B55 CC        MOV EDX,DWORD PTR SS:[EBP-34]
0041D212  |. 0FAFC2         IMUL EAX,EDX
0041D215  |. 8945 CC        MOV DWORD PTR SS:[EBP-34],EAX
0041D218  |. 8B4D D8        MOV ECX,DWORD PTR SS:[EBP-28]
0041D21B  |. 8B55 E4        MOV EDX,DWORD PTR SS:[EBP-1C]
0041D21E  |. 33C0           XOR EAX,EAX
0041D220  |. 8A4411 21      MOV AL,BYTE PTR DS:[ECX+EDX+21]
0041D224  |. 0345 CC        ADD EAX,DWORD PTR SS:[EBP-34]
0041D227  |. 68 0F270000    PUSH 270F                                ; /Arg3 = 0000270F
0041D22C  |. FF75 D0        PUSH DWORD PTR SS:[EBP-30]               ; |Arg2
0041D22F  |. 50             PUSH EAX                                 ; |Arg1
0041D230  |. E8 54280600    CALL Ekd54.0047FA89                      ; \Ekd54.0047FA89
0041D235  |. 83C4 0C        ADD ESP,0C
0041D238  |. 8B4D D8        MOV ECX,DWORD PTR SS:[EBP-28]
0041D23B  |. 8B55 E4        MOV EDX,DWORD PTR SS:[EBP-1C]
0041D23E  |. 66:894451 11   MOV WORD PTR DS:[ECX+EDX*2+11],AX
0041D243  |. FF75 FC        PUSH DWORD PTR SS:[EBP-4]                ; /Arg1
0041D246  |. 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]            ; |
0041D249  |. E8 14F5FFFF    CALL Ekd54.0041C762                      ; \Ekd54.0041C762
0041D24E  |. 8B45 E4        MOV EAX,DWORD PTR SS:[EBP-1C]
0041D251  |. 83F8 04        CMP EAX,4
0041D254  |. 77 0E          JA SHORT Ekd54.0041D264
0041D256  |. 6A 01          PUSH 1                                   ; /Arg2 = 00000001
0041D258  |. 50             PUSH EAX                                 ; |Arg1
0041D259  |. 8B45 E8        MOV EAX,DWORD PTR SS:[EBP-18]            ; |
0041D25C  |. 8B48 08        MOV ECX,DWORD PTR DS:[EAX+8]             ; |
0041D25F  |. E8 2A270200    CALL Ekd54.0043F98E                      ; \Ekd54.0043F98E
0041D264  |> 8BE5           MOV ESP,EBP
0041D266  |. 5D             POP EBP
0041D267  \. C3             RETN
0041D268     22             DB 22                                    ;  CHAR '"'
0041D269     23             DB 23                                    ;  CHAR '#'
0041D26A     22             DB 22                                    ;  CHAR '"'
0041D26B     24             DB 24                                    ;  CHAR '$'
0041D26C     25             DB 25


[ 本帖最后由 godtype 于 2012-11-30 11:32 编辑 ]


附件: Ekd54.rar (2012-11-30 11:32, 208.19 K)
该附件被下载次数 214


顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2012-11-30 11:13 资料 个人空间 短消息 看全部作者
不要用中文名附件
顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2012-11-30 11:33 资料 个人空间 短消息 看全部作者
修好。进行二次调整代码的时候漏了两行,在前面的楼层重下即可。
再详细测试反馈。
顶部

正在浏览此帖的会员 - 共 3 人在线




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

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

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