Develop stopped, must learn more programming, mods please delete this thread.
Printable View
Develop stopped, must learn more programming, mods please delete this thread.
mmm looks nice except object id:) I guess u should explain how to calculate it.
Object Index*512+Object Id,
thanks so much (Y)
RMST Server Files 4.6 (storm free) content the new Custom Jewels?
Very nice addon.
Big Thanks)
P.S.: You can make gold name/glow/description/price for new jewels?
You can make only NPCSkins for 1.07V ? ;>
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
and .h file: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
}
}
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.Code:DECLARE_HOOK(GetItemPrice, void * pItem, int a2)
{
if (ItemCheck(REF_16(pItem))) {
return ITEM_PRICE;
}
return RealGetItemPrice(pItem, a2);
}
Link: http://www.multiupload.com/40UOTX5LZ0
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.
SmallHabbitt source is for main 1.00Y, this client or main is MuBlue?
And if someone have this main (1.00Y) version please uploaded.
CodeBlocks, try this
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 http://www.multiupload.com/49J3ZITNBI
Oh, remembered - would be cool add "Monster HP Bar (by mirraseq & Dudi)" and "Chatwnd (by Gembird)" :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;
U can xplain what is that of "Chatwnd" ? Thanks :) and good for dll release (Y)
Chatwd is division of chat section for logs and chat)
http://img641.imageshack.us/img641/7...0321130000.jpg
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
Anyone? =) please for i can test this main?
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 :)