原曹操传引擎修改击退敌军获得物品
本人正在为自己的《群英乱三国》(可能换个题材,做这样的MOD是为了让自己更多的学习修改原曹操传引擎)修改引擎中,本人是边学习边修改,技术有限
以下代码只是我最初进行修改时写的,在我正在改的引擎中已经进行了部分修改
击退敌军获得物品修改
这样就不用在剧本中去测试某人撤退获得普通物品(如获得个豆子啊)了
0043DBE0 |> \8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
0043DBE3 |. 81E1 FF000000 AND ECX,0FF
0043DBE9 |. 6BC9 24 IMUL ECX,ECX,24
0043DBEC |. 81C1 502C4B00 ADD ECX,Ekd64.004B2C50
0043DBF2 |. E8 99500300 CALL Ekd64.00472C90
0043DBF7 |. 85C0 TEST EAX,EAX
0043DBF9 |. 75 05 JNZ SHORT Ekd64.0043DC00
0043DBFB |. E8 8185FCFF CALL Ekd64.00406181
把上面这段代码写到下面代码前面就可以了(由于我正在改的引擎 位置已经有所改变就不提供修改具体方法了)
0043DC09 |> 6A 06 PUSH 6
新写两个函数:
参数:概率
输出:0-9的数字
004CE287 55 PUSH EBP
004CE288 8BEC MOV EBP,ESP
004CE28A 51 PUSH ECX
004CE28B 894D FC MOV DWORD PTR SS:[EBP-4],ECX
004CE28E 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE291 50 PUSH EAX这个地方完全可以改成自己想要的概率
004CE292 E8 9B18FBFF CALL Ekd62.0047FB32
004CE297 83C4 04 ADD ESP,4
004CE29A 85C0 TEST EAX,EAX
004CE29C 74 06 JE SHORT Ekd62.004CE2A4
004CE29E 33C0 XOR EAX,EAX
004CE2A0 B0 01 MOV AL,1
004CE2A2 EB 40 JMP SHORT Ekd62.004CE2E4
004CE2A4 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE2A7 50 PUSH EAX概率
004CE2A8 E8 8518FBFF CALL Ekd62.0047FB32
004CE2AD 83C4 04 ADD ESP,4
004CE2B0 85C0 TEST EAX,EAX
004CE2B2 74 06 JE SHORT Ekd62.004CE2BA
004CE2B4 33C0 XOR EAX,EAX
004CE2B6 B0 02 MOV AL,2
004CE2B8 EB 2A JMP SHORT Ekd62.004CE2E4
004CE2BA 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE2BD 50 PUSH EAX概率
004CE2BE E8 6F18FBFF CALL Ekd62.0047FB32
004CE2C3 83C4 04 ADD ESP,4
004CE2C6 85C0 TEST EAX,EAX
004CE2C8 74 06 JE SHORT Ekd62.004CE2D0
004CE2CA 33C0 XOR EAX,EAX
004CE2CC B0 03 MOV AL,3
004CE2CE EB 14 JMP SHORT Ekd62.004CE2E4
004CE2D0 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE2D3 50 PUSH EAX概率
004CE2D4 E8 5918FBFF CALL Ekd62.0047FB32
004CE2D9 83C4 04 ADD ESP,4
004CE2DC 85C0 TEST EAX,EAX
004CE2DE 74 06 JE SHORT Ekd62.004CE2E6
004CE2E0 33C0 XOR EAX,EAX
004CE2E2 B0 04 MOV AL,4
004CE2E4 EB 70 JMP SHORT Ekd62.004CE356
004CE2E6 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE2E9 50 PUSH EAX概率
004CE2EA E8 4318FBFF CALL Ekd62.0047FB32
004CE2EF 83C4 04 ADD ESP,4
004CE2F2 85C0 TEST EAX,EAX
004CE2F4 74 06 JE SHORT Ekd62.004CE2FC
004CE2F6 33C0 XOR EAX,EAX
004CE2F8 B0 05 MOV AL,5
004CE2FA EB 5A JMP SHORT Ekd62.004CE356
004CE2FC 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE2FF 50 PUSH EAX概率
004CE300 E8 2D18FBFF CALL Ekd62.0047FB32
004CE305 83C4 04 ADD ESP,4
004CE308 85C0 TEST EAX,EAX
004CE30A 74 06 JE SHORT Ekd62.004CE312
004CE30C 33C0 XOR EAX,EAX
004CE30E B0 06 MOV AL,6
004CE310 EB 44 JMP SHORT Ekd62.004CE356
004CE312 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE315 50 PUSH EAX概率
004CE316 E8 1718FBFF CALL Ekd62.0047FB32
004CE31B 83C4 04 ADD ESP,4
004CE31E 85C0 TEST EAX,EAX
004CE320 74 06 JE SHORT Ekd62.004CE328
004CE322 33C0 XOR EAX,EAX
004CE324 B0 07 MOV AL,7
004CE326 EB 2E JMP SHORT Ekd62.004CE356
004CE328 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE32B 50 PUSH EAX概率
004CE32C E8 0118FBFF CALL Ekd62.0047FB32
004CE331 83C4 04 ADD ESP,4
004CE334 85C0 TEST EAX,EAX
004CE336 74 06 JE SHORT Ekd62.004CE33E
004CE338 33C0 XOR EAX,EAX
004CE33A B0 08 MOV AL,8
004CE33C EB 18 JMP SHORT Ekd62.004CE356
004CE33E 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004CE341 50 PUSH EAX概率
004CE342 E8 EB17FBFF CALL Ekd62.0047FB32
004CE347 83C4 04 ADD ESP,4
004CE34A 85C0 TEST EAX,EAX
004CE34C 74 06 JE SHORT Ekd62.004CE354
004CE34E 33C0 XOR EAX,EAX
004CE350 B0 09 MOV AL,9
004CE352 EB 02 JMP SHORT Ekd62.004CE356
004CE354 33C0 XOR EAX,EAX 以上都未发生 就输出0
004CE356 8BE5 MOV ESP,EBP
004CE358 5D POP EBP
004CE359 C3 RETN
获得物品 原曹操传物品
00406181 /$ 55 PUSH EBP
00406182 |. 8BEC MOV EBP,ESP
00406184 |. 33C0 XOR EAX,EAX
00406186 |. 33C9 XOR ECX,ECX
00406188 |. B9 1E000000 MOV ECX,1E
0040618D |. E8 F5800C00 CALL Ekd63.004CE287
00406192 |. 33D2 XOR EDX,EDX
00406194 |. 8A90 D0614000 MOV DL,BYTE PTR DS:[EAX+4061D0]
0040619A |. 36:8915 DB614>MOV DWORD PTR SS:[4061DB],EDX
004061A1 |. 52 PUSH EDX ; /Arg1
004061A2 |. B9 70074B00 MOV ECX,Ekd63.004B0770 ; |
004061A7 |. E8 99780000 CALL Ekd63.0040DA45 ; \Ekd63.0040DA45
004061AC |. 36:8B15 DB614>MOV EDX,DWORD PTR SS:[4061DB]
004061B3 |. 52 PUSH EDX ; /Arg1 => 90900000
004061B4 |. E8 FF5C0000 CALL Ekd63.0040BEB8 ; \Ekd63.0040BEB8
004061B9 |. 83C4 04 ADD ESP,4
004061BC |. 50 PUSH EAX ; /Arg3
004061BD |. 68 B8B34800 PUSH Ekd63.0048B3B8 ; |Arg2 = 0048B3B8
004061C2 |. 6A 02 PUSH 2 ; |Arg1 = 00000002
004061C4 |. E8 D0940200 CALL Ekd63.0042F699 ; \Ekd63.0042F699
004061C9 |. 83C4 0C ADD ESP,0C
004061CC |. 8BE5 MOV ESP,EBP
004061CE |. 5D POP EBP
004061CF \. C3 RETN
004061D0 57 DB 57 0豆 ; CHAR 'W'
004061D1 58 DB 58 1米 ; CHAR 'X'
004061D2 5A DB 5A 2神秘水 ; CHAR 'Z'
004061D3 5B DB 5B 3神秘酒 ; CHAR '['
004061D4 62 DB 62 4武力果 ; CHAR 'b'
004061D5 63 DB 63 5智力果 ; CHAR 'c'
004061D6 64 DB 64 6统率力果 ; CHAR 'd'
004061D7 65 DB 65 7敏捷果 ; CHAR 'e'
004061D8 66 DB 66 8好运果 ; CHAR 'f'
004061D9 67 DB 67 9经验果 ; CHAR 'g'
|