[Development] MiniMap Source Code (2016) to: 1.04.04 GMO

Page 2 of 2 FirstFirst 12
Results 16 to 26 of 26
  1. #16
    Darkness Member Kiosani is offline
    MemberRank
    Oct 2007 Join Date
    ArgentinaLocation
    1,276Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    Quote Originally Posted by Pinkof View Post
    you can test it. to change font. just need put the name of font that you want use.

    Yeah I know.. this works on: 1.03k JPN.. I have this change made from some time ago.. but since, at least on: 1.03k JPN Text.bmd from client... this create a small visual BUG on: Chaos Machine Head Text when, the Machine It's on State: Stand By... and since.. is not possible modify: Height using this method, equally, thanks Pinkof.

    PS: I'm want use a font like this:




    With the same Size and Font Type.. I think that this Font is called: Gulim I don't sure..
    Last edited by Kiosani; 24-02-16 at 01:20 AM.

  2. #17
    vnDev.games DaoVanTrong is offline
    MemberRank
    Aug 2014 Join Date
    VietnamLocation
    203Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    How to set the transparency only 50 when the load Minimap?
    Last edited by DaoVanTrong; 24-05-16 at 09:57 PM.

  3. #18
    (づ。◕‿‿◕。) Natzugen is offline
    MemberRank
    Jun 2014 Join Date
    ElbelandLocation
    1,858Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    so im trying to add this o muemu s6 1.04E main but it crashes after selecting a character, can anyone tell me if i got the right offsets?

    Code:
    #include "stdafx.h"
    #include "MiniMap.h"
    #include "Util.h"
    #include <sys\stat.h>
    
    
    DWORD LoadImg1	= 0x00772330;  ///$ 55             PUSH EBP
    DWORD LoadMap1	= 0x00861110;//  /$ 55             PUSH EBP
    DWORD LoadMap2	= 0x00861740;  //$ 55             PUSH EBP
    DWORD LoadMap3	= 0x00886D70;  //$ 55             PUSH EBP;
    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*)0x00D4A68C, 0, 19);//00D4A68C  57                       W
    	memcpy((DWORD*)0x00D4A68C, 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).
    		//POP EBP
    	}
    }
    
    
    
    
    #define oMapCheckerHook1	0x007D3CBD //   . E8 1E74D0FF    CALL main.004DB0E0                       ; \main.004DB0E0
    #define oMapCheckerHook2	0x00886CD7  //|. E8 0444C5FF    CALL main.004DB0E0                       ; \main.004DB0E0
    #define oMapCheckerHook3	0x0062EB3D
    
    
    
    
    //--------------------------------------------------------------------------------------------
    // Cool Info ^^
    //--------------------------------------------------------------------------------------------
    #define oMiniMapKeyPushOffset	0x007D3CA5   //> 6A 09          PUSH 9                                   ; /Arg1 = 00000009	//0x09 = TAB - 0x10 = SHIFT
    #define oMiniMapKeyCallOffset	0x007D3CBD   //. E8 1E74D0FF    CALL main.004DB0E0                       ; \main.004DB0E0
    	//This call must be hook to MapCheckerCore1 proc
    // -------------------------------------------------------------------------------------------
    #define oScreenMapKeyOffset		0x007D3CF5//   > 6A 09          PUSH 9                                   ; /Arg1 = 00000009	//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);
    }

  4. #19
    Proficient Member pravednik is offline
    MemberRank
    Feb 2014 Join Date
    179Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    Hi guys ! Set MiniMap is fine ! But now I have this problem ! When I close the game window then it comes out completely it hangs at "task Manager => Processes" But if I remove the MiniMap then everything is fine! Please tell me how I can fix it? Thanks in advance for the help!

  5. #20
    Account Upgraded | Title Enabled! laulinh2 is offline
    MemberRank
    Mar 2013 Join Date
    305Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    Quote Originally Posted by natzugen View Post
    so im trying to add this o muemu s6 1.04E main but it crashes after selecting a character, can anyone tell me if i got the right offsets?

    Code:
    #include "stdafx.h"
    #include "MiniMap.h"
    #include "Util.h"
    #include <sys\stat.h>
    
    
    DWORD LoadImg1    = 0x00772330;  ///$ 55             PUSH EBP
    DWORD LoadMap1    = 0x00861110;//  /$ 55             PUSH EBP
    DWORD LoadMap2    = 0x00861740;  //$ 55             PUSH EBP
    DWORD LoadMap3    = 0x00886D70;  //$ 55             PUSH EBP;
    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*)0x00D4A68C, 0, 19);//00D4A68C  57                       W
        memcpy((DWORD*)0x00D4A68C, 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).
            //POP EBP
        }
    }
    
    
    
    
    #define oMapCheckerHook1    0x007D3CBD //   . E8 1E74D0FF    CALL main.004DB0E0                       ; \main.004DB0E0
    #define oMapCheckerHook2    0x00886CD7  //|. E8 0444C5FF    CALL main.004DB0E0                       ; \main.004DB0E0
    #define oMapCheckerHook3    0x0062EB3D
    
    
    
    
    //--------------------------------------------------------------------------------------------
    // Cool Info ^^
    //--------------------------------------------------------------------------------------------
    #define oMiniMapKeyPushOffset    0x007D3CA5   //> 6A 09          PUSH 9                                   ; /Arg1 = 00000009    //0x09 = TAB - 0x10 = SHIFT
    #define oMiniMapKeyCallOffset    0x007D3CBD   //. E8 1E74D0FF    CALL main.004DB0E0                       ; \main.004DB0E0
        //This call must be hook to MapCheckerCore1 proc
    // -------------------------------------------------------------------------------------------
    #define oScreenMapKeyOffset        0x007D3CF5//   > 6A 09          PUSH 9                                   ; /Arg1 = 00000009    //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);
    }
    please share source in main 1.05D EMU SS4 :)

  6. #21
    Account Upgraded | Title Enabled! Lazerhack is offline
    MemberRank
    Feb 2012 Join Date
    311Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    so this source is useless because of crash?

  7. #22
    (づ。◕‿‿◕。) Natzugen is offline
    MemberRank
    Jun 2014 Join Date
    ElbelandLocation
    1,858Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    Quote Originally Posted by CMETAHKA View Post
    so this source is useless because of crash?
    it works if you use 1.04D, i couldn't make it work with 1.04E and just made a new minimap using the interface class.

  8. #23
    Account Upgraded | Title Enabled! Lazerhack is offline
    MemberRank
    Feb 2012 Join Date
    311Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    How can i remove this parts of image and leave only a minimap?


  9. #24
    Enthusiast repiolaa is offline
    MemberRank
    Jun 2015 Join Date
    25Posts

    re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    Quote Originally Posted by CMETAHKA View Post
    How can i remove this parts of image and leave only a minimap?

    just find image on data/interface and make it transparent.

  10. #25
    Account Upgraded | Title Enabled! Lazerhack is offline
    MemberRank
    Feb 2012 Join Date
    311Posts

    Re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    Quote Originally Posted by repiolaa View Post
    just find image on data/interface and make it transparent.
    nice idea

    looks better now:

    Last edited by Lazerhack; 11-11-18 at 07:59 PM.

  11. #26
    Account Upgraded | Title Enabled! Lazerhack is offline
    MemberRank
    Feb 2012 Join Date
    311Posts

    Re: [Development] MiniMap Source Code (2016) to: 1.04.04 GMO

    So there is the other problem: Everytime i am teleporting on any other map and trying to exit the game, i have this:

    Last edited by Lazerhack; 11-11-18 at 09:55 PM.



Page 2 of 2 FirstFirst 12

Advertisement