Je remet le script complet.
Code PHP :
<?
include('bdd.php');
@session_start();
$id=$_SESSION['id'];
$perso=$_SESSION['perso'];
include('function.php');
$cible=$_POST['cible'];
$dep=explode('@@@',$cible);
$type=$dep[0];
$id_cible=$dep[1];
$message1='';
switch($type)
{
case 'perso':
//info sur le perso
$perso = $db->extract_one("SELECT arme,attaque,camp FROM membres WHERE id='$id'");
$id_arme=$perso['arme'];
$attaque=$perso['attaque'];
$camp=$perso['camp'];
$armes = $db->extract_one("SELECT degats FROM armes WHERE id='$id_arme'");
$degats=$armes['degats'];
//info sur la cible
$cible = $db->extract_one("SELECT pv,joueur_pseudo,camp FROM membres WHERE id='$id_cible'");
$pv=$cible['pv'];
$nom_cible=$cible['joueur_pseudo'];
$camp_cible=$cible['camp'];
$pv_restant=$pv-$degats;
$attaque_restant=$attaque-1;
if($attaque!='0')
{
$sql = "UPDATE membres SET pv = '$pv_restant' WHERE id='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
$sql = "UPDATE membres SET attaque = '$attaque_restant' WHERE id='$id'";
$req = mysql_query($sql) or die(mysql_error());
$message1.='<center>Vous avez tiré sur '.$nom_cible.' avec '.$degats.' de dégats.</center>';
if ($camp==$camp_cible) $gain_xp=rand(-5,-3);
if ($camp!=$camp_cible) $gain_xp=rand(3, 5);
xp($gain_xp,$id);
$message1.='<center>'.$nom_cible.' Perd donc '.$degats.' Pv\'s. <br>Vous gagnez '.$gain_xp.' Xp\'s</center>';
////Si le perso meurt
if($pv_restant<='0' )
{
$message1.='<center>Celui-ci s\'écroule par terre, il est mort...</center>';
////On retire la cible de la map
$sql = "UPDATE map SET perso = '0' WHERE perso='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
/////On met a jour les pv's et le nombre de mort de la victime
$sql = "UPDATE membres SET mort = mort+1 ,pv = pv_max WHERE id='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
////On met a jour les Xp's si necessaire
if($nouveau_mort==10)
{
$cible1 = $db-> extract_one("SELECT xp FROM membres WHERE id='$id_cible'");
$xp=$cible1['xp'];
$perte_xp=$xp * 20/100;
$new_xp=$xp-$perte_xp;
$sql = "UPDATE membres SET xp = '$new_xp' ,mort = '0' WHERE id='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
}
////On met a jour le nombdre de victime du joueur.
$sql = "UPDATE membres SET victime = victime+1 WHERE id='$id'";
$req = mysql_query($sql) or die(mysql_error());
}
}
else
{
$message1.='<center>Vous n\'avez plus d\'attaque.</center>';
}
break;
}
$_SESSION['message1']=$message1;
header('location: jouer.php');
?>
J'ai compris le coup du mort = -10, le champ etait en INT, je l'ai passé en BIGIN et ça m'affiche correctement 1,2 etc