| 
 4.0的代码用了两个整形变量,下面的是改良后的,用一个整形变量就可以了: 
0041405B  /. 55             PUSH EBP 
0041405C  |. 8BEC           MOV EBP,ESP 
0041405E  |. 83EC 24        SUB ESP,24 
00414061  |. 6A 04          PUSH 4 
00414063  |. 8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8] 
00414066  |. E8 8C430000    CALL 004183F7 
0041406B  |. 25 FFFF0000    AND EAX,0FFFF 
00414070  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX 
00414073  |. 3D 00800000    CMP EAX,8000 
00414078  |. 74 4B          JE SHORT 004140C5 
0041407A  |. 6A 04          PUSH 4 
0041407C  |. 8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8] 
0041407F  |. E8 73430000    CALL 004183F7 
00414084  |. 25 FFFF0000    AND EAX,0FFFF 
00414089  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX 
0041408C  |. 3D 00800000    CMP EAX,8000 
00414091  |. 74 32          JE SHORT 004140C5 
00414093  |. 6A 4B          PUSH 4B 
00414095  |. 8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8] 
00414098  |. E8 5A430000    CALL 004183F7 
0041409D  |. 25 FFFF0000    AND EAX,0FFFF 
004140A2  |. 8945 F4        MOV DWORD PTR SS:[EBP-C],EAX 
004140A5  |. 3D 00800000    CMP EAX,8000 
004140AA  |. 74 19          JE SHORT 004140C5 
004140AC  |. 6A 26          PUSH 26 
004140AE  |. 8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8] 
004140B1  |. E8 41430000    CALL 004183F7 
004140B6  |. 25 FFFF0000    AND EAX,0FFFF 
004140BB  |. 8945 E4        MOV DWORD PTR SS:[EBP-1C],EAX 
004140BE  |. 3D 00800000    CMP EAX,8000 
004140C3  |. 75 0A          JNZ SHORT 004140CF 
004140C5  |> B8 05000000    MOV EAX,5 
004140CA  |. E9 84010000    JMP 00414253 
004140CF  |> 807D FC 28     CMP BYTE PTR SS:[EBP-4],28 
004140D3  |. 72 2C          JB SHORT 00414101 
004140D5  |. 807D F8 28     CMP BYTE PTR SS:[EBP-8],28 
004140D9  |. 72 26          JB SHORT 00414101 
004140DB  |. B9 9D0F0000    MOV ECX,0F9D   <——整形变量编号,用来指定武将 
004140E0  |. E8 41D00B00    CALL 004D1126 
004140E5  |. E8 C2CEFFFF    CALL 00410FAC 
004140EA  |. 85C0           TEST EAX,EAX 
004140EC  |. 75 0A          JNZ SHORT 004140F8 
004140EE  |. B8 05000000    MOV EAX,5 
004140F3  |. E9 5B010000    JMP 00414253 
004140F8  |> 8875 FC        MOV BYTE PTR SS:[EBP-4],DH 
004140FB  |. 8855 F8        MOV BYTE PTR SS:[EBP-8],DL 
004140FE  |. 90             NOP 
004140FF  |. 90             NOP 
00414100  |. 90             NOP 
上面的代码是在原来的6B指令里面修改,下面的代码要自己找位置: 
00410FAC  /$ 55             PUSH EBP 
00410FAD  |. 8BEC           MOV EBP,ESP 
00410FAF  |. 83EC 08        SUB ESP,8 
00410FB2  |. 50             PUSH EAX 
00410FB3  |. E8 1ED50200    CALL 0043E4D6 
00410FB8  |. 83C4 04        ADD ESP,4 
00410FBB  |. 3C FF          CMP AL,0FF 
00410FBD  |. 74 12          JE SHORT 00410FD1 
00410FBF  |. 8AC8           MOV CL,AL 
00410FC1  |. E8 4A010C00    CALL 004D1110 
00410FC6  |. 8A71 06        MOV DH,BYTE PTR DS:[ECX+6] 
00410FC9  |. 8A51 07        MOV DL,BYTE PTR DS:[ECX+7] 
00410FCC  |. 33C0           XOR EAX,EAX 
00410FCE  |. 40             INC EAX 
00410FCF  |. EB 02          JMP SHORT 00410FD3 
00410FD1  |> 33C0           XOR EAX,EAX 
00410FD3  |> 8BE5           MOV ESP,EBP 
00410FD5  |. 5D             POP EBP 
00410FD6  \. C3             RETN 
 
004D1126   55               PUSH EBP 
004D1127   8BEC             MOV EBP,ESP 
004D1129   33C0             XOR EAX,EAX 
004D112B   8B048D 00B05500  MOV EAX,DWORD PTR DS:[ECX*4+55B000] 
004D1132   8BE5             MOV ESP,EBP 
004D1134   5D               POP EBP 
004D1135   C3               RETN 
上面这段是岱瀛新引擎用的,STAR引擎55B000要改成502000 
004D1110   55               PUSH EBP 
004D1111   8BEC             MOV EBP,ESP 
004D1113   81E1 FF000000    AND ECX,0FF 
004D1119   6BC9 24          IMUL ECX,ECX,24 
004D111C   81C1 502C4B00    ADD ECX,004B2C50 
004D1122   8BE5             MOV ESP,EBP 
004D1124   5D               POP EBP 
004D1125   C3               RETN 
上面这段STAR引擎也有写上,具体是哪里忘了,自己找一下。 
 
修改后,在剧本中设置法术的坐标为40,40的时候,就可以从指定的整形变量里面读出武将编号,再根据武将所在位置来显示法术。 
 |