Jack.Wrestler 1
Jack.Wrestler
mavzermete 1
mavzermete
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
TuZaKK 1
TuZaKK
kaptanmikro1 1
kaptanmikro1
Cancan.1234 1
Cancan.1234
Reklam vermek için turkmmo@gmail.com

Cevaplandı Client Syser Hatalari

  • Konuyu başlatan Konuyu başlatan Alessio2
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 3
  • Görüntüleme Görüntüleme 40
Çözüm
Arkadaşın sorunlarını çözdük, aynı hataları alan olursa diye hepsini tek tek anlatayım. Syserr’de üç ayrı sorun vardı.

  1. 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:

Kod:
wheel_random_items = [
[71084,50],[71084,100], ... ,[100003,1],[71097,1], ... ,[54716,1],[53012,1],[53999,1],[54715,1],[53005,1],[6884,1]
]

Pencere oluşturulurken bu listeden rastgele item seçilip çarkta önizleme olarak gösteriliyor. Listedeki 53999, 54716, 54715, 6884, 71097, 100003 client...
Arkadaşın sorunlarını çözdük, aynı hataları alan olursa diye hepsini tek tek anlatayım. Syserr’de üç ayrı sorun vardı.

  1. 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:

Kod:
wheel_random_items = [
[71084,50],[71084,100], ... ,[100003,1],[71097,1], ... ,[54716,1],[53012,1],[53999,1],[54715,1],[53005,1],[6884,1]
]

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.

  1. ‘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.

  1. ‘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:

Kod:
HIDE_COSTUME    Kostümü Gizle
SHOW_COSTUME    Kostümü Göster

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

İyi forumlar.
 
Çözüm

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst