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!

New Stat to Ultimate Jewel Slot

One word! Im Fawkin Pro!
Loyal Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
Hello!
In this thread I will explain how you add a kind of Jewewl in an upgraded ultimate weapon.

I will add the coding in a way for you to be able to remove very easy by commenting the define in versioncommon.h :)

We will be adding the Attribute "ALL STAT+"

Keep in mind that I use v19 flyff files so files may vary a bit from yours (like propitem.txt (/spec_item.txt))

We will start with the Source:
BLUE = FIND
RED = ADD
GREEN = EDIT
PURPLE = INFORMATION

WndManager.cpp
PART 1
Find:
Code:
[COLOR="#0000FF"]dwItemColor[FIRST_TC].dwAddedOpt9			= D3DCOLOR_XRGB( [COLOR="#800080"][B][U]147, 112, 219[/U][/B][/COLOR] );[/COLOR]

[COLOR="#800080"][B][U]COLOR OF STAT (Remove Jewel Option)[/U][/B][/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWULTIMATEGEM
	dwItemColor[FIRST_TC].dwAddedOpt10			= D3DCOLOR_XRGB( [COLOR="#800080"][B][U]147, 112, 219[/U][/B][/COLOR] );
#endif //__NEWULTIMATEGEM[/COLOR]

[COLOR="#800080"][B][U]COLOR OF STAT (Remove Jewel Option)[/U][/B][/COLOR]
PART 2
Find:
Code:
[COLOR="#0000FF"]int nAddedOptDST[9];[/COLOR]
Edit It To:
Code:
[COLOR="#008000"]#ifdef __NEWULTIMATEGEM
	int nAddedOptDST[10];
#else //__NEWULTIMATEGEM
	int nAddedOptDST[9];
#endif //__NEWULTIMATEGEM[/COLOR]
PART 3
Find;
Code:
[COLOR="#0000FF"]nAddedOptDST[8] = DST_INT;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWULTIMATEGEM
	nAddedOptDST[9] = DST_STAT_ALLUP;
#endif //__NEWULTIMATEGEM[/COLOR]
PART 4
Find:
Code:
[COLOR="#0000FF"]for(i=0; i<9; i++)[/COLOR]
Edit It To:
Code:
[COLOR="#008000"]#ifdef __NEWULTIMATEGEM
		for(i=0; i<10; i++)
#else //__NEWULTIMATEGEM
		for(i=0; i<9; i++)
#endif //__NEWULTIMATEGEM[/COLOR]
PART 5
Find:
Code:
[COLOR="#0000FF"]case 8:
					dwColorbuf = dwItemColor[g_Option.m_nToolTipText].dwAddedOpt9;
					break;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWULTIMATEGEM
				case 9:
					dwColorbuf = dwItemColor[g_Option.m_nToolTipText].dwAddedOpt10;
					break;
#endif //__NEWULTIMATEGEM[/COLOR]
WndManager.h
Find:
Code:
[COLOR="#0000FF"]DWORD dwAddedOpt9;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWULTIMATEGEM
	DWORD dwAddedOpt10;
#endif //__NEWULTIMATEGEM[/COLOR]
tooltip.cpp
Find:
Code:
[COLOR="#0000FF"]else if(m_nAddedJewel[i] >= II_GEN_MAT_DIAMOND09 && m_nAddedJewel[i] <= II_GEN_MAT_TOPAZ09)
					{
						dwColorbuf = g_WndMng.dwItemColor[g_Option.m_nToolTipText].dwAddedOpt9;
						DstText.Format( "%s", prj.GetText([COLOR="#800080"][B][U]TID_TOOLTIP_INT[/U][/B][/COLOR]) );
					}[/COLOR]

[COLOR="#800080"][B][U]Text of stat (Can be found in textClient.txt / textClient.inc)[/U][/B][/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWULTIMATEGEM
					else if(m_nAddedJewel[i] >= II_GEN_MAT_DIAMOND10 && m_nAddedJewel[i] <= II_GEN_MAT_TOPAZ10)
					{
						dwColorbuf = g_WndMng.dwItemColor[g_Option.m_nToolTipText].dwAddedOpt10;
						DstText.Format( "%s", prj.GetText([COLOR="#800080"][B][U]TID_TOOLTIP_ALLSTAT[/U][/B][/COLOR]) );
					}
#endif //__NEWULTIMATEGEM[/COLOR]

[COLOR="#800080"][B][U]Text of stat (Can be found in textClient.txt / textClient.inc)[/U][/B][/COLOR]
WndField.cpp
Find:
Code:
[COLOR="#0000FF"]else if(m_nJewelID[i] >= II_GEN_MAT_DIAMOND09 && m_nJewelID[i] <= II_GEN_MAT_TOPAZ09)
				{
					dwColorbuf = g_WndMng.dwItemColor[g_Option.m_nToolTipText].dwAddedOpt9;
					DstText.Format( "%s", prj.GetText([COLOR="#800080"][B][U]TID_TOOLTIP_INT[/U][/B][/COLOR]) );
				}[/COLOR]

[COLOR="#800080"][B][U]Text of stat (Can be found in textClient.txt / textClient.inc)[/U][/B][/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWULTIMATEGEM
				else if(m_nJewelID[i] >= II_GEN_MAT_DIAMOND10 && m_nJewelID[i] <= II_GEN_MAT_TOPAZ10)
				{
					dwColorbuf = g_WndMng.dwItemColor[g_Option.m_nToolTipText].dwAddedOpt10;
					DstText.Format( "%s", prj.GetText([COLOR="#800080"][B][U]TID_TOOLTIP_ALLSTAT[/U][/B][/COLOR]) );
				}
#endif //__NEWULTIMATEGEM[/COLOR]

[COLOR="#800080"][B][U]Text of stat (Can be found in textClient.txt / textClient.inc)[/U][/B][/COLOR]
HwOption.cpp
Find:
Code:
[COLOR="#0000FF"]else if( scan.Token == _T( "[COLOR="#800080"][B][U]¹«±âÃß°¡¿É¼Ç9[/U][/B][/COLOR]" ) )
		{
			nR = scan.GetNumber();			
			nG = scan.GetNumber();
			nB = scan.GetNumber();
			g_WndMng.dwItemColor[m_nToolTipText].dwAddedOpt9 = D3DCOLOR_ARGB( 255, nR, nG, nB );
		}[/COLOR]

[COLOR="#800080"][B][U]Text may be different in another source[/U][/B][/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWULTIMATEGEM
		else if( scan.Token == _T( "[COLOR="#800080"][B][U]¹«±âÃß°¡¿É¼Ç10[/U][/B][/COLOR]" ) )
		{
			nR = scan.GetNumber();			
			nG = scan.GetNumber();
			nB = scan.GetNumber();
			g_WndMng.dwItemColor[m_nToolTipText].dwAddedOpt10 = D3DCOLOR_ARGB( 255, nR, nG, nB );
		}
#endif //__NEWULTIMATEGEM[/COLOR]

[COLOR="#800080"][B][U]Text may be different in another source[/U][/B][/COLOR]
VersionCommon.h (Neuz & WorldServer)
Add:
Code:
[COLOR="#FF0000"]#define __NEWULTIMATEGEM[/COLOR]

Resource:
propItem.txt.txt
Code:
[COLOR="#FF0000"]IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016379[/U][/B][/COLOR]	Diamond of All Stats
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016380[/U][/B][/COLOR]	Increases All Stats.
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016381[/U][/B][/COLOR]	Emerald of All Stats
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016382[/U][/B][/COLOR]	Increases All Stats.
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016383[/U][/B][/COLOR]	Sapphire of All Stats
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016384[/U][/B][/COLOR]	Increases All Stats.
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016385[/U][/B][/COLOR]	Ruby of All Stats
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016386[/U][/B][/COLOR]	Increases All Stats.
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016387[/U][/B][/COLOR]	Topaz of All Stats
IDS_PROPITEM_TXT_[COLOR="#800080"][B][U]016388[/U][/B][/COLOR]	Increases All Stats.[/COLOR]

[COLOR="#800080"][B][U]You may have to edit these if the numbers already exists in your propitem.txt.txt[/U][/B][/COLOR]
spec_item.txt
Code:
[COLOR="#FF0000"]7	II_GEN_MAT_DIAMOND10	IDS_PROPITEM_TXT_016379	1	99	IK1_GENERAL	IK2_MATERIAL	IK3_ULTIMATE	=	1	=	=	8000	=	=	=	=	=	=	=	0	=	=	4	50	=	4	0	=	=	=	=	_NONE	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	[COLOR="#800080"][B][U]DST_STAT_ALLUP[/U][/B]	[/COLOR]=	=	=	=	=	0	0	0	0	0	=	=	=	=	=	=	=	=	=	=	=	=	=	1	1	=	=	"""Itm_GenMatDiamond.dds"""	0	""""""	IDS_PROPITEM_TXT_016380	1	300	0	0	1	0	0	0	0	0	2	=	=	=	=	=	=	=	=	=	=	1	1	1	1	1	0	ITEM_GRADE_NORMAL	1	TYPE1_MATERIAL	TYPE2_MATERIAL_EXCEPTION	1	0	0	0
7	II_GEN_MAT_EMERALD10	IDS_PROPITEM_TXT_016381	1	99	IK1_GENERAL	IK2_MATERIAL	IK3_ULTIMATE	=	1	=	=	8000	=	=	=	=	=	=	=	0	=	=	4	50	=	4	0	=	=	=	=	_NONE	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	[COLOR="#800080"][B][U]DST_STAT_ALLUP[/U][/B]	[/COLOR]=	=	=	=	=	0	0	0	0	0	=	=	=	=	=	=	=	=	=	=	=	=	=	1	=	=	=	"""Itm_GenMatEmerald.dds"""	0	""""""	IDS_PROPITEM_TXT_016382	1	300	0	0	1	0	0	0	0	0	2	=	=	=	=	=	=	=	=	=	=	1	1	1	1	1	0	ITEM_GRADE_NORMAL	1	TYPE1_MATERIAL	TYPE2_MATERIAL_EXCEPTION	1	0	0	0
7	II_GEN_MAT_SAPPHIRE10	IDS_PROPITEM_TXT_016383	1	99	IK1_GENERAL	IK2_MATERIAL	IK3_ULTIMATE	=	1	=	=	8000	=	=	=	=	=	=	=	0	=	=	4	50	=	4	0	=	=	=	=	_NONE	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	[COLOR="#800080"][B][U]DST_STAT_ALLUP[/U][/B]	[/COLOR]=	=	=	=	=	0	0	0	0	0	=	=	=	=	=	=	=	=	=	=	=	=	=	1	=	=	=	"""Itm_GenMatSapphire.dds"""	0	""""""	IDS_PROPITEM_TXT_016384	1	300	0	0	1	0	0	0	0	0	2	=	=	=	=	=	=	=	=	=	=	1	1	1	1	1	0	ITEM_GRADE_NORMAL	1	TYPE1_MATERIAL	TYPE2_MATERIAL_EXCEPTION	1	0	0	0
7	II_GEN_MAT_RUBY10	IDS_PROPITEM_TXT_016385	1	99	IK1_GENERAL	IK2_MATERIAL	IK3_ULTIMATE	=	1	=	=	8000	=	=	=	=	=	=	=	0	=	=	4	50	=	4	0	=	=	=	=	_NONE	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	[COLOR="#800080"][B][U]DST_STAT_ALLUP[/U][/B]	[/COLOR]=	=	=	=	=	0	0	0	0	0	=	=	=	=	=	=	=	=	=	=	=	=	=	1	=	=	=	"""Itm_GenMatRuby.dds"""	0	""""""	IDS_PROPITEM_TXT_016386	1	300	0	0	1	0	0	0	0	0	2	=	=	=	=	=	=	=	=	=	=	1	1	1	1	1	0	ITEM_GRADE_NORMAL	1	TYPE1_MATERIAL	TYPE2_MATERIAL_EXCEPTION	1	0	0	0
7	II_GEN_MAT_TOPAZ10	IDS_PROPITEM_TXT_016387	1	99	IK1_GENERAL	IK2_MATERIAL	IK3_ULTIMATE	=	1	=	=	8000	=	=	=	=	=	=	=	0	=	=	4	50	=	4	0	=	=	=	=	_NONE	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	[COLOR="#800080"][B][U]DST_STAT_ALLUP[/U][/B]	[/COLOR]=	=	=	=	=	0	0	0	0	0	=	=	=	=	=	=	=	=	=	=	=	=	=	1	=	=	=	"""Itm_GenMatTopaz.dds"""	0	""""""	IDS_PROPITEM_TXT_016388	1	300	0	0	1	0	0	0	0	0	2	=	=	=	=	=	=	=	=	=	=	1	1	1	1	1	0	ITEM_GRADE_NORMAL	1	TYPE1_MATERIAL	TYPE2_MATERIAL_EXCEPTION	1	0	0	0[/COLOR]

[COLOR="#800080"][B][U]Change to desired Attribute[/U][/B][/COLOR]
mdlDyna.inc
Code:
[COLOR="#FF0000"]	"GenMatDiamond"         II_GEN_MAT_DIAMOND10	 MODELTYPE_MESH "" 0  MD_NEAR 0  1.0f 0 1 ATEX_NONE 1
    "GenMatEmerald"         II_GEN_MAT_EMERALD10	 MODELTYPE_MESH "" 0  MD_NEAR 0  1.0f 0 1 ATEX_NONE 1
    "GenMatSapphire"        II_GEN_MAT_SAPPHIRE10	 MODELTYPE_MESH "" 0  MD_NEAR 0  1.0f 0 1 ATEX_NONE 1
    "GenMatRuby" 	    II_GEN_MAT_RUBY10		 MODELTYPE_MESH "" 0  MD_NEAR 0  1.0f 0 1 ATEX_NONE 1
    "GenMatTopaz"           II_GEN_MAT_TOPAZ10		 MODELTYPE_MESH "" 0  MD_NEAR 0  1.0f 0 1 ATEX_NONE 1[/COLOR]
defineItem.h
Code:
[COLOR="#FF0000"]#define	II_GEN_MAT_DIAMOND10	[COLOR="#800080"][B][U]2084[/U][/B][/COLOR]
#define	II_GEN_MAT_EMERALD10	[COLOR="#800080"][B][U]2085[/U][/B][/COLOR]
#define	II_GEN_MAT_SAPPHIRE10	[COLOR="#800080"][B][U]2086[/U][/B][/COLOR]
#define	II_GEN_MAT_RUBY10	[COLOR="#800080"][B][U]2087[/U][/B][/COLOR]
#define	II_GEN_MAT_TOPAZ10	[COLOR="#800080"][B][U]2088[/U][/B][/COLOR][/COLOR]

[COLOR="#800080"][B][U]The chosen numbers may only exist one time (if duplicated change it)[/U][/B][/COLOR]
Ultimate_GemAbility.txt
Code:
[COLOR="#FF0000"]ABILITY DST_STAT_ALLUP
{
	II_GEN_MAT_TOPAZ	II_GEN_MAT_TOPAZ10	[COLOR="#800080"][B][U]1[/U][/B]	[B][U]3[/U][/B]	[B][U]5[/U][/B]	[B][U]7[/U][/B]	[B][U]9[/U][/B][/COLOR]
	II_GEN_MAT_RUBY		II_GEN_MAT_RUBY10	[COLOR="#800080"][B][U]2[/U][/B]	[B][U]4[/U][/B]	[B][U]6[/U][/B]	[B][U]8[/U][/B]	[B][U]10[/U][/B][/COLOR]
	II_GEN_MAT_SAPPHIRE	II_GEN_MAT_SAPPHIRE10	[COLOR="#800080"][B][U]3[/U][/B]	[B][U]5[/U][/B]	[B][U]7[/U][/B]	[B][U]9[/U][/B]	[B][U]11[/U][/B][/COLOR]
	II_GEN_MAT_EMERALD	II_GEN_MAT_EMERALD10	[COLOR="#800080"][B][U]4[/U][/B]	[B][U]6[/U][/B]	[B][U]8[/U][/B]	[B][U]10[/U][/B]	[B][U]12[/U][/B][/COLOR]
	II_GEN_MAT_DIAMOND	II_GEN_MAT_DIAMOND10	[COLOR="#800080"][B][U]5[/U][/B]	[B][U]7[/U][/B]	[B][U]9[/U][/B]	[B][U]11[/U][/B]	[B][U]13[/U][/B][/COLOR]
}[/COLOR]

[COLOR="#800080"][B][U]How many stats should be given by which Jewel & how much per "All Stat" you get on the same weapon per Upgraded Jewel Spot[/U][/B][/COLOR]

Hope it helps some :)

Edit:

If you are adding a stat with % (Such as Increased HP +%)
You also have to add it here:

WndManager.cpp
Find:
Code:
[COLOR="#0000FF"]if(FindDstString( nAddedOptDST[nAddedOpt[i]] ))
			{
				if(nAddedOpt[i] == 3 || nAddedOpt[i] == 4)
					str.Format( "\n%s+%d%%", FindDstString( nAddedOptDST[nAddedOpt[i]] ), nAddedValue[i] );
				else
					str.Format( "\n%s+%d", FindDstString( nAddedOptDST[nAddedOpt[i]] ), nAddedValue[i] );
			}[/COLOR]
Edit It To:
Code:
[COLOR="#008000"]if(FindDstString( nAddedOptDST[nAddedOpt[i]] ))
			{
				if(nAddedOpt[i] == 3 || nAddedOpt[i] == 4
#ifdef __NEWULTIMATEGEM
					|| nAddedOpt[i] == [COLOR="#800080"][B][U]10[/U][/B][/COLOR] )
#else //__NEWULTIMATEGEM
					)
#endif //__NEWULTIMATEGEM
					str.Format( "\n%s+%d%%", FindDstString( nAddedOptDST[nAddedOpt[i]] ), nAddedValue[i] );
				else
					str.Format( "\n%s+%d", FindDstString( nAddedOptDST[nAddedOpt[i]] ), nAddedValue[i] );
			}[/COLOR]

[COLOR="#800080"][B][U]Change value to the number of the "nAddedOptDST"[/U][/B][/COLOR]
 
Last edited:
Newbie Spellweaver
Joined
Jan 28, 2016
Messages
40
Reaction score
2
sir Xakzi i compiled without any errors. then again same result as soon as i get the new added stat on the weapon it crashes if i put my cursor on the socketed weapon. and only on client has error logs stating this errors:

2016/ 4/29 14:33:54 ::LoadTextureFromRes : Item\0 not found


2016/ 4/29 14:33:54 CTexture::LoadTexture : Item\0 read error


2016/ 4/29 14:36:41 Apr 29 2016 14:15:37 6 rCnt=1


Neuz.exe caused an EXCEPTION_ACCESS_VIOLATION in module Neuz.exe at 0023:00738F97
 
Back
Top