Kullanıyorum. Fakat, konuda yazdığı gibi UiToolTip.py deki değişimi yaptım fakat syserr yiyorum hala ve simyaların özellikleri gözükmüyor üstüne gelince
[CODE title="Hata"]0516 12:24:17641 :: Traceback (most recent call last):
0516 12:24:17641 :: File "ui.py", line 1978, in OnOverInItem
0516 12:24:17641 :: File "ui.py", line 87, in __call__
0516 12:24:17641 :: File "ui.py", line 78, in __call__
0516 12:24:17641 :: File "uiDragonSoul.py", line 557, in OverInEquipItem
0516 12:24:17641 :: File "uiDragonSoul.py", line 325, in ShowToolTip
0516 12:24:17642 :: File "uiToolTip.py", line 635, in SetInventoryItem
0516 12:24:17642 :: File "uiToolTip.py", line 1360, in AddItemData
0516 12:24:17642 :: NameError
0516 12:24:17642 :: :
0516 12:24:17642 :: global name 'window_type' is not defined
0516 12:24:17642 ::[/CODE]
MERHABA HOCAM BÖYLE BİR BİLGİYE ULAŞTIM İŞİNİ GÖRÜR BELKİ
Hata Özeti
Hata:
NameError: global name 'window_type' is not defined
Dosya: uiToolTip.py, satır 1360
Fonksiyon: AddItemData
Muhtemel Sebep
Senin yeni APPLY_ATTBONUS_DRAGON veya APPLY_ATTBONUS_MYSTERY gibi apply türleri için istemcide gösterim yapmak isterken, tooltip sisteminde bir yerde window_type değişkeni kullanılmış ama
tanımlı değil.
Çözüm: Hatanın oluştuğu kodu düzelt
🛠 Adım 1: uiToolTip.py içinde AddItemData fonksiyonunu bul
Bu fonksiyonda bonusları gösteren kısımları ara. Şuna benzer bir blok vardır:
if app.ENABLE_NEW_BONUS:
if applyType == player.APPLY_ATTBONUS_DRAGON:
self.AppendTextLine(localeInfo.TOOLTIP_APPLY_ATTBONUS_DRAGON % (value), self.GetChangeTextColor(value))
Ama hemen öncesinde window_type değişkeni tanımlanmamışsa, hata verir.
Doğru Kullanım Örneği:
Eğer böyle bir şey varsa:
if window_type == player.EQUIPMENT:
Ama
window_type değişkeni o fonksiyona gönderilmemişse, tanımsız kalır ve bu hatayı alırsın.
Adım 2: AddItemData fonksiyonuna window_type parametresi ekle
Mevcut hali (muhtemelen bu şekilde):
def AddItemData(self, itemVnum, metinSlot, attrSlot):
Şöyle değiştir:
def AddItemData(self, itemVnum, metinSlot, attrSlot, window_type = player.INVENTORY):
Bu şekilde window_type tanımsız kalmaz. Eğer farklı yerde çağırılıyorsa, oraya da parametreyi eklemen gerekebilir.
Adım 3: SetInventoryItem veya SetEquipmentItem içinden AddItemData çağıran yeri bul
self.AddItemData(itemVnum, metinSlot, attrSlot)
Bunu şu şekilde değiştir:
self.AddItemData(itemVnum, metinSlot, attrSlot, window_type)
Ya da orada window_type tanımlı değilse, manuel player.INVENTORY olarak verebilirsin.
İlgili Dosyalar
Bu tür düzenlemeleri yaparken aşağıdaki dosyaları kontrol etmen faydalı olur:
- uiToolTip.py

- locale_game.txt ➤ yeni bonus isimlerini eklemelisin (örn: TOOLTIP_APPLY_ATTBONUS_DRAGON)
- PythonCharacterManager.cpp ve PythonPlayerModule.cpp ➤ APPLY_ tanım mapping
Ekstra: locale_game.txt Tanımı Örneği
TOOLTIP_APPLY_ATTBONUS_DRAGON Ejderha yaratıklarına karşı güçlü: %d%%
TOOLTIP_APPLY_ATTBONUS_MYSTERY Gizemli yaratıklara karşı güçlü: %d%%