Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: MiniMap Source 1.04.04 GMO  (Visto 2033 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline malon2k Posteado: December 19, 2016, 10:48:56 PM

  • Php Coder
  • 0 puntos por ventas
  • *
  • Rank: Avanzado
  • Posts: 142
  • Gracias recibida: 6307
  • ar
MiniMap.cpp file:

#include "stdafx.h"
#include "MiniMap.h"
#include "TMemory.h"
#include "Interface.h"

// Buffers -> Using this method.. is not necesary mov esi, 0x00XXX or: mov edi, //0x00XX and prevents.. possible problems with information registers


DWORD LoadImg1    = 0x007721E0;
DWORD LoadMap1    = 0x00860FC0;
DWORD LoadMap2    = 0x008615F0;
DWORD LoadMap3    = 0x00886C20;
DWORD LoadMap4    = 0x004E65C0;


MiniMap        gMiniMap; //Small MiniMap Class Initialization (Only for: Hook Main Function)


bool IsValidMap(int MapId)
{
    char FullMapName[200];
    sprintf_s(FullMapName, "World%d\\Map1.jpg", MapId + 1);


    struct stat buffer;


    if (stat(FullMapName, &buffer)) // -> On this way Minimap not have crashs on Event Maps... xD
    {
        switch (MapId)
        {
        case 0: return true;//Lorencia
        case 1: return true;//Dungeon
        case 2: return true;//Devias
        case 3: return true;//Noria
        case 4: return true;//LostTower
        case 6: return true;//Stadium
        case 7: return true;//Atlans
        case 8: return true;//Tarkan
        case 10: return true;//Icarus
        case 24: return true;//Kalima 1
        case 25: return true;//Kalima 2
        case 26: return true;//Kalima 3
        case 27: return true;//Kalima 4
        case 28: return true;//Kalima 5
        case 29: return true;//Kalima 6
        case 30: return true;//Valley of Loren
        case 31: return true;//Land of Trials
        case 33: return true;//Aida
        case 34: return true;//Crywolf
        case 36: return true;//Kanturu 1
        case 37: return true;//Kanturu 2
        case 38: return true;//Kanturu 3
        case 42: return true;//Barracks
        case 51: return true;//Elbeland
        case 56: return true;//Swamp of Calmness
        case 57: return true;//Raklion
        case 58: return true;//Raklion Boss
        case 63: return true;//Vulcanus
        case 80: return true;//Kalrutan 1
        case 81: return true;//Kalrutan 2


        // Invalid MiniMap
        default: return false;
        }
    }
    return false;
}


void LoadImageJpgForMap(char* ImagePatch, DWORD PrintCode)
{
    _asm
    {
        PUSH 0
        PUSH 1
        PUSH 0x2900
        PUSH 0x2601
        PUSH 0x7B7A
        PUSH ImagePatch
        CALL LoadImg1 // -> Here is not used: mov edi and anothers bad instructions to memory is only direct CALL to Main Offset :D:
        ADD ESP,0x18
    }
}


int LoadMap(int Map)
{
    char FullMapName[200];
    sprintf(FullMapName, "World%d\\Map1.jpg", Map + 1);
    ChangePath(FullMapName);
    LoadImageJpgForMap(FullMapName, 0x7B7A);
    return Map;
}


void ChangePath(const char* Map)
{
    memset((DWORD*)0xD4A654, 0, 19);
    memcpy((DWORD*)0xD4A654, Map, 17);
}


bool MapCheckerCore1(int Map)
{
    if (IsValidMap(Map))
    {
        return 1;
    }
    return 0;
}


void MapCheckerCore2(int Map)
{
    if (IsValidMap(Map))
    {
        LoadMap(Map);


        _asm
        {
            CALL LoadMap1
            MOV ECX, EAX
            CALL LoadMap2
            MOV ECX, EAX
            CALL LoadMap3
        }
    }


    _asm
    {
        PUSH Map
        CALL LoadMap4 // -> Here on: 1.04d main.exe is not necesary POP EBP instruction.. I don't know why ^^ I like think that is by call convention type (__cdecl or __stdcall on original main function).
    }
}


#define oMapCheckerHook1    0x007D3B6D
#define oMapCheckerHook2    0x00886B87
#define oMapCheckerHook3    0x0062EB3D


//--------------------------------------------------------------------------------------------
// Cool Info ^^
//--------------------------------------------------------------------------------------------
#define oMiniMapKeyPushOffset    0x007D3B55    //0x09 = TAB - 0x10 = SHIFT
#define oMiniMapKeyCallOffset    0x007D3B6D    //This call must be hook to MapCheckerCore1 proc
// -------------------------------------------------------------------------------------------
#define oScreenMapKeyOffset        0x007D3BA5    //0x09 = TAB - 0x10 = SHIFT


void MiniMap::Load()
{
    SetOp((LPVOID)oMapCheckerHook1, (LPVOID)MapCheckerCore1, ASM::CALL);
    SetOp((LPVOID)oMapCheckerHook2, (LPVOID)MapCheckerCore1, ASM::CALL);
    SetOp((LPVOID)oMapCheckerHook3, (LPVOID)MapCheckerCore2, ASM::CALL);



MiniMap.h file:

#pragma once
// ----------------------------------------------------------------------------------------------

#include <sys\stat.h>
#include "Import.h" // -> This is not necesary.. on my zClient Modified Source I only use this.. to make a small new mod (is TEST) xD

// ----------------------------------------------------------------------------------------------


int        LoadMap(int Map);
void        LoadImageJpgForMap(char* ImagePath, DWORD PrintCode);
bool        MapCheckerCore1(int Map);
void        MapCheckerCore2(int Map);
void        ChangePath(const char*Map);
bool        IsValidMap(int MapId);


class MiniMap
{
public:
    void        Load();
    // ----
}; extern 

Gracias:


Offline marianomarkoff #1 Posteado: July 31, 2017, 10:07:34 PM

Funciona en Muemu s6? gracias por el aporte!

Offline Lude #2 Posteado: July 31, 2017, 10:33:09 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 311
  • Gracias recibida: 10794
  • us
Funciona en Muemu s6? gracias por el aporte!

No por que los offsets son diferentes.

Offline marianomarkoff #3 Posteado: August 01, 2017, 09:27:05 AM

Funciona en Muemu s6? gracias por el aporte!

No por que los offsets son diferentes.

Claro y alguno no tendria el offset para emu?

Offline Lude #4 Posteado: August 01, 2017, 09:08:19 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 311
  • Gracias recibida: 10794
  • us
Funciona en Muemu s6? gracias por el aporte!

No por que los offsets son diferentes.

Claro y alguno no tendria el offset para emu?

En el source del cliente de los vietnamitas esta, de ahi puedes sacarlo.

Offline linkzero #5 Posteado: October 23, 2017, 10:34:09 AM

Agrego el source no me cracshea main ni nada pero tampoco me aparece y no tengo los archivos JPG sera por eso?

Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

 

Related Topics

  Subject / Started by Replies Last post
13 Replies
2297 Views
Last post August 23, 2020, 10:17:03 PM
by nik2013
5 Replies
972 Views
Last post September 11, 2018, 11:32:54 AM
by -Rastaa.TSM☢
4 Replies
563 Views
Last post July 16, 2020, 07:18:52 PM
by vicente
0 Replies
388 Views
Last post January 15, 2019, 07:33:41 PM
by cobyzero
7 Replies
726 Views
Last post April 12, 2019, 07:29:56 PM
by SbaGomez