JeuWeb - Crée ton jeu par navigateur
Probleme dans notre 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 : Probleme dans notre script (/showthread.php?tid=1066)

Pages : 1 2


RE: Probleme dans notre script - zneman - 14-04-2007

Bon ben finalement ca ne fonctionne pas Sad
le probleme c'est que la, les membres ne recoivent pas de mana, ils recoivent 1 tour mais ont tous le même nombre de Galds apres l'actualisation.

exemple:

Avant le new tour:

Pseudo= bidule // Galds = 40000 // Mana = 52000 // tours = 6
Pseudo= machin // Galds = 20000 // Mana = 2512 // tours = 5
Pseudo= truc // Galds = 60000 // Mana = 155866 // tours = 2

Apres le new tour:

Pseudo= bidule // Galds = 90000 // Mana = 52000 // tours = 7
Pseudo= machin // Galds = 90000 // Mana = 2512 // tours = 6
Pseudo= truc // Galds = 90000 // Mana = 155866 // tours = 3

Comme vous le voyez, c'est pas super Sad


RE: Probleme dans notre script - icien - 14-04-2007

Tu peux mettre ton code ?


RE: Probleme dans notre script - zneman - 14-04-2007

C'est bon, j'ai changé tout mon code, voila le nouveau:

Code PHP :
<?php
//Inclusion du fichier contenant les identifiants de connexion à la base de données.
require("config.inc.php");
//Connexion à la base de données.
mysql_connect($host, $username, $password);
mysql_select_db($bdd_name);
// Je vais chercher les infos sur les membres:
$reponse_membres = mysql_query("SELECT pseudo, gald, mana, tours, timestamp FROM membres") or dir (mysql_error());
$reponse_time = mysql_query("SELECT timestamp FROM temps") or dir (mysql_error());
$infos_time = mysql_fetch_array($reponse_time);
$timestamp_actuel = time();
$timestampBDD = $infos_time['timestamp'];
$timestamp_ecoule = $timestamp_actuel - $timestampBDD;

if(
3600 <= $timestamp_ecoule < 7200)
{
$nouveau_time = $timestampBDD + 3600;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 50000;
$nouveau_mana = $infos_membres['mana'] + 150000;
$new_tours = $infos_membres['tours'] + 1;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
7200 <=$timestamp_ecoule < 10800)
{
$nouveau_time = $timestampBDD + 7200;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 100000;
$nouveau_mana = $infos_membres['mana'] + 300000;
$new_tours = $infos_membres['tours'] + 2;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
10800 <=$timestamp_ecoule < 14400)
{
$nouveau_time = $timestampBDD + 10800;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 150000;
$nouveau_mana = $infos_membres['mana'] + 450000;
$new_tours = $infos_membres['tours'] + 3;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
14400 <=$timestamp_ecoule < 18000)
{
$nouveau_time = $timestampBDD + 14400;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 200000;
$nouveau_mana = $infos_membres['mana'] + 600000;
$new_tours = $infos_membres['tours'] + 4;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
18000 <=$timestamp_ecoule < 21600)
{
$nouveau_time = $timestampBDD + 18000;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 250000;
$nouveau_mana = $infos_membres['mana'] + 750000;
$new_tours = $infos_membres['tours'] + 5;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
21600 <=$timestamp_ecoule < 25200)
{
$nouveau_time = $timestampBDD + 21600;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 300000;
$nouveau_mana = $infos_membres['mana'] + 900000;
$new_tours = $infos_membres['tours'] + 6;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
25200 <=$timestamp_ecoule < 28800)
{
$nouveau_time = $timestampBDD + 25200;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 350000;
$nouveau_mana = $infos_membres['mana'] + 1050000;
$new_tours = $infos_membres['tours'] + 7;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
28800 <=$timestamp_ecoule < 32400)
{
$nouveau_time = $timestampBDD + 28800;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 400000;
$nouveau_mana = $infos_membres['mana'] + 1200000;
$new_tours = $infos_membres['tours'] + 8;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
32400 <=$timestamp_ecoule < 36000)
{
$nouveau_time = $timestampBDD + 32400;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 450000;
$nouveau_mana = $infos_membres['mana'] + 1350000;
$new_tours = $infos_membres['tours'] + 9;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
36000 <=$timestamp_ecoule < 39600)
{
$nouveau_time = $timestampBDD + 36000;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 500000;
$nouveau_mana = $infos_membres['mana'] + 1500000;
$new_tours = $infos_membres['tours'] + 10;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
39600 <=$timestamp_ecoule < 43200)
{
$nouveau_time = $timestampBDD + 39600;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 550000;
$nouveau_mana = $infos_membres['mana'] + 1650000;
$new_tours = $infos_membres['tours'] + 11;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
elseif(
43200 <=$timestamp_ecoule < 46800)
{
$nouveau_time = $timestampBDD + 43200;
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 600000;
$nouveau_mana = $infos_membres['mana'] + 1800000;
$new_tours = $infos_membres['tours'] + 12;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
mysql_close();
?>

Desormais j'ai un probleme avec le "<" du if !
Code PHP :
<?php 
if(3600 <= $timestamp_ecoule < 7200)

Parse error: syntax error, unexpected '<' in /home/leoserveur/www/heberg/magusworld/systemetour2.php on line 15


RE: Probleme dans notre script - icien - 14-04-2007

pour le
Code PHP :
<?php 
if(3600 <= $timestamp_ecoule < 7200)
il faut faire :
Code PHP :
<?php 
if(3600 <= $timestamp_ecoule and $timestamp_ecoule< 7200)

Je regarde le reste mais j'ai l'impression que c'est un peu trop chargé ^^


RE: Probleme dans notre script - icien - 14-04-2007

Holala c'est la catastrophe... Nan c'est pas la cata mais ça pourrait etre simplifié. En fait toute les 3600 secondes tu mets un tour en plus, 50000 galds et 150000 Mana.
pour quoi ne fais tu pas un truc du genre:
Code PHP :
<? $inb_heure=ceil($timestamp_ecoule/3600); ?>
puis tu multiplies tout tes gains par $inb_heure et hop plus besoin de cette multitude if. Et si tu veux un maximum d'heure tu fais (12 etant le max apparement).
Code PHP :
<? $inb_heure=(ceil($timestamp_ecoule/3600)<=12) ? ceil($timestamp_ecoule/3600) : 12;?>



RE: Probleme dans notre script - zneman - 14-04-2007

oO
Je comprends plus trop la Big Grin
Ca donne quoi mon code avec ta modification ? Smile
Je fais quoi du while etc ?


RE: Probleme dans notre script - icien - 14-04-2007

Je vais me faire crier dessus mais si tu me promets de regarder et de comprendre mes modifs je mets le code que ca devrait donner...

Code PHP :
<?php
//Inclusion du fichier contenant les identifiants de connexion à la base de données.
require("config.inc.php");
//Connexion à la base de données.
mysql_connect($host, $username, $password);
mysql_select_db($bdd_name);
// Je vais chercher les infos sur les membres:
$reponse_time = mysql_query("SELECT timestamp FROM temps") or dir (mysql_error());
$infos_time = mysql_fetch_array($reponse_time);
$timestamp_actuel = time();
$timestampBDD = $infos_time['timestamp'];
$timestamp_ecoule = $timestamp_actuel - $timestampBDD;

//je calcule le nombre d'heure écoulées.
$iNbHeure=ceil($timestamp_ecoule/3600);

$nouveau_time = $timestampBDD + ($iNbHeure*3600);
mysql_query("UPDATE temps SET timestamp= '".$nouveau_time."'");

//on calcule les gain en galds et en mana
$iGainGalds=$iNbHeure*50000;
$iGainMana=$iNbHeure*150000;
//on met a jour tous les membres d'un coup.
mysql_query("UPDATE membres SET gald=gald + ".$iGainGalds.", mana=mana + ".$iGainMana.", tours=tours + ".$iNbHeure)or die (mysql_error());


mysql_close();
?>

C'est quand même plus léger non ? (j'espère ne pas avoir fait de fautes ^^)


RE: Probleme dans notre script - zneman - 14-04-2007

Donc il n'y a plus de boucle ?! oO


RE: Probleme dans notre script - icien - 14-04-2007

plus de if déjà avec ma modification suggéré plus haut
et plus de boucle puisque je mets a jour tous les membres d'un coup dans l'update, ca c'etait ma proposition d'hier.


RE: Probleme dans notre script - zneman - 14-04-2007

faut que je regarde si ca fonctionne parce que sans boucle, ca n'avait pas l'air de marcher hier ^^