[RESOLU] Probleme distribution des ressources: - zneman - 13-07-2007
Bonjour.
Ca fait pas mal de temps que je ne suis pas venu ici mais la, je ne comprends vraiment pas ou est le problème
J'explique:
Toutes les une heure, chaque joueur dois gagner:
- 50 000 Galds (monnaie du jeu)
- 150 de mana fois le nombre de mage qu'il possede
- 1 tour d'attaque (une attaque possible).
Jusque la, tout va bien, le seul problème, c'est le fait que certains joueurs... ne reçoivent rien...
Voila le script de tours (je sais, ce n'est pas tres optimisé mais bon...)
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, temps, nombre FROM membres") or die (mysql_error());
$reponse_time = mysql_query("SELECT timestamp FROM temps") or die (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 and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*5;
$nbre_lan = $forge['paysans_lances']*5;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*150;
$nouveaux_galds = $infos_membres['gald'] + 50000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(7200 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*10;
$nbre_lan = $forge['paysans_lances']*10;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*300;
$nouveaux_galds = $infos_membres['gald'] + 100000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(10800 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*15;
$nbre_lan = $forge['paysans_lances']*15;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*450;
$nouveaux_galds = $infos_membres['gald'] + 150000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(14400 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*20;
$nbre_lan = $forge['paysans_lances']*20;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*600;
$nouveaux_galds = $infos_membres['gald'] + 200000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(18000 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*25;
$nbre_lan = $forge['paysans_lances']*25;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*750;
$nouveaux_galds = $infos_membres['gald'] + 250000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(21600 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*30;
$nbre_lan = $forge['paysans_lances']*30;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*900;
$nouveaux_galds = $infos_membres['gald'] + 300000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(25200 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*35;
$nbre_lan = $forge['paysans_lances']*35;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*1050;
$nouveaux_galds = $infos_membres['gald'] + 350000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(28800 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*40;
$nbre_lan = $forge['paysans_lances']*40;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*1200;
$nouveaux_galds = $infos_membres['gald'] + 400000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(32400 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*45;
$nbre_lan = $forge['paysans_lances']*45;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*1350;
$nouveaux_galds = $infos_membres['gald'] + 450000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(36000 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*50;
$nbre_lan = $forge['paysans_lances']*50;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*1500;
$nouveaux_galds = $infos_membres['gald'] + 500000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(39600 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*55;
$nbre_lan = $forge['paysans_lances']*55;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*1650;
$nouveaux_galds = $infos_membres['gald'] + 550000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(43200 <=$timestamp_ecoule and $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'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*60;
$nbre_lan = $forge['paysans_lances']*60;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*1800;
$nouveaux_galds = $infos_membres['gald'] + 600000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$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 die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(46800 <=$timestamp_ecoule and $timestamp_ecoule < 50400)
{
$nouveau_time = $timestampBDD + 46800;
mysql_query("UPDATE temps SET timestamp='".$nouveau_time."'");
while($infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*65;
$nbre_lan = $forge['paysans_lances']*65;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*1950;
$nouveaux_galds = $infos_membres['gald'] + 650000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$new_tours = $infos_membres['tours'] + 13;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(50400 <=$timestamp_ecoule and $timestamp_ecoule < 54000)
{
$nouveau_time = $timestampBDD + 50400;
mysql_query("UPDATE temps SET timestamp='".$nouveau_time."'");
while($infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*70;
$nbre_lan = $forge['paysans_lances']*70;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*2100;
$nouveaux_galds = $infos_membres['gald'] + 700000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$new_tours = $infos_membres['tours'] + 14;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(54000 <=$timestamp_ecoule and $timestamp_ecoule < 57600)
{
$nouveau_time = $timestampBDD + 54000;
mysql_query("UPDATE temps SET timestamp='".$nouveau_time."'");
while($infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*75;
$nbre_lan = $forge['paysans_lances']*75;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*2250;
$nouveaux_galds = $infos_membres['gald'] + 750000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$new_tours = $infos_membres['tours'] + 15;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(57600 <=$timestamp_ecoule and $timestamp_ecoule < 61200)
{
$nouveau_time = $timestampBDD + 57600;
mysql_query("UPDATE temps SET timestamp='".$nouveau_time."'");
while($infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*80;
$nbre_lan = $forge['paysans_lances']*80;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*2400;
$nouveaux_galds = $infos_membres['gald'] + 800000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$new_tours = $infos_membres['tours'] + 16;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(61200 <=$timestamp_ecoule and $timestamp_ecoule < 64800)
{
$nouveau_time = $timestampBDD + 61200;
mysql_query("UPDATE temps SET timestamp='".$nouveau_time."'");
while($infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*85;
$nbre_lan = $forge['paysans_lances']*85;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*2550;
$nouveaux_galds = $infos_membres['gald'] + 850000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$new_tours = $infos_membres['tours'] + 17;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif(64800 <=$timestamp_ecoule and $timestamp_ecoule < 68400)
{
$nouveau_time = $timestampBDD + 64800;
mysql_query("UPDATE temps SET timestamp='".$nouveau_time."'");
while($infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT * FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT * FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$pseudo_ajour = $infos_membres['pseudo'];
$nbre_fle = $forge['paysans_fleches']*90;
$nbre_lan = $forge['paysans_lances']*90;
$nbre_fle_plus = $forge['fleches']+$nbre_fle;
$nbre_lan_plus = $forge['lances']+$nbre_lan;
$calcul = ($troupes['mages']+$troupes2['mages'])*2700;
$nouveaux_galds = $infos_membres['gald'] + 900000;
$nouveau_mana = $infos_membres['mana'] + $calcul;
$new_tours = $infos_membres['tours'] + 18;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nbre_lan_plus."',fleches='".$nbre_fle_plus."' WHERE pseudo='".$pseudo_ajour."'");
}
}
$reponse_gald = mysql_query("SELECT pseudo, gald, mana, tours, temps, nombre FROM membres") or die (mysql_error());
$heure_journee = date('H', $timestamp_actuel);
while($gald = mysql_fetch_array($reponse_gald))
{
if($heure_journee == 18)
{
if($gald['nombre'] == 0)
{
$pseudo_ajour = $gald['pseudo'];
$temps1 = mt_rand(1,4);
$temps = number_format($temps1, 0, '.', ' ');
mysql_query("UPDATE membres SET temps='".$temps."', nombre='1' WHERE pseudo='$pseudo_ajour'");
}
}
elseif($gald['nombre'] == 1)
{
if($heure_journee == 19)
{
$pseudo_ajour = $gald['pseudo'];
mysql_query("UPDATE membres SET nombre='0' WHERE pseudo='$pseudo_ajour'");
}
}
}
?>
RE: Probleme distribution des ressources: - Mysterarts - 13-07-2007
je vais te répondre franchement :
Vu ce que tu veux faire, et la taille du code, c'est carrément pas optimiser !!
J'ai vraiment pas le courage de me jeter dans cette océan ^^
Et ma métaphore est assez juste, puisqu'on peut reconnaitre des "vagues", au milieu de ton code (portions qui se répètent)... On peut donc surement imaginé que tu pourrai faire des boucles par exemple... En tout cas, pour trouver une erreur la dedans...
Je vais quand même essayer de comprendre ton code...
Mysterarts
EDIT : donc c'est bien ce que je pensais, c'est copié collé sont absolument inutile
Essai de réfléchir, à tenir ça en 1 seul boucle : c'est faisable !
Indice : au lieu de mettre par exemple, que :
pour x1 heure, tu as :
$nouveaux_galds = $infos_membres['gald'] + 800000;
et pour x2 heure, tu as :
$nouveaux_galds = $infos_membres['gald'] + 900000;
Trouve la formule qui lient ces nombres !
(Au hasard : temps_écoulé * 102 = gald_en_plus)
Tu vois ce que je veux dire ?
Une fois que tout ça sera mise en place, on pourra parler de ton problème !!
(Mais à ce sujet, j'ai remarqué que tes conditions été mal formulé...)
RE: Probleme distribution des ressources: - carlou - 13-07-2007
Mysterarts a écrit :Vu ce que tu veux faire, et la taille du code, c'est carrément pas optimiser !!
ah bon?!?:hahahaha: ^^
c'est clair que pour trouver une erreur la dedans, faut une bonne loupe. je rejoins Mysterarts, tu devrais commencer par eclaircir ton code, il te donne de bonnes pistes.
RE: Probleme distribution des ressources: - zneman - 13-07-2007
Oui je sais, faut que je le revoit entierement ce script
Sinon, je viens de regarder, sur 389 membres, c'est seulement a partir du 295 eme que les joueurs ne recoivent plus de ressources :S les autres en reçoivent :S
RE: Probleme distribution des ressources: - Mysterarts - 13-07-2007
Tu va voir, quand ton code sera bien joli bien brillant bien poli, tout te paraitra tellement plus évident ^^
Tu verra, ça sera assez rapide en fait, mais tu as effectivement interet à carrément tout recommencer, en reflechissant O-PTI-MI-SA-TION ^^
Mysterarts
RE: Probleme distribution des ressources: - zneman - 13-07-2007
oki oki... bon, je fais ca toute a l'heure, je dois aller faire une course la je re plus tard ! merci pour l'aide
RE: Probleme distribution des ressources: - alfanor - 13-07-2007
Bon, j'ai fais un petit truc, sa ne dois pas marcher c'est sûr, surtout au niveau de la jointure, et je n'ai pas compris aussi ce que fais la boucle à la fin du code donc je l'ai laissé telle qu'elle, sinon je pense que mon code résume le reste dans le principe :
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);
/* On sélectionne la dernière heure à laquel la mise à jour a eu lieu */
$heure_mise_jour = mysql_query("SELECT timestamp FROM temps") or die (mysql_error());
$heure_mise_jour = mysql_fetch_array($heure_mise_jour);
/* On prend l'heure actuelle, l'heure à laquelle la dernière mise à jour a eu lieu et l'on calcul le nombre d'heures (outrs) écoulées */ */
$heure_actuel = time();
$heure_BDD = $heure_mise_jour['timestamp'];
$tour_ecoule = ($heure_actuelle - $heure_BDD) / 3600;
$nouvelle_heure_BDD = $heure_BDD + (3600 * $tour_ecoule);
/* On fait une requête simple pour mettre à jour l'argent et les tours de toutes les entrées de la table Membres */
mysql_query("UPDATE membres SET gald = gald + 50000, tour = tour + 1")or die(mysql_error());
/* On sélectionne tout ce qui nous intéresses pour toutes les entrées */
$nombre_mage = mysql_query("SELECT troupes.mages, troupes.pseudo, forge.paysans_fleches, forge.paysans_lances, forge.fleches, forge.lances, troupes_attaque.mages AS mages_attaques
FROM troupes
LEFT JOIN troupes_attaque ON troupes_attaque.pseudo = troupes.pseudo
LEFT JOIN forge ON forge.pseudo = troupes.pseudo");
while($donnees = mysql_fetch_array($nombre_mage)
{
$mana_entree_actuelle = ($donnees['mages'] + $donnees['mages_attaque']) * 150;
$nombre_fleche = ($donnees['paysans_fleches'] * 5) + $donnees['fleches'];
$nombre_lance = ($donnees['paysans_lances'] * 5) + $donnees['lances'];
mysql_query("UPDATE membres SET mana = $mana_entree_actuelle WHERE pseudo = '" . $donnees['pseudo'] . "'")or die(mysql_error());
mysql_query("UPDATE forge SET fleches = '" . $nombre_fleches . "', lances = '" . $nombre_lances . "'")or die(mysql_erro());
}
$reponse_gald = mysql_query("SELECT pseudo, gald, mana, tours, temps, nombre FROM membres") or die (mysql_error());
$heure_journee = date('H', $timestamp_actuel);
while($gald = mysql_fetch_array($reponse_gald))
{
if($heure_journee == 18)
{
if($gald['nombre'] == 0)
{
$pseudo_ajour = $gald['pseudo'];
$temps1 = mt_rand(1,4);
$temps = number_format($temps1, 0, '.', ' ');
mysql_query("UPDATE membres SET temps='".$temps."', nombre='1' WHERE pseudo='$pseudo_ajour'");
}
}
elseif($gald['nombre'] == 1)
{
if($heure_journee == 19)
{
$pseudo_ajour = $gald['pseudo'];
mysql_query("UPDATE membres SET nombre='0' WHERE pseudo='$pseudo_ajour'");
}
}
}
?>
[/php]
RE: Probleme distribution des ressources: - zneman - 13-07-2007
Donc voila le mien
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, temps, nombre FROM membres") or die (mysql_error());
$reponse_time = mysql_query("SELECT timestamp FROM temps") or die (mysql_error());
$infos_time = mysql_fetch_array($reponse_time);
$timestamp_actuel = time();
$timestampBDD = $infos_time['timestamp'];
$timestamp_ecoule = $timestamp_actuel - $timestampBDD;
$nombre_heures_decimal = $timestamp_ecoule / 3600;
$nombre_heures = number_format($nombre_heures_decimal, 0, '.', ' ');
if($nombre_heures >=1)
{
while($infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$forge_rep = mysql_query("SELECT * FROM forge WHERE pseudo='".$pseudo_ajour."'");
$forge = mysql_fetch_array($forge_rep);
$troupes_rep = mysql_query("SELECT mages FROM troupes WHERE pseudo='".$pseudo_ajour."'");
$troupes = mysql_fetch_array($troupes_rep);
$troupes2_rep = mysql_query("SELECT mages FROM troupes_attaque WHERE pseudo='".$pseudo_ajour."'");
$troupes2 = mysql_fetch_array($troupes2_rep);
$nombre_de_fleches_du_joueur = $forge['fleches'];
$nombre_de_lances_du_joueur = $forge['lances'];
$lances_en_plus = ($forge['paysans_lances']*3)*$nombre_heures;
$fleches_en_plus = ($forge['paysans_fleches']*3)*$nombre_heures;
$nombre_fleches_a_jour = $nombre_de_fleches_du_joueur + $fleches_en_plus;
$nombre_lances_a_jour = $nombre_de_lances_du_joueur + $lances_en_plus;
$galds_du_joueur = $infos_membres['gald'];
$galds_en_plus = 50000 * $nombre_heures;
$galds_a_mettre_a_jour = $galds_du_joueur + $galds_en_plus;
$nombre_de_mages = $troupes['mages'] + $troupes2['mages'];
$mana_deja_possede = $infos_membres['mana'];
$mana_en_plus = ($nombre_de_mages * 150) * $nombre_heures;
$actualisation_mana = $mana_deja_possede + $mana_en_plus;
$nombre_de_tours_du_joueur = $infos_membres['tours'];
$tours_en_plus = 1 * $nombre_heures;
$actualisation_tours = $nombre_de_tours_du_joueur + $tours_en_plus;
$nouveau_time = $timestampBDD + (3600 * $nombre_heures);
mysql_query("UPDATE temps SET timestamp='".$nouveau_time."'");
mysql_query("UPDATE membres SET gald='".$galds_a_mettre_a_jour."', mana='".$actualisation_mana."', tours='".$actualisation_tours."' WHERE pseudo='".$pseudo_ajour."'")or die (mysql_error());
mysql_query("UPDATE forge SET lances='".$nombre_lances_a_jour."',fleches='".$nombre_fleches_a_jour."' WHERE pseudo='".$pseudo_ajour."'");
}
}
$reponse_gald = mysql_query("SELECT pseudo, gald, mana, tours, temps, nombre FROM membres") or die (mysql_error());
$heure_journee = date('H', $timestamp_actuel);
while($gald = mysql_fetch_array($reponse_gald))
{
if($heure_journee == 18)
{
if($gald['nombre'] == 0)
{
$pseudo_ajour = $gald['pseudo'];
$temps1 = mt_rand(1,4);
$temps = number_format($temps1, 0, '.', ' ');
mysql_query("UPDATE membres SET temps='".$temps."', nombre='1' WHERE pseudo='".$pseudo_ajour."'");
}
}
elseif($gald['nombre'] == 1)
{
if($heure_journee == 19)
{
$pseudo_ajour = $gald['pseudo'];
mysql_query("UPDATE membres SET nombre='0' WHERE pseudo='".$pseudo_ajour."'");
}
}
}
?>
Je ne l'ai pas testé, quelqu'un peut me dire si tout est bien ? (bien que je pense que oui )
RE: Probleme distribution des ressources: - elazard - 13-07-2007
jme demandais si ton problème initial venait pas du temps d'éxécution du script (limitée à je ne sais plus combien de temps) si ca s'"arrete au 295 c'est peut-être une piste à creuser et l'optimisation t'aidera en toute théorie
RE: Probleme distribution des ressources: - alfanor - 13-07-2007
Justement ce que je lui ai dis (sur msn), c'est d'ailleurs quasiment sûr, parce que vu le nombre de requête dans son code (6 * nombre_joueur, sa vole vite à plusieurs milliers)
|