01-11-2016, 04:47 PM
(01-11-2016, 04:33 PM)Xenos a écrit :Citation :ui mais du coup si l'action doit se terminer à 17h00:01 mais que le joueur se connecte qu'à 17h 10 par exemple, il risque d'y avoir des problèmes non ?
Non, car le principe consiste à ne pas tenir compte du moment réel de traitement de l'action (17h), mais uniquement de sa date in-game.
En pratique, ton serveur ne fait rien (pas de démon).
Il reçoit une requête à 17h30 (ou un CRON horaire se lance). Le serveur va alors d'abord ouvrir la BDD, et chercher dedans toutes les actions révolues, mais non encore calculées. Il va alors les calculer, dans l'ordre et en tenant compte de ces dates. Le serveur exécute donc ces actions à 17h30, bien qu'elles devaient avoir lieu avant: ce n'est pas dérangeant, car personne n'était là à 17h02 pour voir si les actions étaient faites.
Par exemple, une attaque doit avoir lieu à 17h01, une autre à 17h12, et une dernière à 17h20. Le joueur vient voir à 17h ce qu'il se passe. Le serveur dit: rien du tout. Le joueur revient alors à 17h30. Le serveur va donc calculer les 3 attaques d'un coup (dans l'ordre), modifier les data en conséquences, puis afficher le bilan au joueur.
Donc, OSEF que l'attaque soit calculée par le serveur à 17h02: ce qui compte, c'est qu'elle a eu l'air d'avoir lieu à 17h02. Le CRON horaire n'est alors là que pour éviter d'avoir une longue stack d'actions en attente qui ralentirait le jeu.
(après, on peut faire une stack globale à tout le serveur de jeu, ce qui est simple, ou faire des stacks différentes par joueur et ne calculer que ce qui va impacter la page qu'on visite, mais là, d'expérience sur Eclerd, c'est ignoble à gérer).
D'accord en fait je crois avoir compris ou tu voulais en venir, de plus on peut toujours utiliser un cron qui s'en occupera si jamais ya personne qui se connecte. Je pense avoir trouver plusieurs solutions je vais essayer toute les possibilités du coup.
Php resque ressemble aussi à la première méthodes que je voulais utiliser, du coup le gros problème d'un Daemon c'est plutôt l'ensemble de ressource utiliser pour peut être pas grand chose. je vais aussi regarde le clone que j'ai, j'ai trouver un sous dossier "Daemons" avec deux fichier PHP (évents et logs) mis j'y comprend rien pour le moment. :-D