15-07-2010, 05:12 PM
Merci beaucoup à vous pour vos conseils et réflexions personnelles !
Donc le mieux serait de se baser sur des timestamps pour la fin des effets et pour le rafraichissement uniquement lorsque c'est nécessaire.
Lorsqu'un joueur se connecte par exemple, la zone autour de lui est rafraichie dans le cas où 1 tour ou plus est passé dans la zone depuis le dernier rafraichissement.
1) On cherche tout d'abord les effets périodiques provoquant des pertes/gains de PV, PM et PA (poison, Hâte, etc..)
2) On attribue les nouveaux PV, PM et PA en prenant en compte la génération passive et les effets s'additionnant
3) On regarde tout les effets et on supprime ceux qui n'ont plus raison d'être
4) Mise en cache des cases et ce qui se trouvent dessus
Et cela à chaque rafraichissement.
Problème : les effets pourraient se terminer à n'importe quel moment. Une solution simple pour éviter de déterminer à chaque rafraichissement si l'effet est terminé, serait de faire en sorte que la durée soit en tour. Dans ce cas il faudrait diminuer la durée d'un tour pour avoir un peu plus de précision dans la durée des effets.
Je sais pas si tout ça est très clair ou si ça semble juste, je vais essayer de faire un petit MPD sous MySql Workbench pour voir si ça peut aller. Si vous avez envie de donner un bref avis dessus ça m'aiderait bien.
En tout cas merci beaucoup, ça m'a beaucoup aidé.
Donc le mieux serait de se baser sur des timestamps pour la fin des effets et pour le rafraichissement uniquement lorsque c'est nécessaire.
Lorsqu'un joueur se connecte par exemple, la zone autour de lui est rafraichie dans le cas où 1 tour ou plus est passé dans la zone depuis le dernier rafraichissement.
1) On cherche tout d'abord les effets périodiques provoquant des pertes/gains de PV, PM et PA (poison, Hâte, etc..)
2) On attribue les nouveaux PV, PM et PA en prenant en compte la génération passive et les effets s'additionnant
3) On regarde tout les effets et on supprime ceux qui n'ont plus raison d'être
4) Mise en cache des cases et ce qui se trouvent dessus
Et cela à chaque rafraichissement.
Problème : les effets pourraient se terminer à n'importe quel moment. Une solution simple pour éviter de déterminer à chaque rafraichissement si l'effet est terminé, serait de faire en sorte que la durée soit en tour. Dans ce cas il faudrait diminuer la durée d'un tour pour avoir un peu plus de précision dans la durée des effets.
Je sais pas si tout ça est très clair ou si ça semble juste, je vais essayer de faire un petit MPD sous MySql Workbench pour voir si ça peut aller. Si vous avez envie de donner un bref avis dessus ça m'aiderait bien.
Citation :Bon courage à toi. Le dév est assez long, mais lorsqu'on arrive au bout ... quel soulagementMerci, effectivement il y a du boulot Je sais pas si j'en verrai le bout un jour, on verra bien
En tout cas merci beaucoup, ça m'a beaucoup aidé.