cmp dword_59D2BC, esi
.text:00487A2D jz loc_487AF7 //单机跳
.text:00487A33 cmp dword_59D2C4, esi
.text:00487A39 jnz loc_487B42 //联网服务端跳
.text:00487A3F push offset aStrltext2 ; "STRLTEXT2"
.text:00487A44 push offset aLoadingText ; "Loading Text"
.text:00487A49 call sub_485B10
.text:00487A4E push eax ; Format
.text:00487A4F call sub_487880
.text:00487A54 add esp, 0Ch
.text:00487A57 call sub_40D450
.text:00487A5C mov edi, 1
.text:00487A61 cmp eax, edi
.text:00487A63 jnz short loc_487A79 //联网客户端跳
.text:00487A65 push offset aGameLoop ; "Game Loop"
.text:00487A6A call sub_489D80
.text:00487A6F add esp, 4
.text:00487A72 pop edi
.text:00487A73 pop esi
.text:00487A74 pop ebp
.text:00487A75 add esp, 0Ch
.text:00487A78 retn
0059E63A 4C 6F 61 64 69 6E 67 20 4D 69 Loading Mi
0059E64A 73 73 69 6F 6E 2E 2E 2E ssion...
0059E73A 50 72 65 70 61 72 69 6E 67 20 Preparing
0059E74A 45 71 75 69 70 6D 65 6E 74 2E Equipment.
0059E83A 41 6E 61 6C 79 7A 69 6E 67 20 Analyzing
0059E84A 4D 69 73 73 69 6F 6E 20 54 6F 70 6F 67 72 61 70 Mission Topograp
0059E85A 68 79 2E 2E 2E hy...
00487D4E |. 68 04E65000 PUSH Dflw.0050E604 ; Not enough virtual memory available!
00487D53 |. E8 68FAFFFF CALL Dflw.004877C0
00487D58 |. 68 FFFFFF00 PUSH Dflw.00FFFFFF
00487D5D |. 68 DCE55000 PUSH Dflw.0050E5DC ; Please lower video detail settings...
00487D62 |. E8 59FAFFFF CALL Dflw.004877C0
00487D67 |. 68 FFFFFF00 PUSH Dflw.00FFFFFF
00487D6C |. 68 C0E55000 PUSH Dflw.0050E5C0 ; Aborting mission load...
00487D71 |. E8 4AFAFFFF CALL Dflw.004877C0
004879C9 |. /75 0D JNZ SHORT Dflw.004879D8
004879CB |. |68 78E65000 PUSH Dflw.0050E678 ; unable to load mission file!
00487B76 |. 85C0 TEST EAX,EAX
00487B78 |. 75 0D JNZ SHORT Dflw.00487B87
00487B7A |. 68 78E65000 PUSH Dflw.0050E678 ; Unable to load mission file!
00491AF5 |. 85C0 TEST EAX,EAX
00491AF7 |. 74 45 JE SHORT Dflw.00491B3E
00491AF9 |. 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
00491AFD |. A3 E4175900 MOV DWORD PTR DS:[5917E4],EAX
00491B02 |. A1 E0175900 MOV EAX,DWORD PTR DS:[5917E0]
00491B07 |. 85C0 TEST EAX,EAX
00491B09 |. 74 33 JE SHORT Dflw.00491B3E
00491B0B |. 33C9 XOR ECX,ECX
00491B0D |. 66:8B0D A0CA5>MOV CX,WORD PTR DS:[58CAA0]
00491B14 |. 51 PUSH ECX
00491B15 |. 50 PUSH EAX
三角洲3陆地勇士最终修改如下:
0040D5F7 |. A1 488AE200 MOV EAX,DWORD PTR DS:[E28A48]
0040D5FC |. 85C0 TEST EAX,EAX
0040D5FE |. 75 44 JNZ SHORT Dflw.0040D644
0040D600 |> E8 9B820900 /CALL Dflw.004A58A0
0040D605 |. E8 B6950900 |CALL Dflw.004A6BC0
0040D60A |. 85C0 |TEST EAX,EAX
0040D60C |. 74 04 |JE SHORT Dflw.0040D612
0040D60E |. 3C 1B |CMP AL,1B
0040D610 |. 74 37 |JE SHORT Dflw.0040D649
0040D612 |> FFD7 |CALL EDI
0040D614 |. 2BC6 |SUB EAX,ESI
0040D616 |. 83F8 64 |CMP EAX,64 ; CMP EAX,64 将64改为0即可
0040D619 |. 7C 20 |JL SHORT Dflw.0040D63B
0040D61B |. FFD7 |CALL EDI
0040D61D |. 8BF0 |MOV ESI,EAX
0040D61F |. E8 1CBF0000 |CALL Dflw.00419540
0040D624 |. 85C0 |TEST EAX,EAX
0040D626 |. 74 05 |JE SHORT Dflw.0040D62D
0040D628 |. E8 130D0000 |CALL Dflw.0040E340
0040D62D |> E8 FEF2FFFF |CALL Dflw.0040C930
0040D632 |. A1 D0D95900 |MOV EAX,DWORD PTR DS:[59D9D0]
signed int __cdecl sub_40D5B0()
{
DWORD v0; // esi@1
int v1; // eax@2
signed int result; // eax@9
dword_E28A50 = 0;
dword_4E86C8 = 1;
sub_4A58A0();
sub_40B640(4, 0, 0);
sub_40C930();
sub_4A58A0();
dword_E28A48 = 0;
v0 = GetTickCount();
if ( dword_E28A48 )
{
LABEL_9:
result = 0;
}
else
{
while ( 1 )
{
sub_4A58A0();
v1 = sub_4A6BC0();
if ( v1 && (_BYTE)v1 == 27 )
return 3;
if ( (signed int)(GetTickCount() - v0) >= 0x64 ) // CMP EAX,64 将64改为0即可
{
v0 = GetTickCount();
if ( sub_419540() )
sub_40E340();
sub_40C930();
if ( dword_59D9D0 )
break;
}
if ( dword_E28A48 )
goto LABEL_9;
}
result = 1;
}
return result;
}
Just one byte!