Logo de Pokémon Script Project Evolved

3.13 - Système : En cas de bug


Principes
Un bug de script peut survenir à tout moment lorsqu'on réalise son jeu ou pendant que l'on joue.

Vous avez différents types d'erreur :
- Les erreurs qui ne génèrent pas de logs
- Les erreurs qui génèrent un log
- Les erreurs critiques
- Les avertissements de ressources (ne génèrent aucun crash)
- Les avertissement du pokédex (ne génèrent aucun crash)

Cette partie de la documentation a pour but de vous faire connaître les différents types d'erreur. La plupart du temps, même quand on pense que ce n'est pas le cas, l'erreur est humaine. Il est donc bon avant de faire une demande d'aide que vous puissiez essayer de résoudre le problème de votre côté. Vous y gagnerez du temps, et le support aussi.
Également, pensez à consulter les sujets visibles dans "Résolutions de bugs & entraide" afin de voir si cela n'a pas déjà été traité : https://pspevolved.fr/pages/interface/affichageSupport.php
Enfin, si vous ne trouvez toujours pas de solution, vous pouvez faire une demande sur le Support du site : https://pspevolved.fr/pages/interface/espace_membre/sujetsEnCours.php

Les erreurs qui ne génèrent pas de logs
Il y en a 2 types de connus :
- Les Script Hanging : Les scripts n'arrivent pas à charger. Le plus souvent cela arrive aux PC qui ont de basses performances. Quelques fois ce sont des erreurs qui nécessitent juste de rallumer son PC et le plus rarement des erreurs de scripts au chargement.
- Les Erreurs de syntaxe au chargement : Ce sont des syntaxes incorrectes en script. Lorsque l'on joue, elles génèrent un log
Un exemple :


Qu'il s'agisse des Script Hanging ou des Erreurs de syntaxes, les 2 sont détectables par l'affichage directement d'une boite de dialogue.

Les erreurs qui génèrent un log
Il y en a de plusieurs types. Ici toutes les erreurs vont générer 2 boites de dialogue.

L'une va indiquer d'inspecter le Log.txt ou le LoadingLog.txt  puis l'autre va afficher un logo "Attention". Si le LoadingLog.txt est mentionné, veuillez regarder le bon fichier (à savoir dans ce cas là le LoadingLog.txt).

Ces erreurs peuvent être des erreurs de syntaxe (sauf si c'est au chargement du jeu) mais également des erreurs d'appel en event.
Voici 2 exemples d'erreur d'appel :
- Les erreurs provenant de "Groupes" en BDD
- Les erreurs provenant d'un event ou event commun

Les erreurs provenant de "Groupes" en BDD
Précédé par :

Puis ensuite :


Ils sont détectables car l'erreur va mentionner principalement certains scripts, en voici la liste :
Load_Encounter (comme affiché)
Load_Trainers
Trainer
Trainer_Party_Actor
Encounter
Wild_Info
Pokemon_Info

Si vous n'avez pas de message "SyntaxError" sur la 2eme boîte de dialogue, il y a 2 possibilités :
- Cela vient également de "Groupes" en BDD
- Cela vient d'ailleurs

Dans l'exemple cela venait du fait qu'il manquait un crochet dans un groupe de Pokémon Sauvage :


Les erreurs provenant d'un event ou event commun
Précédé par :

Puis ensuite :

Cela arrivera au minima lors du chargement d'une map. Vous pouvez aussi avoir sur la 2eme boite de dialogue un "SyntaxError".

Cela provient d'une commande script que vous avez appelé dans un event ou event commun qui n'est pas comprise par le programme. Dans l'exemple il s'agissait d'une fonction inexistante :


Les erreurs critiques
Il y a mentionné dedant "Critical Error" et le logo n'est plus un "Attention" en jaune mais une croix avec un rond rouge. Voici les 2 cas connus de cette erreur :
- Vous utilisez PSP_Mod et vous avez fait une manipulation provoquant ce genre d'erreur difficilement résolvable (ne plus utilisez PSP_Mod, c'est déprécié, aucun support n'est assuré dessus)
- Cela se produit quand vous utilisez une attaque en combat, il s'agit de l'animation de l'attaque qui est mal lié avec l'attaque :
La technique pour résoudre ce cas si vous faites Vol par exemple est :

De changer l'animation (sur l'utilisateur ou sur la cible) en une autre animation, de sauvegarder et fermer votre projet, puis de remettre l'animation initiale et de sauvegarder et fermer votre projet.
Ce bug est extrêmement rare et à part côté développement n'a jamais été recensé. Vous ne devez en principe pas tomber sur d'erreurs critiques.

Les avertissements de ressources (ne génèrent aucun crash)
Exemple avec une image manquante :


Exemple avec une musique manquante :


Dans les 2 cas aucun crash aura lieu, vous pouvez continuer de jouer. C'est juste que l'image n'apparaîtra pas ou la musique ne se jouera pas.
Pour régler ce problème, l'explication est dans la boite de dialogue elle même : Vous voulez jouer une musique ou afficher une image qui n'existe pas.
Vérifiez bien que l'image ou l'audio existe, soit dans le bon dossier (ici "Audio/BGM" pour l'audio et "Graphics/Pictures" pour l'image) et qu'il a le bon nom de fichier (ici "Foret8G" pour l'audio et "Capture" pour l'image).

Les avertissements du Pokédex (ne génèrent aucun crash)
Exemple :

Cette fenêtre ne vous empêche pas de jouer. Elle apparaît si vous utilisez le Pokédex régional et que des ID manquent. Dans le cas du test il y a 3 Pokémon inscrits dans le Pokédex régional : un Pokémon d'ID 1, un autre d'ID 2, un autre d'ID 3 et un autre d'ID 650.
Comme aucun ID de 4 à 649 ne sont utilisés, une indication est portée au maker pour lui signaler les trous afin que ce dernier les règles.

Les sauvegardes automatique
Lorsqu'un Log.txt est généré, une sauvegarde automatique a lieu. Quand vous rallumerez votre jeu, vous aurez cette fenêtre :

Appuyez sur Entrée pour fermer le fenêtre, ensuite :
- Une 2eme fois sur Entrée pour lancer le jeu en ignorant la sauvegarde automatique.
- Appuyez sur la touche Echap pour charger la sauvegarde automatique. Cela est utile dans certains cas (Attention : Cela peut vous régénérer une erreur en boucle si la sauvegarde s'est fait au moment de l'erreur).