PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Comment résoudre l’erreur de traçage Python du client Metin2 ? Pack racine et guide des scripts d'interface utilisateur

Yazdır

Comment résoudre les erreurs de traçage Python et de pack racine du client Metin2 ?

Arrêt du client, script d'interface utilisateur, pack racine et guide de débogage Python.

L'un des problèmes les plus courants côté client Metin2 traçabilité Python sont des erreurs. Le client peut se fermer lors de l'ouverture, l'écran de connexion peut ne pas apparaître, le jeu peut se fermer lorsque l'inventaire ou une fenêtre spéciale s'ouvre, ou des lignes d'erreur appartenant aux fichiers Python peuvent être visibles dans syserr.txt.

Ces erreurs sont généralement paquet de racines, script utilisateur, fichiers d'interface locaux, est dû à une importation manquante, à un nom de fonction incorrect ou à une syntaxe Python cassée.

Explication simple : Les fichiers Python du client gèrent le comportement de l'interface du jeu. S'il y a une mauvaise ligne dans ces fichiers, le jeu peut générer une erreur lors de l'ouverture de la fenêtre correspondante.

1. Qu'est-ce que le traçage Python ?

Traceback est la sortie d'erreur dans laquelle Python indique quel fichier et quelle ligne ont un problème lorsqu'une erreur se produit. Dans le client Metin2, syserr.txt, cela ressemble généralement à ceci :

Traceback (most recent call last):
  File "uiInventory.py", line 123, in OnPressEscapeKey
AttributeError: 'InventoryWindow' object has no attribute 'Close'

erreur dans cet exemple uiInventaire.py Cela s'est produit à la ligne 123 du dossier. Si le type d'erreur est Erreur d'attribut Il apparaît comme .

2. Vérification du fichier Syserr du client

Le premier fichier de contrôle côté client se trouve généralement dans le dossier client. syserr.txt est le fichier.

Client klasorunde syserr.txt dosyasini acin ve en alttaki yeni hatalari kontrol edin.

La partie la plus importante de l’erreur concerne généralement les résultats. Parce que dans Python traceback, les lignes du haut montrent la séquence d'appel et la ligne du bas montre le type d'erreur réel.

Important : D'anciennes lignes d'erreur peuvent être présentes dans syserr.txt. Sauvegarder et nettoyer le fichier avant le test vous permettra de voir plus clairement la nouvelle erreur.

3. Types d'erreurs Python les plus courants

  • Erreur de syntaxe : Il y a une faute de frappe. Des parenthèses, des deux-points ou des guillemets peuvent manquer.
  • Erreur d'attribut : La fonction ou la variable appelée n'existe pas dans l'objet concerné.
  • Erreur de nom : Le nom utilisé n'est pas défini.
  • Erreur d'importation : Le fichier ou module Python requis est introuvable.
  • TypeErreur : Un mauvais type ou un mauvais nombre de paramètres ont été envoyés à la fonction.
  • Erreur de clé : Une clé qui ne figure pas dans le dictionnaire a été appelée.

Ces types d’erreurs n’affichent pas directement la solution, mais ils vous indiquent dans quelle direction regarder.

4. Erreurs du pack racine

Le pack racine contient la plupart des fichiers Python côté client. Par exemple :

  • ui.py
  • jeu.py
  • interfaceModule.py
  • uiInventaire.py
  • uiCharacter.py
  • uiScriptLocale.py
  • constInfo.py

Une modification incorrecte dans le fichier racine peut empêcher le client de s'ouvrir ou de se fermer lorsqu'une certaine fenêtre est ouverte.

Ordre général de vérification des erreurs racine :

  • Identifiez le dernier fichier Python modifié.
  • Recherchez le fichier et le numéro de ligne dans syserr.txt.
  • Recherchez une importation manquante ou un nom de fonction incorrect.
  • Vérifiez les indentations Python.
  • Assurez-vous que le fichier est réellement mis à jour lors du reconditionnement du pack racine.

5. Erreurs de script d'interface utilisateur

Fenêtres de l'interface client Metin2 souvent script utilisateur Il est défini par des fichiers. Ces fichiers contiennent la taille de la fenêtre, l'emplacement des boutons, le chemin de l'image, la zone de texte et les objets enfants.

Les erreurs Uiscript peuvent présenter les symptômes suivants :

  • Le client se ferme lorsqu'une fenêtre spécifique est ouverte
  • La fenêtre s'ouvre mais les boutons ne sont pas visibles
  • Les objets d'interface se chevauchent
  • Une erreur LoadScriptFile se produit dans Syserr
  • Une erreur GetChild se produit du côté de Python

Exemple d'erreur GetChild :

KeyError: 'board'
AttributeError: 'NoneType' object has no attribute 'SetEvent'

Dans de telles erreurs, le fichier Python peut appeler un objet qui n'existe pas dans uiscript.

6. Résoudre les erreurs GetChild

Supposons qu'il existe un code comme celui-ci du côté Python :

self.GetChild("accept_button")

Dans ce cas, dans le fichier uiscript accepter_bouton L'objet enfant nommé doit réellement exister. Si le nom est différent ou n'existe pas du tout, le client peut générer une erreur.

Pour la solution :

  • Vérifiez le nom GetChild dans le fichier Python.
  • Vérifiez le champ de nom dans le fichier uiscript.
  • Faites attention à la différence de cas.
  • Assurez-vous que le bouton ou l'objet texte nouvellement ajouté se trouve sous le bon parent.

7. Problèmes de fichiers et de packs manquants

Les types d'erreurs suivants peuvent se produire dans le client siserr :

No file or directory
LoadScriptFile Error
CANNOT_FIND_PACK_FILE
Failed to load image

Dans ce cas, le fichier concerné n'a peut-être pas été ajouté au package, il a peut-être été placé dans le mauvais dossier ou le chemin a peut-être été mal écrit.

En particulier, les types de fichiers suivants doivent être vérifiés :

  • Fichiers Python .py
  • Fichiers Python compilés .pyc
  • Fichiers uiscript .py
  • Fichiers images .tga, .dds, .sub
  • fichiers d'interface locaux
Attention : Même si l'on pense que le fichier du pack est mis à jour, le client peut travailler avec l'ancien pack. Assurez-vous que vous êtes dans le bon dossier client lors du test.

8. Problèmes d'encodage et de caractères turcs

Dans certaines anciennes infrastructures client, l'utilisation d'un codage incorrect dans les fichiers Python ou les fichiers de paramètres régionaux peut provoquer des erreurs client. Surtout si les caractères turcs sont mal enregistrés, le texte peut apparaître déformé ou le fichier peut être illisible.

Points à considérer :

  • Conservez la structure de codage existante du fichier.
  • Ne cassez pas le jeu de caractères lors de l'enregistrement de fichiers entre différents éditeurs.
  • Faites attention à l'utilisation de ş, ç, ğ, ü, ö, ı dans les fichiers qui ne prennent pas en charge les caractères turcs.
  • UTF-8 peut ne pas toujours fonctionner correctement sur des infrastructures plus anciennes.

Erreurs courantes

  • Modification aléatoire des fichiers racine sans lire syserr.txt
  • Briser les indentations Python
  • Appeler un objet qui n'est pas dans Uiscript avec GetChild en Python
  • Penser que le pack a été mis à jour et tester avec l'ancien client
  • Ne pas ajouter les fichiers image manquants au client
  • Empêcher la lecture du fichier en corrompant la structure de codage

FAQ

Le client ouvre mais ferme à l'ouverture de l'inventaire, pourquoi ?
Il peut y avoir une erreur dans le fichier Python ou uiscript lié à l'inventaire. uiInventory.py et le fichier uiscript associé doivent être vérifiés via le client syserr.

Quelle est la ligne la plus importante dans l’erreur de traçabilité ?
Habituellement, la ligne d'erreur en bas montre le véritable problème. Les lignes supérieures décrivent la chaîne d'appel.

Le jeu ne démarre pas après le changement du root pack, que dois-je faire ?
Comparez le dernier fichier Python modifié avec son ancienne sauvegarde, vérifiez syserr.txt et assurez-vous que le package a bien été mis à jour.

Recommandations en matière de sécurité et d'exploitation

  • Assurez-vous de faire une sauvegarde avant de modifier le pack racine.
  • Après chaque modification, effacez le fichier syserr du client et testez à nouveau.
  • Effectuez de petits tests par lots au lieu de modifications racine en masse.
  • Testez sur un client propre avant de patcher les joueurs.
  • Ne modifiez pas inconsciemment le format d’encodage et de fin de ligne.

Cet article est spécialement préparé pour PvPServer.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner