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..
NOTE 2: On this code I only I'm using maybe a: 10% from Assembler !!!
MiniMap.cpp
MiniMap.h: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); }
Offsets and More: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
Credits:Code:enum eObjWindow { FriendList = 1, MoveList = 2, Party = 3, Quest = 4, //NEW 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, Mini_Map = 52, // NEW SkillTree = 57, NPC_Titus = 63, CashShop = 65, FullMap = 72, NPC_Dialog = 73, GensInfo = 74, NPC_Julia = 75, ExpandInventory = 77, ExpandWarehouse = 78, MuHelper = 79, }; // -> Interface #define pLoadImage ((int(__cdecl*)(char * Folder, int Code, int TextureMode, int TextureSet, int TextureState, int TextureHead)) 0x007721E0) #define pWindowThis ((LPVOID(*)()) 0x860FC0) #define pCheckWindow ((bool(__thiscall*)(LPVOID This, int Code)) 0x0085EAD0) // -> Minimap #define oMapCheckerHook1 0x007D3B6D #define oMapCheckerHook2 0x00886B87 #define oMapCheckerHook3 0x0062EB3D #define oMiniMapKeyPushOffset 0x007D3B55 //0x09 = TAB - 0x10 = SHIFT #define pMapNumber *(int*)0x00E61E18 #define pIsBloodCastle ((bool(__cdecl*)(int Map))0x004E65C0)
Webzen (Game)
zTeam (Main Decompilation)
MUEMU (By Some Codes)
DMichael (By Help Me)
Kiosani (By Programming)



Reply With Quote![[Development] New Mini Map Source For 1.04d (GMO)](http://ragezone.com/hyper728.png)


