Bon je post préfère poster ici^^il y a des réponses un peu plus rapidement...
Bon, j'ai ma carte sur mon jeu, qui marche nickel.
J'ai voulu faire un point de changement de mappe. Si le joueur se trouve a la position X/Y, alors j'ai fais un include de la nouvelle carte, avec les nouvelles coordonnées, ainsi que l'enregistrement de la nouvelle position du joueur dans la BDD.
Lorsque je vais sur la case, mon joueur change de carte, je le vois bien sur l'autre, il est a la bonne position, ses infos ont été modifé dans la BDD. Tout va bien jusque la^^
Mais si je me déplace, ma page me rafiche la 1ere map, mon perso reste sur l'autre, et il continue de se deplacer sur l'autre, sans que je voye...
Donc j'ai diverses questions, comment faire pour que quand je me déplace ma page affiche la bonne carte??
Où mettre mon include, qui se présente tout cette forme Si X=tant et Y=tant, include carte2.php
sinon on reste sur la même carte.
Et que mettre dans mon include?? tout le code de la map?? Je ne sais pas...
Voici mon code :
Bon, j'ai ma carte sur mon jeu, qui marche nickel.
J'ai voulu faire un point de changement de mappe. Si le joueur se trouve a la position X/Y, alors j'ai fais un include de la nouvelle carte, avec les nouvelles coordonnées, ainsi que l'enregistrement de la nouvelle position du joueur dans la BDD.
Lorsque je vais sur la case, mon joueur change de carte, je le vois bien sur l'autre, il est a la bonne position, ses infos ont été modifé dans la BDD. Tout va bien jusque la^^
Mais si je me déplace, ma page me rafiche la 1ere map, mon perso reste sur l'autre, et il continue de se deplacer sur l'autre, sans que je voye...
Donc j'ai diverses questions, comment faire pour que quand je me déplace ma page affiche la bonne carte??
Où mettre mon include, qui se présente tout cette forme Si X=tant et Y=tant, include carte2.php
sinon on reste sur la même carte.
Et que mettre dans mon include?? tout le code de la map?? Je ne sais pas...
Voici mon code :
Code PHP :
<?php
<form action="carte.php" method="post">
<div align="center">
<br>
<table width="120" border="0" cellspacing="0" cellpadding="0" align="center" height="120">
<tbody>
<tr>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="NO"></td>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="N"></td>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="NE"></td>
</tr>
<tr>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="O"></td>
<td align="center" valign="middle" width="40" height="40"><img src="image/rosevent.jpg" alt="" height="40" width="40" align="absmiddle"></td>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="E"></td>
</tr>
<tr>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="SO"></td>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="S"></td>
<td align="center" valign="middle" width="40" height="40"><input type="submit" name="DIR" value="SE"></td>
</tr>
</tbody>
</table>
</div>
</form>
<?
mysql_connect();
mysql_select_db();
$pseudo_joueur = $_SESSION['pseudo'];
//on viens chercher la position du joueur
$requete = mysql_query("SELECT avatar_joueur, posx, posy, map_id FROM membre WHERE `pseudo`='$pseudo_joueur'");
$sql = mysql_fetch_array ($requete);
$posx = $sql['posx'];
$posy = $sql['posy'];
$avatar_joueur = $sql['avatar_joueur'];
$map_id = $sql['map_id'];
//Gestion des fleches de déplacement
if (isset($_POST['DIR']))
{
//définitions des directions
switch ($_POST['DIR']){
case "NO":
$dirx = $posx-1;
$diry = $posy-1;
break;
case "N":
$dirx = $posx;
$diry = $posy-1;
break;
case "NE":
$dirx = $posx+1;
$diry = $posy-1;
break;
case "SO":
$dirx = $posx-1;
$diry = $posy+1;
break;
case "S":
$dirx = $posx;
$diry = $posy+1;
break;
case "SE":
$dirx = $posx+1;
$diry = $posy+1;
break;
case "E":
$dirx = $posx+1;
$diry = $posy;
break;
case "O":
$dirx = $posx-1;
$diry = $posy;
break;
}
// Vérification de la présence des autres joueurs
$sq2 = mysql_query('SELECT pseudo, posx, posy FROM membre WHERE posx='.$dirx.' AND posy='.$diry.' ') or die(mysql_error());
while ($data = mysql_fetch_array($sq2))
{
if (empty($TabMAPjoueur[$data['posx']][$data['posy']]))
$TabMAPjoueur[$data['posx']][$data['posy']] = $data['pseudo'];
}
mysql_free_result($sq2);
$sql = mysql_query('SELECT rien, posx, posy FROM inaccessible WHERE posx='.$dirx.' AND posy='.$diry.' ') or die(mysql_error());
while ($data = mysql_fetch_array($sql))
{
if (empty($TabMAPrien[$data['posx']][$data['posy']]))
$TabMAPrien[$data['posx']][$data['posy']] = $data['rien'];
}
mysql_free_result($sql);
$sql = mysql_query('SELECT nom, posx, posy FROM PNJ WHERE posx='.$dirx.' AND posy='.$diry.' ') or die(mysql_error());
while ($data = mysql_fetch_array($sql))
{
if (empty($TabMAPpnj[$data['posx']][$data['posy']]))
$TabMAPpnj[$data['posx']][$data['posy']] = $data['nom'];
}
mysql_free_result($sql);
if(!empty($TabMAPrien[$dirx][$diry]) or !empty($TabMAPjoueur[$dirx][$diry]) or !empty($TabMAPpnj[$dirx][$diry]) or $dirx==-1 or $diry==-1 or $dirx==19 or $diry==11)// si on detecte un autre joueur ou un batiment ou un bord de carte
{
echo '<font color=#ff0000>Vous ne pouvez pas vous placer ici!!</font><br><br>'."\n";//on se deplace pas
}
else
{//si c'est vide
//on change de direction
$posx = $dirx;
$posy = $diry;
//et on update sa position dans la table
mysql_query("UPDATE membre Set posx='$posx', posy='$posy' WHERE `pseudo`='$pseudo_joueur'") or die (mysql_error());
}
}
//Définition de la map
$x_debut=0 ;
$x_fin=18;
$y_debut=0;
$y_fin=10;
/*
Vérification de la présence des autres joueurs:
on va chercher les joueurs qui sont dans le perimetre défini precedement.
*/
$sq2 = 'SELECT avatar_joueur, posx, posy, map_id FROM membre WHERE posx between '.$x_debut.' and '.$x_fin.' AND posy between '.$y_debut.' and '.$y_fin.' ORDER BY posx DESC,posy DESC';
$req = mysql_query($sq2) or die(mysql_error());
while ($data = mysql_fetch_array($req)) {
if (empty($TabMAPjoueur[$data['posx']][$data['posy']]))
$TabMAPjoueur[$data['posx']][$data['posy']] = $data['avatar_joueur'];
}
mysql_free_result($req);
$sq2 = 'SELECT nom, posx, posy FROM PNJ WHERE posx between '.$x_debut.' and '.$x_fin.' AND posy between '.$y_debut.' and '.$y_fin.' ORDER BY posx DESC,posy DESC';
$req = mysql_query($sq2) or die(mysql_error());
while ($data = mysql_fetch_array($req)) {
if (empty($TabMAPpnj[$data['posx']][$data['posy']]))
$TabMAPpnj[$data['posx']][$data['posy']] = $data['nom'];
}
mysql_free_result($req);
$sql = mysql_query("SELECT posx, posy FROM membre WHERE `pseudo`='$pseudo_joueur'") or die(mysql_error());
$data = mysql_fetch_array($sql);
echo '<table background="image/terrain.jpg" border="1" cellspacing="0" cellpadding="0">';
echo '<tr><td align="center" valign="middle">I</td>';
//on affiche les positions x sur la premiere ligne
for($x=$x_debut;$x<=$x_fin;$x++) echo '<td align="center" valign="middle">'.$x.'</td>'."\n";
//on affiche lignes par lignes la position y, les autres joueurs et les batiments
for ($y=$y_debut;$y<=$y_fin;$y++)
{
echo'<tr ><td align="center" valign="middle" >'.$y.'</td>'."\n";//affichage de la position
for($x=$x_debut;$x<=$x_fin;$x++) {// pour chaque lignes
if($x==$posx && $y==$posy)//si on est sur la position du joueur
echo '<td align="center" valign="middle"><img src=image/'.$avatar_joueur.'.gif></td>';//on affiche l'avatar de votre perso
else
if(!empty($TabMAPjoueur[$x][$y]))//si on tombe sur un autre joueur
echo '<td align="center" valign="middle" <img src=image/'.$TabMAPjoueur[$x][$y].'.gif></td>';//on affiche l'avatar du joueur
else
if(!empty($TabMAPpnj[$x][$y]))
echo '<td align="center" valign="middle" <img src=image/'.$TabMAPpnj[$x][$y].'.gif></td>';
else
echo '<td align="center" valign="middle"> </td>';
}
echo '</tr>';//on ferme la ligne et on passe a la ligne suivate
}
echo '</tbody></table>';//on ferme la table
for ($x=$posx-1;$x<=$posx+1;$x++)
{// tous les x autour du joueur a case -1 et case +1
for ($y=$posy-1;$y<=$posy+1;$y++)
{// tous les y autour du joueur a case -1 et case +1
$sq = mysql_query('SELECT pseudo FROM membre WHERE posx='.$x.' AND posy='.$y.' ORDER BY posx DESC,posy DESC') or die(mysql_error());
$data = mysql_fetch_array($sq);
if (!empty($data['pseudo']) and $data['pseudo'] != $_SESSION['pseudo'])// si on trouve un joueur et que ce n'est biensur pas vous
{
echo '<form action="carte.php" method="post">joueur à attaquer:<br>';
echo '<select name="attaque_joueur">';
echo '<option value="'.$data['pseudo'].'">'.$data['pseudo'].'</option>'; //on l'affiche
echo '</select><input type="submit" name="attaque" value="Attaquer">'."\n";
echo '</form>'."\n" ;
}
$sq = mysql_query('SELECT nom FROM PNJ WHERE posx='.$x.' AND posy='.$y.' ORDER BY posx DESC,posy DESC') or die(mysql_error());
$data = mysql_fetch_array($sq);
if (!empty($data['nom']))// si on trouve un joueur et que ce n'est biensur pas vous
{
echo '<form action="carte.php" method="post">PNJ présent<br>';
echo '<select name="attaque_joueur">';
echo '<option value="'.$data['nom'].'">'.$data['nom'].'</option>'; //on l'affiche
echo '</select><input type="submit" name="attaque" value="Parler">'."\n";
echo '</form>'."\n" ;
}
}
mysql_free_result($sq);
}
?>
Voili voilou, merci de m'aider^^