ItemUpgrade.cpp
void CItemUpgrade::RefineAccessory( CUser* pUser, CItemElem* pItemMain, CItemElem* pItemMaterial )
Check if there is something out of the order.
This is mine script
Code:
void CItemUpgrade::RefineAccessory( CUser* pUser, CItemElem* pItemMain, CItemElem* pItemMaterial )
{
// Àç·á°¡ ¹®½ºÅæÀΰ¡?
if( pItemMaterial->GetProp()->dwID != II_GEN_MAT_MOONSTONE && pItemMaterial->GetProp()->dwID != II_GEN_MAT_MOONSTONE_1 )
{
pUser->AddDefinedText( TID_GAME_NOTEQUALITEM );
return;
}
if( pItemMain->GetAbilityOption() >= MAX_AAO ) // 20
{
pUser->AddDefinedText( TID_GAME_ACCESSORY_MAX_AAO );
return;
}
// log
LogItemInfo aLogItem;
aLogItem.SendName = pUser->GetName();
aLogItem.RecvName = "UPGRADEITEM";
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = pUser->GetGold();
aLogItem.Gold2 = pUser->GetGold();
DWORD dwProbability = CAccessoryProperty::GetInstance()->GetProbability( pItemMain->GetAbilityOption() );
// ¾×¼¼¼*¸® º¸È£ÀÇ µÎ·ç¸¶¸®
BOOL bSmelprot = FALSE;
if( pUser->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_SMELPROT4 ) )
{
bSmelprot = TRUE;
pUser->RemoveBuff( BUFF_ITEM, II_SYS_SYS_SCR_SMELPROT4 );
ItemProp* pItemProp = prj.GetItemProp( II_SYS_SYS_SCR_SMELPROT4 );
if( pItemProp )
g_dpDBClient.SendLogSMItemUse( "2", pUser, NULL, pItemProp );
}
if( xRandom( 10000 ) < dwProbability ) // ¼º°ø
{
pUser->AddDefinedText( TID_UPGRADE_SUCCEEFUL );
pUser->AddPlaySound( SND_INF_UPGRADESUCCESS );
if( pUser->IsMode( TRANSPARENT_MODE ) == 0)
g_UserMng.AddCreateSfxObj( (CMover *)pUser, XI_INT_SUCCESS, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z);
pUser->UpdateItem( (BYTE)pItemMain->m_dwObjId, UI_AO, pItemMain->GetAbilityOption()+1 );
aLogItem.Action = "H";
g_DPSrvr.OnLogItem( aLogItem, pItemMain, pItemMain->m_nItemNum );
}
else // ½ÇÆÐ
{
pUser->AddDefinedText( TID_UPGRADE_FAIL );
pUser->AddPlaySound( SND_INF_UPGRADEFAIL );
if( pUser->IsMode( TRANSPARENT_MODE ) == 0 )
g_UserMng.AddCreateSfxObj( (CMover *)pUser, XI_INT_FAIL, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z );
if( !bSmelprot )
{
if( pItemMain->GetAbilityOption() >= 3 ) // »èÁ¦
{
aLogItem.Action = "L";
g_DPSrvr.OnLogItem( aLogItem, pItemMain, pItemMain->m_nItemNum );
pUser->UpdateItem( (BYTE)pItemMain->m_dwObjId, UI_NUM, 0 );
}
}
}
aLogItem.Action = "N";
g_DPSrvr.OnLogItem( aLogItem, pItemMaterial, pItemMaterial->m_nItemNum );
pUser->UpdateItem( (BYTE)pItemMaterial->m_dwObjId, UI_NUM, pItemMaterial->m_nItemNum - 1 );
}
Compare it to yours.