Yardım Oto Toplama K Envanter uyarlama hk

  • Konuyu açan Konuyu açan carpiciyim1
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 20
  • Gösterim Gösterim 135
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

carpiciyim1

Premium Üye
Premium Üye
MT Üye
Mesaj
215
Çözümler
8
Beğeni
105
Puan
514
Ticaret Puanı
0
Sa dostlar
Linkleri görebilmek için giriş yap veya kayıt ol.

sistemi ekledim sorunsuz
sadece k envanter uyarlaması kaldı

kodları buldum ama benim nasıl editleyeceğimi bulamadım
resimde atıyorum kod yerlerinide sizlerden ricamdır yardımcı olursnanız sevinirim
nasıl editleyeceğimi bilmiyorum
edit : ben kodları bendeki k ile değiştiredim yine olmadı

2. resimde mevcut acaca ef deki yazılarımı değişmem gerek anlamdım tam olarak
 

Dosya Eklentileri

  • Screenshot_1.webp
    Screenshot_1.webp
    297,7 KB · Gösterim: 44
  • Screenshot_2.webp
    Screenshot_2.webp
    175,9 KB · Gösterim: 35
Son düzenleme:
Çözüm
Merhaba,
Şu şekilde uygun olur.

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
    else if (item->IsUpgradeItem())
    {
        cell = GetEmptyUpgradeInventory(item);
    }
    else if (item->IsBook())
    {
        cell = GetEmptyBookInventory(item);
    }
    else if (item->IsStone())
    {
        cell = GetEmptyStoneInventory(item);
    }
    else if (item->IsChest())
    {
        cell = GetEmptyChestInventory(item);
    }
#endif
malesef yine olmadı hocam
Sa dostlar
Linkleri görebilmek için giriş yap veya kayıt ol.

sistemi ekledim sorunsuz
sadece k envanter uyarlaması kaldı

kodları buldum ama benim nasıl editleyeceğimi bulamadım
resimde atıyorum kod yerlerinide sizlerden ricamdır yardımcı olursnanız sevinirim
nasıl editleyeceğimi bilmiyorum
edit : ben kodları bendeki k ile değiştiredim yine olmadı

2. resimde mevcut acaca ef deki yazılarımı değişmem gerek anlamdım tam olarak
Merhaba,
Şu şekilde uygun olur.

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
    else if (item->IsUpgradeItem())
    {
        cell = GetEmptyUpgradeInventory(item);
    }
    else if (item->IsBook())
    {
        cell = GetEmptyBookInventory(item);
    }
    else if (item->IsStone())
    {
        cell = GetEmptyStoneInventory(item);
    }
    else if (item->IsChest())
    {
        cell = GetEmptyChestInventory(item);
    }
#endif
 
Merhaba,
Şu şekilde uygun olur.

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
    else if (item->IsUpgradeItem())
    {
        cell = GetEmptyUpgradeInventory(item);
    }
    else if (item->IsBook())
    {
        cell = GetEmptyBookInventory(item);
    }
    else if (item->IsStone())
    {
        cell = GetEmptyStoneInventory(item);
    }
    else if (item->IsChest())
    {
        cell = GetEmptyChestInventory(item);
    }
#endif
malesef yine olmadı hocam
 

Dosya Eklentileri

  • Screenshot_3.webp
    Screenshot_3.webp
    172,5 KB · Gösterim: 14
Çözüm
malesef yine olmadı hocam
hmm. Şu alt kısım ne durumda.

C++:
Genişlet Daralt Kopyala
    if (cell != -1)
    {
        if (item->IsDragonSoul())
            item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, cell));
        else
            item->AddToCharacter(this, TItemPos(INVENTORY, cell));
 

Dosya Eklentileri

  • Screenshot_4.webp
    Screenshot_4.webp
    62,8 KB · Gösterim: 15
C++:
Genişlet Daralt Kopyala
if (cell != -1)
Item->AddToCharacter(this, TItemPos(item->IsDragonSoul()? DRAGON_SOUL_INVENTORY INVENTORY, cell));

Burayı aşağıdaki gibi değiştir.

C++:
Genişlet Daralt Kopyala
    if (cell != -1)
    {
        if (item->IsDragonSoul())
            item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, cell));
#ifdef ENABLE_SPECIAL_STORAGE
        else if (item->IsUpgradeItem())
            item->AddToCharacter(this, TItemPos(UPGRADE_INVENTORY, cell));
        else if (item->IsBook())
            item->AddToCharacter(this, TItemPos(BOOK_INVENTORY, cell));
        else if (item->IsStone())
            item->AddToCharacter(this, TItemPos(STONE_INVENTORY, cell));
        else if (item->IsChest())
            item->AddToCharacter(this, TItemPos(CHEST_INVENTORY, cell));
#endif
        else
            item->AddToCharacter(this, TItemPos(INVENTORY, cell));

        if (item->GetType() == ITEM_USE && item->GetSubType() == USE_POTION)
        {
            TQuickslot* pSlot;

            if (GetQuickslot(0, &pSlot) && pSlot->type == QUICKSLOT_TYPE_NONE)
            {
                TQuickslot slot;
                slot.type = QUICKSLOT_TYPE_ITEM;
                slot.pos = cell;
                SetQuickslot(0, slot);
            }
        }
    }
 
C++:
Genişlet Daralt Kopyala
if (cell != -1)
Item->AddToCharacter(this, TItemPos(item->IsDragonSoul()? DRAGON_SOUL_INVENTORY INVENTORY, cell));

Burayı aşağıdaki gibi değiştir.

C++:
Genişlet Daralt Kopyala
    if (cell != -1)
    {
        if (item->IsDragonSoul())
            item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, cell));
#ifdef ENABLE_SPECIAL_STORAGE
        else if (item->IsUpgradeItem())
            item->AddToCharacter(this, TItemPos(UPGRADE_INVENTORY, cell));
        else if (item->IsBook())
            item->AddToCharacter(this, TItemPos(BOOK_INVENTORY, cell));
        else if (item->IsStone())
            item->AddToCharacter(this, TItemPos(STONE_INVENTORY, cell));
        else if (item->IsChest())
            item->AddToCharacter(this, TItemPos(CHEST_INVENTORY, cell));
#endif
        else
            item->AddToCharacter(this, TItemPos(INVENTORY, cell));

        if (item->GetType() == ITEM_USE && item->GetSubType() == USE_POTION)
        {
            TQuickslot* pSlot;

            if (GetQuickslot(0, &pSlot) && pSlot->type == QUICKSLOT_TYPE_NONE)
            {
                TQuickslot slot;
                slot.type = QUICKSLOT_TYPE_ITEM;
                slot.pos = cell;
                SetQuickslot(0, slot);
            }
        }
    }
sorun bu şekilde çözüldü çok teşekkür ederim
 
Rica ederim. İyi kullanımlar.
kral şöyşe bir sorun oluştu önceden üst üste stacklenen itemler artık üst üste binmiyor

örnek bk lar artık üst üste binmiyor
veya taşlar
örnek bk item protodaki şekli:
Genişlet Daralt Kopyala
50300    기술 수련서    ITEM_SKILLBOOK    0    1    NONE    ITEM_STACKABLE    NONE    NONE    1000    1000    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
 
Oraya eklediğimiz kısım oto toplama ile ilgiliydi. Muhtemelen AddToCharacter kısmınada uyarlama yapmak gerekli. Birazdan kontrol ederim.
teşekkürler mesala şuan k envanterden yere atıp el ile topladığımda üst üste biniyor ama oto da binmiyor teşekkürler

not : normal envanterde üst üste biniyor orada sorun yok bu arada
 
Son düzenleme:
teşekkürler mesala şuan k envanterden yere atıp el ile topladığımda üst üste biniyor ama oto da binmiyor teşekkürler

not : normal envanterde üst üste biniyor orada sorun yok bu arada
Evet oralarda olmaması normal, çünkü autogiveitem fonksiyonunda işlem yaptık yani oto toplama sadece, diğer fonksiyonlara bakıyorum.
 
Şuradaki kodları,
C++:
Genişlet Daralt Kopyala
        #ifdef ENABLE_SPECIAL_STORAGE
        if (item->IsUpgradeItem())
        {
            if (DestCell.window_type != UPGRADE_INVENTORY)
            {
                return false;
            }
        }
        else if (UPGRADE_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsBook())
        {
            if (DestCell.window_type != BOOK_INVENTORY)
            {
                return false;
            }
        }
        else if (BOOK_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsStone())
        {
            if (DestCell.window_type != STONE_INVENTORY)
            {
                return false;
            }
        }
        else if (STONE_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsChest())
        {
            if (DestCell.window_type != CHEST_INVENTORY)
            {
                return false;
            }
        }
        else if (CHEST_INVENTORY == DestCell.window_type)
        {
            return false;
        }
        #endif

Şu şekilde değiştirdiğimizde sorun çözülecektir. Muhtemelen :D.

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
        else if (item->IsUpgradeItem())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyUpgradeInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyUpgradeInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Yükseltme envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsBook())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyBookInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyBookInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Kitap envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsStone())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyStoneInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyStoneInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Taş envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsChest())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyChestInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyChestInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Sandık envanteri dolu"));
                    return false;
                }
            }
        }
#endif
 
Şuradaki kodları,
C++:
Genişlet Daralt Kopyala
        #ifdef ENABLE_SPECIAL_STORAGE
        if (item->IsUpgradeItem())
        {
            if (DestCell.window_type != UPGRADE_INVENTORY)
            {
                return false;
            }
        }
        else if (UPGRADE_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsBook())
        {
            if (DestCell.window_type != BOOK_INVENTORY)
            {
                return false;
            }
        }
        else if (BOOK_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsStone())
        {
            if (DestCell.window_type != STONE_INVENTORY)
            {
                return false;
            }
        }
        else if (STONE_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsChest())
        {
            if (DestCell.window_type != CHEST_INVENTORY)
            {
                return false;
            }
        }
        else if (CHEST_INVENTORY == DestCell.window_type)
        {
            return false;
        }
        #endif

Şu şekilde değiştirdiğimizde sorun çözülecektir. Muhtemelen :D.

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
        else if (item->IsUpgradeItem())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyUpgradeInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyUpgradeInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Yükseltme envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsBook())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyBookInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyBookInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Kitap envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsStone())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyStoneInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyStoneInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Taş envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsChest())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyChestInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyChestInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Sandık envanteri dolu"));
                    return false;
                }
            }
        }
#endif
malesef build alamadım
 

Dosya Eklentileri

  • hata.webp
    hata.webp
    73,5 KB · Gösterim: 13
Şuradaki kodları,
C++:
Genişlet Daralt Kopyala
        #ifdef ENABLE_SPECIAL_STORAGE
        if (item->IsUpgradeItem())
        {
            if (DestCell.window_type != UPGRADE_INVENTORY)
            {
                return false;
            }
        }
        else if (UPGRADE_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsBook())
        {
            if (DestCell.window_type != BOOK_INVENTORY)
            {
                return false;
            }
        }
        else if (BOOK_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsStone())
        {
            if (DestCell.window_type != STONE_INVENTORY)
            {
                return false;
            }
        }
        else if (STONE_INVENTORY == DestCell.window_type)
        {
            return false;
        }

        if (item->IsChest())
        {
            if (DestCell.window_type != CHEST_INVENTORY)
            {
                return false;
            }
        }
        else if (CHEST_INVENTORY == DestCell.window_type)
        {
            return false;
        }
        #endif

Şu şekilde değiştirdiğimizde sorun çözülecektir. Muhtemelen :D.

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
        else if (item->IsUpgradeItem())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyUpgradeInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyUpgradeInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Yükseltme envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsBook())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyBookInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyBookInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Kitap envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsStone())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyStoneInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyStoneInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Taş envanteri dolu"));
                    return false;
                }
            }
        }
        else if (item->IsChest())
        {
            if (!(owner && (iEmptyCell = owner->GetEmptyChestInventory(item)) != -1))
            {
                owner = this;

                if ((iEmptyCell = GetEmptyChestInventory(item)) == -1)
                {
                    owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Sandık envanteri dolu"));
                    return false;
                }
            }
        }
#endif
son işlemim buydu
 
Geri
Üst