Code:
void CItemUpgrade::OnPiercingRemove( CUser* pUser, DWORD objId )
{
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( objId );
if( !IsUsableItem( pItemElem ) || !pItemElem->IsPierceAble() )
return;
if( pUser->m_Inventory.IsEquip( objId ) )
return;
// ÇǾî½Ì ¿É¼ÇÀÌ ¾ø´Â °æ¿ì
if( pItemElem->GetPiercingSize() == 0 || pItemElem->GetPiercingItem( 0 ) == 0 )
{
pUser->AddDefinedText( TID_GAME_REMOVE_PIERCING_ERROR );
return;
}
int nPayPenya = 1000000; // ÁöºÒÇÒ Æä³Ä
if( pUser->GetGold() < nPayPenya ) // Æä³Ä°¡ ºÎÁ·ÇÏ´Ù.
{
pUser->AddDefinedText( TID_GAME_LACKMONEY );
return;
}
for( int i=pItemElem->GetPiercingSize()-1; i>=0; i-- )
{
if( pItemElem->GetPiercingItem( i ) != 0 )
{
pUser->AddGold( -nPayPenya ); // Æä³Ä ÁöºÒ
pUser->AddDefinedText(TID_GAME_REMOVE_PIERCING_SUCCESS);
pUser->UpdateItem( (BYTE)( pItemElem->m_dwObjId ), UI_PIERCING, MAKELONG( i, 0 ) );
LogItemInfo aLogItem;
aLogItem.Action = "$";
aLogItem.SendName = pUser->GetName();
aLogItem.RecvName = "PIERCING_REMOVE";
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = pUser->GetGold() + nPayPenya;
aLogItem.Gold2 = pUser->GetGold();
aLogItem.Gold_1 = -nPayPenya;
g_DPSrvr.OnLogItem( aLogItem, pItemElem, 1 );
break;
}
}
}