|
You last visited: Today at 16:54
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.
04/27/2020, 17:06
|
#1
|
elite*gold: 0
Join Date: Aug 2010
Posts: 98
Received Thanks: 76
|
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
|
|
|
04/27/2020, 21:41
|
#2
|
elite*gold: 0
Join Date: Feb 2020
Posts: 64
Received Thanks: 23
|
Quote:
Originally Posted by sebariio
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
|
|
|
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
|
|
|
04/28/2020, 08:59
|
#4
|
elite*gold: 0
Join Date: Aug 2015
Posts: 54
Received Thanks: 17
|
Quote:
Originally Posted by sebariio
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
|
|
|
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
|
|
|
05/03/2020, 15:35
|
#6
|
elite*gold: 0
Join Date: Aug 2014
Posts: 653
Received Thanks: 217
|
Quote:
Originally Posted by firedx011
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.
|
|
|
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;
}
|
|
|
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
|
|
|
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
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).
|
|
|
01/23/2024, 11:36
|
#10
|
elite*gold: 0
Join Date: Jan 2024
Posts: 4
Received Thanks: 3
|
Thanks for sharing this
|
|
|
All times are GMT +1. The time now is 16:58.
|
|