2010-08-24 4 views
0

Je suis en train de créer un jeu en ligne. Il fonctionne relativement en temps réel. Les bâtiments produisent une certaine somme d'argent chaque heure. Le montant d'argent varie d'un joueur à l'autre en fonction de ce qu'ils possèdent.PHP Exécution d'un script horaire

Je dois faire un script php qui calcule combien d'argent ajouter et ensuite l'insérer dans le DB toutes les heures, cela devrait être couru pour chaque joueur.

Quel est le meilleur moyen de le faire?

Merci!

Répondre

1

Le problème avec l'utilisation d'un travail cron pour quelque chose comme ça, c'est que ça prend plus de temps pour calculer l'argent de tout le monde une fois qu'il y a assez de joueurs pour rendre le jeu intéressant. La clé est de trouver des moyens de casser le calcul. Une chose que vous pouvez faire est d'ajouter un horodatage "last_calculation" à chaque utilisateur, et de faire seulement le calcul quand quelque chose arrive où vous avez besoin de connaître l'argent d'un individu. Quand un joueur charge une page qui affiche combien d'argent il a, ou quand quelqu'un lui donne de l'argent, sont deux exemples d'actions où vous voudriez faire le calcul. Une fois que vous avez déterminé quelles sont ces actions dans votre cas, vous pouvez faire en sorte que ces actions vérifient cet horodatage, effectuent le calcul et mettent à jour cet horodatage avant de faire ce qu'elles allaient faire en premier lieu. Si vous faites quelque chose comme ça, plutôt que d'utiliser un travail cron, votre application sera mieux mise à l'échelle. Plutôt que d'avoir un pic de charge énorme chaque heure quand ce truc doit être calculé, chaque joueur peut simplement avoir une fraction de seconde ajoutée à sa demande de temps en temps.

+0

Ouais j'aime mieux cette idée! – user377419

+0

Ce qui est juste ce que j'ai répondu, aussi. ;-) –

4

Vous pouvez probablement configurer un cron job sur le serveur, si votre hôte le permet.

0

La meilleure façon de le faire, je pense est de stocker la dernière fois que l'utilisateur a été connecté et calculer l'argent gagné lorsque l'utilisateur se connecte pour la prochaine fois. Vous pouvez animer cela via JS, si vous voulez (laisser une minuterie augmenter l'argent toutes les heures, de sorte qu'il est corrélé avec le montant calculé par php).

Si vous avez vraiment besoin de la mise à jour horaire, google "cron job". Essayez "cron job gratuit" pour trouver des fournisseurs gratuits ...

Questions connexes