Juver Source Code Features Merge or Recreate Your Own .

ok since the code already release..the rest is just where to put it right??

there are 3 character base code in source..
1. character that we play (GLCharacter.cpp and .h)
2. character that other people play (GLCharClient.cpp and .h)
3. character on select character page (DxCharSham.cpp and .h)

and every that base code has function called UpdateSuit()
i believe you should put that code inside UpdateSuit() function (dont search UpdateSuit() because some of them has different name if i'm not forgot).

and you can try inside if ( nidITEM == SNATIVEID(false) ) code

try it..

how about server selection login background?
OuterInterface.cpp
OuterInterface.h

oh come on..go to help section..or ask google how to code someting and use search button in VS..

And you do know how to code features?... the problem on this section is people posting such thing teaching others while they theirself do not code a thing, they just get the code on other people who knows how to code find the differences merge it on theirs and then tell people to learn.

If you people wants to contribute on the developments make sure you post useful thing, you do not post hint here this isnt a puzzle this is a development.

This will serve as warning, the next people try to preach here will get an infraction. for posting off topic development post

thats not puzzle..its a clue..and clear enough..someone who dont understand that is absolutely never open source code..

Sorry sir but im an newbie.. :) im only 16 i dont even have skills of an coder but im tryin .. so thanks for the tip

And where can i find the "%s_bs_%s_enchent+%d.cps" ?
Hope mr tobets can share that cps


And i think this will not work without changing : switch ("emPiece")

for cps thats your bad news..if you dont have that you must create that cps..and son..please learn how to code hello world first..dont jump straight into top of mountain..you must walk first..its good if you want to learn..but you must put your self in the right step..

dont fight with Reflector when your level is still level 10..you must level up first before you can defeat Reflector..except you are the master..
 
Last edited:
ok since the code already release..the rest is just where to put it right??

there are 3 character base code in source..
1. character that we play (GLCharacter.cpp and .h)
2. character that other people play (GLCharClient.cpp and .h)
3. character on select character page (DxCharSham.cpp and .h)

and every that base code has function called UpdateSuit()
i believe you should put that code inside UpdateSuit() function (dont search UpdateSuit() because some of them has different name if i'm not forgot).

and you can try inside if ( nidITEM == SNATIVEID(false) ) code

try it..



oh come on..go to help section..or ask google how to code someting and use search button in VS..



thats not puzzle..its a clue..and clear enough..someone who dont understand that is absolutely never open source code..



for cps thats your bad news..if you dont have that you must create that cps..and son..please learn how to code hello world first..dont jump straight into top of mountain..you must walk first..its good if you want to learn..but you must put your self in the right step..

dont fight with Reflector when your level is still level 10..you must level up first before you can defeat Reflector..except you are the master..


inside updatesuit function ?? like this

ex" updatesuit bla bla

( ( emPiece == PIECE_UPBODY || emPiece == PIECE_LOBODY || emPiece == PIECE_GLOVE || emPiece == PIECE_FOOT ) )
{
switch (emPiece)
{
case PIECE_UPBODY: m_pSkinChar->ResetPiece(PIECE_ELE01); break;
case PIECE_LOBODY: m_pSkinChar->ResetPiece(PIECE_ELE02); break;
case PIECE_GLOVE: m_pSkinChar->ResetPiece(PIECE_ELE03); break;
case PIECE_FOOT: m_pSkinChar->ResetPiece(PIECE_ELE04); break;
}




if ( ItemCustom.GETGRADE_EFFECT() > 11 )
{
CString strEle, strSex, strPiece;




if( emSex == GLCC_MAN ) strSex = "m";
else strSex = "w";
switch (emPiece)
{
case PIECE_UPBODY: strPiece = "body"; break;
case PIECE_LOBODY: strPiece = "leg"; break;
case PIECE_GLOVE: strPiece = "hand"; break;
case PIECE_FOOT: strPiece = "foot"; break;
}
strEle.Format("%s_bs_%s_enchent+%d.cps", strSex, strPiece, ItemCustom.GETGRADE_EFFECT());
m_pSkinChar->SetPiece ( strEle, m_pd3dDevice, NULL, TRUE );
}
}

like this ??
 
i'll keep my promises..
since most of you cant use common sense here the code for you :

GLCharacter.cpp :
Code:
HRESULT GLCharacter::UpdateSuit( BOOL bChangeHair, BOOL bChangeFace )
{
	GASSERT(m_pd3dDevice);

	EMCHARINDEX emIndex = CharClassToIndex(m_emClass);
	DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().FindData ( GLCONST_CHAR::szCharSkin[emIndex] );
	if ( !pSkinChar )	return E_FAIL;



	const GLCONST_CHARCLASS &sCONST = GLCONST_CHAR::cCONSTCLASS[emIndex];

	

	if ( bChangeFace )
	{
		// ¾ó±¼
		if ( sCONST.dwHEADNUM > m_wFace )
		{
			std::string strHEAD_CPS = sCONST.strHEAD_CPS[m_wFace];
		
			PDXCHARPART pCharPart = NULL;
			pCharPart = m_pSkinChar->GetPiece(PIECE_HEAD);		//	ÇöÀç ÀåÂø ½ºÅ².

			if ( pCharPart && strcmp(strHEAD_CPS.c_str(),pCharPart->m_szFileName) )
			{
				m_pSkinChar->SetPiece ( strHEAD_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
			}
		}
	}
	// Çì¾î½ºÅ¸ÀÏ
	if( bChangeHair )
	{
		if ( sCONST.dwHAIRNUM > m_wHair )
		{
			std::string strHAIR_CPS = sCONST.strHAIR_CPS[m_wHair];
		
			PDXCHARPART pCharPart = NULL;
			pCharPart = m_pSkinChar->GetPiece(PIECE_HAIR);		//	ÇöÀç ÀåÂø ½ºÅ².

			if ( pCharPart && strcmp(strHAIR_CPS.c_str(),pCharPart->m_szFileName) )
			{
				m_pSkinChar->SetPiece ( strHAIR_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
			}
		}
	}

	m_pSkinChar->SetHairColor( m_wHairColor );

	// ÀåÂøÇÑ ¾ÆÀÌÅÛ ¾÷µ¥ÀÌÆ®
	for ( int i=0; i<SLOT_NSIZE_S_2; i++ )
	{	
		// ÇöÀç ÀåÂøÁßÀÎ ¹«±â°¡ ¾Æ´Ï¸é ³Ñ¾î°£´Ù.
		if( !IsCurUseArm( EMSLOT(i) ) ) continue;

		const SITEMCUSTOM &ItemCustom = m_PutOnItems[i];

		// º¹Àå ¾ÆÀÌÅÛ
		SNATIVEID nidITEM = ItemCustom.nidDISGUISE;
		if ( nidITEM==SNATIVEID(false) )	nidITEM = ItemCustom.sNativeID;
		
		if ( !m_bVehicle && i == SLOT_VEHICLE  ) nidITEM = SNATIVEID(false);
		else if (  m_bVehicle && i == SLOT_VEHICLE )
		{
			nidITEM = m_sVehicle.GetSkinID();
			if ( nidITEM == SNATIVEID(false) )
			{
				m_sVehicle.m_sVehicleID = ItemCustom.sNativeID;
				nidITEM = ItemCustom.sNativeID;
			}
		}

		// À¯È¿ÇÏÁö ¾ÊÀ¸¸é
		if ( nidITEM == SNATIVEID(false) )
		{
			//	Note : ±âº» ½ºÅ²°ú Áö±Ý ÀåÂøµÈ ½ºÅ²ÀÌ Æ²¸± °æ¿ì.
			//	SLOT->PIECE.
			PDXSKINPIECE pSkinPiece = NULL;	//	±âº» ½ºÅ².
			PDXCHARPART pCharPart = NULL;	//	ÇöÀç ÀåÂø ½ºÅ².

			EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
			if ( emPiece!=PIECE_SIZE )
			{
				pSkinPiece = pSkinChar->GetPiece(emPiece);	//	±âº» ½ºÅ².
				pCharPart = m_pSkinChar->GetPiece(emPiece);	//	ÇöÀç ÀåÂø ½ºÅ².
			}

			if ( pSkinPiece )
			{
				if ( pCharPart && strcmp(pSkinPiece->m_szFileName,pCharPart->m_szFileName) )
					m_pSkinChar->SetPiece ( pSkinPiece->m_szFileName, m_pd3dDevice, 0X0, 0, TRUE );
			}
			else
			{
				if ( pCharPart )	
				{
					[COLOR="#FF0000"]/////EXTRA FIX TO ERASE THE EFFECT WHEN YOU UNEQUIPED ITEM
					if ( ( emPiece == PIECE_UPBODY || emPiece == PIECE_LOBODY || emPiece == PIECE_GLOVE || emPiece == PIECE_FOOT ) )
					{
						switch (emPiece)
						{
							case PIECE_UPBODY: m_pSkinChar->ResetPiece(PIECE_ELE01); break;
							case PIECE_LOBODY: m_pSkinChar->ResetPiece(PIECE_ELE02); break;
							case PIECE_GLOVE: m_pSkinChar->ResetPiece(PIECE_ELE03); break;
							case PIECE_FOOT: m_pSkinChar->ResetPiece(PIECE_ELE04); break;
						};
					}
					/////////////////////[/COLOR]
					
					m_pSkinChar->ResetPiece(emPiece);
				}
			}
		}
		// À¯È¿Çϸé
		else
		{
			SITEM* pItem = GLItemMan::GetInstance().GetItem ( nidITEM );
			if ( pItem ) 
			{
				m_pSkinChar->SetPiece ( pItem->GetWearingFile(emIndex), m_pd3dDevice, NULL, ItemCustom.GETGRADE_EFFECT(), TRUE );
			}
			
			[COLOR="#FF0000"]////////////THE EFFECT CODE SHOULD BE HERE
			EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
			
			if ( ( emPiece == PIECE_UPBODY || emPiece == PIECE_LOBODY || emPiece == PIECE_GLOVE || emPiece == PIECE_FOOT ) )
			{
				switch (emPiece)
				{
					case PIECE_UPBODY: m_pSkinChar->ResetPiece(PIECE_ELE01); break;
					case PIECE_LOBODY: m_pSkinChar->ResetPiece(PIECE_ELE02); break;
					case PIECE_GLOVE: m_pSkinChar->ResetPiece(PIECE_ELE03); break;
					case PIECE_FOOT: m_pSkinChar->ResetPiece(PIECE_ELE04); break;
				};

				if ( ItemCustom.GETGRADE_EFFECT() > 5 )
				{
					CString strEle, strSex, strPiece;

					if( emSex == GLCC_MAN ) strSex = "m";
					else strSex = "w";
					switch (emPiece)
					{
						case PIECE_UPBODY: strPiece = "body"; break;
						case PIECE_LOBODY: strPiece = "leg"; break;
						case PIECE_GLOVE: strPiece = "hand"; break;
						case PIECE_FOOT: strPiece = "foot"; break;
					};
					strEle.Format("%s_bs_%s_enchent+%d.cps", strSex, strPiece, ItemCustom.GETGRADE_EFFECT());
					m_pSkinChar->SetPiece ( strEle, m_pd3dDevice, NULL, TRUE );
				}
			} 
			//////////////////////////////[/COLOR]
		}
	}

	//	Note : ½ºÅ³ ¹öÇÁ, »óÅÂÀÌ»ó È¿°ú »ý¼º.
	FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );

	if( GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.size() != 0 )
	{
		DxEffcharDataMan::GetInstance().PutPassiveEffect ( m_pSkinChar, GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.c_str(), &m_vDir );
	}

	if( m_dwTransfromSkill != SNATIVEID::ID_NULL )
	{
		PGLSKILL pSkill = GLSkillMan::GetInstance().GetData ( m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wMainID, m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wSubID );
		if( pSkill ) 
		{
			for( BYTE i = 0; i < SKILL::EMTRANSFORM_NSIZE; i++ )
			{
				if( m_wSex == 1 )
				{				
					m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Man[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
				}else{
					m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Woman[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
				}
			}
		}
	}

	return S_OK;
}

GLCharClient.cpp :
Code:
HRESULT GLCharClient::UpdateSuit ()
{
	GASSERT(m_pd3dDevice);

	EMCHARINDEX emIndex = CharClassToIndex(m_CharData.emClass);
	DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().FindData ( GLCONST_CHAR::szCharSkin[emIndex] );
	if ( !pSkinChar )	return E_FAIL;

	
	const GLCONST_CHARCLASS &sCONST = GLCONST_CHAR::cCONSTCLASS[emIndex];

	if ( sCONST.dwHEADNUM > m_CharData.wFace )
	{
		std::string strHEAD_CPS = sCONST.strHEAD_CPS[m_CharData.wFace];
	
		PDXCHARPART pCharPart = NULL;
		pCharPart = m_pSkinChar->GetPiece(PIECE_HEAD);		//	ÇöÁ¦ ÀåÂø ½ºÅ².

		if ( pCharPart && strcmp(strHEAD_CPS.c_str(),pCharPart->GetFileName()) )
		{
			m_pSkinChar->SetPiece ( strHEAD_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
		}
	}

	if ( sCONST.dwHAIRNUM > m_CharData.wHair )
	{
		std::string strHAIR_CPS = sCONST.strHAIR_CPS[m_CharData.wHair];
	
		PDXCHARPART pCharPart = NULL;
		pCharPart = m_pSkinChar->GetPiece(PIECE_HAIR);		//	ÇöÁ¦ ÀåÂø ½ºÅ².

		if ( pCharPart && strcmp(strHAIR_CPS.c_str(),pCharPart->GetFileName()) )
		{
			m_pSkinChar->SetPiece ( strHAIR_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
		}
	}

	m_pSkinChar->SetHairColor( m_CharData.wHairColor );

	for ( int i=0; i<SLOT_NSIZE_S_2; i++ )
	{
		// ÇöÀç ÀåÂøÁßÀÎ ¹«±â°¡ ¾Æ´Ï¸é ³Ñ¾î°£´Ù.
		if( !IsCurUseArm( EMSLOT(i) ) ) continue;

		SITEMCLIENT &ItemClient = m_CharData.m_PutOnItems[i];

		SNATIVEID nidITEM = ItemClient.nidDISGUISE;
		if ( nidITEM==SNATIVEID(false) )	nidITEM = ItemClient.sNativeID;

		if ( !m_bVehicle && i == SLOT_VEHICLE  ) nidITEM = SNATIVEID(false);
		else if ( i == SLOT_VEHICLE )
		{
			nidITEM = m_sVehicle.GetSkinID();
			if ( nidITEM == SNATIVEID(false) )
			{
				m_sVehicle.m_sVehicleID = ItemClient.sNativeID;
				nidITEM = ItemClient.sNativeID;
			}
		}

		if ( nidITEM == SNATIVEID(false) )
		{
			//	Note : ±âº» ½ºÅ²°ú Áö±Ý ÀåÂøµÈ ½ºÅ²ÀÌ Æ²¸± °æ¿ì.
			//	SLOT->PIECE.
			PDXSKINPIECE pSkinPiece = NULL;	//	±âº» ½ºÅ².
			PDXCHARPART pCharPart = NULL;	//	ÇöÁ¦ ÀåÂø ½ºÅ².

			EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
			if ( emPiece!=PIECE_SIZE )
			{
				pSkinPiece = pSkinChar->GetPiece(emPiece);	//	±âº» ½ºÅ².
				pCharPart = m_pSkinChar->GetPiece(emPiece);	//	ÇöÁ¦ ÀåÂø ½ºÅ².
			}

			if ( pSkinPiece )
			{
				if ( pCharPart && strcmp(pSkinPiece->m_szFileName,pCharPart->GetFileName()) )
					m_pSkinChar->SetPiece ( pSkinPiece->m_szFileName, m_pd3dDevice, 0x0, 0, TRUE );
			}
			else
			{
				if ( pCharPart )
				{
					[COLOR="#FF0000"]/////EXTRA FIX TO ERASE THE EFFECT WHEN YOU UNEQUIPED ITEM
					if ( ( emPiece == PIECE_UPBODY || emPiece == PIECE_LOBODY || emPiece == PIECE_GLOVE || emPiece == PIECE_FOOT ) )
					{
						switch (emPiece)
						{
							case PIECE_UPBODY: m_pSkinChar->ResetPiece(PIECE_ELE01); break;
							case PIECE_LOBODY: m_pSkinChar->ResetPiece(PIECE_ELE02); break;
							case PIECE_GLOVE: m_pSkinChar->ResetPiece(PIECE_ELE03); break;
							case PIECE_FOOT: m_pSkinChar->ResetPiece(PIECE_ELE04); break;
						};
					}
					/////////////////////[/COLOR]
					
					m_pSkinChar->ResetPiece(emPiece);
				}
			}
		}
		else
		{
			SITEM* pItem = GLItemMan::GetInstance().GetItem ( nidITEM );
			if ( pItem )
			{
				m_pSkinChar->SetPiece ( pItem->GetWearingFile(emIndex), m_pd3dDevice, NULL, ItemClient.GETGRADE_EFFECT(), TRUE );
			}
			
			[COLOR="#FF0000"]////////////THE EFFECT CODE SHOULD BE HERE
			EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
			
			if ( ( emPiece == PIECE_UPBODY || emPiece == PIECE_LOBODY || emPiece == PIECE_GLOVE || emPiece == PIECE_FOOT ) )
			{
				switch (emPiece)
				{
					case PIECE_UPBODY: m_pSkinChar->ResetPiece(PIECE_ELE01); break;
					case PIECE_LOBODY: m_pSkinChar->ResetPiece(PIECE_ELE02); break;
					case PIECE_GLOVE: m_pSkinChar->ResetPiece(PIECE_ELE03); break;
					case PIECE_FOOT: m_pSkinChar->ResetPiece(PIECE_ELE04); break;
				};

				if ( ItemClient.GETGRADE_EFFECT() > 5 )
				{
					CString strEle, strSex, strPiece;

					if( emSex == GLCC_MAN ) strSex = "m";
					else strSex = "w";
					switch (emPiece)
					{
						case PIECE_UPBODY: strPiece = "body"; break;
						case PIECE_LOBODY: strPiece = "leg"; break;
						case PIECE_GLOVE: strPiece = "hand"; break;
						case PIECE_FOOT: strPiece = "foot"; break;
					};
					strEle.Format("%s_bs_%s_enchent+%d.cps", strSex, strPiece, ItemClient.GETGRADE_EFFECT());
					m_pSkinChar->SetPiece ( strEle, m_pd3dDevice, NULL, TRUE );
				}
			} 
			//////////////////////////////[/COLOR]
		}
	}

	if( m_dwTransfromSkill != SNATIVEID::ID_NULL )
	{
		PGLSKILL pSkill = GLSkillMan::GetInstance().GetData ( m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wMainID, m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wSubID );
		if( pSkill ) 
		{
			for( BYTE i = 0; i < SKILL::EMTRANSFORM_NSIZE; i++ )
			{
				if( m_CharData.wSex == 1 )
				{				
					m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Man[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
				}else{
					m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Woman[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
				}
			}
		}
	}


	//	Note : ½ºÅ³ ¹öÇÁ, »óÅÂÀÌ»ó È¿°ú »ý¼º.
	FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );

	if( GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.size() != 0 )
	{
		DxEffcharDataMan::GetInstance().PutPassiveEffect ( m_pSkinChar, GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.c_str(), &m_vDir );
	}

	return S_OK;
}

DxCharSham.cpp :
Code:
HRESULT DxCharSham::UpdateSuit ()
{
	GASSERT(m_pd3dDevice);

	if ( !m_pSkinChar )										
		return S_FALSE;

	EMCHARINDEX emIndex = CharClassToIndex(m_emClass);
	DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().FindData ( GLCONST_CHAR::szCharSkin[emIndex] );
	if ( !pSkinChar )	return E_FAIL;

	const GLCONST_CHARCLASS &sCONST = GLCONST_CHAR::cCONSTCLASS[emIndex];

	if ( sCONST.dwHEADNUM > m_wFace )
	{
		std::string strHEAD_CPS = sCONST.strHEAD_CPS[m_wFace];
	
		PDXCHARPART pCharPart = NULL;
		pCharPart = m_pSkinChar->GetPiece(PIECE_HEAD);		//	ÇöÁ¦ ÀåÂø ½ºÅ².

		if ( pCharPart && strcmp(strHEAD_CPS.c_str(),pCharPart->GetFileName()) )
		{
			m_pSkinChar->SetPiece( strHEAD_CPS.c_str(), m_pd3dDevice );
		}
	}

	if ( sCONST.dwHAIRNUM > m_wHair )
	{
		std::string strHAIR_CPS = sCONST.strHAIR_CPS[m_wHair];
	
		PDXCHARPART pCharPart = NULL;
		pCharPart = m_pSkinChar->GetPiece(PIECE_HAIR);		//	ÇöÁ¦ ÀåÂø ½ºÅ².

		if ( pCharPart && strcmp(strHAIR_CPS.c_str(),pCharPart->GetFileName()) )
		{
			m_pSkinChar->SetPiece( strHAIR_CPS.c_str(), m_pd3dDevice );
		}
	}

	// Çì¾îÄ÷¯ ¼¼ÆÃ
	m_pSkinChar->SetHairColor( m_wHairColor );

	for ( int i=0; i<SLOT_NSIZE_S_2; i++ )
	{
		// º¸Á¶¹«±â´Â ¼ÂÆÃÇÏÁö ¾Ê´Â´Ù.
		if( EMSLOT(i) == SLOT_RHAND_S || EMSLOT(i) == SLOT_LHAND_S ) continue;

		SITEMCUSTOM &ItemCustom = m_PutOnItems[i];

		SNATIVEID nidITEM = ItemCustom.nidDISGUISE;
		if ( nidITEM==SNATIVEID(false) )	nidITEM = ItemCustom.sNativeID;

		if ( !m_bVehicle && i == SLOT_VEHICLE  ) nidITEM = SNATIVEID(false);

		if ( nidITEM == SNATIVEID(false) )
		{
			//	Note : ±âº» ½ºÅ²°ú Áö±Ý ÀåÂøµÈ ½ºÅ²ÀÌ Æ²¸± °æ¿ì.
			//	SLOT->PIECE.
			PDXSKINPIECE pSkinPiece = NULL;	//	±âº» ½ºÅ².
			PDXCHARPART pCharPart = NULL;	//	ÇöÁ¦ ÀåÂø ½ºÅ².

			EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
			if ( emPiece!=PIECE_SIZE )
			{
				pSkinPiece = pSkinChar->GetPiece(emPiece);	//	±âº» ½ºÅ².
				pCharPart = m_pSkinChar->GetPiece(emPiece);	//	ÇöÁ¦ ÀåÂø ½ºÅ².
			}

			if ( pSkinPiece )
			{
				if ( pCharPart && strcmp(pSkinPiece->m_szFileName,pCharPart->GetFileName()) )
					m_pSkinChar->SetPiece( pSkinPiece->m_szFileName, m_pd3dDevice );
			}
			else
			{
				if ( pCharPart )
				{
					[COLOR="#FF0000"]/////EXTRA FIX TO ERASE THE EFFECT WHEN YOU UNEQUIPED ITEM
					if ( ( emPiece == PIECE_UPBODY || emPiece == PIECE_LOBODY || emPiece == PIECE_GLOVE || emPiece == PIECE_FOOT ) )
					{
						switch (emPiece)
						{
							case PIECE_UPBODY: m_pSkinChar->ResetPiece(PIECE_ELE01); break;
							case PIECE_LOBODY: m_pSkinChar->ResetPiece(PIECE_ELE02); break;
							case PIECE_GLOVE: m_pSkinChar->ResetPiece(PIECE_ELE03); break;
							case PIECE_FOOT: m_pSkinChar->ResetPiece(PIECE_ELE04); break;
						};
					}
					/////////////////////[/COLOR]
					
					m_pSkinChar->ResetPiece(emPiece);
				}
			}
		}
		else
		{
			SITEM* pItem = GLItemMan::GetInstance().GetItem ( nidITEM );
			if ( pItem )
			{
				m_pSkinChar->SetPiece( pItem->GetWearingFile(emIndex), m_pd3dDevice, NULL, ItemCustom.GETGRADE_EFFECT() );
			}
			
			[COLOR="#FF0000"]////////////THE EFFECT CODE SHOULD BE HERE
			EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
			
			if ( ( emPiece == PIECE_UPBODY || emPiece == PIECE_LOBODY || emPiece == PIECE_GLOVE || emPiece == PIECE_FOOT ) )
			{
				switch (emPiece)
				{
					case PIECE_UPBODY: m_pSkinChar->ResetPiece(PIECE_ELE01); break;
					case PIECE_LOBODY: m_pSkinChar->ResetPiece(PIECE_ELE02); break;
					case PIECE_GLOVE: m_pSkinChar->ResetPiece(PIECE_ELE03); break;
					case PIECE_FOOT: m_pSkinChar->ResetPiece(PIECE_ELE04); break;
				};

				if ( ItemCustom.GETGRADE_EFFECT() > 5 )
				{
					CString strEle, strSex, strPiece;

					if( emSex == GLCC_MAN ) strSex = "m";
					else strSex = "w";
					switch (emPiece)
					{
						case PIECE_UPBODY: strPiece = "body"; break;
						case PIECE_LOBODY: strPiece = "leg"; break;
						case PIECE_GLOVE: strPiece = "hand"; break;
						case PIECE_FOOT: strPiece = "foot"; break;
					};
					strEle.Format("%s_bs_%s_enchent+%d.cps", strSex, strPiece, ItemCustom.GETGRADE_EFFECT());
					m_pSkinChar->SetPiece ( strEle, m_pd3dDevice, NULL, TRUE );
				}
			} 
			//////////////////////////////[/COLOR]
		}
	}

	return S_OK;
}

NOTE : I USE OLD SOURCE CODE THAT JOLIN SHARED SO IT MAYBE LOOKS LITTLE DIFFERENT WITH YOUR CURRENT CODE. I'M NOT RESPONSIBLE FOR ANY BUG OR EXTRA FILE THAT YOU NEED.
 
Last edited:
sorry for my noob question im just only asking and i do explore it by my self but i am noob for coding and im only highschool graduate sorry for my very noob question
 
Code:
[COLOR=#FF0000]if ( ItemCustom.GETGRADE_EFFECT() > 5 )[/COLOR]

this is the part where we can set the effect color on every upgrade that we want?
 
Ok 100% work
123123 - Juver Source Code Features Merge  or Recreate Your Own . - RaGEZONE Forums
 
add this too to

DxPieceDefine.h

PHP:
    PIECE_EFF_UPBODY    = 23,
    PIECE_EFF_LOBODY    = 24,
    PIECE_EFF_GLOVE        = 25,
    PIECE_EFF_FOOT        = 26,
    PIECE_ELE01            = 27,
    PIECE_ELE02            = 28,
    PIECE_ELE03            = 29,
    PIECE_ELE04            = 30,
    PIECE_SIZE        = 31
 
i got this error

G-Logic\GLCharClient.cpp(707) : error C2065: 'ItemCustom' : undeclared identifier G-Logic\GLCharClient.cpp(707) : error C2228: left of '.GETGRADE_EFFECT' must have class/struct/union type type is ''unknown-type'' G-Logic\GLCharClient.cpp(720) : error C2228: left of '.GETGRADE_EFFECT' must have class/struct/union type type is ''unknown-type'' G-Logic\GLCharClient.cpp(720) : error C3861: 'ItemCustom': identifier not found, even with argument-dependent lookup
 
If your gonna add this


PIECE_EFF_UPBODY = 23,
PIECE_EFF_LOBODY = 24,
PIECE_EFF_GLOVE = 25,
PIECE_EFF_FOOT = 26,
PIECE_ELE01 = 27,
PIECE_ELE02 = 28,
PIECE_ELE03 = 29,
PIECE_ELE04 = 30,
PIECE_SIZE = 31

Make sure your gonna deleted the old

PIECE_SIZE = 23
 
Last edited:
Don't Forget to add new piece at DxPieceDefine.h

almost all codes are shared for lightning effects its up to you whether
you'll make it working or not .

for cps yes almost all skinobject has it
 
Code:
Compiling...
DxCharSham.cpp
DxCharSham.cpp(415) : error C2065: 'PIECE_ELE01' : undeclared identifier
DxCharSham.cpp(416) : error C2065: 'PIECE_ELE02' : undeclared identifier
DxCharSham.cpp(417) : error C2065: 'PIECE_ELE03' : undeclared identifier
DxCharSham.cpp(418) : error C2065: 'PIECE_ELE04' : undeclared identifier
DxCharSham.cpp(445) : error C2601: 'DxCharSham::SetSelect' : local function definitions are illegal
DxCharSham.cpp(465) : error C2601: 'DxCharSham::TurnAction' : local function definitions are illegal
DxCharSham.cpp(502) : error C2601: 'DxCharSham::FrameMove' : local function definitions are illegal
DxCharSham.cpp(611) : error C2601: 'DxCharSham::Render' : local function definitions are illegal
DxCharSham.cpp(625) : error C2601: 'DxCharSham::RenderShadow' : local function definitions are illegal
DxCharSham.cpp(637) : error C2601: 'DxCharSham::RestoreDeviceObjects' : local function definitions are illegal
DxCharSham.cpp(645) : error C2601: 'DxCharSham::InvalidateDeviceObjects' : local function definitions are illegal
DxCharSham.cpp(651) : fatal error C1075: end of file found before the left brace '{' at 'DxCharSham.cpp(300)' was matched
GLCharacter.cpp
G-Logic\GLCharacter.cpp(1241) : error C2065: 'PIECE_ELE01' : undeclared identifier
G-Logic\GLCharacter.cpp(1242) : error C2065: 'PIECE_ELE02' : undeclared identifier
G-Logic\GLCharacter.cpp(1243) : error C2065: 'PIECE_ELE03' : undeclared identifier
G-Logic\GLCharacter.cpp(1244) : error C2065: 'PIECE_ELE04' : undeclared identifier
G-Logic\GLCharacter.cpp(1340) : error C2601: 'GLCharacter::GetBodyRadius' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1345) : error C2601: 'GLCharacter::SetPosition' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1354) : error C2601: 'GLCharacter::GetConftType' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1366) : error C2601: 'GLCharacter::DoPASSIVITY' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1387) : error C2601: 'GLCharacter::CheckPASSIVITY' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1417) : error C2601: 'GLCharacter::IsBlockPASSIVITY' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1422) : error C2601: 'GLCharacter::ResetPASSIVITY' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1431) : error C2601: 'GLCharacter::ActionMoveTo' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1496) : error C2601: 'GLCharacter::LargeMapMoveTo' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1509) : error C2601: 'GLCharacter::TurnAction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1618) : error C2601: 'GLCharacter::IsCtrlBlockBody' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1629) : error C2601: 'GLCharacter::IsValidBody' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1638) : error C2601: 'GLCharacter::IsDie' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1648) : error C2601: 'GLCharacter::IsPartyMaster' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1656) : error C2601: 'GLCharacter::IsPartyMem' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1661) : error C2601: 'GLCharacter::IsClubMaster' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1666) : error C2601: 'GLCharacter::IsCDCertify' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1671) : error C2601: 'GLCharacter::P2PReaction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1735) : error C2601: 'GLCharacter::PvPReaction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1832) : error C2601: 'GLCharacter::MobReaction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(1930) : error C2601: 'GLCharacter::NpcReaction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2005) : error C2601: 'GLCharacter::GatheringReaction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2077) : error C2601: 'GLCharacter::ItemReaction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2119) : error C2601: 'GLCharacter::ReservedAction' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2212) : error C2601: 'GLCharacter::GetCONFT_TAR' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2245) : error C2601: 'GLCharacter::IsPK_TAR' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2308) : error C2601: 'GLCharacter::IsClubBattle_TAR' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2322) : error C2601: 'GLCharacter::GetClubColorIndex' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2343) : error C2601: 'GLCharacter::FindActionTarget' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2646) : error C2601: 'GLCharacter::FindNearItem' : local function definitions are illegal
G-Logic\GLCharacter.cpp(2703) : error C2601: 'GLCharacter::PlayerUpdate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3266) : error C2601: 'GLCharacter::UpateAnimation' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3627) : error C2601: 'GLCharacter::DetectGate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3650) : error C2601: 'GLCharacter::DetectGateToMapName' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3676) : error C2601: 'GLCharacter::GetMoveVelo' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3683) : error C2601: 'GLCharacter::VietnamCalculate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3738) : error C2601: 'GLCharacter::EventCalculate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3796) : error C2601: 'GLCharacter::UpdateSpecialSkill' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3842) : error C2601: 'GLCharacter::SET_RECORD_CHAT' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3852) : error C2601: 'GLCharacter::UPDATE_RECORD_CHAT' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3910) : error C2601: 'GLCharacter::UpdateLandEffect' : local function definitions are illegal
G-Logic\GLCharacter.cpp(3941) : error C2601: 'GLCharacter::FrameMove' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4370) : error C2601: 'GLCharacter::FrameMoveForTool' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4404) : error C2601: 'GLCharacter::PrintTracingUserProcessInfo' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4479) : error C2601: 'GLCharacter::PrintTracingUserWindowInfo' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4531) : error C2601: 'GLCharacter::GetDirection' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4536) : error C2601: 'GLCharacter::Render' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4615) : error C2601: 'GLCharacter::RenderShadow' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4631) : error C2601: 'GLCharacter::RenderReflect' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4646) : error C2601: 'GLCharacter::InitDeviceObjects' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4656) : error C2601: 'GLCharacter::RestoreDeviceObjects' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4666) : error C2601: 'GLCharacter::InvalidateDeviceObjects' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4676) : error C2601: 'GLCharacter::DeleteDeviceObjects' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4686) : error C2601: 'GLCharacter::GET_ITEM_ELMT' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4707) : error C2601: 'GLCharacter::StartAttackProc' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4747) : error C2601: 'GLCharacter::AttackEffect' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4907) : error C2601: 'GLCharacter::AttackProc' : local function definitions are illegal
G-Logic\GLCharacter.cpp(4944) : error C2601: 'GLCharacter::IsReActionable' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5093) : error C2601: 'GLCharacter::ISCONFRONT_TAR' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5127) : error C2601: 'GLCharacter::DELCONFRONT_MEMBER' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5158) : error C2601: 'GLCharacter::NewConftBoundEffect' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5206) : error C2601: 'GLCharacter::DelConftBoundEffect' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5211) : error C2601: 'GLCharacter::IsVaildTradeInvenSpace' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5261) : error C2601: 'GLCharacter::HairStyleInitData' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5274) : error C2601: 'GLCharacter::HairColorInitData' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5287) : error C2601: 'GLCharacter::HairStyleChange' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5294) : error C2601: 'GLCharacter::HairColorChange' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5301) : error C2601: 'GLCharacter::HairStyleUpdate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5346) : error C2601: 'GLCharacter::HairColorUpdate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5355) : error C2601: 'GLCharacter::FaceStyleInitData' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5362) : error C2601: 'GLCharacter::FaceStyleChange' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5369) : error C2601: 'GLCharacter::FaceStyleUpdate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5414) : error C2601: 'GLCharacter::ItemPreviewUpdate' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5539) : error C2601: 'GLCharacter::ItemPreviewUpdate_End' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5550) : error C2601: 'GLCharacter::IsMarketClick' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5562) : error C2601: 'GLCharacter::InsertMarketClick' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5567) : error C2601: 'GLCharacter::InitAllSkillFact' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5578) : error C2601: 'GLCharacter::GetPosBodyHeight' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5584) : error C2601: 'GLCharacter::GetCalcTaxiCharge' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5618) : error C2601: 'GLCharacter::IsCoolTime' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5628) : error C2601: 'GLCharacter::CheckCoolTime' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5643) : error C2601: 'GLCharacter::GetMaxCoolTime' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5661) : error C2601: 'GLCharacter::GetCoolTime' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5681) : error C2601: 'GLCharacter::GetCoolTime' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5701) : error C2601: 'GLCharacter::SetCoolTime' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5715) : error C2601: 'GLCharacter::GET_ITEM_MIX' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5732) : error C2601: 'GLCharacter::SetItemMixMoveItem' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5761) : error C2601: 'GLCharacter::ReSetItemMixItem' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5772) : error C2601: 'GLCharacter::ResetItemMix' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5781) : error C2601: 'GLCharacter::ValidItemMixOpen' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5789) : error C2601: 'GLCharacter::GetItemMixMoney' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5809) : error C2601: 'GLCharacter::ValidWindowOpen' : local function definitions are illegal
G-Logic\GLCharacter.cpp(5824) : error C3861: 'PIECE_ELE01': identifier not found, even with argument-dependent lookup
G-Logic\GLCharacter.cpp(5825) : error C3861: 'PIECE_ELE02': identifier not found, even with argument-dependent lookup
G-Logic\GLCharacter.cpp(5826) : error C3861: 'PIECE_ELE03': identifier not found, even with argument-dependent lookup
G-Logic\GLCharacter.cpp(5827) : error C3861: 'PIECE_ELE04': identifier not found, even with argument-dependent lookup
G-Logic\GLCharacter.cpp(5836) : error C2065: 'emSex' : undeclared identifier
G-Logic\GLCharacter.cpp(5836) : fatal error C1003: error count exceeds 100; stopping compilation

Build log was saved at "file://C:\Quiirex\\_RBuildData\RanClientLib\Release\BuildLog.htm"
RanClientLib - 114 error(s), 0 warning(s)



i got this error two after i insert this code to dxpiecedefine.h
PIECE_EFF_UPBODY = 23,
PIECE_EFF_LOBODY = 24,
PIECE_EFF_GLOVE = 25,
PIECE_EFF_FOOT = 26,
PIECE_ELE01 = 27,
PIECE_ELE02 = 28,
PIECE_ELE03 = 29,
PIECE_ELE04 = 30,
PIECE_SIZE = 31
 
Back