- 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 ;
Fonksiyonu değiştir ;
Arat ;
Fonksiyonu değiştir ;
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 ;
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:
def __AppendAccessoryMetinSlotInfo
Fonksiyonu değiştir ;
Python:
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:
def __AppendMetinSlotInfo_AppendMetinSocketData
Fonksiyonu değiştir ;
Python:
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()
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:
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 ::