Hi! This is the whole function.
Code:
BOOL CDPSrvr::DoUseItemTarget_WezzyFixAwakeningScroll( CUser* pUser, CItemElem* pMaterial, CItemElem* pTarget )
{
int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pTarget );
if( nRandomOptionKind >= 0 )
{
g_xRandomOptionProperty->InitializeRandomOption( pTarget->GetRandomOptItemIdPtr() ); //Reset awake
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////// |Weapons|Armor|Shield| /////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if( pTarget->GetProp()->dwItemKind1 == IK1_WEAPON || pTarget->GetProp()->dwItemKind2 == IK2_ARMORETC || pTarget->GetProp()->dwItemKind2 == IK2_ARMOR || pTarget->GetProp()->dwItemKind3 == IK3_SHIELD )
{
if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_STR )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_STA )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_DEX )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_INT )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_ADOCH )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_SPEED )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_INCATK )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_INCMP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_INCHP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_N_AWAKEFIX_INCDEF )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////// |-------|Accesory|------| //////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if( pTarget->GetProp()->dwItemKind2 == IK2_JEWELRY )
{
if( pMaterial->m_dwItemId == II_SYS_J_AWAKEFIX_STR )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 15 );
}
else if( pMaterial->m_dwItemId == II_SYS_J_AWAKEFIX_STA )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 15 );
}
else if( pMaterial->m_dwItemId == II_SYS_J_AWAKEFIX_DEX )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 15 );
}
else if( pMaterial->m_dwItemId == II_SYS_J_AWAKEFIX_INT )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 15 );
}
else if( pMaterial->m_dwItemId == II_SYS_J_AWAKEFIX_ADOCH )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 15 );
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////// |-------|Fashions|------| //////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if( pTarget->GetProp()->dwItemKind2 == IK2_CLOTH || pTarget->GetProp()->dwItemKind2 == IK2_CLOTHETC )
{
if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_STR )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_STA )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_DEX )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_INT )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_ADOCH )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_SPEED )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_INCATK )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_INCMP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_INCHP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_F_AWAKEFIX_INCDEF )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////// |-------|Raise Pets|------| ////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if( pTarget->GetProp()->dwItemKind3 == IK3_EGG )
{
if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_STR )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_STA )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_DEX )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_INT )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_ADOCH )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_SPEED )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_INCATK )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_INCMP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_INCHP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_P_AWAKEFIX_INCDEF )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////// |-------|Looter Pets|------| ///////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if( pTarget->GetProp()->dwItemKind3 == IK3_PET )
{
if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_STR )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_STA )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STA, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_DEX )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_DEX, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_INT )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_INT, 150 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_ADOCH )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_CRITICAL_BONUS, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_SPEED )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_SPEED, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_INCATK )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ATKPOWER_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_INCMP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_MP_MAX_RATE, 50 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_INCHP )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_HP_MAX_RATE, 100 );
}
else if( pMaterial->m_dwItemId == II_SYS_V_AWAKEFIX_INCDEF )
{
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_ADJDEF_RATE, 100 );
}
}
else if (pTarget->GetProp()->dwItemKind3 != pTarget )
{
pUser->AddText( "Oops! Wrong item!" );
return FALSE;
}
pUser->UpdateItemEx( (BYTE)( pTarget->m_dwObjId ), UI_RANDOMOPTITEMID, pTarget->GetRandomOptItemId() );
return TRUE;
}
return FALSE;
}