22-01-2014, 10:52 PM
Le mieux à faire dans le cas d'un système d'actions est de se baser sur un timestamp. Tu enregistres le dernier timestamp où le joueur a reçu des points d'actions, puis lorsqu'une interaction avec celui-ci est faite (connexion, attaque ennemie, que sais-je) tu recalcule les points d'actions que tu lui dois depuis la dernière fois.
En fait je ne vois pas bien ta problématique du "spam de touche f5". Ces mécaniques sont de toute façon server-side, et il est une très mauvaise idée de faire un script qui met à jour les points d'action de tout le monde qui soit appelé par un joueur lorsqu'il charge une page. Y'a deux options : la tâche cron qui lance un script pour distribuer des points d'action toutes les x minutes, ou le fait de recalculer les points d'actions de chaque joueur que lorsqu'il y a de l'activité chez celui-ci.
Soit dit en passant, calculer dynamiquement le nombre de point d'actions permet une économie de ressource car ces calculs sont répartis dans le temps; et donner les points d'action à tout le monde d'un coup, ça fait beaucoup d'écriture sur la base de donnée + beaucoup de joueurs qui spamment f5 à la fin du timer, ce qui crée de la charge inutile.
Je ne cerne peut-être pas bien le soucis, dis-moi si je suis à côté de la plaque ^^
En fait je ne vois pas bien ta problématique du "spam de touche f5". Ces mécaniques sont de toute façon server-side, et il est une très mauvaise idée de faire un script qui met à jour les points d'action de tout le monde qui soit appelé par un joueur lorsqu'il charge une page. Y'a deux options : la tâche cron qui lance un script pour distribuer des points d'action toutes les x minutes, ou le fait de recalculer les points d'actions de chaque joueur que lorsqu'il y a de l'activité chez celui-ci.
Soit dit en passant, calculer dynamiquement le nombre de point d'actions permet une économie de ressource car ces calculs sont répartis dans le temps; et donner les points d'action à tout le monde d'un coup, ça fait beaucoup d'écriture sur la base de donnée + beaucoup de joueurs qui spamment f5 à la fin du timer, ce qui crée de la charge inutile.
Je ne cerne peut-être pas bien le soucis, dis-moi si je suis à côté de la plaque ^^