Bonjour a tous et toutes,

Voici mon "soucis"

J'aimerai toutes les heures ajouter X ressources a tout les joueurs (meme si celui ci n'est pas connecte).

Je sais que en js il y a moyen de le faire a condition que le joueur soit connecte, mais y aurait il aussi moyen de le faire si le joueur n est pas connecter?

Merci d avance de vos reponses.

P.S. je travail avec cakephp

9 réponses


Leny
Réponse acceptée

Un tuto intéressant ici. Dans les grandes lignes, cron, c'est assez facile, c'est juste une syntaxe toute simple.
Mais comme le dit deblan, si t'as pas accès en ssh à ton hébergement, c'est peine perdue.

Fais-le en JS pour quand le joueur est connecté (histoire de garder le côté "instantané" pour le joueur).
Lorsqu'il n'est pas connecté, enregistre la date de sa dernière action, et à la date suivante, fais le calcul.
Par exemple, tu me donnes, à moi joueur, 5 écus par heure. Tu sais que ma dernière action "connectée" a eu lieu à 6h ce matin. Mon action suivante (ma reconnexion, par exemple), a eu lieu à 19h. 19-6 = 13 (tu peux compter 12 en fonction de ta façon de distribuer, si j'ai eu mes pièces de 6h00), et donc tu me dois 13*5 écus.
Ce sera beaucoup plus simple à mettre en place que de te lancer dans des cron et tout le bordel.

Je pense que le plus raisonnable est d'utiliser un crontab (tâche automatisée) sur le serveur. A tout moment tu dois pouvoir savoir quelles sont les ressources d'un joueur et ce que propose Leny est problématique : si tu as des interactions entre les joueurs tu n'auras jamais les vrais chiffres en bdd tant que tout les joueurs ne se sont pas connectés au même moment=dans la même tranche horaire] et je ne t'explique par la complexité du code pour tout recalculer.

Ah oui, effectivement, si des intéractions sont possibles entre des joueurs connectés et des joueurs non-connectés, de fait, ma solution n'est plus viable (même si elle restait plus simple).
Du coup, la seule solution reste le passage par du cron.

pikadjou
Auteur

Le cron est il difficile a apprendre? De ce que je peux en voir il suffirait que grace a cela, je fasse executer un script specifique en php qui lui va gerer tout ca tout les X temps

Tu as quel type d'hébergement ? Chez quel hébergeur te trouves tu ? As-tu un accès SSH sur ton hébergement ?

Il existe des services qui permettent de définir une page à appeler tout les X temps (à l'époque webcron, mais c'est devenu payant je crois).

Edit : http://webcron.org/fr/tarifs étant donné les tarifs, on peut sans problème se reposer sur lui sans se ruiner :)

pikadjou
Auteur

En tout cas un enorme merci pour votre aide.

Je suis chez planethoster (un hebergeur canadien) et je compte prendre un serveur dedie mais je vais faire attention a bien prendre un avec accès SSH.

webcron est obligatoire pour appeller une page tout les X temps ou c est juste un outil pour avoir plus facile?

Si tu as un dédié, tu pourras le configurer dessus.