Lucrăm la îmbunătățirea site-ului! Este posibil ca unele module să nu funcționeze corect!
6 mesaje

Autor subiect

  • Mesaje: 40
  • Reacții: 4
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Server: In curand
  • Regat: Jinno
  • Medalii

    *Problemă/Întrebare:

    *Resursă folosită (sistem/funcție/modificare):

    *Syserr:

    *Fișier(e) cu problema (link pastebin / code):

    *Poze / Video:
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F89EC90>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F89ED10>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F89ECB0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F89ECD0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method MarkBox.__del__ of <saimibagplinmata.MarkBox object at 0x0F89EC70>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method Line.__del__ of <saimibagplinmata.Line object at 0x0F89ECF0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method MarkBox.__del__ of <saimibagplinmata.MarkBox object at 0x0F885870>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method MarkBox.__del__ of <saimibagplinmata.MarkBox object at 0x0F885850>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F8858B0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F885890>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F8858F0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method TextLine.__del__ of <saimibagplinmata.TextLine object at 0x0F8858D0>> ignored
    Exception AttributeError: "'NoneType' object has no attribute 'Window'" in <bound method WarVersusBox.__del__ of <uiWarBoard.WarVersusBox object at 0x0F885830>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method Bar.__del__ of <saimibagplinmata.Bar object at 0x0F8828B0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method ExpandedImageBox.__del__ of <saimibagplinmata.ExpandedImageBox object at 0x0F89E9F0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method ExpandedImageBox.__del__ of <saimibagplinmata.ExpandedImageBox object at 0x0F89E9B0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method ExpandedImageBox.__del__ of <saimibagplinmata.ExpandedImageBox object at 0x0F890ED0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method ExpandedImageBox.__del__ of <saimibagplinmata.ExpandedImageBox object at 0x13A99F50>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5690>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D56B0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D57F0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5830>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D58B0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D58F0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5970>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D59B0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5A30>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5AD0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5B30>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5B50>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5C10>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x097D5C30>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09A4DE70>> ignored
    close failed in file object destructor:
    sys.excepthook is missing
    lost sys.stderr
    De la ce poate fi aceasta eroare?
    Rezolvat de Andi » 15 Mai 2025, 00:07

    📢 Resurse Metin2 Premium!

    Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.

    Vezi resursele Cumpără premium
    Premium
    Premium
    Anunț
    Helper Helper
  • Mesaje: 353
  • Reacții: 2783
  • Mesaje utile: 12
  • Status: Pierd vremea ^.^
  • Server: Nethis/Thoth/Yitian2
  • Regat: Chunjo
  • Discord: [Vezi ID]
  • Contact:

    Medalii

    ✔ Pe scurt și detaliat — Explicația exactă a erorii tale:
    Code:
    Exception TypeError: "'NoneType' object is not callable"
    Înseamnă:

    În codul tău Python (din client Metin2), în timpul distrugerii unui obiect UI (__del__), se încearcă să se apeleze o metodă sau funcție care nu mai există, pentru că a fost deja ștearsă sau invalidată.

    NoneType înseamnă că variabila (ex.: self.Hide) nu mai conține o funcție, ci None.

    is not callable înseamnă că Python încearcă să execute (()) ceva care nu este o funcție.

    De ce apare?

    Apare la închiderea clientului sau a interfețelor, când:

    Obiectele UI sunt distruse.

    Dar metoda __del__ încearcă să apeleze funcții (Hide, Close, etc.) deja distruse sau invalidate.

    Când Python face curățare automată (Garbage Collector), metoda __del__ se execută, dar obiectele interne au fost deja curățate.

    Concret în Metin2:

    TextLine, MarkBox, Bar, etc. — toate aceste clase încearcă în __del__ să facă self.Hide().

    Dar în acel moment, self.Hide este None, pentru că deja clientul a închis UI-ul.

    Deci Python îți spune clar:

    „Încerci să execuți ceva care este None (nu mai e o funcție).”

    Eroare ignorată:

    Eroarea este ignorată automat (ignored), pentru că:

    În timpul închiderii, sys.excepthook și sys.stderr nu mai sunt prezente.

    Este o excepție care nu oprește clientul, dar este semn de problemă de curățare greșită în UI.
    Helper Helper
  • Mesaje: 353
  • Reacții: 2783
  • Mesaje utile: 12
  • Status: Pierd vremea ^.^
  • Server: Nethis/Thoth/Yitian2
  • Regat: Chunjo
  • Discord: [Vezi ID]
  • Contact:

    Medalii

    ✔ Rezumat 100%:

    Python încearcă să apeleze o metodă sau funcție (de exemplu self.Hide()) în momentul în care obiectul este distrus (__del__). Problema apare pentru că în acel moment, metoda respectivă nu mai există sau a fost deja setată la None. În acest caz, Python detectează că în loc de o funcție, încerci să execuți un None (adică un obiect inexistent sau gol), ceea ce generează eroarea de tip:
    Code:
    TypeError: 'NoneType' object is not callable
    Această eroare apare de obicei la închiderea clientului Metin2 sau la distrugerea interfețelor UI (precum TextLine, MarkBox, etc.), deoarece clientul deja a eliberat din memorie anumite componente, iar metodele lor (precum Hide) nu mai sunt valide. În plus, în acel moment, Python a pierdut și mecanismele normale de tratare a excepțiilor (sys.excepthook, sys.stderr), motiv pentru care eroarea este ignorată automat, dar tot rămâne un semn că metoda de curățare a UI-ului este greșită sau incompletă.

    Este o eroare clasică de management greșit al resurselor UI în Metin2 client Python și indică faptul că obiectele UI nu sunt curățate corect sau ordinea distrugerii este haotică. Soluția profesională este să folosești metode sigure de distrugere (Destroy sau CleanUp) cu verificări clare dacă metodele sau obiectele există înainte să le folosești.
    Helper Helper
  • Mesaje: 353
  • Reacții: 2783
  • Mesaje utile: 12
  • Status: Pierd vremea ^.^
  • Server: Nethis/Thoth/Yitian2
  • Regat: Chunjo
  • Discord: [Vezi ID]
  • Contact:

    Medalii

    ✔ Da, îți pot explica exact de unde a apărut această eroare și cum îți poți da seama precis.

    De unde provine această eroare?

    Această eroare apare din codul clientului Metin2, mai exact din clasele Python care controlează elementele UI (User Interface).
    Toate obiectele pe care le vezi în client (ferestre, texte, imagini, bara HP, markere, etc.) sunt instanțe de clase Python care, la un moment dat, trebuie distruse când UI-ul respectiv nu mai e necesar (exemplu: la închiderea clientului, la schimbarea canalului, la deconectare sau la închiderea unei ferestre).

    Aceste clase folosesc o metodă specială Python numită __del__, care este apelată automat când Python șterge obiectul din memorie. În acea metodă, dezvoltatorii au pus instrucțiuni de genul:
    Code:
    def __del__(self):
        self.Hide()
    
    Problema este că în momentul în care __del__ este apelată, clientul sau alt cod a distrus deja alte resurse interne (cum ar fi self.Hide, self.Close, sau WindowManager), care au devenit None.
    Prin urmare, când __del__ încearcă să execute self.Hide(), primește eroarea, deoarece self.Hide este deja None (deci obiectul încearcă să execute ceva inexistent).

    De ce a apărut această eroare acum, în cazul tău?

    Această eroare apare frecvent la închiderea clientului Metin2, la schimbarea caracterului, deconectare sau crash, pentru că:

    Motorul grafic sau modulul Python a început să curețe memoria și să distrugă obiectele UI.

    Ordinea în care obiectele sunt distruse nu este controlată strict.

    Clientul șterge întâi funcțiile de bază (cum ar fi WindowManager, self.Hide), iar apoi apelează __del__ al obiectelor, care încearcă să folosească deja funcții distruse.

    Cum îți dai seama că este exact din client UI și nu altceva?

    Toate erorile implică clase de UI (TextLine, MarkBox, Bar, CursorImage).

    Eroarea este de tip TypeError: 'NoneType' object is not callable în metoda __del__, deci clar e la distrugerea obiectului.

    Eroarea apare în momentul închiderii, schimbării ferestrei sau crash-ului, nu în timpul funcționării normale a UI-ului.

    Conținutul exact al erorii arată clase interne din client Python (de exemplu mouseModule.CursorImage), ceea ce înseamnă că sursa este codul din client, nu din server sau altă aplicație externă.

    ✔ Concluzie clară:

    Această eroare vine 100% din codul clientului Metin2, în momentul în care se distrug obiecte UI, iar metodele interne au fost deja șterse sau sunt None. Este o eroare clasică de ordine greșită de distrugere a obiectelor UI și apare exclusiv în __del__, din cauza curățării automate defectuoase de către Python sau modulul de UI al clientului.
    Helper Helper
  • Mesaje: 353
  • Reacții: 2783
  • Mesaje utile: 12
  • Status: Pierd vremea ^.^
  • Server: Nethis/Thoth/Yitian2
  • Regat: Chunjo
  • Discord: [Vezi ID]
  • Contact:

    Medalii

    Este o eroare care apare inevitabil la:

    Închiderea clientului.

    Schimbarea canalului.

    Crash-uri.

    Închiderea ferestrelor UI.
    Helper Helper
  • Mesaje: 353
  • Reacții: 2783
  • Mesaje utile: 12
  • Status: Pierd vremea ^.^
  • Server: Nethis/Thoth/Yitian2
  • Regat: Chunjo
  • Discord: [Vezi ID]
  • Contact:

    Medalii

    Eroarea 'NoneType' object is not callable indică faptul că în cod se încearcă apelarea unei funcții sau metode care, la acel moment, nu mai există sau a fost setată la None.
    Această eroare apare de obicei în metodele de distrugere (__del__) când obiectele UI sau resursele sunt deja eliberate, iar programul încearcă să le mai acceseze sau să le închidă din nou.
    Este o eroare specifică gestionării incorecte a memoriei sau ordinii de distrugere a obiectelor, și nu ține de server, ci de client, mai exact de partea de interfață (UI).
    Pentru a o elimina complet, este necesară verificarea codului astfel încât să fie evitate apelurile către metode sau obiecte deja eliberate.
    Eroarea este pur client-side, nu afectează serverul sau questurile.
    Moved from Arhivă probleme to Probleme rezolvate on 19 Mai 2025, 19:42 by ZuZuR

    📢 Resurse Metin2 Premium!

    Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.

    Vezi resursele Cumpără premium
    Premium
    Premium
    Anunț
    Închis
    • Subiecte similare

      • de szotyizz » » în Arhivă probleme
        1
        Răspunsuri
        111
        Vizualizări
        de Andi
      • de KintaRoyala69 » » în Probleme rezolvate
        8
        Răspunsuri
        307
        Vizualizări
        de Andi
      • de GRINCH » » în Arhivă probleme
        1
        Răspunsuri
        137
        Vizualizări
        de Reizo
      • de KintaRoyala69 » » în Probleme rezolvate
        1
        Răspunsuri
        146
        Vizualizări
        de ZuZuR
      • de KintaRoyala69 » » în Probleme rezolvate
        2
        Răspunsuri
        126
        Vizualizări
        de Angelic

    Înapoi la “Probleme rezolvate”

    Informații

    Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator