Çözüldü K Envanteri düzenleyince bk kaybolma sorunu

  • Konuyu açan Konuyu açan Kasimir
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 22
  • Gösterim Gösterim 2K
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ı.

Kasimir

Üye
Üye
Mesaj
100
Çözümler
6
Beğeni
74
Puan
724
Ticaret Puanı
0
Aşağıdaki görsel'de görüldüğü üzere k envanteri düzenleme moduna basıldığında bklar siliniyor ve basma itemlerini de düzenleyince dc yiyorum source tarafı komple kontrol edildi sorun çözüme ulaşmadı MySQL kısmından şüphe ediyorum fakat daha fazla çözemedim bilgili bir arkadaş yardımcı olup çözümü söylerse daha sağlıklı olur bu sorun bir çok kişide de gördüğüm bir sorundur ilginize teşekkür eder iyi forumlar dilerim.

Görsel
 

Dosya Eklentileri

Son düzenleme:
Bundan hemen önce aşağıdakileri ekle öyle dene bi

C++:
Genişlet Daralt Kopyala
    }

    LPITEM item = ITEM_MANAGER::instance().CreateItem(dwItemVnum, bCount, 0, true);

    if (!item)
    {
        sys_err("cannot create item by vnum %u (name: %s)", dwItemVnum, GetName());
        return NULL;
    }

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
        for (int i = SKILL_BOOK_INVENTORY_SLOT_START; i < SKILL_BOOK_INVENTORY_SLOT_END; ++i)
        {
            LPITEM item = GetSkillBookInventoryItem(i);

            if (!item)
                continue;

#ifdef __SORT_INVENTORY_ITEMS__
            if (item->GetOriginalVnum() == dwItemVnum && FN_check_item_socket(item))
#else
            if (item->GetVnum() == dwItemVnum && FN_check_item_socket(item))
#endif
            {
                if (IS_SET(p->dwFlags, ITEM_FLAG_MAKECOUNT))
                {
                    if (bCount < p->alValues[1])
                        bCount = p->alValues[1];
                }

                BYTE bCount2 = MIN(200 - item->GetCount(), bCount);
                bCount -= bCount2;

                item->SetCount(item->GetCount() + bCount2);

                if (bCount == 0)
                {
                    if (bMsg)
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¾ÆÀÌÅÛ È¹µæ: %s"), item->GetName());
                  
                    ReloadCrystalDrop();
                    return item;
                }
            }
        }

        for (int i = UPGRADE_ITEMS_INVENTORY_SLOT_START; i < UPGRADE_ITEMS_INVENTORY_SLOT_END; ++i)
        {
            LPITEM item = GetUpgradeItemsInventoryItem(i);

            if (!item)
                continue;

#ifdef __SORT_INVENTORY_ITEMS__
            if (item->GetOriginalVnum() == dwItemVnum && FN_check_item_socket(item))
#else
            if (item->GetVnum() == dwItemVnum && FN_check_item_socket(item))
#endif
            {
                if (IS_SET(p->dwFlags, ITEM_FLAG_MAKECOUNT))
                {
                    if (bCount < p->alValues[1])
                        bCount = p->alValues[1];
                }

                BYTE bCount2 = MIN(200 - item->GetCount(), bCount);
                bCount -= bCount2;

                item->SetCount(item->GetCount() + bCount2);

                if (bCount == 0)
                {
                    if (bMsg)
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¾ÆÀÌÅÛ È¹µæ: %s"), item->GetName());
                  
                    ReloadCrystalDrop();
                    return item;
                }
            }
        }

        for (int i = STONE_INVENTORY_SLOT_START; i < STONE_INVENTORY_SLOT_END; ++i)
        {
            LPITEM item = GetStoneInventoryItem(i);

            if (!item)
                continue;

#ifdef __SORT_INVENTORY_ITEMS__
            if (item->GetOriginalVnum() == dwItemVnum && FN_check_item_socket(item))
#else
            if (item->GetVnum() == dwItemVnum && FN_check_item_socket(item))
#endif
            {
                if (IS_SET(p->dwFlags, ITEM_FLAG_MAKECOUNT))
                {
                    if (bCount < p->alValues[1])
                        bCount = p->alValues[1];
                }

                BYTE bCount2 = MIN(200 - item->GetCount(), bCount);
                bCount -= bCount2;

                item->SetCount(item->GetCount() + bCount2);

                if (bCount == 0)
                {
                    if (bMsg)
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¾ÆÀÌÅÛ È¹µæ: %s"), item->GetName());
                  
                    ReloadCrystalDrop();
                    return item;
                }
            }
        }
#endif

Birde bunu kaldır
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
        for (int i = 0; i < INVENTORY_AND_EQUIP_SLOT_MAX; ++i)
#else
        for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
#endif
 
En son bir moderatör tarafından düzenlenmiş:
Bundan hemen önce aşşadakileri ekle öyle dene bi

C++:
Genişlet Daralt Kopyala
    }

    LPITEM item = ITEM_MANAGER::instance().CreateItem(dwItemVnum, bCount, 0, true);

    if (!item)
    {
        sys_err("cannot create item by vnum %u (name: %s)", dwItemVnum, GetName());
        return NULL;
    }

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
        for (int i = SKILL_BOOK_INVENTORY_SLOT_START; i < SKILL_BOOK_INVENTORY_SLOT_END; ++i)
        {
            LPITEM item = GetSkillBookInventoryItem(i);

            if (!item)
                continue;

#ifdef __SORT_INVENTORY_ITEMS__
            if (item->GetOriginalVnum() == dwItemVnum && FN_check_item_socket(item))
#else
            if (item->GetVnum() == dwItemVnum && FN_check_item_socket(item))
#endif
            {
                if (IS_SET(p->dwFlags, ITEM_FLAG_MAKECOUNT))
                {
                    if (bCount < p->alValues[1])
                        bCount = p->alValues[1];
                }

                BYTE bCount2 = MIN(200 - item->GetCount(), bCount);
                bCount -= bCount2;

                item->SetCount(item->GetCount() + bCount2);

                if (bCount == 0)
                {
                    if (bMsg)
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¾ÆÀÌÅÛ È¹µæ: %s"), item->GetName());
                 
                    ReloadCrystalDrop();
                    return item;
                }
            }
        }

        for (int i = UPGRADE_ITEMS_INVENTORY_SLOT_START; i < UPGRADE_ITEMS_INVENTORY_SLOT_END; ++i)
        {
            LPITEM item = GetUpgradeItemsInventoryItem(i);

            if (!item)
                continue;

#ifdef __SORT_INVENTORY_ITEMS__
            if (item->GetOriginalVnum() == dwItemVnum && FN_check_item_socket(item))
#else
            if (item->GetVnum() == dwItemVnum && FN_check_item_socket(item))
#endif
            {
                if (IS_SET(p->dwFlags, ITEM_FLAG_MAKECOUNT))
                {
                    if (bCount < p->alValues[1])
                        bCount = p->alValues[1];
                }

                BYTE bCount2 = MIN(200 - item->GetCount(), bCount);
                bCount -= bCount2;

                item->SetCount(item->GetCount() + bCount2);

                if (bCount == 0)
                {
                    if (bMsg)
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¾ÆÀÌÅÛ È¹µæ: %s"), item->GetName());
                 
                    ReloadCrystalDrop();
                    return item;
                }
            }
        }

        for (int i = STONE_INVENTORY_SLOT_START; i < STONE_INVENTORY_SLOT_END; ++i)
        {
            LPITEM item = GetStoneInventoryItem(i);

            if (!item)
                continue;

#ifdef __SORT_INVENTORY_ITEMS__
            if (item->GetOriginalVnum() == dwItemVnum && FN_check_item_socket(item))
#else
            if (item->GetVnum() == dwItemVnum && FN_check_item_socket(item))
#endif
            {
                if (IS_SET(p->dwFlags, ITEM_FLAG_MAKECOUNT))
                {
                    if (bCount < p->alValues[1])
                        bCount = p->alValues[1];
                }

                BYTE bCount2 = MIN(200 - item->GetCount(), bCount);
                bCount -= bCount2;

                item->SetCount(item->GetCount() + bCount2);

                if (bCount == 0)
                {
                    if (bMsg)
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¾ÆÀÌÅÛ È¹µæ: %s"), item->GetName());
                 
                    ReloadCrystalDrop();
                    return item;
                }
            }
        }
#endif

Birde bunu kaldır
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
        for (int i = 0; i < INVENTORY_AND_EQUIP_SLOT_MAX; ++i)
#else
        for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
#endif
Dediğiniz şekilde denedim fakat olmadı maalesef
 
reloadcrystal bu kodları kaldırdımbaşarılı bir şekilde build aldım ama sorun hala devam ediyor
 
Böyle bir sorunda daha önce karşılaşmıştım envanter aralıklarını belirttiğimde düzeliyordu onuda yukarıda belirttim.
 
K Envanter Ve Düzenleme eklentisi başka bir filesten sökecem bu gün öneriniz var mı hangi filesten söksem daha iyi olur hem paylaşım yapmak adına soruyorum
Yani nasıl bir şey istediğine bağlı bazı fileslerde k envanterden envantere item aktarma var bazılarında engelli güncell paylaşılan aktif oyunlarda kullanılan fileslere bak daha garanti olur.
 
Aklıma bir files gelmiyor ondan fikir istemek istedim sizden :)
Aktif oyunda kullanılan fileslerin birinden sök uzun zamandır takip edemiyorum o yüzden hangileri sağlam bilmiyorum. Overfall2 offshop iyi diyorlar k envanterine felanda bakabilirsin.
 
9010 satırındaki kodu kaldır tekrar build yap kanka
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst