Code:
case II_SYS_SYS_SCR_AMPESA:
case II_SYS_SYS_SCR_AMPESB:
case II_SYS_SYS_SCR_AMPESC:
case II_SYS_SYS_SCR_AMPESD:
case II_SYS_SYS_SCR_AMPESE:
#ifdef __S_ADD_EXP
case II_SYS_SYS_SCR_AMPESS:
#endif // __S_ADD_EXP
{
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPES ) || HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPEM ) )
nResult = 2;
else if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPI ) )
nResult = 3;
// ·¹º§ °Ë»ç
int nLevel = GetLevel();
CString str;
if( pItemProp->dwID == II_SYS_SYS_SCR_AMPESA )
{
if( 20 < nLevel )
{
str.Format( "%d - %d", 1, 20 );
((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSELEVEL, "\"%s\"", str ); //
nResult = 99;
}
}
else if( pItemProp->dwID == II_SYS_SYS_SCR_AMPESB )
{
if( nLevel < 21 || 40 < nLevel )
{
str.Format( "%d - %d", 21, 40 );
((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSELEVEL, "\"%s\"", str ); //
nResult = 99;
}
}
else if( pItemProp->dwID == II_SYS_SYS_SCR_AMPESC )
{
if( nLevel < 41 || 60 < nLevel )
{
str.Format( "%d - %d", 41, 60 );
((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSELEVEL, "\"%s\"", str ); //
nResult = 99;
}
}
else if( pItemProp->dwID == II_SYS_SYS_SCR_AMPESD )
{
if( nLevel < 61 || 80 < nLevel )
{
str.Format( "%d - %d", 61, 80 );
((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSELEVEL, "\"%s\"", str ); //
nResult = 99;
}
}
else if( pItemProp->dwID == II_SYS_SYS_SCR_AMPESE )
{
if( nLevel < 81 || 120 < nLevel )
{
str.Format( "%d - %d", 81, 120 );
((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSELEVEL, "\"%s\"", str ); //
nResult = 99;
}
}
if( !(nResult == 2 || nResult == 3 || nResult == 99 ) )
{
[COLOR="Red"]BOOL bBuf[3];[/COLOR]
int nBufCount = 0;
BOOL bSpecial = FALSE;
int nSpecialCount = 0;
ZeroMemory( bBuf, sizeof( bBuf ) );
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESA ) )
{
bBuf[0] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESA1 ) )
{
bBuf[1] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESA2 ) )
{
bBuf[2] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESB ) )
{
bBuf[0] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESB1 ) )
{
bBuf[1] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESB2 ) )
{
bBuf[2] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESC ) )
{
bBuf[0] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESC1 ) )
{
bBuf[1] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESC2 ) )
{
bBuf[2] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESD ) )
{
bBuf[0] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESD1 ) )
{
bBuf[1] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESD2 ) )
{
bBuf[2] = TRUE; ++nBufCount;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESE ) )
{
bBuf[0] = TRUE; ++nBufCount;
}
#ifdef __S_ADD_EXP
[COLOR="Red"]if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESS ) )
{
bBuf[0] = TRUE; ++nBufCount; nSpecialCount++;//bSpecial = TRUE;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESS1 ) )
{
bBuf[1] = TRUE; ++nBufCount; nSpecialCount++;//bSpecial = TRUE;
}
if( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_AMPESS2 ) )
{
bBuf[2] = TRUE; ++nBufCount; nSpecialCount++;//bSpecial = TRUE;
}[/COLOR]
#endif // __S_ADD_EXP
[COLOR="Red"]int nMaxBuf = 3;
//if( bSpecial == FALSE )
{
if( nLevel < 41 )
nMaxBuf = 3;
else if( nLevel < 61 && nSpecialCount < 2 )
nMaxBuf = 2;
else if( nLevel <= 120 && nSpecialCount < 1 )
nMaxBuf = 1;
else
nMaxBuf = 3;
}[/COLOR]
#ifdef __S_ADD_EXP
//if( bSpecial && pItemProp->dwID != II_SYS_SYS_SCR_AMPESS )
if( nSpecialCount && pItemProp->dwID != II_SYS_SYS_SCR_AMPESS )
{
nResult = 2;
}
else
#endif // __S_ADD_EXP
[COLOR="Red"]if( nBufCount < nMaxBuf )
{
for( int i = 0 ; i < nMaxBuf ; ++i )
{
if( bBuf[i] == FALSE )
{
if( i == 0 )
pItemProp = prj.GetItemProp( pItemProp->dwID );
else if( i == 1 )
pItemProp = prj.GetItemProp( pItemProp->dwID + 1 );
else
pItemProp = prj.GetItemProp( pItemProp->dwID + 2 );
break;
}
}[/COLOR]
DoApplySkill( (CCtrl*)this, pItemProp, NULL );
float fFactor = 1;
switch( nBufCount + 1)
{
case 1:
{
fFactor *= 1.5f;
}
break;
case 2:
{
//if( bSpecial || nLevel < 61 )
if( nSpecialCount || nLevel < 61 )
fFactor *= 2.0f;
else
fFactor *= 1.5f;
}
break;
[COLOR="Red"]case 3:
{
//if( bSpecial || nLevel < 41 )
if( nSpecialCount || nLevel < 41 )
fFactor *= 2.5f;
else if( nLevel < 61 )
fFactor *= 2.0f;
else
fFactor *= 1.5f;
}
break;[/COLOR]
}
CString strTemp;
#if __VER >= 11 // __EXPITEM_TOOLTIP_CHANGE
int nPercent = (int)( (fFactor - 1.0f) * 100.0f );
strTemp.Format( "%s %d%% %s", prj.GetText( TID_GAME_EXPITEM_TOOLTIP ), nPercent, prj.GetText( TID_GAME_EXPITEM_TOOLTIP1 ) );
#else //__EXPITEM_TOOLTIP_CHANGE
strTemp.Format( "%s%.1f%s", prj.GetText( TID_GAME_EXPTOOLTIP ), fFactor, prj.GetText( TID_GAME_EXPTOOLTIP1 ) );
#endif //__EXPITEM_TOOLTIP_CHANGE
((CUser*)this)->AddText( strTemp ); //
}
else
{
#ifdef __S_ADD_EXP
//if( bSpecial )
//{
// ((CUser*)this)->AddDefinedText( TID_GAME_EXP_3 ); //
//}
// else
#endif // __S_ADD_EXP
{
if( nLevel < 21 )
str.Format( "%d - %d", 1, 20 );
else if( nLevel < 41 )
str.Format( "%d - %d", 21, 40 );
else if( nLevel < 61 )
str.Format( "%d - %d", 41, 60 );
else if( nLevel < 81 )
str.Format( "%d - %d", 61, 80 );
else if( nLevel <= 120 )
str.Format( "%d - %d", 81, 120 );
CString szMaxBuf;
szMaxBuf.Format( "%d", nMaxBuf );
((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSE, "\"%s\" \"%s\"", str, szMaxBuf ); //
}
nResult = 99;
}
}
}
break;