tâche automatique - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : tâche automatique (/showthread.php?tid=590) Pages :
1
2
|
tâche automatique - maniaco_jazz - 01-01-2007 Bonjour, Voici la situation : Je voudrais mettre en place un système d'incendie dans mon jeu. Une unité déclenche un incendie sur une case forêt, et je voudrais que mon incendie se "propage" automatique sur 1 case adjacente toutes les N heures. Une table de ma base possède tous les incendies avec leur position. Ainsi, la première chose que je vois est que j'ai besoin de mettre à jour automatiquement ma table d'incendie toutes les N heures. Est-ce que quelqu'un aurait une solution même déviée ? Merci et bonne année 2007 RE: tâche automatique - Michu - 01-01-2007 Tu peu utiliser un cron : http://www.webcron.org/ mais tu peux faire un test a chaque fois qu'un joueur rafaraichi une page, RE: tâche automatique - dark_vidor - 01-01-2007 mettre à jour aux nouvelle connexion des joueurs ... :heuuu: verifier si action sur la case dite en feu avant de faire l'action :heuuu: RE: tâche automatique - maniaco_jazz - 01-01-2007 J'avais pensé à faire cela à chaque connexion de joueur, mais cela ne risque-t-il pas de ralentir le chargement de la page ? Ca veut dire tester chaque ligne de la table incendie à chaque connexion... Avec 3 incendies, je veux bien, mais avec par exemple 50 incendies ca risque de faire beaucoup de traitement à chaque connexion... nan ? Je vais étudier le webcron, sinon j'utiliserai la technique précédente. Merci de votre aide :respect: RE: tâche automatique - Loetheri - 01-01-2007 Je te déconseille le webcron ;-) Tu sauvegardes la dernière mise à jour lorsque quelqu'un se connecte. Si elle n'a pas eu lieu pendant l'heure, tu mets à jours. Sinon tu ne fais rien. RE: tâche automatique - dark_vidor - 01-01-2007 maniaco_jazz a écrit :Avec 3 incendies, je veux bien, mais avec par exemple 50 incendies ca risque de faire beaucoup de traitement à chaque connexion... nan ? Tout dépends en fait de ta table et de ta requete :heuuu: ça peut etre très rapide quelques centièmes de milliseconde ... inperceptible (h) RE: tâche automatique - maniaco_jazz - 06-01-2007 Etant simplement une fonctionnalité sur papier pour le moment, le traitement des incendies serait quelque chose comme : Code : récupérer toutes les occurences de la table incendie; Donc cette procédure, exécutée à chaque connexion va parcourir toute la table incendie, et si la condition est vérifiée, alors on insère une ligne supplémentaire dans cette table. Ca fait donc 1 SELECT et éventuellement N INSERT (N étant le nombre de lignes) Je ne me rend pas bien compte du temps de ce traitement. Mais je verrai :good: RE: tâche automatique - Shidame - 06-01-2007 Une idée serai de mettre a jour la propagation de l'incendie au moment ou quelqu'un arrive dans la zone (je sais pas trop comment ca marche ton jeu ;p) Mais imaginons un incendie case x:2 y:4 a T=1 tu stokes le temps en base de donnée. Arrive un joueur a T=6 dans la zone cad proche de x:2 et y:4 (tout depend de son champs de vision. Et tu mets a jour l'incendie en question, je pense que ca limiterai la requete. RE: tâche automatique - dark_vidor - 06-01-2007 hum j'emmet une reserve par rapport a ce qu'il veut ... si j'ai bien compris de T=1 a T=6 le feu se propage de 5 cases ... je proposerais de tester tous les timestamp depasse et de mettre a jour que les timestamp qui sont depassé (ça doit pouvoir tout se faire dans 2 requetes un SELECT et un UPDATE ) RE: tâche automatique - maniaco_jazz - 06-01-2007 Exact Dark_vidor, Quand je parle que le feu se propage, concrètement, c'est une case SUPPLEMENTAIRE qui est en feu... Donc si je commence à T=1, à T=6, il y aura 6 incendies sur 6 cases. Je n'ai pas encore commencé à coder cette fonctionnalité (j'en suis loin d'ailleurs ) mais je vais utiliser la méthode du timestamp qui semble la plus appropriée, je vous tiendrai au courant des résultats |