JeuWeb - Crée ton jeu par navigateur
[Résolu]Mort.. - 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 : [Résolu]Mort.. (/showthread.php?tid=706)

Pages : 1 2


RE: Mort.. - nemesis_elite - 28-01-2007

Pour ce que je t'ai dit, ca marche, j'ai même testé en local :
Code PHP :
<?php 
////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());

Cette requête ajoutera 1 au nombre de victime du joueur qui a comme id $id .
Tu n'as absolument pas besion de faire une requette suplémentaire.


RE: Mort.. - Pyl - 29-01-2007

Je vais joueur le chieur... Mais ça bug tjrs Confused
J'ai rajouté la requete de selection de l'Xp

Code PHP :
<?php 
$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());

Mais j'ai modifier ce que vous m'avez dit...
Et ça à rien changé...
'Victime' si il est est déjà à 1, restera à 1 même si le joueur tue d'autre personne ( J'entend par la que son nombre de victime restera à 1 au lieu de monter à 2, 3, 4 etc...)
Si le mort est à 10, la remise de mort tombe à -10 au lieu de 0, il tombe à 0 Xp au lieu de 80Xp ( En partant sur une base de 100 ). Ses Pv's ne sont tjrs pas remis à 20...
En gros rien nan changé Confused
voila donc en faite tout ce qui a été fait avant na euh...rien changé Confused

Sur ma BDD j'ai fais des tests de requete, j'en suis venu à modifier le script ( voir ci-dessous )


RE: Mort.. - Pyl - 29-01-2007

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 Smile


RE: Mort.. - icien - 29-01-2007

déja je vois que $nouveau_mort n'est plus défini.
tu devrais remplacer ça:
Code PHP :
<?php 
/////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'];

par ça :
Code PHP :
<?php 
/////On met a jour les pv's et le nombre de mort de la victime
$cible = $db-> extract_one("SELECT mort,xp,pv_max FROM membres WHERE id='$id_cible'");
$xp=$cible['xp'];
$pv_max=$perso['pv_max'];
$nouveau_mort= $cible['mort']+1;
$sql = "UPDATE membres SET mort = '$nouveau_mort' ,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)
{
$perte_xp=$xp * 20/100;
$new_xp=$xp-$perte_xp;

pour ton problème de victimes, je ne vois pas.


RE: Mort.. - nemesis_elite - 29-01-2007

Pyl a écrit :
Code PHP :
<?php 
$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());

je sais pas si ça joue quelque chose mais moi je mettrait plutot
Code PHP :
<?php 
$sql
= "UPDATE membres SET xp = '".$new_xp."' ,mort = '0' WHERE id='".$id_cible."'";



RE: Mort.. - Pyl - 29-01-2007

Je vais essayer ton truc nemesis_elite pour l'Xp's.

Icien, en faite je comptais faire ça Smile

Code PHP :
<?php 
/////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
$mort_cible = $db-> extract_one("SELECT mort FROM membres WHERE id='$id_cible'");
$mort = $mort_cible['mort'];
if(
$mort==10)
{
$cible1 = $db-> extract_one("SELECT xp FROM membres WHERE id='$id_cible'");
$xp=$cible1['xp'];

Non ?


RE: Mort.. - Pyl - 29-01-2007

J'avoue ne plus rien y comprendre..
Quand je fais la requete directement dans la BDD en faissant par exemple

UPDATE membres SET mort = mort+1 ,pv = pv_max WHERE id=1

Ca marche !

Quand je fais mes tests de requete via mon script ça ne marche pas !
Je comprend pas pourquoi !
Je ne vois pas ce qui merde !

Aidez- moi :'(


RE: Mort.. - Pyl - 29-01-2007

Finis !!!!!!!!!
J'ai tout finis !!!!!!
Me demander pas pourquoi ça marchais pas, sinon vous allez vous moquez !!!
Je crois que j'avais oublié de mettre en ligne le fichier modifié :ninga:
Merci quand même à tout ceux qui m'on apporté leur aide Smile

Et à ( très ) bientôt pour de nouvelles aventures (h)


RE: Mort.. - Shudrum - 29-01-2007

Confusedtupid: