[Résolu] [1.0] Plantage possible lorsque Link est touché en soulevant un pot

Démarré par crystalgab_3, 18 Décembre 2009 à 14:35

0 Membres et 1 Invité sur ce sujet

Bonjour Christopho,

Je venais de commencer le premier temple depuis quelques minutes et tout à coup, le jeu s'est fermé de lui-même sans raison apparente. Mon ordinateur n'est pas nécessairement le plus récent, mais je n'avais eu aucun problème jusque là.

Pour plus de précisions, j'étais dans la première pièce du sous-sol (celle où il y a une petite flamme entourée de 12 pots).

Voilà

Etais-tu en train de faire une action particulière (soulever un pot, mettre pause, etc.) ? Quel est ton système d'exploitation ? Si c'est windows, y'a-t-il des fichiers stdout.txt et stderr.txt qui sont apparus dans le répertoire d'installation du jeu ? Et si oui, que contiennent-ils ?
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

-Oui je suis sous Windows
-Si je me souviens bien, j'étais en train de lancer un pot
-Aucun des fichiers cités n'est apparu dans le répertoire d'installation du jeu

Voilà

P.S. Si cela peut aider, le problème ne s'est pas reproduit.

Quelle version de Windows?
Citation
Ash Nazg Durbatulùk, Ash Nazg Gimbatul,
Ash Nazg Thrakatulùk agh bruzum-ishi krimpatul.
The fellowship of the Ring - J.R.R. Tolkien

Cela m'est arrivé une fois aussi, mais un plus loin dans le donjon, juste avant que je sorte du donjon pour le quart de coeur. ;)
Surtout que j'avais pas sauvegardé, donc j'ai dû recommencer cette longue scène d'intro. :(
Par contre, je ne faisait aucune action particulière mise à part marcher. ;)
Anciennement iArcadia / Zora Rouge

Windows XP Édition Familiale, SP3...

J'ai cru comprendre qu'il était arrivé le même type de bug à guillaumec dans le topic "Crash du jeu"
http://forums.zelda-solarus.com/index.php/topic,20715.0.html

Voilà

Citation de: crystalgab_3 le 18 Décembre 2009 à 17:38
-Oui je suis sous Windows
-Si je me souviens bien, j'étais en train de lancer un pot
-Aucun des fichiers cités n'est apparu dans le répertoire d'installation du jeu

Voilà

P.S. Si cela peut aider, le problème ne s'est pas reproduit.
Normalement, il n'est pas possible que tu aies pas de stderr ni de stdout...

Sous windows, il me semble que l'implémentation du framework C++ les efface à la sortie du programme si ils sont vides.

j'ai trouvé un petit bug qui étais plutôt embêtant. quand on se trouve a la sortie de la maison la plus a droite du village, il est possible de se déplacer dans le mur. mais sinon je n'est rien trouvé d'autre :).

en tous cas le jeu est très bien fait et j'ai hâte de jouer au jeu complet  :super: .

Un bug par topic stp ;) Poste cela dans un nouveau sujet et joins si possible une capture d'écran.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Désolé je ne poste pas très régulierement  :).

Il m'est arrivé exactement la même chose exactement au même endroit!
Et je suis sous windows XP.

Citation de: crystalgab_3 le 18 Décembre 2009 à 17:38
-Oui je suis sous Windows
-Si je me souviens bien, j'étais en train de lancer un pot
-Aucun des fichiers cités n'est apparu dans le répertoire d'installation du jeu

Voilà

P.S. Si cela peut aider, le problème ne s'est pas reproduit.
Je viens d'avoir ce bug, dans la même situation que ce monsieur. ^_^

19 Décembre 2009 à 19:13 #13 Dernière édition: 19 Décembre 2009 à 19:24 par Christopho
Je confirme le bug. Le jeu plante sur une erreur de segmentation lorsqu'on se fait toucher par un ennemi alors qu'on est en train de finir de soulever un vase (ou tout autre objet soulevable). Ca ne se produit pas systématiquement, il faut que la collision avec l'ennemi se produise pile au moment où l'animation "soulever" se termine. Les fichiers stdout.txt et stderr.txt ne contiennent rien car là ce n'est pas le jeu qui détecte une erreur.
J'ai corrigé le problème (r1183 pour les développeurs de l'équipe), vous verrez donc le résultat dans le jeu complet ou dans une future démo éventuelle.

En attendant, pour ne pas être victime de ce bug, faites attention en soulevant les vases quand il y a un ennemi tout près (surtout dans le donjon, où un ennemi est enfermé dans le carré de 12 vases ;)) et sauvegardez avant par sécurité.

Les geeks peuvent corriger le problème en recompilant le jeu. Il faut modifier la ligne 598 du fichier src/entities/HeroState.cpp :

if (lifted_item->is_broken()) {

Remplacer cette ligne fautive par :

if (lifted_item != NULL && lifted_item->is_broken()) {


ou appliquez simplement patch suivant au fichier src/entities/HeroState.cpp :

595c595,596
<     if (lifted_item->is_broken()) {
---
>
>     if (lifted_item != NULL && lifted_item->is_broken()) {
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Je peux confirmer avoir eu ce bug précédemment mais je n'avais pas réussi à le reproduire, voilà qui est résolu donc tant mieux ^^

Bon bah je l'ai eu aussi... J'aurai du prendre une version patchée pour jouer moi :P
Pour référence si quelqu'un d'autre a le problème, la ligne d'erreur que j'ai eu dans mon terminal.

/usr/games/zsdx: line 2:  6957 Erreur de segmentation  /usr/share/games/zsdxdemo/zsdx -datapath=/usr/share/games/zsdxdemo


(Rah on tombe tous sur ce bug maintenant, comment on a fait pour pas le voir pendant la période de test? :()
Posté le: 20 Décembre 2009 à 17:07
D'ailleurs il serait peu être bien de changer le titre de ce sujet pour donner plus explicitement le bug afin d'éviter que quelqu'un fasse un deuxième rapport pour le même bug. (ce que j'ai faillit faire juste avant de me souvenir que je croyais avoir lu quelque chose dans le genre déjà)
Posté le: 20 Décembre 2009 à 17:12
Ok 3 fois de suite... Raz le bol...
Pour ceux que cela intéresse, le fichier .patch corrigeant le bug :


--- src/entities/HeroState.cpp.ori 2009-12-20 17:37:43.767503409 +0100
+++ src/entities/HeroState.cpp 2009-12-20 17:38:21.267531065 +0100
@@ -595,7 +595,7 @@

   if (lifted_item != NULL) {
     lifted_item->update();
-    if (lifted_item->is_broken()) {
+    if (lifted_item != NULL && lifted_item->is_broken()) {
       delete lifted_item;
       lifted_item = NULL;
       start_free();
Citation
Ash Nazg Durbatulùk, Ash Nazg Gimbatul,
Ash Nazg Thrakatulùk agh bruzum-ishi krimpatul.
The fellowship of the Ring - J.R.R. Tolkien