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
Hihi, les réponses simultanées c'est fun ! Tu as la partie javascript en premiere réponse, une explication théorique de la partie serveur et mon message pour illustrer cette explication
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
Hihi, les réponses simultanées c'est fun ! Tu as la partie javascript en premiere réponse, une explication théorique de la partie serveur et mon message pour illustrer cette explication