Çözüldü Envanterden item taşması

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

hiqermod

Üye
Üye
Mesaj
124
Çözümler
14
Beğeni
39
Puan
454
Ticaret Puanı
0
Merhaba arkadaşlar k envanteri serverime ekledikten sonra şöyle bir problemle karşı karşıya kaldım
1626555468818.png

anladığım kadarıyla char_item.cpp de bir eksiğim veya bir hatam var kontrol etsemde tam olarak anlayamadım
char_item.cpp:
bool CHARACTER::UnequipItem(LPITEM item)
{

   
    int pos;

    if (false == CanUnequipNow(item))
        return false;

    if (item->IsDragonSoul())
        pos = GetEmptyDragonSoulInventory(item);
   

#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
    else if (item->IsSkillBook())
        pos = GetEmptySkillBookInventory(item->GetSize());
    else if (item->IsUpgradeItem())
        pos = GetEmptyUpgradeItemsInventory(item->GetSize());
    else if (item->IsStone())
        pos = GetEmptyStoneInventory(item->GetSize());
    else if (item->IsBox())
        pos = GetEmptyBoxInventory(item->GetSize());
    else if (item->IsEfsun())
        pos = GetEmptyEfsunInventory(item->GetSize());
    else if (item->IsCicek())
        pos = GetEmptyCicekInventory(item->GetSize());
#endif
    else
        pos = GetEmptyInventory(item->GetSize());

    // HARD CODING
    if (item->GetVnum() == UNIQUE_ITEM_HIDE_ALIGNMENT_TITLE)
        ShowAlignment(true);

    item->RemoveFromCharacter(); //k env anlatımında yok kaldırdım
    if (item->IsDragonSoul())
    {
        item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, pos));
    }
//k env
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
    else if (item->IsSkillBook())
        item->AddToCharacter(this, TItemPos(SKILL_BOOK_INVENTORY, pos));
    else if (item->IsUpgradeItem())
        item->AddToCharacter(this, TItemPos(UPGRADE_ITEMS_INVENTORY, pos));
    else if (item->IsStone())
        item->AddToCharacter(this, TItemPos(STONE_INVENTORY, pos));
    else if (item->IsBox())
        item->AddToCharacter(this, TItemPos(BOX_INVENTORY, pos));
    else if (item->IsEfsun())
        item->AddToCharacter(this, TItemPos(EFSUN_INVENTORY, pos));
    else if (item->IsCicek())
        item->AddToCharacter(this, TItemPos(CICEK_INVENTORY, pos));
#endif
//k env sonu
    else
        item->AddToCharacter(this, TItemPos(INVENTORY, pos));

    CheckMaximumPoints();

    return true;
}
anladığım kadarıyla burdaki pos değişkeni itemi çıkardıktan sonraki pozisyonunu hesaplamak için var
daha sonra bu fonksiyon ile itemi envanterde konumlandırıyor
item->AddToCharacter(this, TItemPos(INVENTORY, pos));
sistem hakkında bildiklerim az o yüzden sadece varsayım yapıyorum acaba k envanter ve 4 envanteri eklediğim için bunu bir for döngüsünde çevirmemmi gerekiyor

herkese şimdiden teşekkürler
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst