how to fix position RF Gloves // Ha Ha : )
Item_eng
http://i.imgur.com/kHuBiSu.jpg
ItemTooltip_eng
http://i.imgur.com/Qwmiv9t.jpg
in games
http://i.imgur.com/KJ20Mnl.jpg
http://i.imgur.com/1vhsKCK.jpg
Printable View
how to fix position RF Gloves // Ha Ha : )
Item_eng
http://i.imgur.com/kHuBiSu.jpg
ItemTooltip_eng
http://i.imgur.com/Qwmiv9t.jpg
in games
http://i.imgur.com/KJ20Mnl.jpg
http://i.imgur.com/1vhsKCK.jpg
Hi guys ! Help to understand what's wrong ?
The problem is that of the z mini map the client has not closed till the end what's wrong ?
https://youtu.be/gViuT4eu3kY
I did this:
MiniMap.cpp
MiniMap.hQuote:
#include "stdafx.h"#include "MiniMap.h"
#include "TMemory.h"
#include "Interface.h"
#include <sys/stat.h>
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);
}
dllmain.cppQuote:
#pragma once// ----------------------------------------------------------------------------------------------
#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 MiniMap gMiniMap;
Thanks in advance!Quote:
#include "stdafx.h"#include "Other.h"
#include "TMemory.h"
#include "Item.h"
#include "User.h"
#include "Controller.h"
#include "Interface.h"
#include "CheatGuard.h"
#include "Protocol.h"
#include "Monster.h"
#include "ResetSystem.h"
#include "ItemPrice.h"
#include "ChatExpanded.h"
#include "ConnectEx.h"
#include "TDebugLog.h"
#ifdef __NOVUS__
#include "CraftSystem.h"
#endif
#include "VisualFix.h"
#include "OffTrade.h"
#include "ItemRank.h"
#include "ItemModel.h"
#include "SocketItem.h"
#include <string>
#include "CRC.h"
#include "Font.h"
#include "MiniMap.h"
// ----------------------------------------------------------------------------------------------
std::vector<std::string> GetArguments()
{
std::vector<std::string> list;
LPSTR arguments = GetCommandLineA();
if(!arguments)
{
return list;
}
size_t i = 0;
bool quote = false;
bool it = false;
std::string argument = "";
std::string commandline = arguments;
while(i < commandline.length())
{
if(quote)
{
if(commandline.at(i) == '"')
{
quote = false;
}
else
{
argument += commandline.at(i);
it = true;
}
}
else
{
switch(commandline.at(i))
{
case '"':
quote = true;
break;
case ' ':
case '\t':
case '\r':
case '\n':
if(it)
{
list.push_back(argument);
argument = "";
it = false;
}
break;
default:
argument += commandline.at(i);
it = true;
break;
}
}
i++;
}
if(argument != "")
{
list.push_back(argument);
}
return list;
}
void CheckArguments()
{
std::vector<std::string> argumentos = GetArguments();
if(argumentos.size() == 2)
{
if(argumentos[1] == "Season 6 zTema")
{
return;
}
}
ShellExecute(GetDesktopWindow(), "Open", "Launcher.exe", NULL, NULL, SW_SHOWNORMAL);
ExitProcess(0);
}
extern "C" __declspec(dllexport)void Init()
{
DWORD OldProtect;
// ----
if(VirtualProtect(LPVOID(0x00401000),0x00D21FFF,PAGE_EXECUTE_READWRITE,&OldProtect))
#ifdef PROTECT
if( VMProtectIsDebuggerPresent(TRUE) != 0 )
{
MessageBox(0, "Protect system found debugger, process will be closed", "CheatGuard", ERROR);
ExitProcess(0);
}
#endif
VMBEGIN
#ifdef __MUANGEL__
if( pMUIsLoaded == 1 )
{
CreateMutex(0, 1, "MuOnline");
// ----
if( GetLastError() == 183 )
{
ExitProcess(0);
}
}
#endif
// ----
#if defined __MIX__ || __WHITE__ || __MUANGEL__
#ifndef __ROOT__
char ** Command = 0;
CommandLineToArg(GetCommandLine(), &Command);
if( strcmp("Updater", Command[1]) )
{
MessageBoxA(0, "Please start game from Launcher", "Start Error", ERROR);
ExitProcess(0);
}
#endif
#endif
// ----
// ----
#ifdef __NOVUS__
gCraftSystem.Load();
#endif
gConnectEx.Load();
gController.Load();
gChatExpanded.Load();
gItemPrice.Load();
gItem.Load();
gResetSystem.Load();
gProtocol.Load();
gCheatGuard.Load();
gObjUser.Load();
gOther.Load();
gInterface.Load();
gVisualFix.InitVisualFix();
g_ItemModel.Load();
gOffTrade.Init();
gFont.Load();
gMiniMap.Load();
#ifdef __RMOS__
g_ItemRank.Load();
#endif
// ----
LoadLibrary("ttlci.dll");
#ifdef MUNEWAGE
CheckArguments();
#endif
VMEND
}
// ----------------------------------------------------------------------------------------------
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved)
{
switch(dwReason)
{
case DLL_PROCESS_DETACH:
{
}
break;
// --
case DLL_PROCESS_ATTACH:
{
gController.Instance = hModule;
}
break;
}
// ----
return true;
}
// ----------------------------------------------------------------------------------------------
gameserver still crashing! I've already did this but still crashing. what any new update?
Code:for (n=0;n<OBJ_MAXMONSTER;n++)
{
if ( gObj[n].Class == 80 ) // Devil Lizard King
{
gObj[n].Live = TRUE;
MapNumber = 7;
gObj[n].MapNumber = MapNumber;
while ( gMSetBase.GetBoxPosition(MapNumber, 50, 10, 250, 200, gObj[n].X, gObj[n].Y) == 0 )
{
}
this->m_BossDevilLizardKingMapNumber = gObj[n].MapNumber;
this->m_BossDevilLizardKingMapX = gObj[n].X;
this->m_BossDevilLizardKingMapY = gObj[n].Y;
gObj[n].Life = gObj[n].MaxLife;
gObj[n].TX = gObj[n].X;
gObj[n].TY = gObj[n].Y;
gObj[n].MTX = gObj[n].X;
gObj[n].MTY = gObj[n].Y;
gObj[n].StartX = gObj[n].X;
gObj[n].StartY = gObj[n].Y;
gObj[n].m_State = 1;
gObj[n].PathCount = 0;
help with item color name. when I killed selupan it drops socket items but the item name color is blue even it was a socket item. So I tried to drop a socket item using /item then after picking it up it shows purple item color. how can i change the color of selupan drop item color?
okay I see what causing the problem. It was because of the luck option and the Addtional option it turns purple to blue name. how can I make it purple name only?
EDIT: FIXED. You have to add those socket items in the SocketItem.txt (Data/Custom folder)
Quote:
0 26 //Flamberge
0 27 //Sword breaker
0 28 //Rune bastard sword
2 16 //frost mace
2 17 //absolute scepter
4 23 //dark stinger
5 20 //Eternal Wing Stick
5 30 //deadly staff
5 31 //inberial staff
5 32 //merlin staff
6 17 //crimson glory
6 18 //Salamander Shield
6 19 //Frost Barrier
6 20 //Guardian Shield
7 45 //titan helm
7 46 //brave helm
7 49 //Seraphim Helm
7 50 //Divine Helm
7 51 //Royal Helm
7 52 //Hades Helm
7 53 //Queen Helm
8 45 //Titan Armor
8 46 //Brave Armor
8 47 //Phantom Armor
8 48 //Destroy Armor
8 49 //Seraphim Armor
8 50 //Divine Armor
8 51 //Royal Armor
8 52 //Hades Armor
8 53 //Queen Armor
9 45 //Titan Pants
9 46 //Brave Pants
9 47 //Phantom Pants
9 48 //Destroy Pants
9 49 //Seraphim Pants
9 50 //Divine Pants
9 51 //Royal Pants
9 52 //Hades Pants
9 53 //Queen Pants
10 45 //Titan Gloves
10 46 //Brave Gloves
10 47 //Phantom Gloves
10 48 //Destroy Gloves
10 49 //Seraphim Gloves
10 50 //Divine Gloves
10 51 //Royal Gloves
10 52 //Hades Gloves
10 53 //Queen Gloves
11 45 //Titan Boots
11 46 //Brave Boots
11 47 //Phantom Boots
11 48 //Destroy Boots
11 49 //Seraphim Boots
11 50 //Divine Boots
11 51 //Royal Boots
11 52 //Hades Boots
11 53 //Queen Boots
7 44 //Eternal Wing
8 44 //Eternal Wing
9 44 //Eternal Wing
10 44 //Eternal Wing
11 44 //Eternal Wing
How do I create level 4 wings?
hi everyone
how to add new CharSet Code in .dll ?
Sample
Config.ini (Client)
Font.cppQuote:
[MainConfig]Main_RankHornor=1
Main_AgiBugFix=1
Main_MiniMap_Enabled=0
Main_Font_Name=Tahoma
Main_Font_Bold=0
Main_Font_Height=13
Main_Font_Italic=0
Main_Font_Unicode=1
Main_Font_Width=0
Main_Font_Underline=0
Main_Font_Quality=3
Main_Font_StrikeOut=0
Main_Font_CharSet=936 <<<
in game not working !Quote:
int CharSet = GetPrivateProfileIntA("MainConfig", "Main_Font_CharSet", 936, ".\\Config.ini");
http://i.imgur.com/g0nGebC.jpg
Help, i cant connect to server..
how to edit client?
- - - Updated - - -
@KarLi can you help me on this?
What will i search on hex editor?
Hehe done, trying to connect now, hopefully it runs .. @allexander
- - - Updated - - -
Still can't connect. hmmm Disconnected from the server