19-09-2007, 09:42 PM
Findel a écrit :Le plus simple serait sans doute d'utiliser la fonction time() et effectivement de stocker ça en base de données.
Je m'explique : Si tu veux qu'une construction prenne deux heures à s'effectuer. Elle sera donc terminée dans time() + ( 2 [heures] * 60 [minutes] * 60 [secondes]), plus qu'à mémoriser ça :
@mysql_query('INSERT INTO constructions (idjoueur, idbatiment, termine) VALUES ('.$_SESSION['idjoueur'].','.$idbatiment.','.(time()+7200).')');
Pour savoir si le joueur a des constructions en cours et combien de temps il reste :
if ($requete = @mysql_query('SELECT idbatiment, termine FROM constructions WHERE idjoueur = '.$_SESSION['idjoueur'])) {
while ($data = @mysql_fetch_assoc($requete)) {
if ($data['termine'] < time()) {
// construction terminée
echo 'Le batiment ['.$data['idbatiment'].' est terminé';
} else {
echo 'Le batiment ['.$data['idbatiment'].' est en construction, il sera terminé le '.date('d/m/Y H:i', $data['termine']);
}
}
}
Si tu veux que le décompte se fasse de visu sur la page, il te reste à mettre un peu de javascript et ça devrait le faire
Alors encore une petite question.
Quand je charge la page il me met :
Le bâtiment mine est en construction, il sera terminé le 19/09/2007 23:36:07
Normal donc.
Mais à chaque fois que je recharge sa me rajoute quelques secondes...
( normal ... )
Mais comment faire pour que sa se décompte ?!
.date('d/m/Y H:i', $data['terminé']); il va falloir que je retrousse la date donnée ici jusqu'à ce que j'obtienne zéro...
Tout en faisant en sorte que le compte à rebours ne reparte pas à zéro ...et continue même lors du déloggage et d'un leave de page
Sa commence à me prendre le choux ce 'bout' de programme...