LoadMapName gLoadMapName = (LoadMapName)0x6F8E60;//ok
char * arkania_map = "Interface\\Arkania_Map.tga";
Naked(LoadNewTextMapName)
{
_asm
{
CMP ESI, 0x22 // Crywolf MapId: 34
JNZ NextMapText1
//PUSH 0x73B
MOV EAX, 0x07871A58
//CALL MapTextOffset
//JMP MapJumpOffset
POP ESI
RETN
// ---
NextMapText1 :
// ---
CMP ESI, 0x3F // Arkania MapId: 67
JNZ ReturnMapLoad
MOV EAX, 0x07871A58
//CALL MapTextOffset
//JMP MapJumpOffset
POP ESI
RETN
// ---
ReturnMapLoad :
// ---
MOV EDI, 0x00662DF1
JMP EDI
}
}
Naked(LoadMapNameImage)
{
//006F8384 | .C745 F8 010000> MOV DWORD PTR SS : [EBP - 8], 1
// 006F838B | . 68 F8917E00 PUSH main.007E91F8; / Arg1 = 007E91F8 ASCII "Interface\dungeun.tga"
// 006F8390 | . 8D4D F8 LEA ECX, DWORD PTR SS : [EBP - 8]; |
// 006F8393 | . 51 PUSH ECX; | / Arg1
// 006F8394 | . 8B8D 48FFFFFF MOV ECX, DWORD PTR SS : [EBP - B8]; ||
// 006F839A | . 83C1 04 ADD ECX, _Init_thread_epoch; ||
// 006F839D | .E8 BE0A0000 CALL main.006F8E60; | \main.006F8E60
// 006F83A2 | . 8BC8 MOV ECX, EAX; |
// 006F83A4 | .E8 C7C2D1FF CALL main.00414670; \main.00414670
_asm
{
MOV DWORD PTR SS : [EBP - 0x8], 0x1
PUSH 0x007E91F8
LEA ECX, DWORD PTR SS : [EBP - 0x8]
PUSH EDX
MOV ECX, DWORD PTR SS : [EBP - 0xB8]
ADD ECX, 0x4
CALL InterfaceLoad1
MOV ECX, EAX
CALL InterfaceLoad2
// ---
MOV DWORD PTR SS : [EBP - 0x8], 0x3F
PUSH arkania_map
LEA ECX, DWORD PTR SS : [EBP - 0x8]
PUSH EDX
MOV ECX, DWORD PTR SS : [EBP - 0xB8]
ADD ECX, 0x4
CALL InterfaceLoad1
MOV ECX, EAX
CALL InterfaceLoad2
// ---
MOV EDI, 0x006F83A9
JMP EDI
// ---
InterfaceLoad1 :
MOV EDI, 0x006F8E60
JMP EDI
// ---
InterfaceLoad2 :
MOV EDI, 0x00414670
JMP EDI
// ---
// MOV ESP, EBP
// POP EBP
// RETN
}
}
void cLoadMapSetLoad()
{
//SetRange((LPVOID)0x006F8384, 37, ASM::NOP);
//SetHook((LPVOID)LoadMapNameImage, (LPVOID)0x006F8384, ASM::CALL);
// SetRange((LPVOID)0x00662DE5, 12, ASM::NOP);
//SetHook((LPVOID)LoadNewTextMapName, (LPVOID)0x00662DE5, ASM::CALL);
SetByte((PVOID)0x006AE456, 0x98);
SetByte((PVOID)0x006AE66D, 0x98);
SetByte((PVOID)0x006AE731, 0x98);
SetByte((PVOID)0x006AE457, 0xEB);
SetByte((PVOID)0x006AE66E, 0xEB);
SetByte((PVOID)0x006AE732, 0xEB);
}
Fijate debe de funcionar de igual forma te recomiendo que la revises ya que no esta muy bien programado que digamos