Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: MiniMap + CustomMap / Season 3 1.04J (1.04.10 KOR)  (Visto 1880 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline Tester1838a Posteado: February 22, 2022, 08:07:35 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 11
  • Gracias recibida: 655
  • bg

- Minimap
- Custom Map + Custom MapName (Text + Image while load of Map)

MiniMap.cpp
Code: [Select]
#include "stdafx.h"
#include "MiniMap.h"
#include "Offset.h"
#include "Util.h"


bool MiniMapTable[MAX_MINI_MAP];

void InitMiniMap() // OK
{
    memset(MiniMapTable,0,sizeof(MiniMapTable)); // 1.04J DONE

    SetCompleteHook(0xE8,0x00636F24,&MiniMapLoad); // 1.04J DONE
SetCompleteHook(0xFF,0x00639964,&MiniMapCore); // 1.04J DONE
    SetCompleteHook(0xFF,0x0049C77E,&MiniMapCheck); // 1.04J DONE
}


void MiniMapCore() // OK
{
    ((void(*)())0x0063612C)(); // 1.04J DONE


    MiniMapLoad();
}


void MiniMapLoad() // OK
{
    if(*(int*)(MAIN_CURRENT_MAP) < MAX_MINI_MAP)
    {
        char buff[64];

        wsprintf(buff,"Minimap\\World%d\\Map1.jpg",(*(int*)(MAIN_CURRENT_MAP)+1));

        if(MiniMapFileCheck(*(int*)(MAIN_CURRENT_MAP)) != 0)
        {
            MiniMapTable[*(int*)(MAIN_CURRENT_MAP)] = 1;

((bool(*)(char*,DWORD,DWORD,DWORD,BYTE))0x006F9D4F)(buff,1920,9729,10496,1);

        }
    }
}


bool MiniMapCheck(int map) // OK
{
    if(map == 30 || (map < MAX_MINI_MAP && MiniMapTable[map] != 0))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}


bool MiniMapFileCheck(int map) // OK
{
    if(map == 30){return 1;}


    char buff[64];


    wsprintf(buff,".\\Data\\Minimap\\World%d\\Map1.ozj",(map+1));


    FILE* file;


    if(fopen_s(&file,buff,"r") != 0)
    {
        return 0;
    }
    else
    {
        fclose(file);
        return 1;
    }

}

MiniMap.h
Code: [Select]
#define MAX_MINI_MAP		100
#define MAIN_CURRENT_MAP 0x0077038C


void InitMiniMap();
void MiniMapCore();
void MiniMapLoad();
bool MiniMapCheck(int map);
bool MiniMapFileCheck(int map);

CustomMap.cpp
Code: [Select]
#include "stdafx.h"
#include "CustomMapNew.h"
#include "TMemory.h"
#include "ToolKit.h"

CCustomMap gCustomMap;


char * Map51 = "Interface\\Elbeland.tga";
char * Map56 = "Interface\\SwampOfCalmness.tga";
char * Map57 = "Interface\\Raklion.tga";
char * Map58 = "Interface\\RaklionBoss.tga";
char * Map62 = "Interface\\santatown.tga";
char * Map63 = "Interface\\Vulcanus.tga";
char * Map64 = "Interface\\duelarena.tga";

char * Map83 = "Interface\\Acheron.tga";
char * Map84 = "Interface\\Debenter.tga";
char * Map85 = "Interface\\UrukMountain.tga";
char * Map86 = "Interface\\Ferea.tga";
char * Map87 = "Interface\\lorencia.tga";
char * Map88 = "Interface\\Nars.tga";
char * Map89 = "Interface\\NixiesLake.tga";
char * Map90 = "Interface\\DeepDungeon.tga";
char * Map91 = "Interface\\DeepDungeon.tga";
char * Map92 = "Interface\\DeepDungeon.tga";
char * Map93 = "Interface\\DeepDungeon.tga";
char * Map94 = "Interface\\DeepDungeon.tga";
char * Map95 = "Interface\\SwampOfDarkness.tga";
char * Map96 = "Interface\\KuberaMine.tga";

char* LoadMapName(signed int MapNumber)
{
if (MapNumber >= 51 && MapNumber <= 100)
{
return pGetTextLine(pTextLineThis, (2532 + MapNumber - 51));
}
return pMapName(MapNumber);
}



void __declspec(naked) LoadNewInterfaceMapName()
{
    _asm
    {

MOV DWORD PTR SS:[EBP-0x0B4],0x32 // MOV DWORD PTR SS:[EBP-0x0D0],0x32 // 0x32 = 50 IT Final (Hook place)
        PUSH 0x0076C05C                    // .PUSH 0x0076C05C                      // Arg1 = ASCII "Interface\IllusionTemple.tga"
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2


        MOV DWORD PTR SS:[EBP-0x0B4],0x33
        PUSH Map51                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x38
        PUSH Map56                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x39
        PUSH Map57                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x3A
        PUSH Map58               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x3E
        PUSH Map62               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x3F
        PUSH Map63               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x40
        PUSH Map64               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2


MOV DWORD PTR SS:[EBP-0x0B4],0x53
        PUSH Map83                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2



MOV DWORD PTR SS:[EBP-0x0B4],0x54
        PUSH Map84                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x55
        PUSH Map85                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x56
        PUSH Map86                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x57
        PUSH Map87                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x58
        PUSH Map88                 
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x59
        PUSH Map89               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x5A
        PUSH Map90               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x5B
        PUSH Map91               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x5C
        PUSH Map92               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x5D
        PUSH Map93               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x5E
        PUSH Map94               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x5F
        PUSH Map95               
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2

MOV DWORD PTR SS:[EBP-0x0B4],0x60
        PUSH Map96             
        LEA EAX,DWORD PTR SS:[EBP-0x0B4]
        PUSH EAX
        MOV ECX,DWORD PTR SS:[EBP-0x0B8]
        ADD ECX,0x4
        CALL InterfaceLoad1
        MOV ECX,EAX
        CALL InterfaceLoad2




MOV ESP,EBP
POP EBP
RETN


        InterfaceLoad1:
        MOV EDI, 0x00461510
        JMP EDI
        // ---
        InterfaceLoad2:
        MOV EDI, 0x00408710
        JMP EDI
       
    }
}


void CCustomMap::Load()
{

SetOp((LPVOID)0x005F97B1, (LPVOID)LoadMapName, ASM::CALL);
SetOp((LPVOID)0x00675D9F, (LPVOID)LoadMapName, ASM::CALL);
SetOp((LPVOID)0x00679035, (LPVOID)LoadMapName, ASM::CALL);

ToolKit.WriteJmp(0x00461153,(DWORD)&LoadNewInterfaceMapName);

//Bypass in terrains files
SetByte2((PVOID)0x00639A36,0xEB);
SetByte2((PVOID)0x00639A3C,0xEB);
SetByte2((PVOID)0x00639C29,0xEB);
SetByte2((PVOID)0x00639C2F,0xEB);
SetByte2((PVOID)0x00639CCC,0xEB);
SetByte2((PVOID)0x00639CD2,0xEB);

//Increase terrains amount
SetByte2((PVOID)0x00639A35,0x69);
SetByte2((PVOID)0x00639C28,0x69);
SetByte2((PVOID)0x00639CCB,0x69);

}

CustomMap.h
Code: [Select]
class CCustomMap
{
public:
// ----
void Load();
// ----
}; extern CCustomMap gCustomMap;


#define pTextLineThis ((LPVOID(*)()) 0x0750DF88)
#define pGetTextLine ((char*(__thiscall*)(LPVOID This, int LineNumber)) 0x00402260)
#define pMapName ((char*(__cdecl*)(signed int mapNumber)) 0x005F8F60)


#define sub_461510 ((int(*)(int a1))0x00461510) //ok
#define sub_408710 ((int(*)(int a1))0x00408710) //ok


Main.cpp
Code: [Select]
InitMiniMap();
gCustomMap.Load();


Gracias:


Offline roshux #1 Posteado: March 01, 2022, 06:26:29 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 18
  • Gracias recibida: 14
  • gb
Do you have the files and maps for them aswell please ?


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
3 Replies
2286 Views
Last post December 20, 2017, 02:05:58 AM
by CorsarioDgx
1 Replies
2673 Views
Last post May 08, 2023, 07:46:13 AM
by Evangelio
9 Replies
5152 Views
Last post April 13, 2024, 08:54:21 PM
by rodrigoo22
13 Replies
7419 Views
Last post October 17, 2025, 10:54:51 AM
by Dwan
1 Replies
835 Views
Last post November 13, 2025, 09:01:54 PM
by gambasoxd