Forum Sistearth

Archives => Bugs Corrigés => Discussion démarrée par: Cain le 12 Juin 2013 à 09:15:32



Titre: quete de clan - le retour
Posté par: Cain le 12 Juin 2013 à 09:15:32
Bon,

http://royaumes.sistearth.com/index.php?topic=4842.0

Ne pouvant le réouvrir, je repost ce bug.
Etape 3 ou 4 je sais plus, choix entre un pnj et des levels. Je prends le pnj, je lag, je reclic sur le choix de l'étape et....

A nouveau cet écran me disant en gros que je suis un membre à l'essai.
Rien n'a changé, chui chef et pas en essai, et a mon avis, tout mon clan a ce probleme.


Titre: Re : quete de clan - le retour
Posté par: Tohwi le 12 Juin 2013 à 10:22:46
Effectivement, j'étais sur le PNJ et je ne pouvais pas valider l'étape...


Titre: Re : quete de clan - le retour
Posté par: Mel le 12 Juin 2013 à 14:20:49
...

J'ai regardé le code et dessuite, je n'ai plus envie de chercher à corriger le bug...

fichier joint: extrait de la page clan (la seule, l'unique). fichier de 1773 lignes


Titre: Re : quete de clan - le retour
Posté par: alania le 12 Juin 2013 à 15:29:02
c'est cette partie qui ne s'affiche pas, probablement une variable qui est mal initialisé

Citation
else switch ($Mission["EtapeType$EtapeEnCours"])
         {
            case 1: //PNJ
            {               
               DisplayQueteClanTexte($Mission["EtapeType$EtapeEnCours"],$EtapeEnCours,$Clan["ClanID"],$Mission["Info1_$EtapeEnCours"]);
               $requete = "select EntiteNom,Px,Py,ZoneID from pnj where EntiteID = ".$Mission["Info1_$EtapeEnCours"];
               $PNJ = fetch(query($requete));               
               $requete = "select Px,Py,ZoneID from pj left join pjclan on pjclan.PjID = pj.EntiteID where GradeID>0 and EntiteID = ".$_SESSION["PjID"];
               $PJ = fetch(query($requete));   

               if($PNJ["Px"]==$PJ["Px"] && $PNJ["Py"]==$PJ["Py"] && $PNJ["ZoneID"]==$PJ["ZoneID"])
               {
                  $EtapeValidable = true;
               }
               else
               {
                  echo "<br><br>Vous n'êtes pas au bon endroit pour donner la lettre qui vous a été confiée";
               }
               break;
            }

Soit ca plante et il y a des logs,
soit on entre pas dans cette condition, à cause de Mission ou EtapeEnCours mal initialisé.
Il faudrait ajouter un default à la fin du switch avec un message d'erreur pour en être sure, et pourquoi pas afficher aussi les variables comme ça on pourrais te donner le résultat

NB: le message ne dis pas qu'on est membre a l'essai, c'est juste le message standard : "Attention pour tout ce qui suit, les membres à l'essai du clan ne sont pas impliqués dans la quête!"


Titre: Re : quete de clan - le retour
Posté par: Tohwi le 12 Juin 2013 à 17:02:19
...
Ce code oO

Je soupçonne très fortement un problème d'accès concurrent à cet endroit du code (normal, aucun envoi POST n'est vérifié) :

Code:
 if($_POST["Choix"] == 1)
                                $requete = "update quetedivine set EtapeType$EtapeEnCours = EtapeChoix1, Info1_$EtapeEnCours = InfoChoix1_1, Info2_$EtapeEnCours = InfoChoix1_2 where ClanID=".$Clan["ClanID"];
                        elseif($_POST["Choix"] == 2)
                                $requete = "update quetedivine set EtapeType$EtapeEnCours = EtapeChoix2, Info1_$EtapeEnCours = InfoChoix2_1, Info2_$EtapeEnCours = InfoChoix2_2 where ClanID=".$Clan["ClanID"];
                        if($_POST["Choix"] == 1 || $_POST["Choix"] == 2)
                        {
                                query($requete);
                                query("update quetedivine set EtapeChoix1 = 0, InfoChoix1_1 = 0, InfoChoix1_2 = 0, EtapeChoix2 = 0, InfoChoix2_1 = 0, InfoChoix2_2 = 0 where ClanID=".$Clan["ClanID"]);
                                echo "Choix Effectué<br><br>";
}

Ex :
- Joueur 1 valide choix 1
     => EtapeType$EtapeEnCours = EtapeChoix1, Info1_$EtapeEnCours = InfoChoix1_1 = quelque chose de pertinent (première requête)
     => InfoChoix1_1 = 0 (deuxième requête)
- Joueur 2, qui avait sa page ouverte avant que joueur ne valide, revalide choix 1
     =>  EtapeType$EtapeEnCours = EtapeChoix1, Info1_$EtapeEnCours = InfoChoix1_1 = 0 = BUG (première requête)

Pour résoudre le bug : vérifier que l'étape n'est pas déjà validée.


Titre: Re : quete de clan - le retour
Posté par: alania le 13 Juin 2013 à 15:12:57
D'après ce que je lis, c'est le dernier qui valide qui l'emporte, mais cela ne créer pas d’incohérence dans la base. (Mais le php n'est pas mon fort, je peux me tromper.)

Il faudrait voire le contenu des variables pour savoir ou ca bug.

avez vous acces aux logs, car je viens de remarquer que Cain devrait au moins voir ça, or s'il ne le voit pas c'est que le script s’arrête anormalement plus tot!

Citation
if($Grade == $GRADE["chef"])
         {      
            echo "<br><br><h3>Abandonner la quête en cours :</h3>";
            echo "Abandonner une quête peut apporter au clan le courroux de la divinité qui vous l'avait confiée. <br>Réfléchissez-y à deux fois!<br><br>";
            ?>   <form name="AbandonnerQuete" method="post" onSubmit="return cSubmit();">   
               <input class="bouton" type="submit" name="AbandonnerQuete" value="Abandonner la quête">
               </form>
            <?   
         }


et je pense qu'il manque un argument a la fonction DisplayQueteClanTexte pour le cas 1 :
Citation
else switch ($Mission["EtapeType$EtapeEnCours"])
         {
            case 1: //PNJ
            {               
               DisplayQueteClanTexte($Mission["EtapeType$EtapeEnCours"],$EtapeEnCours,$Clan["ClanID"],$Mission["Info1_$EtapeEnCours"]);
en effet les autres appels ont plus d'arguments
Citation
case 2: //Livre
            {
               DisplayQueteClanTexte($Mission["EtapeType$EtapeEnCours"],$EtapeEnCours,$Clan["ClanID"],$Mission["Info1_$EtapeEnCours"],$Mission["Info2_$EtapeEnCours"]);


Titre: Re : Re : quete de clan - le retour
Posté par: Tohwi le 13 Juin 2013 à 19:33:40
D'après ce que je lis, c'est le dernier qui valide qui l'emporte, mais cela ne créer pas d’incohérence dans la base. (Mais le php n'est pas mon fort, je peux me tromper.)
Non non, comme je l'ai écrit plus en détail en dessus :
- la première requête met à jour les infos en fonction des champs InfoChoixn_n
- la deuxième requête met les champs InfoChoixn_n à 0
Du coup, relancer la même requête entraîne de mettre à jour les infos avec un champ InfoChoixn_n qui vaut maintenant 0.

D'ailleurs il me semble que la dernière fois, le problème était que deux personnes avaient cliqué "en même temps".


Titre: Re : quete de clan - le retour
Posté par: alania le 14 Juin 2013 à 12:27:01
en effet tu as raison, je n'avais pas remarqué qu'il y avait ecrasement des donnes dans la base par le premier!
il faut donc qu'un admin modifie la base pour qu'on puisse continuer et qu'il ajoute le test pour eviter que ca ne recommence


Titre: Re : quete de clan - le retour
Posté par: Mel le 14 Juin 2013 à 19:01:01
Je suis en train de bosser dessus et plutot que de patcher de manière bourrine un code bancal, je recode le tout.
Il doit me rester entre une et deux heure de boulot pour finir. Ca sera normalement pret ce WE.

Toutes les quêtes en cours seront annulées (mais vous gagnerez des PC fonction du nombre d'étapes qui auront été validées).


Titre: Re : quete de clan - le retour
Posté par: Lysithea le 15 Juin 2013 à 11:03:28
Du coup il y aura moyen de rajouter de nouvelles possibilités d'étape ? :)


Titre: Re : quete de clan - le retour
Posté par: Calypso le 15 Juin 2013 à 12:30:05
Ohhh Mel je t'aime!!!


Titre: Re : Re : quete de clan - le retour
Posté par: Mel le 15 Juin 2013 à 14:23:24
Du coup il y aura moyen de rajouter de nouvelles possibilités d'étape ? :)

ouais

vous pouvez faire un post dans A&I ;)


Titre: Re : Re : quete de clan - le retour
Posté par: Tohwi le 15 Juin 2013 à 14:47:48
Toutes les quêtes en cours seront annulées (mais vous gagnerez des PC fonction du nombre d'étapes qui auront été validées).
On peut nous valider notre étape en cours alors, histoire de pas être floués de quelques PCs ? :p


Titre: Re : quete de clan - le retour
Posté par: Tagornis le 15 Juin 2013 à 16:38:39
C'est lié uniquement au quête de clan ou aussi au quête normale ?


Titre: Re : quete de clan - le retour
Posté par: Connavar le 15 Juin 2013 à 22:30:15
quete de clan


Titre: Re : Re : quete de clan - le retour
Posté par: Mel le 17 Juin 2013 à 01:28:05
Je suis en train de bosser dessus et plutot que de patcher de manière bourrine un code bancal, je recode le tout.
Il doit me rester entre une et deux heure de boulot pour finir. Ca sera normalement pret ce WE.

Toutes les quêtes en cours seront annulées (mais vous gagnerez des PC fonction du nombre d'étapes qui auront été validées).

hé bien non... j'ai rien fait ce WE donc... le prochain ;)


Titre: Re : quete de clan - le retour
Posté par: Tohwi le 17 Juin 2013 à 23:41:11
Possible de nous débloquer notre quête en attendant ?


Titre: Re : quete de clan - le retour
Posté par: Mel le 18 Juin 2013 à 10:12:44
oué, j'ai "annulé" votre étape. Il faut la repasser.
Vu que c'est la conaissance d'un savoir, ça ne devrait pas poser de problèmes, enfin, il me semble.
Evitez de cliquer 40 fois pour la valider, c'tout ;)


Titre: Re : quete de clan - le retour
Posté par: alania le 18 Juin 2013 à 10:44:59
merci

on se prend un malus de 2 etapes mais celle ci sera rapidement validé.


Titre: Re : Re : quete de clan - le retour
Posté par: Cain le 18 Juin 2013 à 11:31:28
Merci !

Evitez de cliquer 40 fois pour la valider, c'tout ;)
:wtf:
Bon ok, j'arrete de prendre mon téléphone 3G en pleine foret


Titre: Re : quete de clan - le retour
Posté par: Mel le 29 Juin 2013 à 23:57:41
Voila, j'ai fini par trouver un peu de temps ce soir.
Fini:
- système de quête/étapes
Restant:
- Coder 9 étapes (une 10aine de lignes par étape)
- coder le comportement lors de l'abandon et de la réussite d'une quête (rapide)

peut-être pour demain?


Titre: Re : quete de clan - le retour
Posté par: Mel le 12 Juillet 2013 à 19:20:11
Vala, reste plus qu'a tester la fonction de fin de quete est c'est prêt!


Titre: Re : quete de clan - le retour
Posté par: Cain le 12 Juillet 2013 à 20:19:57
Good luck ;)


Titre: Re : quete de clan - le retour
Posté par: Calypso le 17 Juillet 2013 à 11:09:12
On a plus de quête de clan mais je ne peux pas passer les compagnons à l'essai en membre. C'est normal?


Titre: Re : Re : quete de clan - le retour
Posté par: Mel le 17 Juillet 2013 à 11:57:08
On a plus de quête de clan mais je ne peux pas passer les compagnons à l'essai en membre. C'est normal?

Ouais...  En fait le nouveau système dit qu'il n'y a pas de quête mais l'ancien dit: si, si :s
Je corrige,  je corrige...

Edit: corrigé


Titre: Re : quete de clan - le retour
Posté par: Calypso le 17 Juillet 2013 à 13:26:30
je ne peux toujours rien faire...pour les membres à l'essai


Titre: Re : quete de clan - le retour
Posté par: Mel le 17 Juillet 2013 à 13:31:44
ah sry, j'avais pas is a jour sur le serveur :D


Titre: Re : quete de clan - le retour
Posté par: Calypso le 18 Juillet 2013 à 21:12:13
merci ^^


Titre: Re : quete de clan - le retour
Posté par: Calypso le 21 Juillet 2013 à 07:21:58
impossible d'accepter une quete ce clan sur le temple. Ca me dit qu'on en a deja initialiser une.


Titre: Re : quete de clan - le retour
Posté par: Mel le 21 Juillet 2013 à 12:52:31
c'est que vous en avez deja une alors :D


Titre: Re : quete de clan - le retour
Posté par: Calypso le 21 Juillet 2013 à 16:49:14
on a le choix entre deux etapes 1 mais impossible de choisir l'une des étapes. C'est normal?
La seule action possible est l'abandon


Titre: Re : quete de clan - le retour
Posté par: Mel le 21 Juillet 2013 à 17:29:56
ah oui :D
plus de choix d'étape... validez celle que vous voulez parmi les deux tirées au sort :)


Titre: Re : quete de clan - le retour
Posté par: Calypso le 21 Juillet 2013 à 20:53:19
oui sauf que je ne peux pas valider les étapes


Titre: Re : Re : quete de clan - le retour
Posté par: Mel le 21 Juillet 2013 à 22:43:47
oui sauf que je ne peux pas valider les étapes

tu n'as peut-etre pas ce qu'il te faut sur toi...


Titre: Re : quete de clan - le retour
Posté par: Calypso le 22 Juillet 2013 à 06:31:37
Merci Mel ^^


Titre: Re : quete de clan - le retour
Posté par: Arcadia le 17 Août 2013 à 11:13:25
Citation
Etape 3: Pour cela la somme des niveaux de savoir (recettes...) des membres de votre clan doit être supérieure à xxx (niveau actuel xxx
Les prêtres vous ont demandé d'accroître vos connaissances pour renforcer votre clan,

Les 2 phrases sont inversées, et la parenthèse après le niveau actuel est zappée.


Titre: Re : quete de clan - le retour
Posté par: Mel le 03 Septembre 2013 à 16:46:48
corrigé