Yardım oto pot bug

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

Happy Way

MT Üye
MT Üye
Mesaj
232
Çözümler
22
Beğeni
86
Puan
749
Ticaret Puanı
0
Arkadaşlar resimlerle anlatacağım problemi sysser vermiyor büyük ihtimal ufak bir düzeltme yapılması gerekli ama nerede olabileceğini bulamadım o yüzden yardımlarınız bekliyorum

oto pot aktif olduğunda tüm envanterde 1-2-3-4 oto potun olduğu yer aktif efekti veriyor ama yeri değişiyor itemlerin sorun yok o konuda sadece görsel bir problem gibi
0120_124438.webp
0120_124437.webp
0120_124438.webp
0120_124440.webp
0120_124441.webp
 
uiinventory.py:
Genişlet Daralt Kopyala
    def RefreshBagSlotWindow(self):

        getItemVNum=player.GetItemIndex
        getItemCount=player.GetItemCount
        setItemVNum=self.wndItem.SetItemSlot

        if app.ENABLE_HIGHLIGHT_NEW_ITEM:
            for i in xrange(self.wndItem.GetSlotCount()):
                self.wndItem.DeactivateSlot(i)

        for i in xrange(player.INVENTORY_PAGE_SIZE):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)

            itemCount = getItemCount(slotNumber)
            if 0 == itemCount:
                self.wndItem.ClearSlot(i)
                continue
            elif 1 == itemCount:
                itemCount = 0

            itemVnum = getItemVNum(slotNumber)
            setItemVNum(i, itemVnum, itemCount)

            if app.ENABLE_GROWTH_PET_SYSTEM:
                if constInfo.IS_PET_ITEM(itemVnum):
                    self.__ActivePetHighlightSlot(slotNumber)
                    self.__SetCoolTimePetItemSlot(slotNumber, itemVnum)

            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.wndItem.ActivateSlot(i)
                    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, self.__InventoryLocalSlotPosToGlobalSlotPos(i))

                else:
                    self.wndItem.DeactivateSlot(i)

            if item.GetItemType() == item.ITEM_TYPE_PETEX:
                metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                isActivated = 0 != metinSocket[2]
                if isActivated:
                    self.wndItem.ActivateSlot(i)
                else:
                    self.wndItem.DeactivateSlot(i)

            if app.ENABLE_ACCE_COSTUME_SYSTEM:
                slotNumberChecked = 0

                for j in xrange(acce.WINDOW_MAX_MATERIALS):
                    (isHere, iCell) = acce.GetAttachedItem(j)
                    if isHere:
                        if iCell == slotNumber:
                            self.wndItem.ActivateSlot(i, (36.00 / 255.0), (222.00 / 255.0), (3.00 / 255.0), 1.0)
                            if not slotNumber in self.listAttachedAcces:
                                self.listAttachedAcces.append(slotNumber)

                            slotNumberChecked = 1
                    else:
                        if slotNumber in self.listAttachedAcces and not slotNumberChecked:
                            self.wndItem.DeactivateSlot(i)
                            self.listAttachedAcces.remove(slotNumber)

            if app.BL_TRANSMUTATION_SYSTEM:
                if not player.GetChangeLookVnum(player.INVENTORY, slotNumber) == 0:
                    self.wndItem.SetSlotCoverImage(i,"icon/item/ingame_convert_Mark.tga")
                else:
                    self.wndItem.EnableSlotCoverImage(i,False)

            if app.WJ_ENABLE_TRADABLE_ICON:
                self.RefreshMarkSlots(i)

            if app.ENABLE_HIGHLIGHT_NEW_ITEM:
                self.__RefreshHighlights()

        self.wndItem.RefreshSlot()

        if self.wndBelt:
            self.wndBelt.RefreshSlot()

        if app.ENABLE_PREMIUM_PRIVATE_SHOP:
            if self.wndPrivateShop and self.wndPrivateShop.IsShow():
                self.wndPrivateShop.RefreshLockedSlot()

        if app.WJ_ENABLE_TRADABLE_ICON:
            map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds)

bloğu seninki ile karşılaştır bakalım
 
uiinventory.py:
Genişlet Daralt Kopyala
    def RefreshBagSlotWindow(self):

        getItemVNum=player.GetItemIndex
        getItemCount=player.GetItemCount
        setItemVNum=self.wndItem.SetItemSlot

        if app.ENABLE_HIGHLIGHT_NEW_ITEM:
            for i in xrange(self.wndItem.GetSlotCount()):
                self.wndItem.DeactivateSlot(i)

        for i in xrange(player.INVENTORY_PAGE_SIZE):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)

            itemCount = getItemCount(slotNumber)
            if 0 == itemCount:
                self.wndItem.ClearSlot(i)
                continue
            elif 1 == itemCount:
                itemCount = 0

            itemVnum = getItemVNum(slotNumber)
            setItemVNum(i, itemVnum, itemCount)

            if app.ENABLE_GROWTH_PET_SYSTEM:
                if constInfo.IS_PET_ITEM(itemVnum):
                    self.__ActivePetHighlightSlot(slotNumber)
                    self.__SetCoolTimePetItemSlot(slotNumber, itemVnum)

            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.wndItem.ActivateSlot(i)
                    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, self.__InventoryLocalSlotPosToGlobalSlotPos(i))

                else:
                    self.wndItem.DeactivateSlot(i)

            if item.GetItemType() == item.ITEM_TYPE_PETEX:
                metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                isActivated = 0 != metinSocket[2]
                if isActivated:
                    self.wndItem.ActivateSlot(i)
                else:
                    self.wndItem.DeactivateSlot(i)

            if app.ENABLE_ACCE_COSTUME_SYSTEM:
                slotNumberChecked = 0

                for j in xrange(acce.WINDOW_MAX_MATERIALS):
                    (isHere, iCell) = acce.GetAttachedItem(j)
                    if isHere:
                        if iCell == slotNumber:
                            self.wndItem.ActivateSlot(i, (36.00 / 255.0), (222.00 / 255.0), (3.00 / 255.0), 1.0)
                            if not slotNumber in self.listAttachedAcces:
                                self.listAttachedAcces.append(slotNumber)

                            slotNumberChecked = 1
                    else:
                        if slotNumber in self.listAttachedAcces and not slotNumberChecked:
                            self.wndItem.DeactivateSlot(i)
                            self.listAttachedAcces.remove(slotNumber)

            if app.BL_TRANSMUTATION_SYSTEM:
                if not player.GetChangeLookVnum(player.INVENTORY, slotNumber) == 0:
                    self.wndItem.SetSlotCoverImage(i,"icon/item/ingame_convert_Mark.tga")
                else:
                    self.wndItem.EnableSlotCoverImage(i,False)

            if app.WJ_ENABLE_TRADABLE_ICON:
                self.RefreshMarkSlots(i)

            if app.ENABLE_HIGHLIGHT_NEW_ITEM:
                self.__RefreshHighlights()

        self.wndItem.RefreshSlot()

        if self.wndBelt:
            self.wndBelt.RefreshSlot()

        if app.ENABLE_PREMIUM_PRIVATE_SHOP:
            if self.wndPrivateShop and self.wndPrivateShop.IsShow():
                self.wndPrivateShop.RefreshLockedSlot()

        if app.WJ_ENABLE_TRADABLE_ICON:
            map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds)

bloğu seninki ile karşılaştır bakalım
uiinventory.py:
Genişlet Daralt Kopyala
    def RefreshBagSlotWindow(self):
        getItemVNum=player.GetItemIndex
        getItemCount=player.GetItemCount
        setItemVNum=self.wndItem.SetItemSlot
        
        for i in xrange(player.INVENTORY_PAGE_SIZE):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
            
            itemCount = getItemCount(slotNumber)
            # itemCount == 0ÀÌ¸é ¼ÒÄÏÀ» ºñ¿î´Ù.
            if 0 == itemCount:
                self.wndItem.ClearSlot(i)
                continue
            elif 1 == itemCount:
                itemCount = 0
                
            itemVnum = getItemVNum(slotNumber)
            setItemVNum(i, itemVnum, itemCount)

            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.wndItem.ActivateSlot(i)
                    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, self.__InventoryLocalSlotPosToGlobalSlotPos(i))

                else:
                    self.wndItem.DeactivateSlot(i)

            ## ÀÚµ¿¹°¾à (HP: #72723 ~ #72726, SP: #72727 ~ #72730) Ư¼öó¸® - ¾ÆÀÌÅÛÀε¥µµ ½½·Ô¿¡ È°¼ºÈ/ºñÈ°¼ºÈ Ç¥½Ã¸¦ À§ÇÑ ÀÛ¾÷ÀÓ - [hyo]
            # if constInfo.IS_AUTO_POTION(itemVnum):
                # metinSocket - [0] : È°¼ºÈ ¿©ºÎ, [1] : »ç¿ëÇÑ ¾ç, [2] : ÃÖ´ë ¿ë·®
                # metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                
                # if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex: #fixme auto pot
                    # slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex
                    
                # isActivated = 0 != metinSocket[0]
                
                # if isActivated:
                    # self.wndItem.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, self.__InventoryLocalSlotPosToGlobalSlotPos(i))
                    
                # else:
                    # self.wndItem.DeactivateSlot(slotNumber)           

            if app.ENABLE_ACCE_SYSTEM:
                slotNumberChecked = 0
                if not constInfo.IS_AUTO_POTION(itemVnum):
                    if app.ENABLE_HIGHLIGHT_ITEM:
                        if not slotNumber in self.liHighlightedItems:
                            self.wndItem.DeactivateSlotOld(i)
                    else:
                        self.wndItem.DeactivateSlotOld(i)
                
                for j in xrange(acce.WINDOW_MAX_MATERIALS):
                    (isHere, iCell) = acce.GetAttachedItem(j)
                    if isHere:
                        if iCell == slotNumber:
                            self.wndItem.ActivateSlot(i, (36.00 / 255.0), (222.00 / 255.0), (3.00 / 255.0), 1.0)
                            if not slotNumber in self.listAttachedAcces:
                                self.listAttachedAcces.append(slotNumber)
                            
                            slotNumberChecked = 1
                    else:
                        if slotNumber in self.listAttachedAcces and not slotNumberChecked:
                            self.wndItem.DeactivateSlot(i)
                            self.listAttachedAcces.remove(slotNumber)
            
            #elif app.ENABLE_HIGHLIGHT_NEW_ITEM and not constInfo.IS_AUTO_POTION(itemVnum):
                #if not slotNumber in self.liHighlightedItems:
                #    self.wndItem.DeactivateSlot(i)

        self.wndItem.RefreshSlot()
        if app.ENABLE_HIGHLIGHT_ITEM:
            self.__RefreshHighlights()
        if self.wndBelt:
            self.wndBelt.RefreshSlot()

Benimki bu şekilde düzenleyip denedim de yine aynı higlight sistemi devre dışı suanda onunla alakası olabilir mi
 
Sorunun çözümü :

uiinventory.py:
Genişlet Daralt Kopyala
Arat >  
        self.inventoryTab[0].Down()
Altına ekle >
        self.inventoryPageIndex = 0
   
Arat >
            self.inventoryTab = []
Altına ekle >
            self.inventoryPageIndex = 0

Arat > 

    def RefreshBagSlotWindow(self):


Bul 
            itemVnum = getItemVNum(slotNumber)
            setItemVNum(i, itemVnum, itemCount)

Altına ekle 
            self.wndItem.DeactivateSlot(i)
            self.wndItem.DeactivateSlotOld(i)

Bu sefer taskbar kısmında ki sorun kaldı sadece envanter çözüldü.
 
Sorunun çözümü :

uiinventory.py:
Genişlet Daralt Kopyala
Arat > 
        self.inventoryTab[0].Down()
Altına ekle >
        self.inventoryPageIndex = 0
  
Arat >
            self.inventoryTab = []
Altına ekle >
            self.inventoryPageIndex = 0

Arat >

    def RefreshBagSlotWindow(self):


Bul
            itemVnum = getItemVNum(slotNumber)
            setItemVNum(i, itemVnum, itemCount)

Altına ekle
            self.wndItem.DeactivateSlot(i)
            self.wndItem.DeactivateSlotOld(i)

Bu sefer taskbar kısmında ki sorun kaldı sadece envanter çözüldü.
Sorunsuz bir taksbar.py ile kıyaslayın
 
Geri
Üst