求助特殊形象指定后实时改变形象代码
请问毅大,在《关于在战场中使用75特殊形象指定后实时改变形象的代码》帖中提到
先将00405C08 |. B8 01000000 MOV EAX,1 改成00405C08 |. E8 44B00000 CALL 00410C51
我使用的引擎是star5.6的引擎,搜索二进制B8 01000000 最接近的地址00407A90和00403005修改后,似乎不正确。
写入新代码:
00410C51 /$ 55 PUSH EBP
00410C52 |. 8BEC MOV EBP,ESP
00410C54 |. 52 PUSH EDX
00410C55 |. E8 7CD80200 CALL 0043E4D6
00410C5A |. 83C4 04 ADD ESP,4
00410C5D |. 3C FF CMP AL,0FF
00410C5F |. 74 0C JE SHORT 00410C6D
00410C61 |. 8AC8 MOV CL,AL
00410C63 |. E8 7E50FFFF CALL 00405CE6
00410C68 |. E8 BFF10200 CALL 0043FE2C
00410C6D |> B8 01000000 MOV EAX,1
00410C72 |. 8BE5 MOV ESP,EBP
00410C74 |. 5D POP EBP
00410C75 \. C3 RETN
star5.6中的地址:
0043E164 /. 55 PUSH EBP
0043E165 |. 8BEC MOV EBP,ESP
0043E167 |. 6A 02 PUSH 2
0043E169 |. 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
0043E16C |. E8 86A2FDFF CALL Ekd5_56.004183F7
0043E171 |. 0FB7C0 MOVZX EAX,AX
0043E174 |. 50 PUSH EAX
0043E175 |. 6A 50 PUSH 50
0043E177 |. 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
0043E17A |. E8 78A2FDFF CALL Ekd5_56.004183F7
0043E17F |. 0FB7C0 MOVZX EAX,AX
0043E182 |. 5A POP EDX
0043E183 90 NOP
0043E184 |. 90 NOP
0043E185 |. 8882 00105000 MOV BYTE PTR DS:[EDX+501000],AL
0043E18B |. 90 NOP
0043E18C |. 33C0 XOR EAX,EAX
0043E18E |. B0 01 MOV AL,1
0043E190 |. 8BE5 MOV ESP,EBP
0043E192 |. 5D POP EBP
0043E193 \. C3 RETN
写入代码少于star5.6的代码,多出来的是用00代替,还是90代替?
另外想求教,75特殊形象指令设置为0是开始使用特殊形象,在之前的150个形象都属于普通形象。
是否能通过修改,使用75指令,指定使用150前的普通形象?
|