Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Release] Nemesis 1.03.52 Patch + Source

Joined
Oct 29, 2007
Messages
1,288
Reaction score
1,303
Hi all again, well this time come to let one of my recent work for: 1.03.52, a patch is complete with: camera, sky, day and night system, fix of items, fix of textures and glow. All complete with its full source code too! Hope you enjoy!



Credits:

- sobieh
- zergnm
- gembrid
- vcorp
- nemesis
 
Last edited by a moderator:
Experienced Elementalist
Joined
Nov 30, 2010
Messages
208
Reaction score
8
Error when start main exe - "Unable to load"

WTF?
 
Kingdom of Shadows
Loyal Member
Joined
Jul 13, 2007
Messages
923
Reaction score
320
- clean files(no virus)
 
Newbie Spellweaver
Joined
Jan 18, 2012
Messages
11
Reaction score
0
start main exe Error - "Unable to load"

win7 64bit
 
Joined
Oct 29, 2007
Messages
1,288
Reaction score
1,303
well here my ultimate compilation of: Kalimdor Project V3, for: Season 6 Episode 2.. with all mods and fixes.

Some screens of code functional:
z5tAD - [Release] Nemesis 1.03.52 Patch + Source - RaGEZONE Forums


IzL4h - [Release] Nemesis 1.03.52 Patch + Source - RaGEZONE Forums




Code:
- Camera
- Skybox
- Day Night
- Fog Effect
- Fix Items
- Fix Textures
- Glow Library
- Custom Jewels
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Jan 18, 2012
Messages
11
Reaction score
0
well here my ultimate compilation of: Kalimdor Project V3, for: Season 6 Episode 2.. with all mods and fixes.

Some screens of code functional:
z5tAD - [Release] Nemesis 1.03.52 Patch + Source - RaGEZONE Forums


IzL4h - [Release] Nemesis 1.03.52 Patch + Source - RaGEZONE Forums




Where should copy this file?
 

Attachments

You must be registered for see attachments list
Joined
Oct 29, 2007
Messages
1,288
Reaction score
1,303
SmallHabit source re-write for me for: Season 6 Episode 2, for add new jewels:

Jewels.cpp
Code:
#include "Stdafx.h"
char* Custom = "Data\\Custom\\Items\\";
char* CustomFolder = "Custom\\Items\\";
//============================================================================
// Custom Jewels Description Text
//============================================================================
char * JewelofSkill = "It is used to add to your item a skill";
char * JewelofExcellent = "It is used to make your item to excellent item";
char * JewelofLevel = "It is used to make your item level directly to up to +15";
char * JewelofLuck = "It is used to make your item to luck item";
char * JewelofOption = "It is used to make your item option directly to up to +28";
char * JewelofAncient = "It is used to make your item to ancient item";
char * JewelofSocket = "It is used to add to your item to five socket slots";
//============================================================================
// Custom Conditional Text of Jewels
//============================================================================
char * SkillCond = "Only can be used for items that may have an skill";
char * SocketCond = "Only can be used for items that may be socket";
char * AncientCond = "Only can be used for items that may be ancient";
//============================================================================
// Restore Normal Items with Golden Color Name
//============================================================================
char * JewelofSoul = "It is used to make your item level to up to 7,8,9";
char * JewelofLife = "Increase item option by 1 level";
char * JewelofCreation = "Use to create fruits that increase stats";
char * SymbolofKundun = "Must have 5 for create lost map.";
char * JewelofGuardian = "Create and improve items for siege";
char * Gemstone = "Jewel with impurities";
char * JewelofHarmony = "Jewel for item reinforcement";
char * LowerRefiningStone = "Grant actual power to reinforced item.";
char * HigherRefiningStone = "Grant actual power to reinforced item.";
char * JewelofChaos = "It is used to combine Chaos items";
char * RemedyofLove = "Increase damage and attack speed";
char * RenaA = "Can use for exchange for items";
char * RenaB = "Golden Archer Special Item";
char * PetUnicornA = "Increase Attack Speed";
char * PetUnicornB = "Increase Critical Damage";
char * PetUnicornC = "Increase Excellent Damage";
//============================================================================

BOOL APIENTRY DllMain(HMODULE hModule,DWORD  ul_reason_for_call,LPVOID lpReserved)
{
	switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
			Init();
		break;
	}
	return TRUE;
}

void SetNop(DWORD dwOffset,int Size)
{
	for(int n=0;n<Size;n++)
		*(BYTE*)(dwOffset+n) = 0x90;
}

void HookThis(DWORD dwMyFuncOffset,DWORD dwJmpOffset)
{
	*(DWORD*)(dwJmpOffset+1) = dwMyFuncOffset-(dwJmpOffset+5);
}

void LoadThisFuckingModelByITEMID(int ItemID,char* ModelName,char* FolderFrom,char* WayFrom)
{
	_asm
	{
		PUSH -1
		PUSH ModelName                   	
		PUSH WayFrom
		PUSH ItemID
		mov eax,BMDModelLoad 
		CALL eax  

		PUSH 1
		PUSH 0x2600
		PUSH 0x2901
		PUSH FolderFrom
		PUSH ItemID
		mov eax,OpenTexture
		CALL eax
	}
}

__declspec(naked) void PatchMainForLoadModels()
{
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,200),"JewelOfLevel",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,201),"JewelOfLuck",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,202),"JewelOfSkill",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,203),"JewelOfOption",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,204),"JewelOfAncient",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,205),"JewelOfExcellent",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,206),"JewelOfSocket",CustomFolder,Custom);


	_asm
	{
		//1.03Z+
		PUSH -1
		PUSH 0x009AD444
		PUSH 0x009AD44C
		PUSH 0x20B2
		mov eax,BMDModelLoad 
		CALL eax
		ADD ESP,0x10
		mov eax,ReturnOffset
		JMP eax
	}
}

// Item SID ( (Section * 512) + ID = SID )
// Rena = 1C15

#define COLOR_ADR_ALLOW 0x005D5AED //1.03Z+
#define COLOR_ADR_RETURN 0x005D5966 //1.03Z+

void __declspec(naked) JewelsColor()
{
	_asm
	{
		//Original Soul
		cmp ax, 0x1C0E;
		je AddColor;
		
		//Jewel of Level
		cmp ax, 0x1CC8;
		je AddColor;
		
		//Jewel of Luck
		cmp ax, 0x1CC9;
		je AddColor;

		//Jewel of Skill
		cmp ax, 0x1CCA;
		je AddColor;

		//Jewel of Option
		cmp ax, 0x1CCB;
		je AddColor;

		//Jewel of Ancient
		cmp ax, 0x1CCC;
		je AddColor;

		//Jewel of Excellent
		cmp ax, 0x1CCD;
		je AddColor;

		//Jewel of Socket
		cmp ax, 0x1CCE;
		je AddColor;

		mov edx, COLOR_ADR_RETURN
		jmp edx;

AddColor:
		mov edx, COLOR_ADR_ALLOW
		jmp edx;
	}
}

__declspec(naked) void JewelInfoText()//finished
{
// Color de la tabla:
//------------------------------------------------------------------------
// 0x00 = blanco
// 0x01 = azul
// 0x02 = rojo
// 0x03 = amarillo
// 0x04 = verde
// 0x05 = fondo azul, rojo
// 0x06 = magenta
// 0x07 = fondo blanco, azul
// 0x08 = fondo blanco, beige
// 0x09 = fondo verde, azul
// 0x0A = gris
// 0x0B = púrpura (oscuro)
	_asm
	{
		//Restoring original item
		CMP WORD PTR DS:[EDI],0x1C0E
		JNZ Item1 //Next Item
		PUSH 0x23E //Text Line
		MOV ECX, 0x07C24858 //1.03Z+
		mov esi, 0x00402470 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[EAX+4] //1.03Z+
		CMP EAX,EBP
		JNZ 0x005DB96A
		MOV EAX, 0x0096A7B8
		PUSH EAX
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],EBP //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item1:
		CMP WORD PTR SS:[EDI],0x1CC8 //Item Number
		JNZ Item2 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofLevel
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item2:
		CMP WORD PTR SS:[EDI],0x1CC9 //Item Number
		JNZ Item3 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofLuck
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item3:
		CMP WORD PTR SS:[EDI],0x1CCA //Item Number
		JNZ Item4 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofSkill
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH SkillCond
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0A //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item4:
		CMP WORD PTR SS:[EDI],0x1CCB //Item Number
		JNZ Item5 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofOption
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item5:
		CMP WORD PTR SS:[EDI],0x1CCC //Item Number
		JNZ Item6 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofAncient
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH AncientCond
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0A //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item6:
		CMP WORD PTR SS:[EDI],0x1CCD //Item Number
		JNZ Item7 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofExcellent
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item7:
		CMP WORD PTR SS:[EDI],0x1CCE //Item Number
		JNZ Item8 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofSocket
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH SocketCond
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0A //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item8:
		CMP WORD PTR SS:[EDI],0x1C10 //Item Number
		JNZ Item9 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofLife
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item9:
		CMP WORD PTR SS:[EDI],0x1C16 //Item Number
		JNZ Item10 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofCreation
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item10:
		CMP WORD PTR SS:[EDI],0x1C1F //Item Number
		JNZ Item11 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofGuardian
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item11:
		CMP WORD PTR SS:[EDI],0x1C29 //Item Number
		JNZ Item12 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH Gemstone
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item12:
		CMP WORD PTR SS:[EDI],0x1C2A //Item Number
		JNZ Item13 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofHarmony
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item13:
		CMP WORD PTR SS:[EDI],0x1C2B //Item Number
		JNZ Item14 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH LowerRefiningStone
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item14:
		CMP WORD PTR SS:[EDI],0x1C2C //Item Number
		JNZ Item15 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH HigherRefiningStone
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item15:
		CMP WORD PTR SS:[EDI],0x1C1D //Item Number
		JNZ Item16 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH SymbolofKundun
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x07 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item16:
		CMP WORD PTR SS:[EDI],0x1C14 //Item Number
		JNZ Item17 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH RemedyofLove
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x06 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item17:
		CMP WORD PTR SS:[EDI],0x1C15 //Item Number
		JNZ Item18 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH RenaA
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH RenaB
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x02 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item18:
		CMP WORD PTR SS:[EDI],0x180F //Item Number
		JNZ Item19 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofChaos
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item19:
		CMP WORD PTR SS:[EDI],0x1A6A //Item Number
		JNZ Return //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH PetUnicornA
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		
		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH PetUnicornB
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH PetUnicornC
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return

Return:
		mov edi, 0x005DB99F //1.03Z+
		jmp edi;
	}
}

__declspec(naked) void JewelsSwitcher()
{
	_asm
	{
		//Original
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1C0D
		JE ItemAllowed
		
		//Jewel of Level
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC8
		JE ItemAllowed
		
		//Jewel of Luck
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC9
		JE ItemAllowed

		//Jewel of Skill
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCA
		JE ItemAllowed

		//Jewel of Option
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCB
		JE ItemAllowed

		//Jewel of Ancient
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCC
		JE ItemAllowed
		
		//Jewel of Excellent
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCD
		JE ItemAllowed

		//Jewel of Socket
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCE
		JE ItemAllowed

		mov eax,0x007EE833 //1.03Z+
		jmp eax

ItemAllowed:
		mov eax,0x007EE897 //1.03Z+
		jmp eax
	}
}

__declspec(naked) void JewelMoveOnItem2()
{
	_asm
	{
		//Original
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1C0E
		JNZ Next1
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next1
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next1
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next1:
		//Jewel of Level
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC8
		JNZ Next2
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next2
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next2
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next2:
		//Jewel of Luck
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC9
		JNZ Next3
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next3:
		//Jewel of Skill
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCA
		JNZ Next4
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next4:
		//Jewel of Option
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCB
		JNZ Next5
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next5:
		//Jewel of Ancient
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCC
		JNZ Next6
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next6:
		//Jewel of Excellent
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCD
		JNZ Next7
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next7:
		//Jewel of Socket
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCE
		JNZ Next
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next:
		mov edi, 0x0079A4CC
		jmp edi
	}
}

__declspec(naked) void JewelMoveOnItem1()
{
	_asm
	{
		//Original
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1C0E //Item
		JNZ Next1
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
Next1:
		//Jewel of Level
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC8 //Item
		JNZ Next2
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next2:
		//Jewel of Luck
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC9 //Item
		JNZ Next3
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next3:
		//Jewel of Skill
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCA //Item
		JNZ Next4
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next4:
		//Jewel of Option
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCB //Item
		JNZ Next5
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next5:
		//Jewel of Ancient
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCC //Item
		JNZ Next6
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next6:
		//Jewel of Excellent
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCD //Item
		JNZ Next7
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next7:
		//Jewel of Socket
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCE //Item
		JNZ Next
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next:
		mov esi, 0x007A9230 //1.03Z+
		jmp esi
	}
}

void HookOffset(DWORD my, DWORD tohook, BYTE type)
{
	*(BYTE*)tohook = type;
	*(DWORD*)(tohook+1) = my - (tohook+5);
}

void Init()
{
	//Hook JewelColor
	BYTE JewelsColors[] = { 0xFF, 0x25, 0xE0, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x005D595C,JewelsColors,sizeof(JewelsColors)); //1.03Z+
	*(unsigned int*)0x00969FE0 = (unsigned int)JewelsColor; //1.03Z+ (Offset y en BYTE)

	//Hook JewelText
	BYTE JewelText[] = { 0xFF, 0x25, 0x20, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	SetNop(0x005DB953,62); //1.03Z+
	memcpy((int*)0x005DB94D,JewelText,sizeof(JewelText)); //1.03Z+
	*(unsigned int*)0x00969F20 = (unsigned int)JewelInfoText; //1.03Z+ (Offset y en BYTE)

	//Hook JewelMoveItem1
	BYTE JewelMove1[] = { 0xFF, 0x25, 0xD5, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x007A9202,JewelMove1,sizeof(JewelMove1)); //1.03Z+
	*(unsigned int*)0x00969FD5 = (unsigned int)JewelMoveOnItem1; //1.03Z+ (Offset y en BYTE)
	
	//Hook JewelMoveItem2
	BYTE JewelMove2[] = { 0xFF, 0x25, 0xB0, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x007AAA3D,JewelMove2,sizeof(JewelMove2)); //1.03Z+
	*(unsigned int*)0x00969FB0 = (unsigned int)JewelMoveOnItem2; //1.03Z+ (Offset y en BYTE)

	//Hook JewelsSwitcher
	BYTE JewelsSwitchers[] = { 0xFF, 0x25, 0x00, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x007EE826,JewelsSwitchers,sizeof(JewelsSwitchers)); //1.03Z+
	*(unsigned int*)0x00969F00= (unsigned int)JewelsSwitcher; //1.03Z+ (Offset y en BYTE)
	
	DataJMP ModelJMP;
	SetNop(LoadModel_Offset,25);
	ModelJMP.Command=0xE9;
	ModelJMP.PointerToFunc=(DWORD)&PatchMainForLoadModels;
	memcpy((int*)LoadModel_Offset,&ModelJMP,sizeof(ModelJMP));
	HookThis((DWORD)&PatchMainForLoadModels,LoadModel_Offset);
}

Credits: SmallHabit, Crazzy and Nemesis.
 
Newbie Spellweaver
Joined
May 22, 2008
Messages
45
Reaction score
2
well here my ultimate compilation of: Kalimdor Project V3, for: Season 6 Episode 2.. with all mods and fixes.

Some screens of code functional:
z5tAD - [Release] Nemesis 1.03.52 Patch + Source - RaGEZONE Forums


IzL4h - [Release] Nemesis 1.03.52 Patch + Source - RaGEZONE Forums




Where should copy this file?


Hi
You can share your new jewel patch item

thank you

sorry bad eng
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Jul 29, 2010
Messages
111
Reaction score
5
nobody has a fix for this ... we need a coder to fix the source, compile it and add the dll's to the main ... but nobody will do this for free :)
 
Newbie Spellweaver
Joined
Aug 29, 2011
Messages
7
Reaction score
0
SmallHabit source re-write for me for: Season 6 Episode 2, for add new jewels:

Jewels.cpp
Code:
#include "Stdafx.h"
char* Custom = "Data\\Custom\\Items\\";
char* CustomFolder = "Custom\\Items\\";
//============================================================================
// Custom Jewels Description Text
//============================================================================
char * JewelofSkill = "It is used to add to your item a skill";
char * JewelofExcellent = "It is used to make your item to excellent item";
char * JewelofLevel = "It is used to make your item level directly to up to +15";
char * JewelofLuck = "It is used to make your item to luck item";
char * JewelofOption = "It is used to make your item option directly to up to +28";
char * JewelofAncient = "It is used to make your item to ancient item";
char * JewelofSocket = "It is used to add to your item to five socket slots";
//============================================================================
// Custom Conditional Text of Jewels
//============================================================================
char * SkillCond = "Only can be used for items that may have an skill";
char * SocketCond = "Only can be used for items that may be socket";
char * AncientCond = "Only can be used for items that may be ancient";
//============================================================================
// Restore Normal Items with Golden Color Name
//============================================================================
char * JewelofSoul = "It is used to make your item level to up to 7,8,9";
char * JewelofLife = "Increase item option by 1 level";
char * JewelofCreation = "Use to create fruits that increase stats";
char * SymbolofKundun = "Must have 5 for create lost map.";
char * JewelofGuardian = "Create and improve items for siege";
char * Gemstone = "Jewel with impurities";
char * JewelofHarmony = "Jewel for item reinforcement";
char * LowerRefiningStone = "Grant actual power to reinforced item.";
char * HigherRefiningStone = "Grant actual power to reinforced item.";
char * JewelofChaos = "It is used to combine Chaos items";
char * RemedyofLove = "Increase damage and attack speed";
char * RenaA = "Can use for exchange for items";
char * RenaB = "Golden Archer Special Item";
char * PetUnicornA = "Increase Attack Speed";
char * PetUnicornB = "Increase Critical Damage";
char * PetUnicornC = "Increase Excellent Damage";
//============================================================================

BOOL APIENTRY DllMain(HMODULE hModule,DWORD  ul_reason_for_call,LPVOID lpReserved)
{
	switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
			Init();
		break;
	}
	return TRUE;
}

void SetNop(DWORD dwOffset,int Size)
{
	for(int n=0;n<Size;n++)
		*(BYTE*)(dwOffset+n) = 0x90;
}

void HookThis(DWORD dwMyFuncOffset,DWORD dwJmpOffset)
{
	*(DWORD*)(dwJmpOffset+1) = dwMyFuncOffset-(dwJmpOffset+5);
}

void LoadThisFuckingModelByITEMID(int ItemID,char* ModelName,char* FolderFrom,char* WayFrom)
{
	_asm
	{
		PUSH -1
		PUSH ModelName                   	
		PUSH WayFrom
		PUSH ItemID
		mov eax,BMDModelLoad 
		CALL eax  

		PUSH 1
		PUSH 0x2600
		PUSH 0x2901
		PUSH FolderFrom
		PUSH ItemID
		mov eax,OpenTexture
		CALL eax
	}
}

__declspec(naked) void PatchMainForLoadModels()
{
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,200),"JewelOfLevel",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,201),"JewelOfLuck",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,202),"JewelOfSkill",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,203),"JewelOfOption",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,204),"JewelOfAncient",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,205),"JewelOfExcellent",CustomFolder,Custom);
	LoadThisFuckingModelByITEMID(ITEM_IN_MAIN(14,206),"JewelOfSocket",CustomFolder,Custom);


	_asm
	{
		//1.03Z+
		PUSH -1
		PUSH 0x009AD444
		PUSH 0x009AD44C
		PUSH 0x20B2
		mov eax,BMDModelLoad 
		CALL eax
		ADD ESP,0x10
		mov eax,ReturnOffset
		JMP eax
	}
}

// Item SID ( (Section * 512) + ID = SID )
// Rena = 1C15

#define COLOR_ADR_ALLOW 0x005D5AED //1.03Z+
#define COLOR_ADR_RETURN 0x005D5966 //1.03Z+

void __declspec(naked) JewelsColor()
{
	_asm
	{
		//Original Soul
		cmp ax, 0x1C0E;
		je AddColor;
		
		//Jewel of Level
		cmp ax, 0x1CC8;
		je AddColor;
		
		//Jewel of Luck
		cmp ax, 0x1CC9;
		je AddColor;

		//Jewel of Skill
		cmp ax, 0x1CCA;
		je AddColor;

		//Jewel of Option
		cmp ax, 0x1CCB;
		je AddColor;

		//Jewel of Ancient
		cmp ax, 0x1CCC;
		je AddColor;

		//Jewel of Excellent
		cmp ax, 0x1CCD;
		je AddColor;

		//Jewel of Socket
		cmp ax, 0x1CCE;
		je AddColor;

		mov edx, COLOR_ADR_RETURN
		jmp edx;

AddColor:
		mov edx, COLOR_ADR_ALLOW
		jmp edx;
	}
}

__declspec(naked) void JewelInfoText()//finished
{
// Color de la tabla:
//------------------------------------------------------------------------
// 0x00 = blanco
// 0x01 = azul
// 0x02 = rojo
// 0x03 = amarillo
// 0x04 = verde
// 0x05 = fondo azul, rojo
// 0x06 = magenta
// 0x07 = fondo blanco, azul
// 0x08 = fondo blanco, beige
// 0x09 = fondo verde, azul
// 0x0A = gris
// 0x0B = púrpura (oscuro)
	_asm
	{
		//Restoring original item
		CMP WORD PTR DS:[EDI],0x1C0E
		JNZ Item1 //Next Item
		PUSH 0x23E //Text Line
		MOV ECX, 0x07C24858 //1.03Z+
		mov esi, 0x00402470 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[EAX+4] //1.03Z+
		CMP EAX,EBP
		JNZ 0x005DB96A
		MOV EAX, 0x0096A7B8
		PUSH EAX
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],EBP //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item1:
		CMP WORD PTR SS:[EDI],0x1CC8 //Item Number
		JNZ Item2 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofLevel
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item2:
		CMP WORD PTR SS:[EDI],0x1CC9 //Item Number
		JNZ Item3 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofLuck
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item3:
		CMP WORD PTR SS:[EDI],0x1CCA //Item Number
		JNZ Item4 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofSkill
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH SkillCond
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0A //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item4:
		CMP WORD PTR SS:[EDI],0x1CCB //Item Number
		JNZ Item5 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofOption
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item5:
		CMP WORD PTR SS:[EDI],0x1CCC //Item Number
		JNZ Item6 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofAncient
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH AncientCond
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0A //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item6:
		CMP WORD PTR SS:[EDI],0x1CCD //Item Number
		JNZ Item7 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofExcellent
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item7:
		CMP WORD PTR SS:[EDI],0x1CCE //Item Number
		JNZ Item8 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofSocket
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH SocketCond
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0A //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item8:
		CMP WORD PTR SS:[EDI],0x1C10 //Item Number
		JNZ Item9 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofLife
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item9:
		CMP WORD PTR SS:[EDI],0x1C16 //Item Number
		JNZ Item10 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofCreation
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item10:
		CMP WORD PTR SS:[EDI],0x1C1F //Item Number
		JNZ Item11 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofGuardian
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item11:
		CMP WORD PTR SS:[EDI],0x1C29 //Item Number
		JNZ Item12 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH Gemstone
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item12:
		CMP WORD PTR SS:[EDI],0x1C2A //Item Number
		JNZ Item13 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofHarmony
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item13:
		CMP WORD PTR SS:[EDI],0x1C2B //Item Number
		JNZ Item14 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH LowerRefiningStone
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item14:
		CMP WORD PTR SS:[EDI],0x1C2C //Item Number
		JNZ Item15 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH HigherRefiningStone
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item15:
		CMP WORD PTR SS:[EDI],0x1C1D //Item Number
		JNZ Item16 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH SymbolofKundun
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x07 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item16:
		CMP WORD PTR SS:[EDI],0x1C14 //Item Number
		JNZ Item17 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH RemedyofLove
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x06 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item17:
		CMP WORD PTR SS:[EDI],0x1C15 //Item Number
		JNZ Item18 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH RenaA
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH RenaB
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x02 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item18:
		CMP WORD PTR SS:[EDI],0x180F //Item Number
		JNZ Item19 //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH JewelofChaos
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x00 //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return
Item19:
		CMP WORD PTR SS:[EDI],0x1A6A //Item Number
		JNZ Return //Jnz to Next Item or Return

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH PetUnicornA
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		
		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH PetUnicornB
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+

		LEA EAX,DWORD PTR DS:[EAX+EAX*4]
		PUSH PetUnicornC
		LEA EDX,DWORD PTR DS:[EAX+EAX*4]
		LEA EAX,DWORD PTR DS:[EDX*4+0x7D70050] //1.03Z+
		PUSH EAX
		mov esi, 0x0092CC18 //1.03Z+
		call esi
		MOV EAX,DWORD PTR DS:[0x7DA6EF4] //1.03Z+
		ADD ESP,8
		MOV DWORD PTR DS:[EAX*4+0x7D71248],0x0B //1.03Z+
		MOV DWORD PTR DS:[EAX*4+0x7DA0C40],EBP //1.03Z+
		INC EAX
		MOV DWORD PTR DS:[0x7DA6EF4],EAX //1.03Z+
		JMP Return

Return:
		mov edi, 0x005DB99F //1.03Z+
		jmp edi;
	}
}

__declspec(naked) void JewelsSwitcher()
{
	_asm
	{
		//Original
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1C0D
		JE ItemAllowed
		
		//Jewel of Level
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC8
		JE ItemAllowed
		
		//Jewel of Luck
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC9
		JE ItemAllowed

		//Jewel of Skill
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCA
		JE ItemAllowed

		//Jewel of Option
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCB
		JE ItemAllowed

		//Jewel of Ancient
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCC
		JE ItemAllowed
		
		//Jewel of Excellent
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCD
		JE ItemAllowed

		//Jewel of Socket
		MOV EDX,DWORD PTR SS:[EBP-0x20]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCE
		JE ItemAllowed

		mov eax,0x007EE833 //1.03Z+
		jmp eax

ItemAllowed:
		mov eax,0x007EE897 //1.03Z+
		jmp eax
	}
}

__declspec(naked) void JewelMoveOnItem2()
{
	_asm
	{
		//Original
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1C0E
		JNZ Next1
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next1
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next1
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next1:
		//Jewel of Level
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC8
		JNZ Next2
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next2
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next2
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next2:
		//Jewel of Luck
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC9
		JNZ Next3
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next3:
		//Jewel of Skill
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCA
		JNZ Next4
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next4:
		//Jewel of Option
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCB
		JNZ Next5
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next5:
		//Jewel of Ancient
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCC
		JNZ Next6
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next6:
		//Jewel of Excellent
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCD
		JNZ Next7
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next7:
		//Jewel of Socket
		MOV EDX,DWORD PTR SS:[EBP+0x08]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCE
		JNZ Next
		CMP DWORD PTR SS:[EBP-0x4],0x00
		JL Next
		CMP DWORD PTR SS:[EBP-0x4],0x08
		JG Next
		MOV AL,0x01
		
		mov edi, 0x007AAA5C //1.03Z+
		jmp edi
Next:
		mov edi, 0x0079A4CC
		jmp edi
	}
}

__declspec(naked) void JewelMoveOnItem1()
{
	_asm
	{
		//Original
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1C0E //Item
		JNZ Next1
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
Next1:
		//Jewel of Level
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC8 //Item
		JNZ Next2
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next2:
		//Jewel of Luck
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CC9 //Item
		JNZ Next3
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next3:
		//Jewel of Skill
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCA //Item
		JNZ Next4
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next4:
		//Jewel of Option
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCB //Item
		JNZ Next5
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next5:
		//Jewel of Ancient
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCC //Item
		JNZ Next6
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next6:
		//Jewel of Excellent
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCD //Item
		JNZ Next7
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next7:
		//Jewel of Socket
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		MOVSX EAX,WORD PTR DS:[EDX]
		CMP EAX,0x1CCE //Item
		JNZ Next
		MOV ECX,DWORD PTR SS:[EBP-0x9C]
		PUSH ECX 
		MOV EDX,DWORD PTR SS:[EBP-0x78]
		PUSH EDX 
		MOV ECX,DWORD PTR SS:[EBP-0xB4]
		mov edi, 0x007AA974
		call edi
		MOV BYTE PTR SS:[EBP-0xA0],AL
		
		mov esi, 0x007A9300 //1.03Z+
		jmp esi
Next:
		mov esi, 0x007A9230 //1.03Z+
		jmp esi
	}
}

void HookOffset(DWORD my, DWORD tohook, BYTE type)
{
	*(BYTE*)tohook = type;
	*(DWORD*)(tohook+1) = my - (tohook+5);
}

void Init()
{
	//Hook JewelColor
	BYTE JewelsColors[] = { 0xFF, 0x25, 0xE0, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x005D595C,JewelsColors,sizeof(JewelsColors)); //1.03Z+
	*(unsigned int*)0x00969FE0 = (unsigned int)JewelsColor; //1.03Z+ (Offset y en BYTE)

	//Hook JewelText
	BYTE JewelText[] = { 0xFF, 0x25, 0x20, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	SetNop(0x005DB953,62); //1.03Z+
	memcpy((int*)0x005DB94D,JewelText,sizeof(JewelText)); //1.03Z+
	*(unsigned int*)0x00969F20 = (unsigned int)JewelInfoText; //1.03Z+ (Offset y en BYTE)

	//Hook JewelMoveItem1
	BYTE JewelMove1[] = { 0xFF, 0x25, 0xD5, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x007A9202,JewelMove1,sizeof(JewelMove1)); //1.03Z+
	*(unsigned int*)0x00969FD5 = (unsigned int)JewelMoveOnItem1; //1.03Z+ (Offset y en BYTE)
	
	//Hook JewelMoveItem2
	BYTE JewelMove2[] = { 0xFF, 0x25, 0xB0, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x007AAA3D,JewelMove2,sizeof(JewelMove2)); //1.03Z+
	*(unsigned int*)0x00969FB0 = (unsigned int)JewelMoveOnItem2; //1.03Z+ (Offset y en BYTE)

	//Hook JewelsSwitcher
	BYTE JewelsSwitchers[] = { 0xFF, 0x25, 0x00, 0x9F, 0x96, 0x00, 0x90, 0x90, 0x90, 0x90 };
	memcpy((int*)0x007EE826,JewelsSwitchers,sizeof(JewelsSwitchers)); //1.03Z+
	*(unsigned int*)0x00969F00= (unsigned int)JewelsSwitcher; //1.03Z+ (Offset y en BYTE)
	
	DataJMP ModelJMP;
	SetNop(LoadModel_Offset,25);
	ModelJMP.Command=0xE9;
	ModelJMP.PointerToFunc=(DWORD)&PatchMainForLoadModels;
	memcpy((int*)LoadModel_Offset,&ModelJMP,sizeof(ModelJMP));
	HookThis((DWORD)&PatchMainForLoadModels,LoadModel_Offset);
}

Credits: SmallHabit, Crazzy and Nemesis.


hi,can you post the "Jewels.h" ? thanks
 
Back
Top