Problème générateur de ressources

Fermé
smikpaf Messages postés 330 Date d'inscription lundi 29 novembre 2010 Statut Membre Dernière intervention 13 juillet 2014 - 5 juil. 2013 à 11:07
smikpaf Messages postés 330 Date d'inscription lundi 29 novembre 2010 Statut Membre Dernière intervention 13 juillet 2014 - 5 juil. 2013 à 17:42
Bonjour,

Bonjour

Pour mon jeux en ligne j'ai besoin de faire le traditionel système de ressource pour pouvoir acheter et construire sauf que voila mon code ne marche pas correctement

Imaginon que j'ai une production de 30 metals/heure

J'ai fait le code suivant

<?php

include '../connexion_sql.php';

$recup_membres_rsc = $bdd->prepare('SELECT metal, delai FROM membres_rsc WHERE pseudo = :pseudo');
$recup_membres_rsc->execute(array( 'pseudo' => 'azertyu' ));

$affiche_membres_rsc = $recup_membres_rsc->fetch();
$metal = $affiche_membres_rsc['metal'];
$delai = $affiche_membres_rsc['delai'];

echo 'Délai :'.$delai;

$temps_actuel = time();

echo 'Metal : '.$metal.'<br />';
echo 'Temps actuel : '.$temps_actuel.'<br />';

$temps_ecoule = $temps_actuel - $delai;
echo 'Temps ecoulé : '.round($temps_ecoule, 2).'<br />';

$plus_1_tout_les = 120;
echo 'Plus 1 tout les : '.$plus_1_tout_les.'<br />';

if ($delai == 0)
{
$demarre_la_prod = $bdd->prepare('UPDATE membres_rsc SET delai = :delai WHERE pseudo = :pseudo');
$demarre_la_prod->execute(array( 'delai' => $temps_actuel, 'pseudo' => 'azertyu' ));
}
else
{
if ($temps_ecoule >= $plus_1_tout_les)
{
$nombre_de_plus_1_dans_tps_ecoule = $temps_ecoule / $plus_1_tout_les;
echo 'Nombre de fois : '.$nombre_de_plus_1_dans_tps_ecoule.'<br />';

$new_metal = $metal + $nombre_de_plus_1_dans_tps_ecoule;
echo 'nouveau metal : '.$new_metal.'<br />';

$temps_restant = ($temps_ecoule - ($plus_1_tout_les * floor($nombre_de_plus_1_dans_tps_ecoule)));
echo 'Temps restant : '.$temps_restant.'<br />';

$nouveau_temps_bdd = $temps_actuel + $temps_restant;
echo 'Nouveau temps bdd : '.$nouveau_temps_bdd;

$update_la_prod = $bdd->prepare('UPDATE membres_rsc SET metal = :metal, delai = :delai WHERE pseudo = :pseudo');
$update_la_prod->execute(array( 'metal' => $new_metal, 'delai' => $nouveau_temps_bdd, 'pseudo' => 'azertyu' ));
}
}

?>
Et donc le problème c'est que si pendant 1 heure on ne touche pas a la page sans l'actualiser et qu'on la recharge au bout d'une heure

Ca marche nikel j'ai mes 30 metals

Sauf que si entre temps je recharge la page (pour simulé une activité diverse) cela créer un manque dans le temps et au final il manque des ressource (24 au lieu de 30)

Y'a t'il un calcule spécial a faire ou plus de donnees a enregistrer dans la base de donnees ? quelqu'un peut t'il m'aidé ?

Merci
A voir également:

1 réponse

smikpaf Messages postés 330 Date d'inscription lundi 29 novembre 2010 Statut Membre Dernière intervention 13 juillet 2014 16
5 juil. 2013 à 17:42
up
0