Register for your free account! | Forgot your password?

You last visited: Today at 16:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Change color when max awake

Discussion on Change color when max awake within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.

Reply
 
Old   #1
 
sebariio's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 98
Received Thanks: 76
Smile Change color when max awake

Hi
This release changes the color of the awake line when the value is at most defined in the randomoption file

randomoption.cpp
Code:
CRandomOptionProperty::CRandomOptionProperty()
{
	memset(m_anRandomOptionProb, 0, sizeof(m_anRandomOptionProb));
#ifdef __MAX_AWAKE
	memset(m_anMaxAdjParamary, 0, sizeof(m_anMaxAdjParamary));
#endif // __MAX_AWAKE
}
Code:
void CRandomOptionProperty::LoadScriptBlock( CScript & s, int nRandomOptionKind )
{
	int nTotalProb1		= 0;
	for( int i = 0; i < MAX_RANDOM_OPTION; i++ )	// 3	// ·£´ý ¿É¼ÇÀÌ ¸î°³ ºÎ¿©µÉ °ÍÀΰ¡¿¡ ´ëÇÑ È®·ü
	{
		m_anRandomOptionProb[nRandomOptionKind][i]	= s.GetNumber() + nTotalProb1;
		nTotalProb1	= m_anRandomOptionProb[nRandomOptionKind][i];
	}
	s.GetToken();	// {
	int nTotalProb2	= 0;
	RANDOM_OPTION	ro;
	ro.nDst		= s.GetNumber();
	while( *s.token != '}' )
	{
		ASSERT( ro.nDst <= 0xFF );	// 255	// 8
		ro.nProb	= s.GetNumber() + nTotalProb2;
		nTotalProb2		= ro.nProb;
		s.GetToken();	// {
		short	nAdj	= s.GetNumber();
		DWORD dwTotalProb3	= 0;
		while( *s.token != '}' )
		{
			DWORD dwProb	= s.GetNumber() + dwTotalProb3;
			dwTotalProb3	= dwProb;
			ASSERT( abs( nAdj ) <= 0x1FF );		// 511	// 1 | 9
#ifdef __MAX_AWAKE
			if (nAdj > m_anMaxAdjParamary[nRandomOptionKind][ro.nDst])
				m_anMaxAdjParamary[nRandomOptionKind][ro.nDst] = nAdj;
#endif // __MAX_AWAKE
			ro.aAdjData.push_back(AdjData(nAdj, dwProb));
			nAdj	= s.GetNumber();
		}
		if( dwTotalProb3 != 1000000000 )
			Error( "Awakening: nDst = %d, dwTotalProb = %d", ro.nDst, dwTotalProb3 );
		m_aRandomOption[nRandomOptionKind].push_back( ro );
		ro.aAdjData.clear();
		ro.nDst		= s.GetNumber();
	}
}
randomoption.h
Code:
#ifdef __MAX_AWAKE
private:
	int		m_anMaxAdjParamary[eMaxRandomOptionKind][MAX_ADJPARAMARY];

public:
	BOOL	IsMaxAdjParamary(int nRandomOptionKind, int nDstParam, int nAdjParam) {
		return m_anMaxAdjParamary[nRandomOptionKind][nDstParam] != 0
			&& m_anMaxAdjParamary[nRandomOptionKind][nDstParam] <= nAdjParam;
	};
#endif // __MAX_AWAKE
WndManager.cpp
Code:
#if __VER >= 11 // __SYS_IDENTIFY
void CWndMgr::PutAwakeningBlessing( CItemElem* pItemElem, CEditString* pEdit )
{
	int nKind	= g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
	if( nKind < 0 )		// ¾ÆÀÌÅÛ °¢¼º, ¿©½ÅÀÇ Ãູ ´ë»óÀÌ ¾Æ´Ï¸é,
		return;
	int nSize	= g_xRandomOptionProperty->GetRandomOptionSize( pItemElem->GetRandomOptItemId() );

#ifdef __PROTECT_AWAKE
	//°¢¼º º¸È£ Ãë¼ÒµÈ ¾ÆÀÌÅÛÀΰ¡.. ±×·¸´Ù¸é ÁÙ±×¾îÁø ¿É¼ÇÀ» º¸¿©Áà¾ß ÇÑ´Ù.
	bool bSafe = g_xRandomOptionProperty->IsCheckedSafeFlag( pItemElem->GetRandomOptItemId() );
	if( bSafe )
		nSize = g_xRandomOptionProperty->GetViewRandomOptionSize( pItemElem->GetRandomOptItemId() );

	assert( nSize >= 0 && nSize < 4 );
#endif //__PROTECT_AWAKE

	CString	str;

	BOOL bBlessing = FALSE;
	// title
	if( nKind == CRandomOptionProperty::eAwakening )
	{
#if __VER >= 12 // __EXT_PIERCING
		if( nSize == 0 )
		{
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENING ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
		}

#else //__EXT_PIERCING
		if( nSize == 0 )
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENING ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
		else
			str.Format( "\n%s", prj.GetText( TID_GAME_AWAKENING_CAPTION ) );	// °¢¼ºµÈ ¿É¼Ç
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
#endif //__EXT_PIERCING
	}
	else if( nKind == CRandomOptionProperty::eBlessing )
	{
		if( nSize > 0 )
		{
			str.Format( "\n%s", prj.GetText( TID_GAME_BLESSING_CAPTION ) );	// Ãູ¹ÞÀº ¿É¼Ç
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwBlessing );
			bBlessing	= TRUE;
		}
	}
#if __VER >= 12 // __PET_0519
	else if( nKind == CRandomOptionProperty::eSystemPet || nKind == CRandomOptionProperty::eEatPet )
	{	// ½Ã½ºÅÛ Æê°ú ¸ÔÆêÀÇ ÅøÆÁ¿¡ °¢¼º°ú °ü·ÃµÈ ³»¿ëÀ» Ãß°¡ÇÑ´Ù
#if __VER >= 12 // __EXT_PIERCING
		if( nSize == 0 )
		{
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENNIG_PET_00 ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
		}
#else //__EXT_PIERCING
		if( nSize == 0 )
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENNIG_PET_00 ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
		else
			str.Format( "\n%s", prj.GetText( TID_GAME_AWAKENING_CAPTION ) );	// °¢¼ºµÈ ¿É¼Ç
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
#endif //__EXT_PIERCING
	}
#endif	// __PET_0519

	// option
	for( int i = 0; i < nSize; i++ )
	{
		int nDst, nAdj;
		if( !g_xRandomOptionProperty->GetParam( pItemElem->GetRandomOptItemId(), i, &nDst, &nAdj ) )
			continue;
		if( IsDst_Rate( nDst ) )
		{
#if __VER >= 12 // __EXT_PIERCING
			if( nDst == DST_ATTACKSPEED )
				str.Format( "\n%s %c%d%% ", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj / 2 / 10 ) );
			else
				str.Format( "\n%s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#else //__EXT_PIERCING
			if( nDst == DST_ATTACKSPEED )
				str.Format( "\n - %s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj / 2 / 10 ) );
			else
				str.Format( "\n - %s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#endif //__EXT_PIERCING
		}
		else
		{
#if __VER >= 12 // __EXT_PIERCING
			str.Format( "\n%s %c%d", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#else //__EXT_PIERCING
			str.Format( "\n - %s %c%d", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#endif //__EXT_PIERCING
		}

#ifdef __MAX_AWAKE
		BOOL isMaxAdjParamary = g_xRandomOptionProperty->IsMaxAdjParamary(nKind, nDst, nAdj);
#endif // __MAX_AWAKE
		if( nKind == CRandomOptionProperty::eAwakening )
		{
			DWORD dwStyle = 0;
#ifdef __PROTECT_AWAKE
			dwStyle = ( bSafe ? ESSTY_STRIKETHROUGH : 0 );		//ÁÙ ±×¾î¹ö¸±±î?
#endif //__PROTECT_AWAKE

#ifdef __MAX_AWAKE
			pEdit->AddString(str, isMaxAdjParamary ? 0xFFED4A62 : dwItemColor[g_Option.m_nToolTipText].dwAwakening, dwStyle);
#else // __MAX_AWAKE
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening, dwStyle );
#endif // __MAX_AWAKE
		}
		else
		{
#ifdef __MAX_AWAKE
			pEdit->AddString(str, isMaxAdjParamary ? 0xFFED4A62 : dwItemColor[g_Option.m_nToolTipText].dwBlessing);
#else // __MAX_AWAKE
			pEdit->AddString(str, dwItemColor[g_Option.m_nToolTipText].dwBlessing);
#endif // __MAX_AWAKE
		}
	}
	if( bBlessing )
	{
		str.Format( "\n%s", prj.GetText( TID_GAME_BLESSING_WARNING ) );
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwBlessingWarning );
	}
}
#endif	// __SYS_IDENTIFY
Enjoy it
it won't works while you don't add randomoption.inc to your client
sebariio is offline  
Thanks
5 Users
Old 04/27/2020, 21:41   #2
 
Hyellow's Avatar
 
elite*gold: 0
Join Date: Feb 2020
Posts: 64
Received Thanks: 23
Thumbs up

Quote:
Originally Posted by sebariio View Post
Hi
This release changes the color of the awake line when the value is at most defined in the randomoption file

randomoption.cpp
Code:
CRandomOptionProperty::CRandomOptionProperty()
{
	memset(m_anRandomOptionProb, 0, sizeof(m_anRandomOptionProb));
#ifdef __MAX_AWAKE
	memset(m_anMaxAdjParamary, 0, sizeof(m_anMaxAdjParamary));
#endif // __MAX_AWAKE
}
Code:
void CRandomOptionProperty::LoadScriptBlock( CScript & s, int nRandomOptionKind )
{
	int nTotalProb1		= 0;
	for( int i = 0; i < MAX_RANDOM_OPTION; i++ )	// 3	// ·£´ý ¿É¼ÇÀÌ ¸î°³ ºÎ¿©µÉ °ÍÀΰ¡¿¡ ´ëÇÑ È®·ü
	{
		m_anRandomOptionProb[nRandomOptionKind][i]	= s.GetNumber() + nTotalProb1;
		nTotalProb1	= m_anRandomOptionProb[nRandomOptionKind][i];
	}
	s.GetToken();	// {
	int nTotalProb2	= 0;
	RANDOM_OPTION	ro;
	ro.nDst		= s.GetNumber();
	while( *s.token != '}' )
	{
		ASSERT( ro.nDst <= 0xFF );	// 255	// 8
		ro.nProb	= s.GetNumber() + nTotalProb2;
		nTotalProb2		= ro.nProb;
		s.GetToken();	// {
		short	nAdj	= s.GetNumber();
		DWORD dwTotalProb3	= 0;
		while( *s.token != '}' )
		{
			DWORD dwProb	= s.GetNumber() + dwTotalProb3;
			dwTotalProb3	= dwProb;
			ASSERT( abs( nAdj ) <= 0x1FF );		// 511	// 1 | 9
#ifdef __MAX_AWAKE
			if (nAdj > m_anMaxAdjParamary[nRandomOptionKind][ro.nDst])
				m_anMaxAdjParamary[nRandomOptionKind][ro.nDst] = nAdj;
#endif // __MAX_AWAKE
			ro.aAdjData.push_back(AdjData(nAdj, dwProb));
			nAdj	= s.GetNumber();
		}
		if( dwTotalProb3 != 1000000000 )
			Error( "Awakening: nDst = %d, dwTotalProb = %d", ro.nDst, dwTotalProb3 );
		m_aRandomOption[nRandomOptionKind].push_back( ro );
		ro.aAdjData.clear();
		ro.nDst		= s.GetNumber();
	}
}
randomoption.h
Code:
#ifdef __MAX_AWAKE
private:
	int		m_anMaxAdjParamary[eMaxRandomOptionKind][MAX_ADJPARAMARY];

public:
	BOOL	IsMaxAdjParamary(int nRandomOptionKind, int nDstParam, int nAdjParam) {
		return m_anMaxAdjParamary[nRandomOptionKind][nDstParam] != 0
			&& m_anMaxAdjParamary[nRandomOptionKind][nDstParam] <= nAdjParam;
	};
#endif // __MAX_AWAKE
WndManager.cpp
Code:
#if __VER >= 11 // __SYS_IDENTIFY
void CWndMgr::PutAwakeningBlessing( CItemElem* pItemElem, CEditString* pEdit )
{
	int nKind	= g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
	if( nKind < 0 )		// ¾ÆÀÌÅÛ °¢¼º, ¿©½ÅÀÇ Ãູ ´ë»óÀÌ ¾Æ´Ï¸é,
		return;
	int nSize	= g_xRandomOptionProperty->GetRandomOptionSize( pItemElem->GetRandomOptItemId() );

#ifdef __PROTECT_AWAKE
	//°¢¼º º¸È£ Ãë¼ÒµÈ ¾ÆÀÌÅÛÀΰ¡.. ±×·¸´Ù¸é ÁÙ±×¾îÁø ¿É¼ÇÀ» º¸¿©Áà¾ß ÇÑ´Ù.
	bool bSafe = g_xRandomOptionProperty->IsCheckedSafeFlag( pItemElem->GetRandomOptItemId() );
	if( bSafe )
		nSize = g_xRandomOptionProperty->GetViewRandomOptionSize( pItemElem->GetRandomOptItemId() );

	assert( nSize >= 0 && nSize < 4 );
#endif //__PROTECT_AWAKE

	CString	str;

	BOOL bBlessing = FALSE;
	// title
	if( nKind == CRandomOptionProperty::eAwakening )
	{
#if __VER >= 12 // __EXT_PIERCING
		if( nSize == 0 )
		{
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENING ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
		}

#else //__EXT_PIERCING
		if( nSize == 0 )
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENING ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
		else
			str.Format( "\n%s", prj.GetText( TID_GAME_AWAKENING_CAPTION ) );	// °¢¼ºµÈ ¿É¼Ç
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
#endif //__EXT_PIERCING
	}
	else if( nKind == CRandomOptionProperty::eBlessing )
	{
		if( nSize > 0 )
		{
			str.Format( "\n%s", prj.GetText( TID_GAME_BLESSING_CAPTION ) );	// Ãູ¹ÞÀº ¿É¼Ç
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwBlessing );
			bBlessing	= TRUE;
		}
	}
#if __VER >= 12 // __PET_0519
	else if( nKind == CRandomOptionProperty::eSystemPet || nKind == CRandomOptionProperty::eEatPet )
	{	// ½Ã½ºÅÛ Æê°ú ¸ÔÆêÀÇ ÅøÆÁ¿¡ °¢¼º°ú °ü·ÃµÈ ³»¿ëÀ» Ãß°¡ÇÑ´Ù
#if __VER >= 12 // __EXT_PIERCING
		if( nSize == 0 )
		{
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENNIG_PET_00 ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
		}
#else //__EXT_PIERCING
		if( nSize == 0 )
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENNIG_PET_00 ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
		else
			str.Format( "\n%s", prj.GetText( TID_GAME_AWAKENING_CAPTION ) );	// °¢¼ºµÈ ¿É¼Ç
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
#endif //__EXT_PIERCING
	}
#endif	// __PET_0519

	// option
	for( int i = 0; i < nSize; i++ )
	{
		int nDst, nAdj;
		if( !g_xRandomOptionProperty->GetParam( pItemElem->GetRandomOptItemId(), i, &nDst, &nAdj ) )
			continue;
		if( IsDst_Rate( nDst ) )
		{
#if __VER >= 12 // __EXT_PIERCING
			if( nDst == DST_ATTACKSPEED )
				str.Format( "\n%s %c%d%% ", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj / 2 / 10 ) );
			else
				str.Format( "\n%s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#else //__EXT_PIERCING
			if( nDst == DST_ATTACKSPEED )
				str.Format( "\n - %s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj / 2 / 10 ) );
			else
				str.Format( "\n - %s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#endif //__EXT_PIERCING
		}
		else
		{
#if __VER >= 12 // __EXT_PIERCING
			str.Format( "\n%s %c%d", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#else //__EXT_PIERCING
			str.Format( "\n - %s %c%d", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#endif //__EXT_PIERCING
		}

#ifdef __MAX_AWAKE
		BOOL isMaxAdjParamary = g_xRandomOptionProperty->IsMaxAdjParamary(nKind, nDst, nAdj);
#endif // __MAX_AWAKE
		if( nKind == CRandomOptionProperty::eAwakening )
		{
			DWORD dwStyle = 0;
#ifdef __PROTECT_AWAKE
			dwStyle = ( bSafe ? ESSTY_STRIKETHROUGH : 0 );		//ÁÙ ±×¾î¹ö¸±±î?
#endif //__PROTECT_AWAKE

#ifdef __MAX_AWAKE
			pEdit->AddString(str, isMaxAdjParamary ? 0xFFED4A62 : dwItemColor[g_Option.m_nToolTipText].dwAwakening, dwStyle);
#else // __MAX_AWAKE
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening, dwStyle );
#endif // __MAX_AWAKE
		}
		else
		{
#ifdef __MAX_AWAKE
			pEdit->AddString(str, isMaxAdjParamary ? 0xFFED4A62 : dwItemColor[g_Option.m_nToolTipText].dwBlessing);
#else // __MAX_AWAKE
			pEdit->AddString(str, dwItemColor[g_Option.m_nToolTipText].dwBlessing);
#endif // __MAX_AWAKE
		}
	}
	if( bBlessing )
	{
		str.Format( "\n%s", prj.GetText( TID_GAME_BLESSING_WARNING ) );
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwBlessingWarning );
	}
}
#endif	// __SYS_IDENTIFY
Enjoy it
it won't works while you don't add randomoption.inc to your client
Thanks man, added it with colored awakening by Avalion.

I just tested it with high awakening value
Hyellow is offline  
Thanks
1 User
Old 04/28/2020, 01:41   #3
 
elite*gold: 0
Join Date: Jun 2012
Posts: 35
Received Thanks: 4
Thank you for the release! more stuff like this
lampaniboden1 is offline  
Old 04/28/2020, 08:59   #4
 
B1ackSnow's Avatar
 
elite*gold: 0
Join Date: Aug 2015
Posts: 54
Received Thanks: 17
Quote:
Originally Posted by sebariio View Post
Hi
This release changes the color of the awake line when the value is at most defined in the randomoption file

randomoption.cpp
Code:
CRandomOptionProperty::CRandomOptionProperty()
{
	memset(m_anRandomOptionProb, 0, sizeof(m_anRandomOptionProb));
#ifdef __MAX_AWAKE
	memset(m_anMaxAdjParamary, 0, sizeof(m_anMaxAdjParamary));
#endif // __MAX_AWAKE
}
Code:
void CRandomOptionProperty::LoadScriptBlock( CScript & s, int nRandomOptionKind )
{
	int nTotalProb1		= 0;
	for( int i = 0; i < MAX_RANDOM_OPTION; i++ )	// 3	// ·£´ý ¿É¼ÇÀÌ ¸î°³ ºÎ¿©µÉ °ÍÀΰ¡¿¡ ´ëÇÑ È®·ü
	{
		m_anRandomOptionProb[nRandomOptionKind][i]	= s.GetNumber() + nTotalProb1;
		nTotalProb1	= m_anRandomOptionProb[nRandomOptionKind][i];
	}
	s.GetToken();	// {
	int nTotalProb2	= 0;
	RANDOM_OPTION	ro;
	ro.nDst		= s.GetNumber();
	while( *s.token != '}' )
	{
		ASSERT( ro.nDst <= 0xFF );	// 255	// 8
		ro.nProb	= s.GetNumber() + nTotalProb2;
		nTotalProb2		= ro.nProb;
		s.GetToken();	// {
		short	nAdj	= s.GetNumber();
		DWORD dwTotalProb3	= 0;
		while( *s.token != '}' )
		{
			DWORD dwProb	= s.GetNumber() + dwTotalProb3;
			dwTotalProb3	= dwProb;
			ASSERT( abs( nAdj ) <= 0x1FF );		// 511	// 1 | 9
#ifdef __MAX_AWAKE
			if (nAdj > m_anMaxAdjParamary[nRandomOptionKind][ro.nDst])
				m_anMaxAdjParamary[nRandomOptionKind][ro.nDst] = nAdj;
#endif // __MAX_AWAKE
			ro.aAdjData.push_back(AdjData(nAdj, dwProb));
			nAdj	= s.GetNumber();
		}
		if( dwTotalProb3 != 1000000000 )
			Error( "Awakening: nDst = %d, dwTotalProb = %d", ro.nDst, dwTotalProb3 );
		m_aRandomOption[nRandomOptionKind].push_back( ro );
		ro.aAdjData.clear();
		ro.nDst		= s.GetNumber();
	}
}
randomoption.h
Code:
#ifdef __MAX_AWAKE
private:
	int		m_anMaxAdjParamary[eMaxRandomOptionKind][MAX_ADJPARAMARY];

public:
	BOOL	IsMaxAdjParamary(int nRandomOptionKind, int nDstParam, int nAdjParam) {
		return m_anMaxAdjParamary[nRandomOptionKind][nDstParam] != 0
			&& m_anMaxAdjParamary[nRandomOptionKind][nDstParam] <= nAdjParam;
	};
#endif // __MAX_AWAKE
WndManager.cpp
Code:
#if __VER >= 11 // __SYS_IDENTIFY
void CWndMgr::PutAwakeningBlessing( CItemElem* pItemElem, CEditString* pEdit )
{
	int nKind	= g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
	if( nKind < 0 )		// ¾ÆÀÌÅÛ °¢¼º, ¿©½ÅÀÇ Ãູ ´ë»óÀÌ ¾Æ´Ï¸é,
		return;
	int nSize	= g_xRandomOptionProperty->GetRandomOptionSize( pItemElem->GetRandomOptItemId() );

#ifdef __PROTECT_AWAKE
	//°¢¼º º¸È£ Ãë¼ÒµÈ ¾ÆÀÌÅÛÀΰ¡.. ±×·¸´Ù¸é ÁÙ±×¾îÁø ¿É¼ÇÀ» º¸¿©Áà¾ß ÇÑ´Ù.
	bool bSafe = g_xRandomOptionProperty->IsCheckedSafeFlag( pItemElem->GetRandomOptItemId() );
	if( bSafe )
		nSize = g_xRandomOptionProperty->GetViewRandomOptionSize( pItemElem->GetRandomOptItemId() );

	assert( nSize >= 0 && nSize < 4 );
#endif //__PROTECT_AWAKE

	CString	str;

	BOOL bBlessing = FALSE;
	// title
	if( nKind == CRandomOptionProperty::eAwakening )
	{
#if __VER >= 12 // __EXT_PIERCING
		if( nSize == 0 )
		{
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENING ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
		}

#else //__EXT_PIERCING
		if( nSize == 0 )
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENING ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
		else
			str.Format( "\n%s", prj.GetText( TID_GAME_AWAKENING_CAPTION ) );	// °¢¼ºµÈ ¿É¼Ç
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
#endif //__EXT_PIERCING
	}
	else if( nKind == CRandomOptionProperty::eBlessing )
	{
		if( nSize > 0 )
		{
			str.Format( "\n%s", prj.GetText( TID_GAME_BLESSING_CAPTION ) );	// Ãູ¹ÞÀº ¿É¼Ç
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwBlessing );
			bBlessing	= TRUE;
		}
	}
#if __VER >= 12 // __PET_0519
	else if( nKind == CRandomOptionProperty::eSystemPet || nKind == CRandomOptionProperty::eEatPet )
	{	// ½Ã½ºÅÛ Æê°ú ¸ÔÆêÀÇ ÅøÆÁ¿¡ °¢¼º°ú °ü·ÃµÈ ³»¿ëÀ» Ãß°¡ÇÑ´Ù
#if __VER >= 12 // __EXT_PIERCING
		if( nSize == 0 )
		{
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENNIG_PET_00 ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
		}
#else //__EXT_PIERCING
		if( nSize == 0 )
			str.Format( "\n\"%s\"", prj.GetText( TID_GAME_AWAKENNIG_PET_00 ) );	// "°¢¼ºÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ"
		else
			str.Format( "\n%s", prj.GetText( TID_GAME_AWAKENING_CAPTION ) );	// °¢¼ºµÈ ¿É¼Ç
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening );
#endif //__EXT_PIERCING
	}
#endif	// __PET_0519

	// option
	for( int i = 0; i < nSize; i++ )
	{
		int nDst, nAdj;
		if( !g_xRandomOptionProperty->GetParam( pItemElem->GetRandomOptItemId(), i, &nDst, &nAdj ) )
			continue;
		if( IsDst_Rate( nDst ) )
		{
#if __VER >= 12 // __EXT_PIERCING
			if( nDst == DST_ATTACKSPEED )
				str.Format( "\n%s %c%d%% ", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj / 2 / 10 ) );
			else
				str.Format( "\n%s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#else //__EXT_PIERCING
			if( nDst == DST_ATTACKSPEED )
				str.Format( "\n - %s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj / 2 / 10 ) );
			else
				str.Format( "\n - %s %c%d%%", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#endif //__EXT_PIERCING
		}
		else
		{
#if __VER >= 12 // __EXT_PIERCING
			str.Format( "\n%s %c%d", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#else //__EXT_PIERCING
			str.Format( "\n - %s %c%d", FindDstString( nDst ), ( nAdj > 0? '+': '-' ), ::abs( nAdj ) );
#endif //__EXT_PIERCING
		}

#ifdef __MAX_AWAKE
		BOOL isMaxAdjParamary = g_xRandomOptionProperty->IsMaxAdjParamary(nKind, nDst, nAdj);
#endif // __MAX_AWAKE
		if( nKind == CRandomOptionProperty::eAwakening )
		{
			DWORD dwStyle = 0;
#ifdef __PROTECT_AWAKE
			dwStyle = ( bSafe ? ESSTY_STRIKETHROUGH : 0 );		//ÁÙ ±×¾î¹ö¸±±î?
#endif //__PROTECT_AWAKE

#ifdef __MAX_AWAKE
			pEdit->AddString(str, isMaxAdjParamary ? 0xFFED4A62 : dwItemColor[g_Option.m_nToolTipText].dwAwakening, dwStyle);
#else // __MAX_AWAKE
			pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwAwakening, dwStyle );
#endif // __MAX_AWAKE
		}
		else
		{
#ifdef __MAX_AWAKE
			pEdit->AddString(str, isMaxAdjParamary ? 0xFFED4A62 : dwItemColor[g_Option.m_nToolTipText].dwBlessing);
#else // __MAX_AWAKE
			pEdit->AddString(str, dwItemColor[g_Option.m_nToolTipText].dwBlessing);
#endif // __MAX_AWAKE
		}
	}
	if( bBlessing )
	{
		str.Format( "\n%s", prj.GetText( TID_GAME_BLESSING_WARNING ) );
		pEdit->AddString( str, dwItemColor[g_Option.m_nToolTipText].dwBlessingWarning );
	}
}
#endif	// __SYS_IDENTIFY
Enjoy it
it won't works while you don't add randomoption.inc to your client
Hm, its changing a color with v20 awakening system?
Good job btw
B1ackSnow is offline  
Old 05/03/2020, 11:10   #5
 
elite*gold: 0
Join Date: Nov 2016
Posts: 1
Received Thanks: 0
i want that hack for the server playforfun help me please i want make a awekenings
firedx011 is offline  
Old 05/03/2020, 15:35   #6
 
Ecrypter's Avatar
 
elite*gold: 0
Join Date: Aug 2014
Posts: 653
Received Thanks: 217
Quote:
Originally Posted by firedx011 View Post
i want that hack for the server playforfun help me please i want make a awekenings
this is not hack tools., it is a code for the source if player got the max awake it will change the color. its separated to lower max awake.
Ecrypter is offline  
Old 05/13/2020, 22:45   #7
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1
Received Thanks: 3
Other method for determine max awake :

Code:
BOOL CRandomOptionProperty::IsMaxAwake(int nDst, int nAdj, CItemElem* pItemElem)
{
	if(!pItemElem)
		return FALSE;
	
	for (DWORD i = 0; i < m_aRandomOption[GetRandomOptionKind(pItemElem)].size(); i++)
	{
		RANDOM_OPTION* pRandomOption = &m_aRandomOption[GetRandomOptionKind(pItemElem)][i];

		if (!pRandomOption)
			continue;

		if (pRandomOption->nDst != nDst)
			continue;

		int nAdjMax = pRandomOption->aAdjData.size() - 1;

		if (pRandomOption->aAdjData[nAdjMax].nAdj == nAdj)
			return TRUE;
	}
	return FALSE;	
}
Arinis is offline  
Old 05/09/2023, 14:34   #8
 
elite*gold: 0
Join Date: Feb 2012
Posts: 2
Received Thanks: 0
Hello all.
I have a question.
I put the code in my files.
My MaxAwake on STR is 30.
When i awake STR +30, the color is default on blue.
How can i change the color when the maxawake hits ?

regards
saschaxX20 is offline  
Old 08/13/2023, 22:13   #9
 
elite*gold: 0
Join Date: Jan 2011
Posts: 29
Received Thanks: 2
Fixed.

Thanks!


Quote:
Originally Posted by saschaxX20 View Post
Hello all.
I have a question.
I put the code in my files.
My MaxAwake on STR is 30.
When i awake STR +30, the color is default on blue.
How can i change the color when the maxawake hits ?

regards
Read the last line of the post. Just add randomoption.inc to your client (data.res for example).
eunasciem is offline  
Old 01/23/2024, 11:36   #10
 
elite*gold: 0
Join Date: Jan 2024
Posts: 4
Received Thanks: 3
Thanks for sharing this
Stathaim is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Help] Changing awake text color
10/15/2019 - Flyff Private Server - 2 Replies
Good Day Epvpers! I want to change awake color in every line. Please help! 1st line awake = Red STR+50 2nd line awake = Green STR+50 3rd line awake = Blue STR+50
[Selling] (Max Secure) Clash of clans TH12, MAX HEROES 60/60/30, Max Walls, can change the name
07/18/2019 - Clash of Clans Trading - 1 Replies
Clash of Clans account, Town Hall 12 (TH12) Free Name Change - Gems available 20 Heroes - Barbarian King lv 60 (maxed) - Archer Queen lv 60 (maxed) - Grand Warden lv 30 (maxed) Base - Close to max all defense
Please Help - How to add awake system like this /awake , /awa or /awakening!
04/30/2017 - Flyff Private Server - 8 Replies
How to add awake system like this /awake , /awa or /awakening!
[Selling] Awake Service / Awake weapons
11/20/2015 - Flyff Trading - 2 Replies
deleted



All times are GMT +1. The time now is 16:58.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.