Quote:
Originally Posted by Timelimits
the void for Cuser::AddText only takes 1 value or argument however you wanna look at it, somewhere you're calling another statement so either update the void to handle another or remove the second?
|
this is what i use:
AttackArbitter.cpp
Code:
#ifdef __EXTRA
else
{
if( m_pDefender->IsNPC() && ( m_pDefender->GetProp()->dwClass == RANK_LOW || m_pDefender->GetProp()->dwClass == RANK_NORMAL || m_pDefender->GetProp()->dwClass == RANK_CAPTAIN ))
{
CItemElem* pExtra1 = m_pAttacker->m_Inventory.GetEquip( PARTS_EXTRA1 );
CItemElem* pExtra2 = m_pAttacker->m_Inventory.GetEquip( PARTS_EXTRA2 );
CString str;
int nExtraOk = 500; // 1/500
bool bMsg = TRUE;
if( m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X2_1DAY ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X2_7DAYS ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X2_15DAYS ) )
{
// Chance /2
nExtraOk = 250;
}
else if( m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X5_1DAY ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X5_7DAYS ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X5_15DAYS ) )
{
// Chance /5
nExtraOk = 100;
}
else if( m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_100PERCENT_1DAY ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_100PERCENT_7DAYS ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_100PERCENT_15DAYS ) )
{
// Chance 100%
nExtraOk = 1;
bMsg = FALSE;
}
if( (pExtra1 && pExtra1->GetProp()->dwID == II_SYS_EXTRA_OK_1) && (pExtra2 && pExtra2->GetProp()->dwID == II_SYS_EXTRA_OK_2) )
{
int nRandom = xRandom( nExtraOk );
if( nRandom == 0 || nRandom == 1 )
{
g_UserMng.AddCreateSfxObj( m_pAttacker, XI_SKILL_BARUNA_WEA_DEATHRUNE );
str.Format( prj.GetText( TID_GAME_ORBE_TEXT_01 ), pExtra1->GetProp()->szName, pExtra2->GetProp()->szName );
if( bMsg )
((CUser*)m_pAttacker)->AddText( str, 0xFFFF0000 );
return m_pDefender->GetHitPoint();
}
}
}
}
#endif // __EXTRA
Code:
#ifdef __EXTRA
CItemElem* pExtra1 = m_pAttacker->m_Inventory.GetEquip( PARTS_EXTRA1 );
CItemElem* pExtra2 = m_pAttacker->m_Inventory.GetEquip( PARTS_EXTRA2 );
CString str;
int nExtraHP = 100; // 1/100
int nExtraMP = 100; // 1/100
int nExtraFP = 100; // 1/100
bool bMsg = TRUE;
if( m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X2_1DAY ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X2_7DAYS ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X2_15DAYS ) )
{
// Chance /2
nExtraHP = 50;
nExtraMP = 50;
nExtraFP = 50;
}
else if( m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X5_1DAY ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X5_7DAYS ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_X5_15DAYS ) )
{
// Chance /5
nExtraHP = 20;
nExtraMP = 20;
nExtraFP = 20;
}
else if( m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_100PERCENT_1DAY ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_100PERCENT_7DAYS ) || m_pAttacker->HasBuff( BUFF_ITEM, II_SYS_EXTRA_UP_100PERCENT_15DAYS ) )
{
// Chance 100%
nExtraHP = 1;
nExtraMP = 1;
nExtraFP = 1;
bMsg = FALSE;
}
if( (pExtra1 && pExtra1->GetProp()->dwID == II_SYS_EXTRA_HP_1) && (pExtra2 && pExtra2->GetProp()->dwID == II_SYS_EXTRA_HP_2) )
{
int nRandom = xRandom( nExtraHP );
if( nRandom == 0 || nRandom == 1 )
{
m_pAttacker->SetPointParam( DST_HP, m_pAttacker->GetMaxHitPoint() );
g_UserMng.AddCreateSfxObj( m_pAttacker, XI_SKILL_BARUNA_WEA_DEATHRUNE );
str.Format( prj.GetText( TID_GAME_ORBE_TEXT_02 ), pExtra1->GetProp()->szName, pExtra2->GetProp()->szName );
if( bMsg )
((CUser*)m_pAttacker)->AddText( str, 0xFFFF0000 );
}
}
if( (pExtra1 && pExtra1->GetProp()->dwID == II_SYS_EXTRA_MP_1) && (pExtra2 && pExtra2->GetProp()->dwID == II_SYS_EXTRA_MP_2) )
{
int nRandom = xRandom( nExtraMP );
if( nRandom == 0 || nRandom == 1 )
{
m_pAttacker->SetPointParam( DST_MP, m_pAttacker->GetMaxManaPoint() );
g_UserMng.AddCreateSfxObj( m_pAttacker, XI_SKILL_BARUNA_WEA_DEATHRUNE );
str.Format( prj.GetText( TID_GAME_ORBE_TEXT_03 ), pExtra1->GetProp()->szName, pExtra2->GetProp()->szName );
if( bMsg )
((CUser*)m_pAttacker)->AddText( str, 0xFFFF0000 );
}
}
if( (pExtra1 && pExtra1->GetProp()->dwID == II_SYS_EXTRA_FP_1) && (pExtra2 && pExtra2->GetProp()->dwID == II_SYS_EXTRA_FP_2) )
{
int nRandom = xRandom( nExtraFP );
if( nRandom == 0 || nRandom == 1 )
{
m_pAttacker->SetPointParam( DST_FP, m_pAttacker->GetMaxFatiguePoint() );
g_UserMng.AddCreateSfxObj( m_pAttacker, XI_SKILL_BARUNA_WEA_DEATHRUNE );
str.Format( prj.GetText( TID_GAME_ORBE_TEXT_04 ), pExtra1->GetProp()->szName, pExtra2->GetProp()->szName );
if( bMsg )
((CUser*)m_pAttacker)->AddText( str, 0xFFFF0000 );
}
}
#endif // __EXTRA