[Release] TitansTech Official Full Source Code

Pet DL work perfect.. :D

bet0x - [Release] TitansTech Official Full Source Code - RaGEZONE Forums

cool but.. on my opinion.. Season 6 Episode 3 is a horrible version bro.. Master Skill Three maybe is upgrade with more Buff's and anothers shits (this is easy to make on client side too, something like: ExTeam Rage System) xD, but the Webzen Company Designers make changes on: "Interface Style", with new style from: Ex700 series, and this is ****.. because... the rest of interfaces parts are like: "old style" -> (Season 4) and Rage Fighter Character is not good.. (well I don't like this char).. then I preffer use like: Season 5 Episode 4 Full GMO (Summoner Character have Master Skill Three too)... and this version have less bugs (NO DarkSide BUG to fix, and etc) XD, and I can add on more easy way all items that I need.. (without Edit: ItemToolTip.bmd and ItemToolTipText.bmd files, that is a very slow process for much added Weapons/Sets Parts)... Cash Shop and Item Period System 100% Works (is the same that on: 1.04d maybe some small differences) in my opinion is better work with: Season 5.4 Client xD (and for this version I can put all cool Arieth 4th Level Wings + Original Effects created by sobieh, and anothers items with effects too) xD :D:

PS: Summoner Master Skill Three Preview on: (Season 5.4 GMO)

Nu5SIaG - [Release] TitansTech Official Full Source Code - RaGEZONE Forums


PS 2: Here I leave for all -> FULL MINIMAP SRC WITH OFFSETS TO: 1.04D GMO (With my new cool way to hooking on DLL using: Class or Virtual Class only on Hook Function ;); )

Enjoy it !

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

[COLOR=#b22222][B]// Buffers -> Using this method.. is not necesary mov esi, 0x00XXX or: mov edi, //0x00XX and prevents.. possible problems with information registers

[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadImg1	= 0x007721E0;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap1	= 0x00860FC0;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap2	= 0x008615F0;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap3	= 0x00886C20;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap4	= 0x004E65C0;[/B][/COLOR]


MiniMap		gMiniMap; [COLOR=#ffa07a]//Small MiniMap Class Initialization (Only for: Hook Main Function)[/COLOR]


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


	struct stat buffer;


	if (stat(FullMapName, &buffer)) [COLOR=#40e0d0]// -> On this way Minimap not have crashs on Event Maps... xD[/COLOR]
	{
		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 [COLOR=#ff8c00]// -> Here is not used: mov edi and anothers bad instructions to memory is only direct CALL to Main Offset[/COLOR] :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 [COLOR=#ff0000]// -> 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).[/COLOR]
	}
}


[COLOR=#ff0000]#define oMapCheckerHook1	0x007D3B6D[/COLOR]
[COLOR=#ff0000]#define oMapCheckerHook2	0x00886B87[/COLOR]
[COLOR=#ff0000]#define oMapCheckerHook3	0x0062EB3D[/COLOR]


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


void [COLOR=#008000]MiniMap::Load()[/COLOR]
{
	[COLOR=#ff0000]SetOp((LPVOID)oMapCheckerHook1, (LPVOID)MapCheckerCore1, ASM::CALL);[/COLOR]
[COLOR=#ff0000]	SetOp((LPVOID)oMapCheckerHook2, (LPVOID)MapCheckerCore1, ASM::CALL);[/COLOR]
[COLOR=#ff0000]	SetOp((LPVOID)oMapCheckerHook3, (LPVOID)MapCheckerCore2, ASM::CALL);[/COLOR]
}

Code:
#pragma once
// ----------------------------------------------------------------------------------------------


#include "Import.h" [COLOR=#ff0000]// -> This is not necesary.. on my zClient Modified Source I only use this.. to make a small new mod (is TEST) xD[/COLOR]

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


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);


[COLOR=#008000]class MiniMap[/COLOR]
[COLOR=#008000]{[/COLOR]
[COLOR=#008000]public:[/COLOR]
[COLOR=#008000]	void		Load();[/COLOR]
[COLOR=#008000]	// ----[/COLOR]
[COLOR=#008000]}; extern MiniMap gMiniMap;[/COLOR]

PS 4: Sorry I don't make a external HOOK Function to change MiniMap Key... but if you change this "PUSH 9" offset: #define oMiniMapKeyPushOffset 0x007D3B55, directly with ollydbg on your main.exe then.. your MINIMAP is SHOW/HIDE using: Shift Keys (PUSH 10) or you can change too: oScreenMapKeyPushOffset (is the same), but for this exists a small check function into the main.. I mean a: "JNZ" instruction.. you must change this too or your: Screen Map is not Close event using: Shift key xD.

PS 5: And I leave here my cool: "Patch" to any Client: 1.04d version, to put MiniMaps on every: "WorldXX" Folder.. with every Mini Image (Remaked from: ScreenMaps TGA and converted to: JPG, have better quality)..

 
Last edited:
More nice and cool customs, please watch this: Glow in Tron Mod 2.0 (Originally maded by: SmallHabit) + Linear, Tri-Linear & Anisotropic Filters (to a better Textures Quality -> Better GFx), to: Season 5.4 GMO

Screenshots:

JQY28fq - [Release] TitansTech Official Full Source Code - RaGEZONE Forums


KadECqc - [Release] TitansTech Official Full Source Code - RaGEZONE Forums


lXYlQ1N - [Release] TitansTech Official Full Source Code - RaGEZONE Forums


PS: Sorry for spam bet0x, is related to this files.. I think that is not problems, if I make posts here.

PS 2: New Cool Water Shader (Coming Soon), Cool Particle Emitter (Extern) & Shiny Dynamic Sprite (Extern), I'm learning some cool methods from: Cg OpenGL ToolKit, thanks to: SmallHabit and his: Glow Tron 2.0, thanks for this bro.
 
nemesis, s5 is a poor version, because dont have a MuHelper ..
MuHelper is a good tool for lower servers, so muservers < s6 = Good forFast servers ^^
 
cool but.. on my opinion.. Season 6 Episode 3 is a horrible version bro.. Master Skill Three maybe is upgrade with more Buff's and anothers shits (this is easy to make on client side too, something like: ExTeam Rage System) xD, but the Webzen Company Designers make changes on: "Interface Style", with new style from: Ex700 series, and this is ****.. because... the rest of interfaces parts are like: "old style" -> (Season 4) and Rage Fighter Character is not good.. (well I don't like this char).. then I preffer use like: Season 5 Episode 4 Full GMO (Summoner Character have Master Skill Three too)... and this version have less bugs (NO DarkSide BUG to fix, and etc) XD, and I can add on more easy way all items that I need.. (without Edit: ItemToolTip.bmd and ItemToolTipText.bmd files, that is a very slow process for much added Weapons/Sets Parts)... Cash Shop and Item Period System 100% Works (is the same that on: 1.04d maybe some small differences) in my opinion is better work with: Season 5.4 Client xD (and for this version I can put all cool Arieth 4th Level Wings + Original Effects created by sobieh, and anothers items with effects too) xD :D:

PS: Summoner Master Skill Three Preview on: (Season 5.4 GMO)

Nu5SIaG - [Release] TitansTech Official Full Source Code - RaGEZONE Forums


PS 2: Here I leave for all -> FULL MINIMAP SRC WITH OFFSETS TO: 1.04D GMO (With my new cool way to hooking on DLL using: Class or Virtual Class only on Hook Function ;); )

Enjoy it !

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

[COLOR=#b22222][B]// Buffers -> Using this method.. is not necesary mov esi, 0x00XXX or: mov edi, //0x00XX and prevents.. possible problems with information registers

[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadImg1	= 0x007721E0;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap1	= 0x00860FC0;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap2	= 0x008615F0;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap3	= 0x00886C20;[/B][/COLOR]
[COLOR=#b22222][B]DWORD LoadMap4	= 0x004E65C0;[/B][/COLOR]


MiniMap		gMiniMap; [COLOR=#ffa07a]//Small MiniMap Class Initialization (Only for: Hook Main Function)[/COLOR]


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


	struct stat buffer;


	if (stat(FullMapName, &buffer)) [COLOR=#40e0d0]// -> On this way Minimap not have crashs on Event Maps... xD[/COLOR]
	{
		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 [COLOR=#ff8c00]// -> Here is not used: mov edi and anothers bad instructions to memory is only direct CALL to Main Offset[/COLOR] :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 [COLOR=#ff0000]// -> 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).[/COLOR]
	}
}


[COLOR=#ff0000]#define oMapCheckerHook1	0x007D3B6D[/COLOR]
[COLOR=#ff0000]#define oMapCheckerHook2	0x00886B87[/COLOR]
[COLOR=#ff0000]#define oMapCheckerHook3	0x0062EB3D[/COLOR]


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


void [COLOR=#008000]MiniMap::Load()[/COLOR]
{
	[COLOR=#ff0000]SetOp((LPVOID)oMapCheckerHook1, (LPVOID)MapCheckerCore1, ASM::CALL);[/COLOR]
[COLOR=#ff0000]	SetOp((LPVOID)oMapCheckerHook2, (LPVOID)MapCheckerCore1, ASM::CALL);[/COLOR]
[COLOR=#ff0000]	SetOp((LPVOID)oMapCheckerHook3, (LPVOID)MapCheckerCore2, ASM::CALL);[/COLOR]
}

Code:
#pragma once
// ----------------------------------------------------------------------------------------------


#include "Import.h" [COLOR=#ff0000]// -> This is not necesary.. on my zClient Modified Source I only use this.. to make a small new mod (is TEST) xD[/COLOR]

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


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);


[COLOR=#008000]class MiniMap[/COLOR]
[COLOR=#008000]{[/COLOR]
[COLOR=#008000]public:[/COLOR]
[COLOR=#008000]	void		Load();[/COLOR]
[COLOR=#008000]	// ----[/COLOR]
[COLOR=#008000]}; extern MiniMap gMiniMap;[/COLOR]

PS 4: Sorry I don't make a external HOOK Function to change MiniMap Key... but if you change this "PUSH 9" offset: #define oMiniMapKeyPushOffset 0x007D3B55, directly with ollydbg on your main.exe then.. your MINIMAP is SHOW/HIDE using: Shift Keys (PUSH 10) or you can change too: oScreenMapKeyPushOffset (is the same), but for this exists a small check function into the main.. I mean a: "JNZ" instruction.. you must change this too or your: Screen Map is not Close event using: Shift key xD.

PS 5: And I leave here my cool: "Patch" to any Client: 1.04d version, to put MiniMaps on every: "WorldXX" Folder.. with every Mini Image (Remaked from: ScreenMaps TGA and converted to: JPG, have better quality)..


Thanks for this mauro, but I have this error for struct stat buffer; <-- Incomplete type is not allowed, how to fix it?
 
The thread was partially cleaned as it got full of offtopic. Please post in this thread only if you have/need some information regarding this release and keep all that offtopic talk for private chat or whatever. Also if you want just to show your opinion on this release please use the Like/Dislike button in the first post.

Thanks for understanding and have a great new year everyone!
 
@mauro: after using this minimap, when i close zmain.exe, it still appear in the window processes, not closed completely, can you fix this?

I don't know why you have this problem bro, since.. my zMain.exe + my zClient.dll (Modified) works fine.. but I thinks that maybe you don't have on your: "dllmain.cpp" this:

Code:
extern "C" __declspec(dllexport)void Init()
{
	DWORD OldProtect;
    // ----
[COLOR=#ff8c00]    if(VirtualProtect(LPVOID(0x00401000),0x00D21FFF,PAGE_EXECUTE_READWRITE,&OldProtect))[/COLOR]
    {
		#ifdef __NOVUS__
		gCraftSystem.Load();
		#endif
		gConnectEx.Load();
		gController.Load();
		gChatExpanded.Load();
		gItemPrice.Load();
		gItem.Load();
		gResetSystem.Load();
		gProtocol.Load();
		gObjUser.Load();
		gOther.Load();
		gMiniMap.Load();
		gInterface.Load();
		gVisualFix.InitVisualFix();
		g_ItemModel.Load();
		gOffTrade.Init();
		gMonster.Load();
		//gCheatGuard.Load();
		//gSocketItem.Load();
		// -----
		ItemAsmLoad();
		InitRotateDmg();
		gFiltersInit();
		// -----
		#ifdef __RMOS__
		g_ItemRank.Load(); 
		#endif
		[COLOR=#008000]// ----[/COLOR]
[COLOR=#008000]		//char szTemp[256];[/COLOR]
[COLOR=#008000]		//sprintf(szTemp,"OBJECT size is 0x%02X", sizeof(OBJECT));[/COLOR]
[COLOR=#008000]		//MessageBox(HWND_DESKTOP,szTemp,NULL,MB_OK);[/COLOR]
[COLOR=#008000]		// ----[/COLOR]
		LoadLibrary("Item.dll");
		LoadLibrary("Glow.dll");
	}
}
// ----------------------------------------------------------------------------------------------


BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved)
{
	switch(dwReason)
	{
	case DLL_PROCESS_DETACH:
		{
			[COLOR=#ff8c00]// --[/COLOR]
		}
		break;
		// --
	case DLL_PROCESS_ATTACH:
		{
			gController.Instance = hModule;
		}
		break;
	}
	// ----
	return true;
}
// ----------------------------------------------------------------------------------------------

PS: VirtualProtect Offset from: 1.04d GMO main.exe (Original, I mean.. is the last main.exe Memory offset for this version)... on this case you are using a custom: "Class" to include MiniMap to source -> "gMiniMap.Load();" but.. is necesary load all memory into the range memory offsets, and you can add on your: "MiniMap.cpp" file this:

nGO4IwX - [Release] TitansTech Official Full Source Code - RaGEZONE Forums


PS 2: Temp fix made by:
psychedelic

PS 3: Since.. this: POP EBP instruction on my: zClient.dll Source.. is make Crash to my 1.04d GMO main.exe.. then I move it.​
 
@mauro07 Please don't take this as an offense, your work is very appreciated, but, since you clearly know you are spamming this thread, why you keep doing it? The title of this thread is TitansTech Official Full Source Code (Server Source), this (I'm sure you know) means that we talk about the details on this release which is server source code and not the "related" client manipulation; I mean, if talking about the "related" was the case here, then you could post your contribution in every other release topic. May I suggest that you create your own topic since you have many nice additions? So we will be able to keep this thread clean.

For example. Like this post from aecrimch: http://forum.ragezone.com/f197/main-gmo-104d-custom-items-854021/

Thank you
 
I will clear this up, on Docs & Folder there is two folders for the Updater and for the Installer. Compibe, copy binary then run the Installer AND THEN THE UPDATER.
 
I will clear this up, on Docs & Folder there is two folders for the Updater and for the Installer. Compibe, copy binary then run the Installer AND THEN THE UPDATER.

I can create a script to generate database file ?
 
Back