• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

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

Joined
Oct 29, 2007
Messages
1,292
Reaction score
1,314
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