Како да се решат грешките за следење на Metin2 Client Python и Root Pack?
Исклучување на клиентот, скрипта за интерфејс, root пакет и водич за дебагирање на Python.
Еден од најчестите проблеми на клиентската страна на Metin2 Пајтон трага се грешки. Клиентот може да се затвори додека се отвора, екранот за најавување може да не се појави, играта може да се затвори кога ќе се отвори инвентарот или посебен прозорец или линиите за грешки кои припаѓаат на датотеките на Python може да се видат во syserr.txt.
Овие грешки се обично rootpack, uiscript, датотеки со локален интерфејс, е предизвикана од недостиг на увоз, погрешно име на функцијата или скршена синтакса на Python.
1. Што е Python Traceback?
Traceback е излез за грешка во кој Python покажува која датотека и која линија има проблем кога ќе се појави грешка. Во Metin2 клиентот syserr.txt обично изгледа вака:
Traceback (most recent call last): File "uiInventory.py", line 123, in OnPressEscapeKey AttributeError: 'InventoryWindow' object has no attribute 'Close'
грешка во овој пример uiInventory.py Тоа се случи на линијата 123 од датотеката. Ако типот на грешка е AttributeError Се појавува како.
2. Проверка на датотеката Client Syserr
Првата контролна датотека на клиентската страна е обично во папката клиент. syserr.txt е датотеката.
Client klasorunde syserr.txt dosyasini acin ve en alttaki yeni hatalari kontrol edin.
Најважниот дел од грешката е обично крајните линии. Бидејќи во Python traceback, горните линии ја прикажуваат низата на повици, а долната линија го прикажува вистинскиот тип на грешка.
3. Најчести типови на грешки во Пајтон
- Синтакса грешка: Има печатна грешка. Можеби недостасуваат загради, две точки или наводници.
- AttributeError: Повиканата функција или променлива не постои во соодветниот објект.
- Грешка во името: Името што се користи не е дефинирано.
- Грешка во увоз: Потребната датотека или модул на Python не беа пронајдени.
- Тип Грешка: Погрешен тип или погрешен број на параметри беа испратени до функцијата.
- Клучна грешка: Се повика клуч што го нема во речникот.
Овие типови на грешки не го покажуваат директно решението, но тие ви кажуваат во која насока треба да гледате.
4. Грешки во коренскиот пакет
Коренот пакет содржи повеќето од датотеките на Python од страна на клиентот. На пример:
- ui.py
- игра.py
- interfaceModule.py
- uiInventory.py
- uiCharacter.py
- uiScriptLocale.py
- constInfo.py
Неправилното уредување во root датотеката може да предизвика клиентот да не се отвора или затвора кога ќе се отвори одреден прозорец.
Општ редослед за проверка за грешки во коренот:
- Идентификувајте ја последната изменета датотека на Python.
- Најдете ја датотеката и бројот на линијата во syserr.txt.
- Проверете дали недостасува увоз или погрешно име на функцијата.
- Проверете ги вдлабнатините на Python.
- Проверете дали датотеката е навистина ажурирана кога повторно го пакувате root пакетот.
5. Грешки во скриптата на UI
Metin2 клиент интерфејс прозорци често uiscript Тоа е дефинирано со датотеки. Овие датотеки содржат големина на прозорец, локација на копче, патека на слика, област на текст и детски објекти.
Грешките на Uiscript може да ги имаат следните симптоми:
- Клиентот се затвора кога ќе се отвори одреден прозорец
- Прозорецот се отвора, но копчињата не се видливи
- Објектите на интерфејсот се преклопуваат
- Се појавува грешка LoadScriptFile во syserr
- Грешката GetChild се јавува на страната на Пајтон
Пример за грешка GetChild:
KeyError: 'board' AttributeError: 'NoneType' object has no attribute 'SetEvent'
Во такви грешки, датотеката Python може да повикува објект што не постои во uiscript.
6. Решавање на грешките на GetChild
Да претпоставиме дека има ваков код на страната на Python:
self.GetChild("accept_button")Во овој случај во датотеката uiscript Прифати_копче Детето именуван објект мора да постои. Ако името е различно или воопшто не постои, клиентот може да направи грешка.
За решението:
- Проверете го името GetChild во датотеката Python.
- Проверете го полето за име во датотеката uiscript.
- Обрнете внимание на разликата во случајот.
- Проверете дали новододаденото копче или текстуален објект е под точниот родител.
7. Недостасуваат проблеми со датотеки и пакети
Следниве типови на грешки може да се појават кај клиентот siserr:
No file or directory LoadScriptFile Error CANNOT_FIND_PACK_FILE Failed to load image
Во овој случај, релевантната датотека можеби не е додадена во пакетот, можеби е ставена во погрешна папка или патеката можеби е погрешно напишана.
Особено, треба да се проверат следниве типови датотеки:
- .py Python датотеки
- .pyc компајлирани Python-датотеки
- .py uiscript датотеки
- .tga, .dds, .sub датотеки со слики
- датотеки со локален интерфејс
8. Проблеми со кодирање и турски карактер
Во некои стари клиентски инфраструктури, користењето неправилно кодирање во датотеките на Python или датотеките со локалитет може да предизвика грешки на клиентот. Особено ако турските знаци се погрешно снимени, текстот може да изгледа искривен или датотеката да не може да се чита.
Работи што треба да се земат предвид:
- Чувајте ја постоечката структура за кодирање на датотеката.
- Не кршете го множеството знаци кога зачувувате датотеки помеѓу различни уредници.
- Обрнете внимание на употребата на ş, ç, ğ, ü, ö, ı во датотеките што не поддржуваат турски знаци.
- UTF-8 не може секогаш да работи непречено на постари инфраструктури.
Вообичаени грешки
- Случајно менување на root датотеки без читање syserr.txt
- Кршење на вдлабнатини на Python
- Повикување на објект што не е во Uiscript со GetChild во Python
- Мислам дека пакетот е ажуриран и се тестира со стариот клиент
- Не додавање датотеки со слики што недостасуваат на клиентот
- Спречување на читање на датотеката со оштетување на структурата за кодирање
Најчесто поставувани прашања
Клиентот се отвора, но се затвора кога ќе се отвори пописот, зошто?
Може да има грешка во датотеката Python или uiscript поврзана со инвентарот. uiInventory.py и поврзаната датотека uiscript треба да се проверат преку клиент syserr.
Која е најважната линија во грешката за следење?
Обично линијата за грешка на дното го покажува вистинскиот проблем. Горните линии го опишуваат синџирот на повици.
Играта не започнува по промената на root пакетот, што да правам?
Споредете ја последната модифицирана датотека на Python со старата резервна копија, проверете syserr.txt и проверете дали пакетот е навистина ажуриран.
Препораки за безбедност и операции
- Не заборавајте да направите резервна копија пред да го уредите root пакетот.
- По секоја промена, исчистете ја датотеката syserr на клиентот и тестирајте повторно.
- Направете мали тестови во серија наместо масовни промени на корените.
- Тестирајте на чист клиент пред да ги закрпите играчите.
- Не го менувајте форматот на кодирање и завршување на линии несвесно.
Оваа статија е специјално подготвена за PvPServer.