Un RPG en PHP

Résolu/Fermé
Meta-Dark Messages postés 24 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 1 février 2009 - 17 déc. 2008 à 16:11
Meta-Dark Messages postés 24 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 1 février 2009 - 17 déc. 2008 à 18:52
Bonjour (j'aime la fonction qui le met automatiquement, ça rend les gens polis bizarrement :p),

Je suis en train de tenter de faire un genre de mini RPG en PHP. Je suis arrivé a créer un personnage, stocker toutes ces caractéristiques dans une BDD, mais la ou je bloque c'est au moment du combat. La page affiche les noms des combattants, ainsi que leurs PV. Il y a un formulaire avec un submit et 2 Hiddens pour que le nom du combattant et le n° du tour soient bien transmis pour chaque tour, mais je bloque. Quand je clique sur le bouton pour attaquer (qui fait donc passer au tour n°2), l'attaque sur l'ennemi se déroule bien, mais quand je reclique une 2eme fois sur le bouton (qui devrait donc faire passer au tour n°3) ça reste au tour n°2, les dégats sur le monstre sont donc annulés et impossible de finir le combat comme ça...^^'

Je vous met le code de la page, je suppose que comme je l'ai codé entièrement moi même, doit y'avoir pas mal de bordel a arranger ^^'

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur le site de Meta-Dark ! </title>
<meta name="description" content="Créations sous Blender, Films et Animations, Jeux, Tutoriels pour HTML, CSS, PHP, SQL, C, C++, Blender, After effects, Photoshop, The Gimp.">
<meta name="keywords" content="Goultard, Blender, After, Effects, Photoshop, Film, Animation, Jeu, HTML, PHP, CSS, SQL, C, C++, Gimp">
<meta name="author" content="Miranda Steven">
<link rel="stylesheet" media="screen" type="text/css" title="style" href="rpaygay.css">
<link rel="shortcut icon" href="favicon.ico"> 
</head>
<body>
<div id="page">
<div id="en_tete">

</div>
 
<div id="menu">
	<?php include "menu.php"; ?>
</div>

<div id="Fcorps">
<div id="corps">

<?php

mysql_connect("localhost", "root", "");
mysql_select_db("Rpaygay");

$nom = $_GET['nom'];

$resultat = mysql_query("SELECT * FROM Rpaygay WHERE nom='$nom'");

while ($donnees = mysql_fetch_array($resultat))
{
	if($nom = $donnees['nom'])
	{
		
		$nom = $donnees['nom'];
		$sexe = $donnees['sexe'];
		$race = $donnees['race'];
		$force = $donnees['force'];
		$defense = $donnees['defense'];
		$agilite = $donnees['agilite'];
		$intel = $donnees['intel'];
		$PV = $donnees['PV'];
		$PM = $donnees['PM'];

		$ennemi = mysql_query("SELECT * FROM Rpaygay WHERE nom='Loup' ORDER BY RAND() LIMIT 1");

		while ($stats_ennemi = mysql_fetch_array($ennemi))
		{
			$nomE = $stats_ennemi['nom'];
			$sexeE = $stats_ennemi['sexe'];
			$raceE = $stats_ennemi['race'];
			$forceE = $stats_ennemi['force'];
			$defenseE = $stats_ennemi['defense'];
			$agiliteE = $stats_ennemi['agilite'];
			$intelE = $stats_ennemi['intel'];
			$PVE = $stats_ennemi['PV'];
			$PME = $stats_ennemi['PM'];
		}
		
		
		?>
		<center>
		<?php
		if(isset($_GET['tour']))
		{
			$tour = $_GET['tour'] + 1;
		}
		else
		{
			$tour = 0;
		}
		
			$Cac = ($force - $defenseE) * (rand(1,10) / 5);
			$CacE = ($forceE - $defense) * (rand(1,10) / 5);
			$PV = $PV - $CacE ;
			$PVE = $PV - $Cac ;
		?>
		
		<h2>Tour n°<?php echo $tour ; ?></h2>
		<table>
		<tr>
			<th><?php echo $nom ; ?></th>
			<th></th>
			<th><?php echo $nomE ; ?></th>
		</tr>
		<tr>
			<td><img src="<?php echo $race ;?>_<?php echo $sexe ;?>.jpg"></td>
			<td></td>
			<td><img src="<?php echo $nomE ;?>_<?php echo $raceE ;?>.jpg"></td>
		</tr>
		<tr>
			<td>PV : <?php echo $PV ; ?></td>
			<td></td>
			<td>PV : <?php echo $PVE ; ?></td>
		</tr>
		<tr>
			<td> PM : <?php echo $PM ; ?></td>
			<td></td>
			<td>PM : <?php echo $PME ; ?></td>
		</tr>
		</table>
		<br />
				<?php
		if($tour = 0)
		{
		?>
		<form method="GET" acion="combat.php">
		<input type="hidden" name="nom" value="<?php echo $nom ; ?>">
		<input type="hidden" name="tour" value="1">
		<input type="submit" /><br />
		</form>
		<?php
		}
		else
		{
		?>
		<table><?php echo $nom ; ?> attaque <?php echo $nomE ; ?> et lui inflige <?php echo $Cac ; ?> points de dégâts.<br />
		<?php echo $nomE ; ?> saute sur <?php echo $nom ; ?> et lui fait perdre <?php echo $CacE ; ?> points de vie.</table>
		<form method="GET" acion="combat.php">
		<input type="hidden" name="nom" value="<?php echo $nom ; ?>">
		<input type="hidden" name="tour" value="<?php echo $tour ; ?>">
		<input type="submit" /><br />
		</form>
		<?php
		}
	}

	else
	{
	?>
		<div class="warning"><h2>Désolé, ce personnage n'existe pas !</h2></div><br />
		<a href="lancercombat.php">Revenir à la page précedente</a><br />
	<?php
	}
}
	?>


Je vous remercie d'avance pour votre aide, et si vous avez besoin d'autre chose pour m'aider n'hésitez pas =°
A voir également:

1 réponse

Meta-Dark Messages postés 24 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 1 février 2009 10
17 déc. 2008 à 18:52
Après quelques dizaines d'essais, j'ai un nouveau problème.

Cette fois le comptage de tours marche bien, mais mes PV arrivent a être négatifs (impossible en un tour normalement). Et le problème des PV qui se remettent à leur valeur initiale chaque début de tour subsiste !

Vous pouvez tester le script ici : http://pascal.miranda.free.fr/Rpaygay/lancercombat.php
Voila le script retouché :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur le site de Meta-Dark ! </title>
<meta name="description" content="Créations sous Blender, Films et Animations, Jeux, Tutoriels pour HTML, CSS, PHP, SQL, C, C++, Blender, After effects, Photoshop, The Gimp.">
<meta name="keywords" content="Goultard, Blender, After, Effects, Photoshop, Film, Animation, Jeu, HTML, PHP, CSS, SQL, C, C++, Gimp">
<meta name="author" content="Miranda Steven">
<link rel="stylesheet" media="screen" type="text/css" title="style" href="rpaygay.css">
<link rel="shortcut icon" href="favicon.ico"> 
</head>
<body>
<div id="page">
<div id="en_tete">

</div>
 
<div id="menu">
	<?php include "menu.php"; ?>
</div>

<div id="Fcorps">
<div id="corps">

<?php

mysql_connect("localhost", "root", "");
mysql_select_db("Rpaygay");

$nom = $_GET['nom'];

$tour = $_GET['tour'];
$tourS = $tour + 1;

		if($tour == 1)
		{
			$ennemi = mysql_query("SELECT * FROM Rpaygay WHERE nom='Loup'");

			while ($stats_ennemi = mysql_fetch_array($ennemi))
			{
				$nomE = $stats_ennemi['nom'];
				$sexeE = $stats_ennemi['sexe'];
				$raceE = $stats_ennemi['race'];
				$forceE = $stats_ennemi['force'];
				$defenseE = $stats_ennemi['defense'];
				$agiliteE = $stats_ennemi['agilite'];
				$intelE = $stats_ennemi['intel'];
				$PVE = $stats_ennemi['PV'];
				$PME = $stats_ennemi['PM'];
			}
			
			$resultat = mysql_query("SELECT * FROM Rpaygay WHERE nom='$nom'");
			
			while ($donnees = mysql_fetch_array($resultat))
			{
				$nom = $donnees['nom'];
				$sexe = $donnees['sexe'];
				$race = $donnees['race'];
				$force = $donnees['force'];
				$defense = $donnees['defense'];
				$agilite = $donnees['agilite'];
				$intel = $donnees['intel'];
				$PV = $donnees['PV'];
				$PM = $donnees['PM'];
			}
		}
		else
		{
			$ennemi = mysql_query("SELECT * FROM Rpaygay WHERE nom='Loup'");
			
			while ($stats_ennemi = mysql_fetch_array($ennemi))
			{
				$nomE = $stats_ennemi['nom'];
				$sexeE = $stats_ennemi['sexe'];
				$raceE = $stats_ennemi['race'];
				$forceE = $stats_ennemi['force'];
				$defenseE = $stats_ennemi['defense'];
				$agiliteE = $stats_ennemi['agilite'];
				$intelE = $stats_ennemi['intel'];
				$PME = $stats_ennemi['PM'];
				
			}
			
			$resultat = mysql_query("SELECT * FROM Rpaygay WHERE nom='$nom'");
			
			while ($donnees = mysql_fetch_array($resultat))
			{
				$nom = $donnees['nom'];
				$sexe = $donnees['sexe'];
				$race = $donnees['race'];
				$force = $donnees['force'];
				$defense = $donnees['defense'];
				$agilite = $donnees['agilite'];
				$intel = $donnees['intel'];
				$PM = $donnees['PM'];
			}
			
			$Cac = ($force - $defenseE) * (rand(1,10)) / 5;
			$CacE = ($forceE - $defense) * (rand(1,10)) / 5;
			$PV = $PV - $CacE ;
			$PVE = $PV - $Cac ;
		}
		?>
		<center>
		
		<h2>Tour n°<?php echo $tour ; ?></h2>
		<table>
		<tr>
			<th><?php echo $nom ; ?></th>
			<th></th>
			<th><?php echo $nomE ; ?></th>
		</tr>
		<tr>
			<td><img src="<?php echo $race ;?>_<?php echo $sexe ;?>.jpg"></td>
			<td></td>
			<td><img src="<?php echo $nomE ;?>_<?php echo $raceE ;?>.jpg"></td>
		</tr>
		<tr>
			<td>PV : <?php echo $PV ; ?></td>
			<td></td>
			<td>PV : <?php echo $PVE ; ?></td>
		</tr>
		<tr>
			<td> PM : <?php echo $PM ; ?></td>
			<td></td>
			<td>PM : <?php echo $PME ; ?></td>
		</tr>
		<tr>
		<?php
		if($tour == 1)
		{
			?>
			<td></td>
			<td></td>
			<td></td>
			<?php
		}
		else
		{
			?>
			<td><?php echo $nom ; ?> attaque <?php echo $nomE ; ?> et lui inflige <?php echo $Cac ; ?> points de dégâts.</td>
			<td></td>
			<td><?php echo $nomE ; ?> saute sur <?php echo $nom ; ?> et lui fait perdre <?php echo $CacE ; ?> points de vie.</td>
		<?php
		}
		?>
		</tr>
		</table>
		<br />
		<form method="GET" action="combat.php">
		<input type="hidden" name="nom" value="<?php echo $nom ; ?>">
		<input type="hidden" name="tour" value="<?php echo $tourS ; ?>">
		<input type="submit" value="Attaquer" /><br />
		</form>
	
	
	
	
0