Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Arkadaşın sorunlarını çözdük, aynı hataları alan olursa diye hepsini tek tek anlatayım. Syserr’de üç ayrı sorun vardı.
Cannot find item by 53999 hatası
Bu hata Python’da item.SelectItem ile client’a bir item sorulduğunda, o item client’ın item protosunda yoksa çıkıyor. Arkadaş item protoda ve questlerde aramış ama bulamamış, çünkü itemler item shop’taki çarkın önizleme listesindeymiş. uiitemshopnew.py içinde şöyle bir liste var:
Arkadaşın sorunlarını çözdük, aynı hataları alan olursa diye hepsini tek tek anlatayım. Syserr’de üç ayrı sorun vardı.
Cannot find item by 53999 hatası
Bu hata Python’da item.SelectItem ile client’a bir item sorulduğunda, o item client’ın item protosunda yoksa çıkıyor. Arkadaş item protoda ve questlerde aramış ama bulamamış, çünkü itemler item shop’taki çarkın önizleme listesindeymiş. uiitemshopnew.py içinde şöyle bir liste var:
Pencere oluşturulurken bu listeden rastgele item seçilip çarkta önizleme olarak gösteriliyor. Listedeki 53999, 54716, 54715, 6884, 71097, 100003 client item protosunda olmadığı için seçildikçe syserr basıyordu. Hataların aynı saniyede karışık sırayla gelmesi de bundan. Bu 6 itemi listeden çıkardık. Liste sadece görüntü için, çarkın gerçek ödülleri sunucudan geliyor, o yüzden çarka bir etkisi olmuyor. İsterseniz çıkarmak yerine bu itemleri client item protosuna da ekleyebilirsiniz.
Bu hatayı alan olursa root klasöründe itemin numarasını aratsın, büyük ihtimal bir py dosyasında sabit bir listede çıkar.
‘Interface’ object has no attribute ‘RefreshVisibleCostume’ hatası
Kostüm gizleme sistemi eklenirken interfacemodule.py ye eklenecek fonksiyon dosyanın en sonuna, if name == “main”: satırının altına yapıştırılmış. O kısım Interface sınıfının dışında kalıyor, sadece dosya tek başına çalıştırılınca çalışıyor. Oyun fonksiyonu göremediği için bu hatayı veriyor.
Fonksiyonu sınıfın içine, if name == “main”: satırının üstüne taşıdık:
Kod:
def EmptyFunction(self):
pass
if app.ENABLE_HIDE_COSTUME_SYSTEM:
def RefreshVisibleCostume(self):
self.wndInventory.RefreshVisibleCostume()
if name == “main”:
Sistem anlatımlarında “dosyanın en sonuna ekle” yazıyorsa interfacemodule.py, game.py gibi dosyalarda en sona değil, if name satırının üstüne ekleyin. Bu çok yapılan bir hata.
‘module’ object has no attribute ‘HIDE_COSTUME’ hatası
Yukarıdaki düzelince bu hata çıktı, aynı sistemin locale kısmı eksik kalmış. Kostüm gizle göster düğmesinin üzerine gelince çıkan yazılar locale_game.txt den okunuyor. locale/tr/locale_game.txt dosyasının en altına şunları ekledik:
İsimle yazı arasındaki boşluk tab olmalı. Dosyayı kaydederken kodlamasını değiştirmeyin, yoksa Türkçe karakterler bozulur.
Syserr’de ‘module’ object has no attribute ... şeklinde bir hata görürseniz genelde eksik bir locale satırı demektir. localeInfo diyorsa locale_game.txt ye, uiScriptLocale diyorsa locale_interface.txt ye bakın.