Voila comme dit dans le texte j'aimerai une action qui se déclanche automatiquement après (par exemple) 1min. mais bien sur l'utilisateur peut fermer la page changer de page,...
est-ce possible et comment
merci d'avance!
Hors ligne
Posté le 28-08-2008 21:08:45
Mmmm ca dépend quelle action tu veux réaliser je pense que c'est plutot avec du javascript que l'on va pouvoir gérer des events .
Donne moi un exemple d'action pour voir pour mieux savoir ce que tu veux
Hors ligne
Posté le 28-08-2008 21:22:42
ba modifier des choses dans une table avec MySQL (supprimer, ajouter,...)
Hors ligne
Posté le 28-08-2008 21:26:26
Je pense qu'il fait que tu enregistre le timestamp et que tu réactualise ta page toutes les x secondes et que tu fasses le décompte...
C'est pas forcément le plus simple mais au moins si tu gère pas le javascript...
Et puis ça permet de créer une session et que si l'utilisateur quitte ça permettre de continuer le décompte.
Enfin c'est généralement pour des jeux que l'on fait ça il me semble.
Hors ligne
Posté le 28-08-2008 23:03:21
c'est exactements pour un jeux que je veux faire sa
Hors ligne
Posté le 29-08-2008 10:03:23
pour ma part j'utiliserais du javascript pour pouvoir afficher le temps restant en direct, et je stockerai l'heure(date comprise) à laquelle l'action est terminé dans ta bdd pour si il change de page que le temps restant avant de pouvoir refaire une action soit sauvegardée
Hors ligne
Posté le 29-08-2008 14:03:58
Le timestamp c'est plus simple, tu as tout dans une seule donnée.
Mais c'est vrai que le java en fait c'est peut être bien à allier.
Exemple :
Quand ton joueur clique sur construire un bâtiment, tu enregistre dans ta bdd l'id du bâtiment en construction, et le timestamp de départ. Avec un javascript tu affiche le décompte du temps sur la page.
A la fin du décompte javascript tu prends le timestamp, tu le compare avec celui enregistré, tu calcule le temps écoulé :
-> si le temps est >= à la durée de construction tu effaces ces données de la bdd.
-> si le temps est < à la durée de construction tu relance ton javascript pour la durée restante.
Si le joueur quitte la page, lorsqu'il revient sur la page tu regarde si il y a un bâtiment en construction, si oui tu prends le timestamp de départ, celui actuel, tu fait le calcule de temps écoulé, tu le compare à la durée de construction :
-> si le temps est >= à la durée de construction tu effaces ces données de la bdd.
-> si le temps est < à la durée de construction tu relance ton javascript pour la durée restante.
Voila en gros c'est ça. Après je conseil de mettre 3 trucs à enregistrer dans ta bdd : l'id du bâtiment (ou autre ^^), le timestamp de départ, la durée de construction. Ça évite de faire un code différent par bâtiment/niveau de bâtiment/...
Hors ligne
Posté le 29-08-2008 19:59:34
Oui mais je peux aussi prendre le timestamp de dépard (par exemple il est 16h00) et je rajpute les 1minutes de temps puis je dis que a 16h01 je suprimme, non?
mais je pense que je dois mettre le timestamp en seconde
Hors ligne
Posté le 29-08-2008 20:05:03
le timestamp est en seconde deja
sinon,je pensais, tu es pas forcé de supprimer l'élément de ta bdd, tu peux juste le remplacer a chaque fois.
Sinon, ton serveur doit executer des requetes en plus que celles que les joueurs feront, je penses pas que cesoit une bonne idée de trop le faire travailler. Autant utiliser les outils a disposition pour faire travailler les clients.
Hors ligne
Posté le 29-08-2008 23:29:37
A si c pour un jeu du type construction de batiment je pense que l'idée de Cyrille est pas mal.
Hors ligne
Posté le 30-08-2008 17:27:41