09-12-2015, 03:10 PM
Salut,
Sans se jeter dans des websockets, je dirai que:
• Si le serveur connait la date d'un évènement à venir et que l'évènement concerne le joueur (ie, "ton Mage peut lancer ce sort à partir de telle date"), alors cette donnée aura sa place dans les headers de la page (ou dans un appel Ajax fait dès l'affichage de la page, si on veut séparer ces données de la page elle-même).
• Il ne faut pas mélanger les checks serveur de sécurité et les esthétismes du client: le serveur va toujours vérifier que le mage a le droit de lancer son sort quand la page de lancement de sort est requêtée. Coté client, le mieux est de ne pas coder de fioriture esthétique (ie, de truc grisés) et de ne les rajouter qu'après, c'est à dire de les ajouter quand l'action fonctionne bien coté serveur.
Pour le problème 2, étant en PHP, c'est un système d'état qu'il faut, c'est à dire "à la date T, j'ai X points. Quand je demande combien j'ai de points, le serveur regarde la date courante, fait le calcul, met à jour la DB si besoin, et retourne le résultat".
Avec cette mécanique, tu auras un système fonctionnel où le serveur est le "chef" du jeu, et dit où ce jeu en est.
Ensuite, tu peux mettre une surcouche coté client qui fera automatiquement monter le compteur affiché d'1pt toutes les 100 secondes. Le compteur affiché par le client et le compteur réel du serveur seront donc indépendants, mais devraient évoluer à la même vitesse.
Sans se jeter dans des websockets, je dirai que:
• Si le serveur connait la date d'un évènement à venir et que l'évènement concerne le joueur (ie, "ton Mage peut lancer ce sort à partir de telle date"), alors cette donnée aura sa place dans les headers de la page (ou dans un appel Ajax fait dès l'affichage de la page, si on veut séparer ces données de la page elle-même).
• Il ne faut pas mélanger les checks serveur de sécurité et les esthétismes du client: le serveur va toujours vérifier que le mage a le droit de lancer son sort quand la page de lancement de sort est requêtée. Coté client, le mieux est de ne pas coder de fioriture esthétique (ie, de truc grisés) et de ne les rajouter qu'après, c'est à dire de les ajouter quand l'action fonctionne bien coté serveur.
Pour le problème 2, étant en PHP, c'est un système d'état qu'il faut, c'est à dire "à la date T, j'ai X points. Quand je demande combien j'ai de points, le serveur regarde la date courante, fait le calcul, met à jour la DB si besoin, et retourne le résultat".
Avec cette mécanique, tu auras un système fonctionnel où le serveur est le "chef" du jeu, et dit où ce jeu en est.
Ensuite, tu peux mettre une surcouche coté client qui fera automatiquement monter le compteur affiché d'1pt toutes les 100 secondes. Le compteur affiché par le client et le compteur réel du serveur seront donc indépendants, mais devraient évoluer à la même vitesse.