Kuidas lahendada Metin2 kliendi Python Tracebacki ja juurpaketi vigu?
Kliendi sulgemine, kasutajaliidese skript, juurpakett ja Pythoni silumisjuhend.
Üks levinumaid probleeme Metin2 kliendi poolel Pythoni jälgimine on vead. Klient võib avamise ajal sulguda, sisselogimisekraan ei pruugi ilmuda, mäng võib sulguda, kui avaneb inventar või spetsiaalne aken või Syserr.txt-s võib näha Pythoni failidele kuuluvaid vearidasid.
Need vead on tavaliselt juurpakk, uiscript, kohaliku liidese failid, põhjuseks on puuduv import, vale funktsiooni nimi või vigane Pythoni süntaks.
1. Mis on Python Traceback?
Traceback on veaväljund, milles Python näitab, millises failis ja millisel real on tõrke ilmnemisel probleem. Metin2 kliendi failis syserr.txt näeb see tavaliselt välja järgmine:
Traceback (most recent call last): File "uiInventory.py", line 123, in OnPressEscapeKey AttributeError: 'InventoryWindow' object has no attribute 'Close'
viga selles näites uiInventory.py See juhtus faili real 123. Kui vea tüüp on AttributeError See näib olevat .
2. Client Syserr faili kontrollimine
Esimene kliendipoolne juhtfail on tavaliselt kliendi kaustas. syserr.txt on fail.
Client klasorunde syserr.txt dosyasini acin ve en alttaki yeni hatalari kontrol edin.
Vea kõige olulisem osa on tavaliselt alumised read. Kuna Pythoni tracebackis näitavad ülemised read kõnede järjestust ja alumine rida tegelikku veatüüpi.
3. Enimlevinud Pythoni vigade tüübid
- Süntaksi viga: On kirjaviga. Sulud, koolonid või jutumärgid võivad puududa.
- AttributeError: Kutsutud funktsiooni või muutujat vastavas objektis ei eksisteeri.
- NameError: Kasutatav nimi pole määratletud.
- Impordiviga: Nõutavat Pythoni faili või moodulit ei leitud.
- Tüübiviga: Funktsioonile saadeti vale tüüpi või vale arv parameetreid.
- KeyError: Kutsuti võti, mida sõnastikus pole.
Need veatüübid ei näita otseselt lahendust, kuid ütlevad, millises suunas peaksite vaatama.
4. Juurpaketi vead
Juurpakett sisaldab enamikku kliendipoolsetest Pythoni failidest. Näiteks:
- ui.py
- game.py
- interfaceModule.py
- uiInventory.py
- uiCharacter.py
- uiScriptLocale.py
- constInfo.py
Juurfaili vale redigeerimine võib põhjustada selle, et klient teatud akna avamisel ei avane või sulgub.
Üldine juurvigade kontrollimise järjekord:
- Tuvastage viimati muudetud Pythoni fail.
- Otsige failist syserr.txt üles faili ja rea number.
- Kontrollige puuduvat impordi või vale funktsiooni nime.
- Kontrollige Pythoni taandeid.
- Juurpaketi ümberpakkimisel veenduge, et faili oleks ka tegelikult värskendatud.
5. UI skripti vead
Metin2 kliendiliidese aknad sageli uiscript See on määratletud failidega. Need failid sisaldavad akna suurust, nuppude asukohta, pilditeed, tekstiala ja alamobjekte.
Uiscripti vigadel võivad olla järgmised sümptomid:
- Klient sulgub konkreetse akna avamisel
- Aken avaneb, kuid nuppe pole näha
- Liidese objektid kattuvad
- Syserris ilmneb LoadScriptFile'i viga
- Pythoni poolel ilmneb viga GetChild
GetChildi vea näide:
KeyError: 'board' AttributeError: 'NoneType' object has no attribute 'SetEvent'
Selliste vigade korral võib Pythoni fail kutsuda objekti, mida uiscriptis ei eksisteeri.
6. GetChildi vigade lahendamine
Oletame, et Pythoni poolel on selline kood:
self.GetChild("accept_button")Sel juhul uiscript-failis aktsepteeri_nupp Nimega alamobjekt peab tegelikult olemas olema. Kui nimi on erinev või seda pole üldse olemas, võib klient anda vea.
Lahenduse jaoks:
- Kontrollige Pythoni failis nime GetChild.
- Kontrollige uiscript-failis nimevälja.
- Pöörake tähelepanu tähtede erinevusele.
- Veenduge, et äsja lisatud nupp või tekstiobjekt oleks õige vanema all.
7. Puuduvad faili- ja pakiprobleemid
Kliendi siserr-is võivad esineda järgmist tüüpi vead:
No file or directory LoadScriptFile Error CANNOT_FIND_PACK_FILE Failed to load image
Sel juhul võib juhtuda, et vastavat faili ei ole paketti lisatud, see võib olla paigutatud valesse kausta või on tee valesti kirjutatud.
Eelkõige tuleks kontrollida järgmisi failitüüpe:
- .py Pythoni failid
- .pyc kompileeritud Pythoni failid
- .py uiscript-failid
- .tga, .dds, .sub pildifailid
- kohaliku liidese failid
8. Kodeerimine ja türgi tähemärgiprobleemid
Mõnes vanas kliendiinfrastruktuuris võib Pythoni failides või lokaadifailides vale kodeeringu kasutamine põhjustada kliendi vigu. Eriti kui türgi tähed on valesti salvestatud, võib tekst olla moonutatud või fail ei pruugi olla loetav.
Asjad, mida tuleks arvestada:
- Säilitage faili olemasolev kodeeringustruktuur.
- Failide salvestamisel erinevate redaktorite vahel ärge rikkuge märgistikku.
- Pöörake tähelepanu ş, ç, ğ, ü, ö, ı kasutamisele failides, mis ei toeta türgi tähemärke.
- UTF-8 ei pruugi vanematel infrastruktuuridel alati sujuvalt töötada.
Levinud vead
- Juhuslik juurfailide muutmine ilma faili syserr.txt lugemata
- Pythoni taande purustamine
- Objekti, mis pole Uiscriptis, kutsumine Pythoni GetChildiga
- Arvan, et paketti on värskendatud ja testitakse vana kliendiga
- Puuduvad pildifailid kliendile ei lisata
- Faili lugemise takistamine, rikkudes kodeerimisstruktuuri
KKK
Klient avab, kuid sulgeb laoseisu avamisel, miks?
Laoseisuga seotud Pythoni või uiscripti failis võib olla viga. uiInventory.py ja sellega seotud uiscript-faili tuleks kontrollida kliendi syserri kaudu.
Milline rida on jälgimisveas kõige olulisem?
Tavaliselt näitab allosas olev vearida tegelikku probleemi. Ülemised read kirjeldavad kõneahelat.
Mäng ei käivitu pärast juurpaketi muutmist, mida peaksin tegema?
Võrrelge viimati muudetud Pythoni faili selle vana varukoopiaga, kontrollige faili syserr.txt ja veenduge, et paketti on tõesti värskendatud.
Ohutus- ja käitamissoovitused
- Enne juurpaketi redigeerimist tehke kindlasti varukoopia.
- Pärast iga muudatust tühjendage kliendi syserr fail ja testige uuesti.
- Hulgijuuremuudatuste asemel tehke väikeste partiide teste.
- Enne mängijate lappimist testige puhtal kliendil.
- Ärge muutke alateadlikult kodeeringut ja realõpu vormingut.
See artikkel on spetsiaalselt ette valmistatud PvPServeri jaoks.