JeuWeb - Crée ton jeu par navigateur
Probleme map - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Probleme map (/showthread.php?tid=67)

Pages : 1 2


Probleme map - Pyl - 19-08-2006

Mon probleme ne concerne pas vraiment la map :non:
Mais le systeme d'insertion qui a été mis au point.

Lorsque le joueur s'inscrit au jeu il choisit son Pseudo, son mot de passe et son mail. Il valide ensuite le tout par un petit mail.

Ensuite connecté il clique sur le lien "Jouer" ce qui le renvoie sur l'insertion dans la map, il va effectué un parcours illustré lui demandant de choisir son camp, sa nationalité, sa classe et son age, on lui demande si il est sur et ensuite on le renvoie sur la map de jeu.
Le soucis technique, c'est que une fois l'insertion faite, quand il clique sur le lien "jouer" il devrait logiquement acceder à la map.. ce qui n'est pas le cas, il refait l'insertion :pleure2:

Pourtant le champ "activation" dans ma table se remplace bien par 1 alors qu'il est à 0

Ou est le probleme ? Voici le script de la page jouer, la verification est en haut Smile

Merci d'avance

Citation :
Code PHP :
<?php
$requete
=0;
require(
'bdd.php');
require(
'haut.php');
$perso=$_SESSION['perso'];
$pid=$_SESSION['id'];
if(
$_SESSION['connection'])
{
// on regardesi le perso est inseré dans la table perso
$query="SELECT * FROM perso WHERE id='$id'";
$result=@mysql_query($query);
$row=@mysql_fetch_row($result);
$requete++;
//faut que je revois ça
if($row=='0')
{
echo
$row;
echo
'<center>Vous allez etre redirig&eacute; vers l\'insertion sur le plateau de Jeu.<br><a href="inserer.php?p=1">Commencer l\'insertion dans le Jeu</a><br><br><img src="image/voie_sacree.jpg" width="244" height="155"></center>';
}
else
{
/////////
//affichage de la map
/////////
//debut definition bord map
$minmap=-10;
$maxmap=9;
//fin definition bord map
?>
<TABLE border="0" cellpadding=0 cellspacing=0 bgcolor="#000000" style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#FFFFFF; font-size:11px;">
<?php
$whereperso
=mysql_fetch_array(mysql_query("SELECT m.X,m.Y,p.vision FROM map as m LEFT OUTER JOIN perso as p ON p.id=m.perso WHERE id='$id'"));
$requete++;
$minXvue=$whereperso['X']-$whereperso['vision'];
$minYvue=$whereperso['Y']-$whereperso['vision'];
$maxXvue=$whereperso['X']+$whereperso['vision'];
$maxYvue=$whereperso['Y']+$whereperso['vision'];
$resultall=mysql_query("SELECT c.perso,c.X,c.Y,c.terrain,c.bat,p.nom,t.fichier,t.tnom FROM map as c LEFT OUTER JOIN perso as p ON c.perso=p.id LEFT OUTER JOIN terrain as t ON t.id=c.terrain WHERE X>='$minXvue' and X<='$maxXvue' and Y>='$minYvue' and Y<='$maxYvue' ORDER BY Y,X");
$requete++;
$nbcase=0;
for (
$y=$minYvue;$y<=$maxYvue;$y++)
{for(
$x=$minXvue;$x<=$maxXvue;$x++)
{if(
$x<=$maxmap AND $y<=$maxmap AND $x>=$minmap AND $y>=$minmap)
{
$result1[$x][$y]=mysql_fetch_assoc($resultall);
}
$nbcase++;
}
}
$x=$minXvue-1;
$y=$minYvue-1;
for (
$case=0;$case<=$nbcase;$case++)
{if(
$x==($minXvue-1) AND $y==($minYvue-1))
{
?><tr><td valign="middle" align="center" style="padding:2px;">Y\X</td><?php
}
elseif (
$y==$minYvue-1)
{
?><td valign="middle" align="center" style="padding:2px;"><?php echo $x; ?></td><?php
$case
--;
}
elseif (
$x==$minXvue-1)
{
?><td valign="middle" align="center"><?php echo $y; ?></td><?php
$case
--;
}
elseif(!isset(
$result1[$x][$y]['terrain']))
{
?><td valign="middle" align="center" bgcolor="#111111">&nbsp;</td><?php
}
else
{if(isset(
$result1[$x][$y]['nom']))
{
?><td valign="middle" background="image/<?php echo $result1[$x][$y]['fichier']; ?>" align="center" bgcolor="#111111" width="50px" height="50px"><?php echo $result1[$x][$y]['nom']; ?></td><?php
}
elseif (
$result1[$x][$y]['bat']!=0)
{
?><td valign="middle" align="center" bgcolor="#111111" width="50px" height="50px">base</td><?php
}
else
{
?><td align="center" background="image/<?php echo $result1[$x][$y]['fichier']; ?>" width="50px" height="50px">&nbsp;</td><?php
}
}
$x++;
if (
$x>$maxXvue)
{
?></tr><?php
$x
=$minXvue-1;
$y++;
if (
$y<=$maxYvue)
{
?><tr><?php
}
}
}
?>
</table>
<?php
echo $requete;
//fin
echo'<br><br><fieldset><legend>Navigation</legend><br>';
include(
'tour.php');
echo
'<br><br><a href="carte.php">Carte</a> <a href="messagerie.php">Messagerie</a> <a href="profilrp.php">Modifier votre profil Rp</a></fieldset>';
echo
'<br><br><fieldset><legend>Caractéristique Rp</legend><br>';
include(
'fiche-rp.php');
echo
'</fieldset>';
}
}
else
{
echo
'<center>Il faut se connecter pour accéder à cette partie.</center>';
}
require(
'menu_droite.php');

require(
'bas.php');
?>



RE: Probleme map - Pyl - 19-08-2006

Et voici le script d'insertion !

Citation :
Code PHP :
<?
include('haut.php');
include(
'bdd.php');
include(
'reglage.php');
$page=$_GET['p'];
$key=$_GET['clef'];
$id_perso=$_GET['id'];
$req = $db->extract_one("SELECT clef FROM membres WHERE id='$id_perso'");
$clef_valide=$req['clef'];
//si la clef est incorrect
if($key != $clef_valide ) echo'Vous devez rentrer une clé valide';
//si la clef est correct, mise en place de la validation dans la BDD
else
{
echo
'<center>';
if(
$page =='1') echo'<font style="color:#FF0000"><b>choix du camps</b></font> .:. choix de la nationalit&eacute; .:. choix de la classe .:. choix de l\'age<br><br>';
if(
$page =='2') echo'choix du camps .:. <font style="color:#FF0000"><b>choix de la nationalit&eacute; </b></font>.:. choix de la classe .:. choix de l\'agee<br><br>';
if(
$page =='3') echo'choix du camps.:. choix de la nationalit&eacute; .:. <font style="color:#FF0000"><b>choix de la classe </font></b>.:. choix de l\'age<br><br>';
if(
$page =='4') echo'choix du camps.:. choix de la nationalit&eacute; .:. choix de la classe .:. <font style="color:#FF0000"><b>choix de l\'age</b></font><br><br>';
echo
'</center>';
switch(
$page)
{
case
'1':
echo
'<center><form action="inserer.php?p=2" method="post"><select name="camp">';
foreach(
$var_armee as $ide => $value) echo "<option value='".$value[0]."'>".$value[0]."</option>";
echo
'</select><br><br><input type="submit" value="etape2"><br><br><img src="image/avis.JPG" width=139" height="193"></center>';
break;
case
'2':
$camp=$_POST['camp'];
echo
'<center><form action="inserer.php?p=3" method="post"><input type="hidden" name="camp" value="'.$camp.'"><select name="nation">';
if (
$camp=='Triple Alliance') foreach($var_nationalite_alliance as $ide => $value) echo "<option value='".$value[0]."'>".$value[0]."</option>";
else foreach(
$var_nationalite_entente as $ide => $value) echo "<option value='".$value[0]."'>".$value[0]."</option>";
echo
'</select><br><br><input type="submit" value="etape3"><br><br><img src="image/ami.JPG" width="151" height="183"></center>';
break;
case
'3':
$camp=$_POST['camp'];
$nation=$_POST['nation'];
echo
'<center><form action="inserer.php?p=4" method="post"><input type="hidden" name="camp" value="'.$camp.'"><input type="hidden" name="nation" value="'.$nation.'"><select name="classe">';
foreach(
$var_classe as $ide => $value) echo "<option value='".$value[0]."'>".$value[0]."</option>";
echo
'</select><br><br><input type="submit" value="etape4"><br><br><img src="image/fant.JPG" width="118" height="199"></center>';
break;
case
'4':
$camp=$_POST['camp'];
$nation=$_POST['nation'];
$classe=$_POST['classe'];
echo
'<center><form action="inserer.php?p=5" method="post"><input type="hidden" name="camp" value="'.$camp.'"><input type="hidden" name="nation" value="'.$nation.'"><input type="hidden" name="classe" value="'.$classe.'"><select name="age">';
for(
$age=18 ; $age<=40 ;$age++) echo'<option value="'.$age.'">'.$age;
echo
'</select><br><br><input type="submit" value="fin"></form></center>';
break;
case
'5':
$camp=$_POST['camp'];
$nation=$_POST['nation'];
$classe=$_POST['classe'];
$age=$_POST['age'];
echo
'<center>le camp que tu as choisi est la:<b> '.$camp.'</b>, Ta nationalit&eacute; est: <b>'.$nation.'</b>, et la classe que tu as choisi est:<b> '.$classe.'</b> l\'age de ton joueur est: <b>'.$age.'.</b>';
echo
'<center><br><br>Il sera impossible de changer apr&egrave;s avoir valid&eacute;.';
echo
'<form action="inserer.php?p=6" method="post"><input type="hidden" name="camp" value="'.$camp.'"><input type="hidden" name="nation" value="'.$nation.'"><input type="hidden" name="classe" value="'.$classe.'"><input type="hidden" name="age" value="'.$age.'"> Valider <input type="submit" value="ok" name="valider"></form><br><form action="inserer.php?p=1" method="post"> Modifier <input type="submit" value="ok"></form><center> ';
echo
'<br><br>Vous n\'&ecirc;tes pas encore inscrit au forum ? C\'est ici <a href="http://grandeguerre.keogratuit.com/phpBB2/profile.php?mode=register&sid=039b5b44692e2dec985c2a8e674fa492">Inscription au forum</a></center>';
echo
'<br><br>Vous n\'avez pas acc&egrave;s au forum de votre arm&eacute;e ? C\'est ici <a href="http://grandeguerre.keogratuit.com/phpBB2/groupcp.php">Groupes</a></center>';
break;
case
'6':
$camp=$_POST['camp'];
$nation= htmlentities ($_POST ['nation']);
$classe=$_POST['classe'];
$age=$_POST['age'];
if(!empty(
$camp) && !empty($nation) && !empty($classe) && !empty($age))
{
$prochaintour=time()+22*60*60;
$sql = "UPDATE membres SET classe='$classe', camp='$camp',nationalite='$nation',age='$age',tour='$prochaintour',activation='1' WHERE id='$id'";
$req = mysql_query($sql) or die(mysql_error());
$req22 = $db->query("SELECT * FROM map WHERE perso='0' AND bat='0' ANd idbat='0'");
$nb_result = $db->affected_rows();
$nb = mt_rand(1,$nb_result);
for(
$i=0;$nb>=$i;$i++) $res22 = $db->fetch_array($req22);
$newX=$res22['X'];
$newY=$res22['Y'];
$sql = "UPDATE map SET perso='$id' WHERE X='$newX' AND Y='$newY'";
$req = mysql_query($sql) or die(mysql_error());
echo
'<center>Vous venez de rentrer sur le champ de bataille.';
echo
'<br><a href="jouer.php">Rejoindre le front</a></center>';
echo
'<br><br><center><img src="image/insertion.jpg" width="300" height="200"></center>';
}
else echo
'<center>Vous avez oubli&eacute; quelques choses.</center>';
break;
}
}
?>



RE: Probleme map - Maxime - 19-08-2006

Modifie ton code pour le mettre entre des balises s'il te plait, là c'est quasiment illisible comme ça au premier coup d'oeil.


RE: Probleme map - Pyl - 19-08-2006

Et voila (h)


RE: Probleme map - Plume - 19-08-2006

Je suis pas tout à fait certain mais ne vaut-il pas mieux écrire if($row == 0) ?


RE: Probleme map - Pyl - 19-08-2006

Bah j'ai déjà essayé mais ça a rien changé :ninga:


RE: Probleme map - Plume - 19-08-2006

En même temps, j'étais pas tout à fait sûr Smile Mais j'préfère quand même parce que tu compares pas le résultat à une chaine de caractère ...Ensuite l'activation est bel et bien mise à 1 mais quand tu fais la vérification, tu ne regardes pas si c'est le cas puisque tu regardes dans la table 'perso'. Fais une requète pour avoir le contenu du champ 'activation' pour le joueur et si le résultat est 1 alors tu affiche la map, sinon tu relances l'insertion.


RE: Probleme map - Pyl - 19-08-2006

C'est justement à ça que ça sert ^^
Mais oui, j'avais pas vu que la verification ne regardais pas de le chan "activation" ^^

Merci je m'en vais modifier ça :hahahaha:


RE: Probleme map - Plume - 19-08-2006

Tête en l'air ^^
Aller tu nous reviens nous tenir au courant Wink


RE: Probleme map - Pyl - 19-08-2006

Je me suis aussi rendu compte que le champ "activation" était dans la table membres :heuuu:

Donc j'ai modifié ^^
Et ensuite, voila la requete que j'ai fais

Je pense pas que ce soit bon, car je me suis contenter de modifier la requete existante

Code PHP :
<?php
$requete
=0;
require(
'bdd.php');
require(
'haut.php');
$perso=$_SESSION['perso'];
$pid=$_SESSION['id'];
if(
$_SESSION['connection'])
{
// on regardesi le perso est inseré dans la table perso
$query="SELECT activation FROM membres WHERE id='$id'";
$result=@mysql_query($query);
$row=@mysql_fetch_row($result);
$requete++;
//faut que je revois ça
if($row=='0')
{
echo
$row;
echo
'<center>Vous allez etre redirig&eacute; vers l\'insertion sur le plateau de Jeu.<br><a href="inserer.php?p=1">Commencer l\'insertion dans le Jeu</a><br><br><img src="image/voie_sacree.jpg" width="244" height="155"></center>';
}
else
{
/////////
//affichage de la map
/////////
//debut definition bord map
$minmap=-10;
$maxmap=9;
//fin definition bord map
?>
<TABLE border="0" cellpadding=0 cellspacing=0 bgcolor="#000000" style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#FFFFFF; font-size:11px;">
<?php
$whereperso
=mysql_fetch_array(mysql_query("SELECT m.X,m.Y,p.vision FROM map as m LEFT OUTER JOIN perso as p ON p.id=m.perso WHERE id='$id'"));
$requete++;
$minXvue=$whereperso['X']-$whereperso['vision'];
$minYvue=$whereperso['Y']-$whereperso['vision'];
$maxXvue=$whereperso['X']+$whereperso['vision'];
$maxYvue=$whereperso['Y']+$whereperso['vision'];
$resultall=mysql_query("SELECT c.perso,c.X,c.Y,c.terrain,c.bat,p.nom,t.fichier,t.tnom FROM map as c LEFT OUTER JOIN perso as p ON c.perso=p.id LEFT OUTER JOIN terrain as t ON t.id=c.terrain WHERE X>='$minXvue' and X<='$maxXvue' and Y>='$minYvue' and Y<='$maxYvue' ORDER BY Y,X");
$requete++;
$nbcase=0;
for (
$y=$minYvue;$y<=$maxYvue;$y++)
{for(
$x=$minXvue;$x<=$maxXvue;$x++)
{if(
$x<=$maxmap AND $y<=$maxmap AND $x>=$minmap AND $y>=$minmap)
{
$result1[$x][$y]=mysql_fetch_assoc($resultall);
}
$nbcase++;
}
}
$x=$minXvue-1;
$y=$minYvue-1;
for (
$case=0;$case<=$nbcase;$case++)
{if(
$x==($minXvue-1) AND $y==($minYvue-1))
{
?><tr><td valign="middle" align="center" style="padding:2px;">Y\X</td><?php
}
elseif (
$y==$minYvue-1)
{
?><td valign="middle" align="center" style="padding:2px;"><?php echo $x; ?></td><?php
$case
--;
}
elseif (
$x==$minXvue-1)
{
?><td valign="middle" align="center"><?php echo $y; ?></td><?php
$case
--;
}
elseif(!isset(
$result1[$x][$y]['terrain']))
{
?><td valign="middle" align="center" bgcolor="#111111">&nbsp;</td><?php
}
else
{if(isset(
$result1[$x][$y]['nom']))
{
?><td valign="middle" background="image/<?php echo $result1[$x][$y]['fichier']; ?>" align="center" bgcolor="#111111" width="50px" height="50px"><?php echo $result1[$x][$y]['nom']; ?></td><?php
}
elseif (
$result1[$x][$y]['bat']!=0)
{
?><td valign="middle" align="center" bgcolor="#111111" width="50px" height="50px">base</td><?php
}
else
{
?><td align="center" background="image/<?php echo $result1[$x][$y]['fichier']; ?>" width="50px" height="50px">&nbsp;</td><?php
}
}
$x++;
if (
$x>$maxXvue)
{
?></tr><?php
$x
=$minXvue-1;
$y++;
if (
$y<=$maxYvue)
{
?><tr><?php
}
}
}
?>
</table>
<?php
echo $requete;
//fin
echo'<br><br><fieldset><legend>Navigation</legend><br>';
include(
'tour.php');
echo
'<br><br><a href="carte.php">Carte</a> <a href="messagerie.php">Messagerie</a> <a href="profilrp.php">Modifier votre profil Rp</a></fieldset>';
echo
'<br><br><fieldset><legend>Caractéristique Rp</legend><br>';
include(
'fiche-rp.php');
echo
'</fieldset>';
}
}
else
{
echo
'<center>Il faut se connecter pour accéder à cette partie.</center>';
}
require(
'menu_droite.php');

require(
'bas.php');
?>