Çözüldü oto pot bug

  • Konuyu açan Konuyu açan Happy Way
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 18
  • Gösterim Gösterim 352
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ı.

Happy Way

MT Üye
MT Üye
Mesaj
251
Çözümler
24
Beğeni
94
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
 
Çözüm
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ü.
Evet yardımcı olan veya olmaya çalışan herkese teşekkürler kendim çözdüm yaptığım bir hatadan dolayı oluşmuş şu şekilde >


ui.py Dosyasında Kuşak sistemini eklerken şu satırı
ui.py:
Genişlet Daralt Kopyala
    if...
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
 
vallaha anlam veremedim oto potu açınca tüm envanterlerde oto potu aktif ettiğim yer aktif efekti alıyor
 
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
 
Evet yardımcı olan veya olmaya çalışan herkese teşekkürler kendim çözdüm yaptığım bir hatadan dolayı oluşmuş şu şekilde >


ui.py Dosyasında Kuşak sistemini eklerken şu satırı
ui.py:
Genişlet Daralt Kopyala
    if app.ENABLE_ACCE_SYSTEM:
        def ActivateSlot(self, slotNumber, r = 1.0, g = 1.0, b = 1.0, a = 1.0):
            wndMgr.ActivateEffect(self.hWnd, slotNumber, r, g, b, a)

        def DeactivateSlot(self, slotNumber):
            wndMgr.DeactivateEffect(self.hWnd, slotNumber)

        def ActivateSlotOld(self, slotNumber):
            wndMgr.ActivateSlot(self.hWnd, slotNumber)

        def DeactivateSlotOld(self, slotNumber):
            wndMgr.DeactivateSlot(self.hWnd, slotNumber)
    else:
        def ActivateSlot(self, slotNumber):
            wndMgr.ActivateSlot(self.hWnd, slotNumber)

        def DeactivateSlot(self, slotNumber):
            wndMgr.DeactivateSlot(self.hWnd, slotNumber)


Yukarıda def ActivateSlot(self, slotNumber): kısmını else bloğuna almışım sanırım def ActivateSlotOld(self, slotNumber): şu değerle aynı oldugunu düşünmüşüm heralde o an OLD kısmı görmediğimden eklerken hata yapmışım :))
şu şekilde çözdüm

ui.py:
Genişlet Daralt Kopyala
    if app.ENABLE_ACCE_SYSTEM:
        def ActivateSlot(self, slotNumber, r = 1.0, g = 1.0, b = 1.0, a = 1.0):
            wndMgr.ActivateEffect(self.hWnd, slotNumber, r, g, b, a)

        def DeactivateSlot(self, slotNumber):
            wndMgr.DeactivateEffect(self.hWnd, slotNumber)

        def ActivateSlotOld(self, slotNumber):
            wndMgr.ActivateSlot(self.hWnd, slotNumber)

        def DeactivateSlotOld(self, slotNumber):
            wndMgr.DeactivateSlot(self.hWnd, slotNumber)

    def ActivateSlot(self, slotNumber):
        wndMgr.ActivateSlot(self.hWnd, slotNumber)

    def DeactivateSlot(self, slotNumber):
        wndMgr.DeactivateSlot(self.hWnd, slotNumber)

def ActivateSlot(self, slotNumber):
wndMgr.ActivateSlot(self.hWnd, slotNumber)

def DeactivateSlot(self, slotNumber):
wndMgr.DeactivateSlot(self.hWnd, slotNumber)


Kısımlarını else bloğunu silip dışarıya alıp denediğimde sorun çö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ü.
Evet yardımcı olan veya olmaya çalışan herkese teşekkürler kendim çözdüm yaptığım bir hatadan dolayı oluşmuş şu şekilde >


ui.py Dosyasında Kuşak sistemini eklerken şu satırı
ui.py:
Genişlet Daralt Kopyala
    if app.ENABLE_ACCE_SYSTEM:
        def ActivateSlot(self, slotNumber, r = 1.0, g = 1.0, b = 1.0, a = 1.0):
            wndMgr.ActivateEffect(self.hWnd, slotNumber, r, g, b, a)

        def DeactivateSlot(self, slotNumber):
            wndMgr.DeactivateEffect(self.hWnd, slotNumber)

        def ActivateSlotOld(self, slotNumber):
            wndMgr.ActivateSlot(self.hWnd, slotNumber)

        def DeactivateSlotOld(self, slotNumber):
            wndMgr.DeactivateSlot(self.hWnd, slotNumber)
    else:
        def ActivateSlot(self, slotNumber):
            wndMgr.ActivateSlot(self.hWnd, slotNumber)

        def DeactivateSlot(self, slotNumber):
            wndMgr.DeactivateSlot(self.hWnd, slotNumber)


Yukarıda def ActivateSlot(self, slotNumber): kısmını else bloğuna almışım sanırım def ActivateSlotOld(self, slotNumber): şu değerle aynı oldugunu düşünmüşüm heralde o an OLD kısmı görmediğimden eklerken hata yapmışım :))
şu şekilde çözdüm

ui.py:
Genişlet Daralt Kopyala
    if app.ENABLE_ACCE_SYSTEM:
        def ActivateSlot(self, slotNumber, r = 1.0, g = 1.0, b = 1.0, a = 1.0):
            wndMgr.ActivateEffect(self.hWnd, slotNumber, r, g, b, a)

        def DeactivateSlot(self, slotNumber):
            wndMgr.DeactivateEffect(self.hWnd, slotNumber)

        def ActivateSlotOld(self, slotNumber):
            wndMgr.ActivateSlot(self.hWnd, slotNumber)

        def DeactivateSlotOld(self, slotNumber):
            wndMgr.DeactivateSlot(self.hWnd, slotNumber)

    def ActivateSlot(self, slotNumber):
        wndMgr.ActivateSlot(self.hWnd, slotNumber)

    def DeactivateSlot(self, slotNumber):
        wndMgr.DeactivateSlot(self.hWnd, slotNumber)

def ActivateSlot(self, slotNumber):
wndMgr.ActivateSlot(self.hWnd, slotNumber)

def DeactivateSlot(self, slotNumber):
wndMgr.DeactivateSlot(self.hWnd, slotNumber)


Kısımlarını else bloğunu silip dışarıya alıp denediğimde sorun çözüldü.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst