Показать сообщение отдельно
Старый 28.06.2010, 04:38   #7
xex
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 47
Сказал(а) спасибо: 45
Поблагодарили 29 раз(а) в 13 сообщениях
xex На верном пути
По умолчанию

Мой старый код. Работает с полгода, всё нормально.
PHP код:
    if (GetUInt32Value(ITEM_FIELD_DURATION) <= diff)
    {
        
uint8 bagSlot GetBagSlot();
        
uint8 slot GetSlot();
        
uint32 ItemId GetProto()->ItemId;

        
owner->DestroyItem(bagSlotslottrue);

        
// Mysterious Egg (39878) & Disgusting Jar (44717)
        
if (ItemId == 39878 || ItemId == 44717)
        {
            
// Cracked Egg (39883) & Ripe Disgusting Jar (44718)
            
uint32 newItemId = (ItemId == 39878) ? 39883 44718;

            
// first try store new item instead of deleted
            
ItemPosCountVec dest;
            
uint8 msg owner->CanStoreNewItem(bagSlotslotdestnewItemId1);
            if (
msg == EQUIP_ERR_OK)
            {
                
owner->StoreNewItem(destnewItemId1true);
            }
            else
            {
                
// try store new item in any slot
                
if (ItempItem owner->StoreNewItemInInventorySlot(newItemId1))
                    
owner->SendNewItem(pItem1truefalse);
                
// on any case... send error
                
else
                    
owner->SendEquipError(msgNULLNULL);
            }
        }
        return;
    } 
xex вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (28.06.2010)