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!

Addon.dll for main 1.03Y JPN (or any main)

Status
Not open for further replies.
Junior Spellweaver
Joined
May 31, 2011
Messages
138
Reaction score
20
mmm looks nice except object id:) I guess u should explain how to calculate it.

Object Index*512+Object Id,
 
Experienced Elementalist
Joined
Oct 11, 2008
Messages
225
Reaction score
423
Very nice addon.
Big Thanks)

P.S.: You can make gold name/glow/description/price for new jewels?
 
Last edited:
Newbie Spellweaver
Joined
Jun 15, 2011
Messages
43
Reaction score
1
You can make only NPCSkins for 1.07V ? ;>
 
Joined
Oct 29, 2007
Messages
1,290
Reaction score
1,311
very good! nice dev! xD.

DarkSim: The source code to load the main jewelry, custom color names and other things are the same as original jewelry made ​​by Webzen.. already provided.. I share here, the credits are the source for SmallHabit

Code:
//=================================
// LCTeam 1.00S Main Project v0.2b
// Started : 22.03.2010
// Coder : SmallHabit
//=================================

#include "Jewels.h"
#include "Utils.h"

void JewelsInitHook()
{
//Hook NewJewelColor
BYTE JewelsNewsPrice[] = { 0xFF, 0x25, 0x00, 0x63, 0x90, 0x00, 0x90, 0x90, 0x90, 0x90 };
memcpy((int*)0x0052BBCB,JewelsNewsPrice,sizeof(Jew elsNewsPrice)); //1.00Y
*(unsigned int*)0x00906300 = (unsigned int)JewelsNewPrice; //

//Hook NewJewelColor
BYTE JewelsColors[] = { 0xFF, 0x25, 0x10, 0x63, 0x90, 0x00, 0x90, 0x90, 0x90, 0x90 };
memcpy((int*)0x005D5649,JewelsColors,sizeof(Jewels Colors)); //1.00Y
*(unsigned int*)0x00906310 = (unsigned int)JewelsColor; //

//Hook JewelText
BYTE JewelText[] = { 0xFF, 0x25, 0x20, 0x63, 0x90, 0x00, 0x90, 0x90, 0x90, 0x90 };
SetNop(0x005DA181,62); //1.00Y
memcpy((int*)0x005DA17B,JewelText,sizeof(JewelText )); //1.00Y
*(unsigned int*)0x00906320 = (unsigned int)JewelInfoText; //

//Hook NewJewelDrop
BYTE JewelDrop[] = { 0xFF, 0x25, 0x30, 0x63, 0x90, 0x00, 0x90, 0x90, 0x90, 0x90 };
memcpy((int*)0x005E3A45,JewelDrop,sizeof(JewelDrop )); //1.00Y
*(unsigned int*)0x00906330 = (unsigned int)JewelNewDrop; //

//Hook JewelMoveItem1
BYTE JewelMove1[] = { 0xFF, 0x25, 0x40, 0x63, 0x90, 0x00, 0x90, 0x90, 0x90, 0x90 };
memcpy((int*)0x00798F1C,JewelMove1,sizeof(JewelMov e1)); //1.00Y
*(unsigned int*)0x00906340 = (unsigned int)JewelMoveOnItem1; //

//Hook JewelMoveItem2
BYTE JewelMove2[] = { 0xFF, 0x25, 0x50, 0x63, 0x90, 0x00, 0x90, 0x90, 0x90, 0x90 };
memcpy((int*)0x0079A4AF,JewelMove2,sizeof(JewelMov e2)); //1.00Y
*(unsigned int*)0x00906350 = (unsigned int)JewelMoveOnItem2; //

//Hook JewelsSwitcher2
BYTE JewelsSwitchers2[] = { 0xFF, 0x25, 0x80, 0x3F, 0x8F, 0x00, 0x90, 0x90, 0x90, 0x90 };
memcpy((int*)0x00792719,JewelsSwitchers2,sizeof(Je welsSwitchers2)); //1.03Y
*(unsigned int*)0x008F3F80 = (unsigned int)JewelsSwitcher2; //
}

void __declspec(naked) JewelsSwitcher2()
{
_asm
{
//Original
MOV EDX,DWORD PTR SS:[EBP-0x14]
MOVSX EAX,WORD PTR DS:[EDX]
CMP EAX,0x1C0D
JE ItemAllowed

//Jewel Of Luck
MOV EDX,DWORD PTR SS:[EBP-0x14]
MOVSX EAX,WORD PTR DS:[EDX]
CMP EAX,0x1C9B
JE ItemAllowed

//Jewel Of Skill
MOV EDX,DWORD PTR SS:[EBP-0x14]
MOVSX EAX,WORD PTR DS:[EDX]
CMP EAX,0x1C9C
JE ItemAllowed

mov eax,0x00792726 //new
jmp eax

ItemAllowed:
mov eax,0x0079276F //new
jmp eax
}
}

void __declspec(naked) JewelsColor()
{
_asm
{
//Original Soul
cmp ax, 0x1C0E;
je AddColor;

//Jewel Of Luck
cmp ax, 0x1C9B;
je AddColor;

//Jewel Of Skill
cmp ax, 0x1C9C;
je AddColor;

mov edx, COLOR_ADR_RETURN;
jmp edx;

AddColor:
mov edx, COLOR_ADR_ALLOW;
jmp edx;
}
}

void __declspec(naked) JewelInfoText()
{
_asm
{
//Original (Bless)
JNZ Item1 //Next Item
PUSH 0x23C //Text Line
MOV ECX, 0x07BAF2C0
mov esi, 0x00403A60
call esi
PUSH EAX
MOV EAX,DWORD PTR DS:[0x7D2739C]
LEA EAX,DWORD PTR DS:[EAX+EAX*4]
LEA EDX,DWORD PTR DS:[EAX+EAX*4]
LEA EAX,DWORD PTR DS:[EDX*4+0x7CF42A0]
PUSH EAX
mov esi, 0x008C5E68
call esi
MOV EAX,DWORD PTR DS:[0x7D2739C]
ADD ESP,8
MOV DWORD PTR DS:[EAX*4+0x7CF5490],EBX
MOV DWORD PTR DS:[EAX*4+0x7D24968],EBX
INC EAX

Item1:
//Jewel Of Luck
MOV DWORD PTR DS:[0x7D2739C],EAX
CMP WORD PTR SS:[EBP],0x1C9B //Item Number
JNZ Item2 //Jnz to Next Item or Return
PUSH 2555 //Text Line
MOV ECX, 0x07BAF2C0
mov esi, 0x00403A60
call esi
PUSH EAX
MOV EAX,DWORD PTR DS:[0x7D2739C]
LEA EAX,DWORD PTR DS:[EAX+EAX*4]
LEA EDX,DWORD PTR DS:[EAX+EAX*4]
LEA EAX,DWORD PTR DS:[EDX*4+0x7CF42A0]
PUSH EAX
mov esi, 0x008C5E68
call esi
MOV EAX,DWORD PTR DS:[0x7D2739C]
ADD ESP,8
MOV DWORD PTR DS:[EAX*4+0x7CF5490],EBX
MOV DWORD PTR DS:[EAX*4+0x7D24968],EBX
INC EAX
MOV DWORD PTR DS:[0x7D2739C],EAX

Item2:
//Jewel Of Skill
MOV DWORD PTR DS:[0x7D2739C],EAX
CMP WORD PTR SS:[EBP],0x1C9C //Item Number
JNZ Return //Jnz to Next Item or Return
PUSH 2556 //Text Line
MOV ECX, 0x07BAF2C0
mov esi, 0x00403A60
call esi
PUSH EAX
MOV EAX,DWORD PTR DS:[0x7D2739C]
LEA EAX,DWORD PTR DS:[EAX+EAX*4]
LEA EDX,DWORD PTR DS:[EAX+EAX*4]
LEA EAX,DWORD PTR DS:[EDX*4+0x7CF42A0]
PUSH EAX
mov esi, 0x008C5E68
call esi
MOV EAX,DWORD PTR DS:[0x7D2739C]
ADD ESP,8
MOV DWORD PTR DS:[EAX*4+0x7CF5490],EBX
MOV DWORD PTR DS:[EAX*4+0x7D24968],EBX
INC EAX
MOV DWORD PTR DS:[0x7D2739C],EAX

Return:
mov edi, 0x005DA1C1 //1.00Y
jmp edi;
}
}

void __declspec(naked) JewelsNewPrice()
{
_asm
{
//Soul Original
cmp ecx,0x1C0E
jnz Price1
mov dword ptr ss:[ebp-8],0x5B8D80
mov dword ptr ss:[ebp-4],0x0
mov esi, 0x0052D06F //1.00Y
jmp esi;

Price1:
mov edx,dword ptr ss:[ebp+8]
movsx eax,word ptr ds:[edx]

mov esi, JewelOfLuck;
jmp esi;

//Jewel of Luck
JewelOfLuck:
cmp ecx,0x1C9B
jnz Price2
mov dword ptr ss:[ebp-8],0x989680
mov dword ptr ss:[ebp-4],0x0
mov esi, 0x0052D06F
jmp esi;

Price2:
mov edx,dword ptr ss:[ebp+8]
movsx eax,word ptr ds:[edx]

mov esi, JewelOfSkill;
jmp esi;

//Jewel of Skill
JewelOfSkill:
cmp ecx,0x1C9C
jnz Price3
mov dword ptr ss:[ebp-8],0x17D7840
mov dword ptr ss:[ebp-4],0x0
mov esi, 0x0052D06F
jmp esi;

Price3:
mov edx,dword ptr ss:[ebp+8]
movsx eax,word ptr ds:[edx]

mov esi, 0x0052BBEC;
jmp esi;
}
}

void __declspec(naked) JewelNewDrop()
{
_asm
{
//Original
CMP AX,0x1C0E
JE Return

//Jewel Of Luck
CMP AX,0x1C9B
JE Return

//Jewel Of Skill
CMP AX,0x1C9C
JE Return

mov edi, 0x005E3A4F
jmp edi;

Return:
mov edi, 0x005E3C52;
jmp edi;
}
}

void __declspec(naked) 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, 0x0079A4CE
jmp edi

Next1:
//Jewel Of Luck
MOV EDX,DWORD PTR SS:[EBP+0x08]
MOVSX EAX,WORD PTR DS:[EDX]
CMP EAX,0x1C9B
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, 0x0079A4CE
jmp edi

Next2:
//Jewel Of Skill
MOV EDX,DWORD PTR SS:[EBP+0x08]
MOVSX EAX,WORD PTR DS:[EDX]
CMP EAX,0x1C9C
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, 0x0079A4CE
jmp edi

Next:
mov edi, 0x0079A4CC
jmp edi
}
}

void __declspec(naked) 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, 0x0079A40F
call edi
MOV BYTE PTR SS:[EBP-0xA0],AL

Next1:
//Jewel Of Luck
MOV EDX,DWORD PTR SS:[EBP-0x78]
MOVSX EAX,WORD PTR DS:[EDX]
CMP EAX,0x1C9B //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, 0x0079A40F
call edi
MOV BYTE PTR SS:[EBP-0xA0],AL

mov esi, 0x0079901A
jmp esi

Next2:
//Jewel Of Luck
MOV EDX,DWORD PTR SS:[EBP-0x78]
MOVSX EAX,WORD PTR DS:[EDX]
CMP EAX,0x1C9C //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, 0x0079A40F
call edi
MOV BYTE PTR SS:[EBP-0xA0],AL

mov esi, 0x0079901A
jmp esi

Next:
mov esi, 0x00798F4A
jmp esi
}
}

and .h file:

Code:
DECLARE_HOOK(GetItemPrice, void * pItem, int a2)
{
if (ItemCheck(REF_16(pItem))) {
return ITEM_PRICE;
}

return RealGetItemPrice(pItem, a2);
}

CodeBlocks: Here I leave you (to you and the community), the source code, which I corrected this last time, as much as possible (in spite of not knowing much about c + +) for camera + mini + heaven with the project and other files. .. to compile with visual studio 2005 .. also has the offsets, and you compile and test (only the 3D camera), and the camera works fine .. I do not know the minimap and the sky ... offsets are of my interest: aHelper using the main 1.07P + contributed to by: chris05, and the code is to vcorp that Decompiler in: MyGSFun, and re-built using other parts of code: MuLengend.

Link:

PS: The reason why I'm bringing these things .. is that from now on .. I really learn to program, stop being a Leecher .. and promises to help people working with the same intentions as yo .. provide the free developments and sources.
 
Last edited:
Junior Spellweaver
Joined
Jul 11, 2011
Messages
190
Reaction score
54
SmallHabbitt source is for main 1.00Y, this client or main is MuBlue?
And if someone have this main (1.00Y) version please uploaded.
 
Joined
Oct 29, 2007
Messages
1,290
Reaction score
1,311
I want to know if it works correctly dll: Sky + cam + minimap shared... be possible if you could test it? especially want to know if it works the sky.

ps: Here I leave the folder to be added into: Data. --> Link
 
Last edited:
Experienced Elementalist
Joined
Oct 11, 2008
Messages
225
Reaction score
423
Oh, remembered - would be cool add "Monster HP Bar (by mirraseq & Dudi)" and " " :mellow:

P.S.: In Chatwd offsets for 1.03.27 JPN

- Offsets for 1.03.11 (Thanks DeadMan)
Code:
const int GetDisplayMsgType = 0x6F7FE0;  
const int SetDisplayMsgType = 0x6F7F95;

const int ShowChatMsgs = 0x6F5584;

const int ShowChatMsgsCall_Hook = 0x6F7927;

const int NewCall = 0x8510BA;

const int FixSysMsg1_Hook = 0x6F60AC;      
const int FixSysMsg1_FALSE = FixSysMsg1_Hook+5; 
const int FixSysMsg1_TRUE = 0x6F6165;

const int FixSysMsg2_Hook = 0x6F63B3;
const int FixSysMsg2_FALSE = FixSysMsg2_Hook+5; 
const int FixSysMsg2_TRUE = 0x6F64B6;

const int FixSysMsg3_Hook = 0x6F6715;
const int FixSysMsg3_FALSE = FixSysMsg3_Hook+5; 
const int FixSysMsg3_TRUE = 0x6F67DA;
 
Last edited:
Experienced Elementalist
Joined
Oct 11, 2008
Messages
225
Reaction score
423
Chatwd is division of chat section for logs and chat)
CodeBlocks - Addon.dll for main 1.03Y JPN (or any main) - RaGEZONE Forums
 
Junior Spellweaver
Joined
Aug 5, 2008
Messages
149
Reaction score
38
Good develpment really but with what client we use this all release are based on season 4.5 or 4.6 jpn protocol and others is for kor protocol =/ i don't see server release or development for this version u.u
 
Skilled Illusionist
Joined
Aug 20, 2007
Messages
374
Reaction score
80
omfg...you are kidding...for example you can use RMST server and client for this....after you unpack rmst client,apply patch [1.03V]/[1.03Y]....next download "Custom main 1.03Y with addon.dll" and be happy :)
 
Junior Spellweaver
Joined
Aug 5, 2008
Messages
149
Reaction score
38
We can use RMST with 1.03Y? but this main is for season 5 and rmst is season 4.6 =/ ... are you sure i can use 1.03y main?
 
King of the bongo
Joined
Oct 17, 2009
Messages
829
Reaction score
214
CodeBlocks, can you update your DLL and add Chatwnd + Monster HP bar? Would be awesome for your development :p

Please don't tell me to do this myself coz i can't, i just lack the knowledge
 
Skilled Illusionist
Joined
Feb 17, 2008
Messages
349
Reaction score
190
Can you set this for 1.07V+ I can search for all offsets you need, (less items offsets, because on this version don't work)
 
Skilled Illusionist
Joined
May 1, 2006
Messages
381
Reaction score
167
CodeBlocks, can you update your DLL and add Chatwnd + Monster HP bar? Would be awesome for your development :p

Please don't tell me to do this myself coz i can't, i just lack the knowledge

Monster HP need some Mods in Server Side, to re build monsters Damage Packet
 
Joined
Oct 29, 2007
Messages
1,290
Reaction score
1,311
Mulegend: It would be possible for you to help me find the offset called: "SkyHook" for main.exe of version 1.03k (Jpn)? (The right offset, not the left: chris05) for the sky source code.

PS: The ones I find are the same as found: aHelper, but when compiling the code + all external dependencies for OpenGL functions for... the sky does not work persists.

//Sky Offsets 1.03k
TSkyHook SkyHook = (TSkyHook) 0x00601764; ---> Okay this offset?
TBlend Blend = (TBlend) 0x005F3BD0;
TUnBlend UnBlend = (TUnBlend) 0x005F3B51;
int *MainState = (int*) 0x008D6F7C;
int *Map = (int*) 0x005E9409;
 
Last edited:
Status
Not open for further replies.
Back
Top