Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Development] New Mini Map Source For 1.04d (GMO)

Joined
Oct 29, 2007
Messages
1,288
Reaction score
1,308
Hi again, here I like Release, my new and cool MiniMap Source Code (with New Method) this time, mini-images for minimap exists in only 1 folder... this modification... not make changes on: Loren Deep Original MiniMap. Enjoy it!

NOTE 1: This code can be adapted to old versions or maybe new versions too.. :D:
NOTE 2: On this code I only I'm using maybe a: 10% from Assembler !!! :D:

MiniMap.cpp

Code:
#include "Stdafx.h"


cMinimap gMinimap;


bool cMinimap::FileCheck(int Map)
{
    if(pMapNumber == Loren) { return 1; }
    // ----
    char buff[MAX_PATH];
    // ----
    wsprintf(buff,MINI_MAP_FILE_CHECK,(pMapNumber+1));
    // ----
    FILE* file;
    // ----
    this->CreateNewDir();
    // ----
    if (fopen_s(&file,buff,"r") != 0)
    {
        return 0;
    }
    else
    {
        fclose(file);
        return 1;
    }
}


bool cMinimap::CheckWindow(int WindowID)
{
    return pCheckWindow(pWindowThis(), WindowID);
}


bool cMinimap::CheckThis()
{
    if (this->CheckWindow(FastMenu) || this->CheckWindow(FriendList) || this->CheckWindow(FullMap))
    {
        return false;
    }
    return true;
}


DWORD cMinimap::CreateNewDir()
{
    const int MiniMapFolder    = 0x00888C0B;
    static char Mini_Map_New[MAX_PATH] = {'\0'};
    sprintf(Mini_Map_New,MINI_MAP_FILE_LOAD,pMapNumber+1);
    // ----
    *(DWORD*)MiniMapFolder = (DWORD)&Mini_Map_New;
    // ----
    return (DWORD)&Mini_Map_New;
}


void cMinimap::LoadImageForMap(DWORD MiniMapNewFolder, DWORD PrintCode)
{
    static DWORD dwMiniMapFolder = this->CreateNewDir();
    // ----
    if (gMinimap.FileCheck(pMapNumber) != 0)
    {
        pLoadImage((char*)dwMiniMapFolder,0x7B7A,GL_LINEAR,GL_CLAMP,GL_TRUE,GL_FALSE);
    }
}


int cMinimap::LoadMap(int Map)
{
    static DWORD dwMiniMapFolder = this->CreateNewDir();
    this->LoadImageForMap(dwMiniMapFolder,0x7B7A);
    return Map;
}


bool cMinimap::MapCheckerCore1(int Map)
{
    if(gMinimap.FileCheck(pMapNumber)!=0)
    {
        if (gMinimap.CheckThis() == false)
        {
            return 0;
        }
        else
        {
            return 1;
        }
    }
    return 0;
}


void cMinimap::MapCheckerCore2(int Map)
{
    static DWORD dwWindowThis    = 0x00860FC0;
    static DWORD dwGetWindow    = 0x008615F0;
    static DWORD dwDrawMobs        = 0x00886C20;
    // ----
    if(gMinimap.FileCheck(pMapNumber)!=0)
    {
        if (gMinimap.CheckThis() == false)
        {
            return;
        }
        // ----
        _asm
        {
            CALL dwWindowThis
            MOV ECX,EAX
            CALL dwGetWindow
            MOV ECX,EAX
            CALL dwDrawMobs
        }
    }
    if (!pIsBloodCastle(Map))
    {
        return;
    }
    else
    {
        if (gMinimap.CheckThis() == false)
        {
            return;
        }
    }
}


void cMinimap::Load()
{
    gToolKit.SetOp((LPVOID)oMapCheckerHook1,(LPVOID)this->MapCheckerCore1,ASM::CALL);
    gToolKit.SetOp((LPVOID)oMapCheckerHook2,(LPVOID)this->MapCheckerCore1,ASM::CALL);
    gToolKit.SetOp((LPVOID)oMapCheckerHook3,(LPVOID)this->MapCheckerCore2,ASM::CALL);
    gToolKit.SetByte((PVOID)(oMiniMapKeyPushOffset+1),0x10);
}

MiniMap.h:

Code:
#ifndef __MINIMAP_H__
#define __MINIMAP_H__


#define MINI_MAP_FILE_LOAD    "Custom\\Minimap\\Map%d.jpg"
#define MINI_MAP_FILE_CHECK ".\\Data\\Custom\\Minimap\\Map%d.ozj"


class cMinimap
{
public:
    int LoadMap(int Map);
    bool CheckThis();
    bool FileCheck(int Map);
    bool CheckWindow(int WindowID);
    static bool MapCheckerCore1(int Map);
    static void MapCheckerCore2(int Map);
    static DWORD CreateNewDir();
    void LoadImageForMap(DWORD MiniMapNewFolder, DWORD PrintCode);
    // ----
    void Load();
};


extern cMinimap gMinimap;


#endif

Offsets and More:

Code:
[COLOR=#008000]
[/COLOR]enum eObjWindow
{
    FriendList        = 1,
    MoveList        = 2,
    Party            = 3,
    [COLOR=#ff8c00]Quest           = 4, //NEW[/COLOR]
    Guild            = 6,
    Trade            = 7,
    Warehouse        = 8,
    ChaosBox        = 9,
    CommandWindow    = 10,
    PetInfo            = 11,
    Shop            = 12,
    Inventory        = 13,
    Store            = 14,
    OtherStore        = 15,
    Character        = 16,
    ChatWindow        = 33,
    FastMenu        = 34,
    Options            = 35,
    Help            = 36,
    FastDial        = 39,
    [COLOR=#ff8c00]Mini_Map        = 52, // NEW[/COLOR]
    SkillTree        = 57,
    NPC_Titus        = 63,
    CashShop        = 65,
    FullMap            = 72,
    NPC_Dialog        = 73,
    GensInfo        = 74,
    NPC_Julia        = 75,
    ExpandInventory    = 77,
    ExpandWarehouse    = 78,
    [COLOR=#ff8c00]MuHelper        = 79,[/COLOR]
};
[COLOR=#008000]
// -> Interface
[/COLOR][COLOR=#800080]#define pLoadImage                ((int(__cdecl*)(char * Folder, int Code, int TextureMode, int TextureSet, int TextureState, int TextureHead)) 0x007721E0)[/COLOR]
[COLOR=#800080]#define pWindowThis                ((LPVOID(*)()) 0x860FC0)[/COLOR]
[COLOR=#800080]#define pCheckWindow            ((bool(__thiscall*)(LPVOID This, int Code)) 0x0085EAD0)[/COLOR]
[COLOR=#008000]
// -> Minimap[/COLOR]
[COLOR=#800080]#define oMapCheckerHook1        0x007D3B6D[/COLOR]
[COLOR=#800080]#define oMapCheckerHook2        0x00886B87[/COLOR]
[COLOR=#800080]#define oMapCheckerHook3        0x0062EB3D[/COLOR]
[COLOR=#800080]#define oMiniMapKeyPushOffset    0x007D3B55    //0x09 = TAB - 0x10 = SHIFT
[/COLOR][COLOR=#800080]#define pMapNumber                *(int*)0x00E61E18[/COLOR]
[COLOR=#800080]#define pIsBloodCastle            ((bool(__cdecl*)(int Map))0x004E65C0)[/COLOR]

Credits:
Webzen (Game)
zTeam (Main Decompilation)
MUEMU (By Some Codes)
DMichael (By Help Me)
Kiosani (By Programming)
 
Last edited:
Junior Spellweaver
Joined
Apr 21, 2005
Messages
154
Reaction score
126
Does anyone have the offsets of this main?

pDrawGUI ...
pGLSwitchBlend ...
pDrawBarForm ....
pGLSwitch...

plz ? *-*
 
selling server files is against RZ rules
Joined
Feb 26, 2013
Messages
542
Reaction score
131
Does anyone have the offsets of this main?

pDrawGUI ...
pGLSwitchBlend ...
pDrawBarForm ....
pGLSwitch...

plz ? *-*
#define pDrawGUI ((void(__cdecl*)(DWORD, float, float, float, float)) 0x00790A00)
#define pDrawBarForm ((void(__cdecl*)(float PosX, float PosY, float Width, float Height, float Arg5, int Arg6)) 0x6378A0)
#define pGLSwitch ((void(__cdecl*)()) 0x635F50)
#define pGLSwitchBlend ((void(__cdecl*)()) 0x636070)
 
Junior Spellweaver
Joined
Apr 21, 2005
Messages
154
Reaction score
126
#define pDrawGUI ((void(__cdecl*)(DWORD, float, float, float, float)) 0x00790A00)
#define pDrawBarForm ((void(__cdecl*)(float PosX, float PosY, float Width, float Height, float Arg5, int Arg6)) 0x6378A0)
#define pGLSwitch ((void(__cdecl*)()) 0x635F50)
#define pGLSwitchBlend ((void(__cdecl*)()) 0x636070)

Thank you bro, i will teste =]
 
Newbie Spellweaver
Joined
Apr 4, 2015
Messages
64
Reaction score
23
movespeed in charater.
some one can help find this offset
thanks
 
Back
Top