JeuWeb - Crée ton jeu par navigateur
[Résolu]Pb include et script - 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]Pb include et script (/showthread.php?tid=695)



[Résolu]Pb include et script - Pyl - 25-01-2007

Probleme include...C'est peux paraitre con d'ailleur ça l'est :p

Code PHP :
<?php 
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&eacute; sur '.$nom_cible.' avec '.$degats.' de d&eacute;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>';
if(
$pv_restant<='0' )
{
$message1.='<center>Celui-ci s\'&eacute;croule par terre, il est mort...<br>Vous gagnez '.$gain_xp.' Xp\'s</center>';
/////include('mort.php'); ///
}

Voila le script d'attaque, enfin..une partie seulement, dans cette zone on met a jour les pv's de la cible et l'Xp de l'attaquant ! Mais si la cible est tombe a 0 Pv's elle meurt et là on met en route le script qui génére la mort du perso... sauf que partout ou je place mon include mort.php... ben ça bug et ça m'afficheras une page blanche à la place du resultat de l'attaque et le mieux c'est que ça prend en compte l'attaque ^^ Donc... Ou placer mon include('mort.php') pour pas que j'ai ma page blanche ?

Second soucis...
Mon script mort.php bug...mais je trouve pas ou Undecided

Code PHP :
<?
@session_start();
include(
'bdd.php');
include(
'function.php');
$id_cible=$dep[1];

////selectionne la position de la cible
$sql="SELECT X,Y,terrain FROM map WHERE perso='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
////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 l'xp et les morts
$sql = "SELECT mort,xp,pv,pv_max WHERE id='$id_cible'")
$req = mysql_query($sql) or die(mysql_error());
$nouveau_mort=$mort+1;
$nouveau_pv=$pv+$px_max;

if(
$nouveau_mort>10)
{
$perte_xp=$xp*100/20
$sql
= "UPDATE membres SET xp = '$perte_xp' WHERE id='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
}
$sql = "UPDATE membres SET mort = '$nouveau_mort' ,pv = '$nouveau_pv' WHERE id='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());

?>



RE: Pb include et script - gtsoul - 25-01-2007

tu places include là ou tu l'avais mis et tu déplaces le session_start() vers le début de ta page.

Et si vous ne faites pas d'objet, faites du procédural avec des fonctions mais évitez les include !!

Un include ca sert, soit à définir un template (header/footer), soit à définir des classes/fonctions ; ca ne sert pas à copier/coller du code dans un endroit précis.


RE: Pb include et script - Pyl - 25-01-2007

Donc je ferais mieux de ne pas mettre d'include et de plutot mettre mon script directement dedans ?


RE: Pb include et script - Plume - 25-01-2007

C'est un fait Smile !Je trouve même l'idée particulière à l'origine ^^


RE: Pb include et script - Pyl - 25-01-2007

Faut pas chercher à me comprendre...

Bref, j'up un coup mon soucis, pcq j'avoue ne pas saisir le probleme...
Quand le joueur selectionne la cible, pouf, ensuite il clique sur attaquer... Et après avoir cliqué sur attaqué ça donne une page blanche :'(
Ca ne déduit même pas les attaques et le nombres de Pv's... Je pense que c'est à cause du rajout de mon script de mort... Je vous met si-dessous le script entier de l'attaque... La zone que j'ai rajouté est-celle se situant après
if($pv_restant<='0') Wink

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&eacute; sur '.$nom_cible.' avec '.$degats.' de d&eacute;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>';
if(
$pv_restant<='0' )
{
$message1.='<center>Celui-ci s\'&eacute;croule par terre, il est mort...<br>Vous gagnez '.$gain_xp.' Xp\'s</center>';
////selectionne la position de la cible
$sql="SELECT X,Y,terrain FROM map WHERE perso='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
////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 l'xp et les morts
$sql = "SELECT mort,xp,pv,pv_max WHERE id='$id_cible'")
$req = mysql_query($sql) or die(mysql_error());
$nouveau_mort=$mort+1;
$nouveau_pv=$pv+$px_max;
if(
$nouveau_mort>10)
{
$perte_xp=$xp*100/20;
$sql = "UPDATE membres SET xp = '$perte_xp' WHERE id='$id_cible'";
$req = mysql_query($sql) or die(mysql_error());
}
$sql = "UPDATE membres SET mort = '$nouveau_mort' ,pv = '$nouveau_pv' WHERE id='$id_cible'";
$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');
?>

Merci d'avance Smile


RE: Pb include et script - pascal - 25-01-2007

heu...

c'est normal la parenthèse à cette ligne là?

Code PHP :
<?php 
/////On met a jour les pv's et l'xp et les morts
$sql = "SELECT mort,xp,pv,pv_max WHERE id='$id_cible'")

je pense que le pb vient de là.

A+

Pascal


RE: Pb include et script - Pyl - 25-01-2007

Euh....la paranthése...euh non lol ^^
En plus je viens de remarquer que j'annoncais pas la table dans laquelle selectionner Smile

Deux erreures en une ! Je test ça de suiteSmile


Ca marche merci Smile
La prochaine fois je me re-lirais mieux que ça :p