Yardım Kemer Envanterinde Oto pot Aktif/Deaktif Görünmeme Sorunu

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

gh0st

Premium Üye
Premium Üye
Üye
Mesaj
14
Çözümler
1
Beğeni
2
Puan
63
Ticaret Puanı
0
Merhaba arkadaşlar,

image_2024-07-25_013549410.webp


Oto potlar ikisi de aktif iken;

Normal envanterdeki çalıştığını sorunsuz göstermekte fakat kemer envanterindeki aktif olsa bile çalıştığını göstermemekte,

Bu potları kemer envanterinde de çalıştığını nasıl gösterebilirim?
 
uiinventory.py ve belt_inventory_helper.h dosyalarını paylaşırmısın bi bakayım bende nerde sorun var.
eğer sadece pythona ekleme yaptıysan muhtemelen highlt görmüyor.
belt_inventory_helper.h dosyasını aç game/src içinde olması lazım.
arat :
static bool CanMoveIntoBeltInventory(LPITEM item)
değiştir :
C++:
Genişlet Daralt Kopyala
    static bool CanMoveIntoBeltInventory(LPITEM item)
    {
        bool canMove = false;

        if (item->GetType() == ITEM_USE)
        {
            switch (item->GetSubType())
            {
            case USE_POTION:
            case USE_POTION_NODELAY:
            case USE_ABILITY_UP:
            case USE_AFFECT:
                canMove = true;
                break;
            }
            //autopotion in belt inventory
            switch (item->GetVnum())
            {
            case ITEM_AUTO_HP_RECOVERY_S:
            case ITEM_AUTO_HP_RECOVERY_M:
            case ITEM_AUTO_HP_RECOVERY_L:
            case ITEM_AUTO_HP_RECOVERY_X:
            case ITEM_AUTO_SP_RECOVERY_S:
            case ITEM_AUTO_SP_RECOVERY_M:
            case ITEM_AUTO_SP_RECOVERY_L:
            case ITEM_AUTO_SP_RECOVERY_X:
            case ITEM_RAMADAN_CANDY:
            case ITEM_NOG_POCKET:
            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                canMove = true;
                break;
            }
            //autopotion in belt inventory
        }

        return canMove;
    }
 
En son bir moderatör tarafından düzenlenmiş:
S
uiinventory.py ve belt_inventory_helper.h dosyalarını paylaşırmısın bi bakayım bende nerde sorun var.
eğer sadece pythona ekleme yaptıysan muhtemelen highlt görmüyor.
belt_inventory_helper.h dosyasını aç game/src içinde olması lazım.
arat :
static bool CanMoveIntoBeltInventory(LPITEM item)
değiştir :
C++:
Genişlet Daralt Kopyala
    static bool CanMoveIntoBeltInventory(LPITEM item)
    {
        bool canMove = false;

        if (item->GetType() == ITEM_USE)
        {
            switch (item->GetSubType())
            {
            case USE_POTION:
            case USE_POTION_NODELAY:
            case USE_ABILITY_UP:
            case USE_AFFECT:
                canMove = true;
                break;
            }
            //autopotion in belt inventory
            switch (item->GetVnum())
            {
            case ITEM_AUTO_HP_RECOVERY_S:
            case ITEM_AUTO_HP_RECOVERY_M:
            case ITEM_AUTO_HP_RECOVERY_L:
            case ITEM_AUTO_HP_RECOVERY_X:
            case ITEM_AUTO_SP_RECOVERY_S:
            case ITEM_AUTO_SP_RECOVERY_M:
            case ITEM_AUTO_SP_RECOVERY_L:
            case ITEM_AUTO_SP_RECOVERY_X:
            case ITEM_RAMADAN_CANDY:
            case ITEM_NOG_POCKET:
            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                canMove = true;
                break;
            }
            //autopotion in belt inventory
        }

        return canMove;
    }

Sadece game tarafında değişiklik yapmıştım yukarıdaki gibi fakat root/uinventory.py'den nereyi düzenlemem gerekiyor.
 
S


Sadece game tarafında değişiklik yapmıştım yukarıdaki gibi fakat root/uinventory.py'den nereyi düzenlemem gerekiyor.
Bul :
self.wndBeltInventorySlot.RefreshSlot()

//!Üstüne! ekle.
Kod:
Genişlet Daralt Kopyala
            #autopotion in belt inventory
            itemVnum = getItemVNum(slotNumber)
            if constInfo.IS_AUTO_POTION(itemVnum):
                metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                isActivated = 0 != metinSocket[0]

                if isActivated:
                    self.wndBeltInventorySlot.ActivateSlot(slotNumber)

                    potionType = 0;
                    if constInfo.IS_AUTO_POTION_HP(itemVnum):
                        potionType = player.AUTO_POTION_TYPE_HP
                    elif constInfo.IS_AUTO_POTION_SP(itemVnum):
                        potionType = player.AUTO_POTION_TYPE_SP

                    usedAmount = int(metinSocket[1])
                    totalAmount = int(metinSocket[2])
                    player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, slotNumber)

                else:
                    self.wndBeltInventorySlot.DeactivateSlot(slotNumber)
            #autopotion in belt inventory
 
Bul :
self.wndBeltInventorySlot.RefreshSlot()

//!Üstüne! ekle.
Kod:
Genişlet Daralt Kopyala
            #autopotion in belt inventory
            itemVnum = getItemVNum(slotNumber)
            if constInfo.IS_AUTO_POTION(itemVnum):
                metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                isActivated = 0 != metinSocket[0]

                if isActivated:
                    self.wndBeltInventorySlot.ActivateSlot(slotNumber)

                    potionType = 0;
                    if constInfo.IS_AUTO_POTION_HP(itemVnum):
                        potionType = player.AUTO_POTION_TYPE_HP
                    elif constInfo.IS_AUTO_POTION_SP(itemVnum):
                        potionType = player.AUTO_POTION_TYPE_SP

                    usedAmount = int(metinSocket[1])
                    totalAmount = int(metinSocket[2])
                    player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, slotNumber)

                else:
                    self.wndBeltInventorySlot.DeactivateSlot(slotNumber)
            #autopotion in belt inventory

Hocam bunu da ekledim dediğiniz gibi fakat hala sorunumu çözmüş değil envanter üzerinde dönen beyaz effect'i yine gelmiyor, bunun çözümü başka bir dosyada olabilir oraya beltInventory'i tanıtmamız lazım gibi düşünüyorum,
 
Hocam bunu da ekledim dediğiniz gibi fakat hala sorunumu çözmüş değil envanter üzerinde dönen beyaz effect'i yine gelmiyor, bunun çözümü başka bir dosyada olabilir oraya beltInventory'i tanıtmamız lazım gibi düşünüyorum,
Daha önce eklediğim bir bir eklenti olmadığı için daha fazla birşey diyemiyorum maalesef. Siz discorddan ekleyin beni eve geçtiğimde anydesk üzerinden yardımcı olmaya çalışırım.
discord: mc.games
 
Üst