Çözüldü Aksesuar özelliklerinde görünüm eksikliği Sorunu,

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ı.

tayfun5110191

Üye
Üye
Mesaj
101
Çözümler
4
Beğeni
52
Puan
724
Ticaret Puanı
0
Merhabalar , biliyorsunuz bu safir , turmalin , grena vb. madenler mevcut , bunları bilezik gibi iç itemlere ekleyebiliyoruz. Bir çoğunuzda bu madenleri ekledikten sonra verdikleri karakterlere karşı savunma yazmıyor.

Bu özelliklerin yazmamasının nedenini araştırdım ve bir forumda buldum sırasıyla aşağıdaki kodları uyguladım ve sorunu çözdüm.
@Whistle bu sorunu yardımınla çözebilirsek fixli halini burada paylaşabiliriz.
uitoltip.py
Uygulanan kodlar ;
arat ;
Python:
Genişlet Daralt Kopyala
def __AppendAccessoryMetinSlotInfo

Fonksiyonu değiştir ;
Python:
Genişlet Daralt Kopyala
    def __AppendAccessoryMetinSlotInfo(self, metinSlot, mtrlVnum):      
        ACCESSORY_SOCKET_MAX_SIZE = 4      

        cur=min(metinSlot[0], ACCESSORY_SOCKET_MAX_SIZE)
        end=min(metinSlot[1], ACCESSORY_SOCKET_MAX_SIZE)

        affectType1, affectValue1 = item.GetAffect(0)
        affectList1=[0, max(1, affectValue1*10/100), max(2, affectValue1*20/100), max(3, affectValue1*40/100), max(4, affectValue1*60/100)]

        affectType2, affectValue2 = item.GetAffect(1)
        affectList2=[0, max(1, affectValue2*10/100), max(2, affectValue2*20/100), max(3, affectValue2*40/100), max(4, affectValue1*60/100)]

        affectType3, affectValue3 = item.GetAffect(2)
        affectList3=[0, max(1, affectValue3*10/100), max(2, affectValue3*20/100), max(3, affectValue3*40/100), max(4, affectValue1*60/100)]


        mtrlPos=0
        mtrlList=[mtrlVnum]*cur+[player.METIN_SOCKET_TYPE_SILVER]*(end-cur)
        for mtrl in mtrlList:
            affectString1 = self.__GetAffectString(affectType1, affectList1[mtrlPos+1]-affectList1[mtrlPos])          
            affectString2 = self.__GetAffectString(affectType2, affectList2[mtrlPos+1]-affectList2[mtrlPos])
            affectString3 = self.__GetAffectString(affectType3, affectList3[mtrlPos+1]-affectList3[mtrlPos])          
            leftTime = 0
            if cur == mtrlPos+1:
                leftTime=metinSlot[2]

            self.__AppendMetinSlotInfo_AppendMetinSocketData(mtrlPos, mtrl, affectString1, affectString2 ,affectString3, leftTime)
            mtrlPos+=1

Arat ;
Python:
Genişlet Daralt Kopyala
def __AppendMetinSlotInfo_AppendMetinSocketData

Fonksiyonu değiştir ;
Python:
Genişlet Daralt Kopyala
    def __AppendMetinSlotInfo_AppendMetinSocketData(self, index, metinSlotData, custumAffectString="", custumAffectString2="", custumAffectString3="",leftTime=0):

        slotType = self.GetMetinSocketType(metinSlotData)
        itemIndex = self.GetMetinItemIndex(metinSlotData)

        if 0 == slotType:
            return

        self.AppendSpace(5)

        slotImage = ui.ImageBox()
        slotImage.SetParent(self)
        slotImage.Show()

        ## Name
        nameTextLine = ui.TextLine()
        nameTextLine.SetParent(self)
        nameTextLine.SetFontName(self.defFontName)
        nameTextLine.SetPackedFontColor(self.NORMAL_COLOR)
        nameTextLine.SetOutline()
        nameTextLine.SetFeather()
        nameTextLine.Show()          

        self.childrenList.append(nameTextLine)

        if player.METIN_SOCKET_TYPE_SILVER == slotType:
            slotImage.LoadImage("d:/ymir work/ui/game/windows/metin_slot_silver.sub")
        elif player.METIN_SOCKET_TYPE_GOLD == slotType:
            slotImage.LoadImage("d:/ymir work/ui/game/windows/metin_slot_gold.sub")

        self.childrenList.append(slotImage)
       
        if localeInfo.IsARABIC():
            slotImage.SetPosition(self.toolTipWidth - slotImage.GetWidth() - 9, self.toolTipHeight-1)
            nameTextLine.SetPosition(self.toolTipWidth - 50, self.toolTipHeight + 2)
        else:
            slotImage.SetPosition(9, self.toolTipHeight-1)
            nameTextLine.SetPosition(50, self.toolTipHeight + 2)

        metinImage = ui.ImageBox()
        metinImage.SetParent(self)
        metinImage.Show()
        self.childrenList.append(metinImage)

        if itemIndex:

            item.SelectItem(itemIndex)

            ## Image
            try:
                metinImage.LoadImage(item.GetIconImageFileName())
            except:
                dbg.TraceError("ItemToolTip.__AppendMetinSocketData() - Failed to find image file %d:%s" %
                    (itemIndex, item.GetIconImageFileName())
                )

            nameTextLine.SetText(item.GetItemName())
           
            ## Affect      
            affectTextLine = ui.TextLine()
            affectTextLine.SetParent(self)
            affectTextLine.SetFontName(self.defFontName)
            affectTextLine.SetPackedFontColor(self.POSITIVE_COLOR)
            affectTextLine.SetOutline()
            affectTextLine.SetFeather()
            affectTextLine.Show()          
               
            if localeInfo.IsARABIC():
                metinImage.SetPosition(self.toolTipWidth - metinImage.GetWidth() - 10, self.toolTipHeight)
                affectTextLine.SetPosition(self.toolTipWidth - 50, self.toolTipHeight + 16 + 2)
            else:
                metinImage.SetPosition(10, self.toolTipHeight)
                affectTextLine.SetPosition(50, self.toolTipHeight + 16 + 2)
                           
            if custumAffectString:
                affectTextLine.SetText(custumAffectString)
            elif itemIndex!=constInfo.ERROR_METIN_STONE:
                for i in xrange(item.ITEM_APPLY_MAX_NUM):
                    (affectType, affectValue) = item.GetAffect(i)
                    affectString = self.__GetAffectString(affectType, affectValue)
                    if affectString:
                        self.AppendSpace(20)
                        self.StoneAppendTextLine(affectString, self.GetChangeTextLineColor(affectValue))
            else:
                affectTextLine.SetText(localeInfo.TOOLTIP_APPLY_NOAFFECT)
           
            self.childrenList.append(affectTextLine)          

            if custumAffectString2:
                affectTextLine = ui.TextLine()
                affectTextLine.SetParent(self)
                affectTextLine.SetFontName(self.defFontName)
                affectTextLine.SetPackedFontColor(self.POSITIVE_COLOR)
                affectTextLine.SetPosition(50, self.toolTipHeight + 16 + 2 + 16 + 2)
                affectTextLine.SetOutline()
                affectTextLine.SetFeather()
                affectTextLine.Show()
                affectTextLine.SetText(custumAffectString2)
                self.childrenList.append(affectTextLine)
                self.toolTipHeight += 16 + 2

            if custumAffectString3:
                affectTextLine = ui.TextLine()
                affectTextLine.SetParent(self)
                affectTextLine.SetFontName(self.defFontName)
                affectTextLine.SetPackedFontColor(self.POSITIVE_COLOR)
                affectTextLine.SetPosition(50, self.toolTipHeight + 16 + 2 + 16 + 2)
                affectTextLine.SetOutline()
                affectTextLine.SetFeather()
                affectTextLine.Show()
                affectTextLine.SetText(custumAffectString3)
                self.childrenList.append(affectTextLine)
                self.toolTipHeight += 16 + 2

            if 0 != leftTime:
                timeText = (localeInfo.LEFT_TIME + " : " + localeInfo.SecondToDHM(leftTime))

                timeTextLine = ui.TextLine()
                timeTextLine.SetParent(self)
                timeTextLine.SetFontName(self.defFontName)
                timeTextLine.SetPackedFontColor(self.POSITIVE_COLOR)
                timeTextLine.SetPosition(50, self.toolTipHeight + 16 + 2 + 16 + 2)
                timeTextLine.SetOutline()
                timeTextLine.SetFeather()
                timeTextLine.Show()
                timeTextLine.SetText(timeText)
                self.childrenList.append(timeTextLine)
                self.toolTipHeight += 16 + 2

        else:
            nameTextLine.SetText(localeInfo.TOOLTIP_SOCKET_EMPTY)

        self.toolTipHeight += 35
        self.ResizeToolTip()


p5G8vm.png

aksesuar_ozellikleri.webp


fakat bu kodları ekledikten sonra silahlara ve zırhlara taş basamıyoruz. Silah veya zırha taşı sürükledikten sonra packe düşen syser şöyle ;

Kod:
Genişlet Daralt Kopyala
0805 08:48:46015 :: Traceback (most recent call last):


0805 08:48:46015 ::   File "ui.py", line 1977, in OnSelectItemSlot

0805 08:48:46015 ::   File "ui.py", line 86, in __call__

0805 08:48:46016 ::   File "ui.py", line 77, in __call__

0805 08:48:46016 ::   File "uiInventory.py", line 809, in SelectItemSlot

0805 08:48:46016 ::   File "uiInventory.py", line 919, in __DropSrcItemToDestItemInInventory

0805 08:48:46017 ::   File "uiInventory.py", line 1128, in AttachMetinToItem

0805 08:48:46017 ::   File "uiAttachMetin.py", line 107, in Open

0805 08:48:46017 ::   File "uiToolTip.py", line 1369, in AddItemData

0805 08:48:46017 ::   File "uiToolTip.py", line 2245, in __AppendMetinSlotInfo

0805 08:48:46018 ::   File "uiToolTip.py", line 2341, in __AppendMetinSlotInfo_AppendMetinSocketData

0805 08:48:46018 :: AttributeError
0805 08:48:46018 :: :
0805 08:48:46018 :: 'ItemToolTip' object has no attribute 'StoneAppendTextLine'
0805 08:48:46018 ::
 
Evet var. Sorunu, uitooltip.py'yi biraz karıştırdıktan sonra çözdüm. birazdan paylaşacağım yorumun için teşekkür ederim.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst