Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 05/02/2010, 15h32   #1
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Par défaut Conseil sur création de jeu php/MySQL

Bonjour,

je suis en train de créer un jeu en php/MySQL (style ogame pour les connaisseurs) mais se déroulant au moyen age (http://img99.imageshack.us/img99/4555/gamesi.png)

La charte graphique est établie ainsi que le le code de "bas niveau" mais là je rentre dans le dur

En fait, j'ai créé une table events de la forme suivante :

Code sql :
1
2
3
4
5
6
7
8
9
10
11
 
CREATE TABLE `events` (
  `id_event` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `id_joueur` int(10) UNSIGNED NOT NULL,
  `type_event` varchar(2) NOT NULL,
  `villagois` int(10) UNSIGNED NOT NULL,
  `date_event` int(10) UNSIGNED NOT NULL,
  PRIMARY KEY (`id_event`),
  KEY `id_joueur` (`id_joueur`),
  CONSTRAINT `events_ibfk_1` FOREIGN KEY (`id_joueur`) REFERENCES `joueurs` (`id_joueur`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Cette table est destinée à recevoir des événements futurs comme la création d'un villageois qui n'interviendra que 2h après sa création par exemple ou alors l'attaque d'un joueur par un autre joueur n'intervenant que 5466, 3750 etc...secondes plus tard après le lancement de l'attaque.
La problématique étant d'exécuter la requete future à la seconde près lors de l'événement (notamment l'attaque).
Pour l'instant, je compte m'orienter vers la création d'une classe de ce type :

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
set_time_limit(0);
ignore_user_abort(1);
 
class Scheduleur{
 
function Scheduleur(){
 
	while(1)
	{
		//Mon code de scan table + execution requete
        sleep(/*un parametre a determiner en fonction du prochain evenement */);
	}
 
}
 
}

Cette classe marchera sans trop de problème je pense mais a un inconvient majeur : si le serveur reboot il faut relancer cette classe et je n'ai pas trouvé comment lancer automatiquement une classe lors d'un boot serveur (Apache).

Mis à part un scan régulier de ma table evenements, je ne vois pas trop comment executer des requetes frequemment et à intervalles de temps variables...

Comment feriez vous de votre coté ?

Merci de vos remarques/suggestions
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 15h46   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
je n'ai pas trouvé comment lancer automatiquement une classe lors d'un boot serveur
tu fais visiblement une confusion : une class est un élément de programmation, elle est donc interne au code PHP.
Ce que tu lances c'est un script PHP ; ce qu'il contient ne change pas la manière dont tu le lances.
Il n'y a d'ailleurs pas plus d'interêt a utiliser une classe dans ton "scheduler" qu'ailleurs dans ton code.

Pour les solutions :
http://matthieu.developpez.com/execution_periodique/

On peut aussi citer, si ton traitement ne consiste qu'en des actions SQL, que certains SGDB (au moins mysql5.1) permettent de planifier des évenements.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 15h55   #3
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Merci de ta réponse

Citation:
Envoyé par sabotage Voir le message
En fait ma classe provient de là (point 6). En fait, pour ce qui est de la planification d'événements, je pense pas que la fréquence d'exécution des requetes soit programmable en fonction d'un valeur d'un champs date d'une table MySQL (j'ai un peu planché dessus sans trouver de réponse) ?

En effet, ce serait probablement la meilleure solution (qui n'obligerait pas à relancer un script durant la nuit par exemple suite à un reboot du serveur de mon hebergeur ) mais je pense pas qe cela soit possible en utilisant une méthode "full MySQL"
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 16h31   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
En fait ma classe provient de là (point 6).
ca parle de classe ?

Citation:
je pense pas que la fréquence d'exécution des requetes soit programmable en fonction d'un valeur d'un champs date d'une table MySQL
L'idée est de regarder à intervalle régulier s'il y a des actions à réaliser ou non.
Si tu as la main sur le serveur, utiliser des crons est une solution précise et simple.
Si tu n'as pas la main sur le serveur, tu ne pourras pas faire grand chose : il est peu probable que tu puisses lancer un script illimité.

Après on peut aussi considérer la necessité de réaliser les actions en temps réel.

Imaginons que je lance la "construction d'un villageois" qui devra se terminer dans 2h ; imaginons qu'aucun joueur ne vienne sur le jeu pendant une semaine : mon villageois aura été créé à la seconde précise ... pour rien.

Imaginons maintenant que je ne déclenche mes traitements que quand j'ai besoin de savoir ou ils en sont.
Je lance ma construction maintenant.
Une heure après un joueur vient dans ma ville : le script regarde s'il y a des actions en cours dans cette ville : un villageois commencé à 16h+2h ... il est 17h, il n'y a rien à faire.
Deux heures après un joueur vient dans ma ville : le script regarde s'il y a des actions en cours dans cette ville : un villageois commencé à 16h+2h ... il est 19h, c'est fini ; il mets a jour la ville avec +1 villageois et il supprime l'évènement.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 16h44   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Citation:
Envoyé par sabotage Voir le message

Imaginons que je lance la "construction d'un villageois" qui devra se terminer dans 2h ; imaginons qu'aucun joueur ne vienne sur le jeu pendant une semaine : mon villageois aura été créé à la seconde précise ... pour rien.
Pour cet exemple là, effectivement pas besoin d'avoir une précision d'horloger suisse mais si on considère l'événement d'une attaque lancée à 14h32m18s et arrivant à 16h10m39s il faut que le joueur attaqué s'il se connecte dans l'absolu à 16h10m40s ai perdu ses unités et ses ressources...

Citation:
Envoyé par sabotage Voir le message
Imaginons maintenant que je ne déclenche mes traitements que quand j'ai besoin de savoir ou ils en sont.
Je lance ma construction maintenant.
Une heure après un joueur vient dans ma ville : le script regarde s'il y a des actions en cours dans cette ville : un villageois commencé à 16h+2h ... il est 17h, il n'y a rien à faire.
Deux heures après un joueur vient dans ma ville : le script regarde s'il y a des actions en cours dans cette ville : un villageois commencé à 16h+2h ... il est 19h, c'est fini ; il mets a jour la ville avec +1 villageois et il supprime l'évènement.
Totalement d'accord pour la "construction" de villageois et de batiment (encore que cela depend si je mets au point une liste de construction pour les batiments => max 2 batiments constructibles en meme temps). Par contre, pour les attaques ton raisonnement ne peut pas marcher puisqu'il impacte un autre joueur qui lui peut très bien etre connecté lors de son attaque sur moi qui suis absent par ex. Merci de tes réponses en tout cas
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 16h46   #6
Nouveau Membre du Club
 
Nours Moreau
Inscription : janvier 2010
Messages : 33
Détails du profil
Informations personnelles :
Nom : Nours Moreau

Informations forums :
Inscription : janvier 2010
Messages : 33
Points : 39
Points : 39
Ouais, pour rejoindre l'idée de Sabotage, dans cestyle nous avions monté un début de Jeu dans le style de celui sur lequel tu semble bosser et on a monter des actions imbriquées assez complexe par cet intermédiaire !...

tu vas me dire si je me trompe, mais ce qui te gènes le plus avec cette méthode, c'est pas le fait de savoir si le villageois est créer, mais plutôt le volume des ressources présentes à l'instant ou un adversaire visite ton village, ressources dépendantes du nombre de villageois présents avec un rapport Prod/Heure ...

Une fois entrée les 200 paramètres qui définissent toutes les actions possibles et inimaginable, la gestion des actions à venir, avec un script qui s'exécute toutes les secondes semble être la meilleur solution !... mais ça prend Vite Beaucoup de ressources serveur.

Nous avons opté pour une jolie classe recherchant à tous les Joueurs imbriqués lorsqu'un utilisateur se connecte ... c'est un peu lourd si il y a une vingtaine d'utilisateurs qui s'échange des données régulièrement ... et qu'aucun ne se connecte durant 15 jours ... mais sinon, c'est assez pratique !

BonCourage
nours312 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 16h55   #7
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Merci

Oui en effet, c'est un peu plus complexe que ce qu'il n'y parait lorsque l'on se plonge dans le code mais ca avance

Je vais méditer sur vos remarques

Thx !
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 17h13   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
Par contre, pour les attaques ton raisonnement ne peut pas marcher puisqu'il impacte un autre joueur qui lui peut très bien etre connecté lors de son attaque sur moi qui suis absent par ex
Non.
Tu remarqueras que je parle bien "d'un joueur" : que ce soit moi, un allié, un ennemi j'ai besoin de lui montrer l'état réel de ma ville ; je produis donc à la demande l'état réel.
Il lance une attaque, le script commence par regarder si des evenements sont terminés.

Le script lancé toute les secondes non seulement est lourd mais en plus, je pense, casse gueule : que se passe t'il s'il met plus d'une seconde à s'executer.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 17h42   #9
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Citation:
Envoyé par sabotage Voir le message
Le script lancé toute les secondes non seulement est lourd mais en plus, je pense, casse gueule : que se passe t'il s'il met plus d'une seconde à s'executer.

Non pas toutes les secondes, je voyais ca de cette manière : vu que le délai le plus court d'un événement sera un espionnage d'un joueur vers un autre joueur (disons 90s) le script sera lancé toutes les 90s et scannera alors la table des evenements. S'il trouve une échéance d'événement arrivant à terme avant 90s alors il se relance entre 2.

Par exemple sur ma table events (id_event, id_joueur, type_event, date_event_start, date_event_end) sin j'ai les enregistrements suivants :

1 1 ES 1265400000 1265400090
2 1 ES 1265400005 1265400095
3 2 CB 1265400011 1265403057
4 3 DT 1265400500 1265405005

(ou ES=espionnage, CB=construction batiment, DT=dev technologie) alors si la script scanne à 1265399990 aucun evenement fini à moins de 90s donc il rescanne 90s plus tard (1265400080) et un evenement se fini dans 10s donc il scanne 10s plus tard etc...
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 18h21   #10
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
vu que le délai le plus court d'un événement sera un espionnage d'un joueur vers un autre joueur (disons 90s) le script sera lancé toutes les 90s
ca ne marche pas
Le script se lance à 14:00:00, 14:01:30, 14:03:00, etc.
Si je lance mon espionnage à 14:01:00, il n'aura lieu qu'a 14:03:00 au lieu de 14:02:30.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 18h26   #11
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Citation:
Envoyé par sabotage Voir le message
ca ne marche pas
Le script se lance à 14:00:00, 14:01:30, 14:03:00, etc.
Si je lance mon espionnage à 14:01:00, il n'aura lieu qu'a 14:03:00 au lieu de 14:02:30.
Non tu as mal compris le but de mon script. Ce script sert uniquement à réaliser des événement (requetes) qui sont DEJA dans ma table events. Lorsqu'un joueur lance un espionnage, il est immédiatement stocké dans ma table events qui elle est scannée par intervalle de temps de 1s à 90s max en fonction des événements déjà insérés
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 18h35   #12
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ba c'est bien ce que je dis : si le joueur vérifie à 14:02:40 son evenement "espionnage demarré à 14:01:00 durée 90s" ne sera toujours pas traité.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 18h41   #13
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Citation:
Envoyé par sabotage Voir le message
Ba c'est bien ce que je dis : si le joueur vérifie à 14:02:40 son evenement "espionnage demarré à 14:01:00 durée 90s" ne sera toujours pas traité.
Non

Citation:
(ou ES=espionnage, CB=construction batiment, DT=dev technologie) alors si la script scanne à 1265399990 aucun evenement fini à moins de 90s donc il rescanne 90s plus tard (1265400080) et un evenement se fini dans 10s donc il scanne 10s plus tard etc...
Si tu lances ton espio 14:01:00, le script scanne à 14:01:30 et detecte qu'un evenement se fini avant 90s. Il scanne donc à la date de l'echeance de cet evenement, l'execute puis rescanne 90s plus tard si le prochain evenement a une date d'echeance > 90s etc
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 18h53   #14
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
ah d'accord pardon je n'avais pas bien lu.
si tu pars sur du temps réel, ca peut etre effectivement une manière intelligente de gérer les cycles de traitement.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 18h57   #15
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Rien n'est encore totalement décidé sur ce point là, mon but initial était de faire une sorte de procédure stockée sql qui s'execute dynamiquement quand un evenement arrive à échéance mais je pense pas que cela soit possible (j'avoue que mes comptences en proc stockées MySQL sont proches du néant...)
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 19h09   #16
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Une "procédure stockée c'est juste une requête pré-enregistrée.
Si on parle de mysql :
Un "trigger" c'est une action qui est automatiquement lancée lorsqu'un evenement se produit ... mais les evenements sont des INSERT, UPDATE ou DELETE.
Un "event" c'est une action programmée dans le temps.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 19h20   #17
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Oui je voulais parler de trigger

Mais dans tous les cas, je n'ai pas trouvé de facon d'exécuter un trigger ou autre à une fréquence variable et encore moins à une fréquence variable récupérée d'une table
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 19h27   #18
Nouveau Membre du Club
 
Nours Moreau
Inscription : janvier 2010
Messages : 33
Détails du profil
Informations personnelles :
Nom : Nours Moreau

Informations forums :
Inscription : janvier 2010
Messages : 33
Points : 39
Points : 39
Tout dépends bien de la logique que tu souhaites mettre en place :

1. la solution que tu envisage (à ce que j'en ai compris^^):
un script qui se lance à chaque évènement dans le temps ... pour tous les joueurs => 2000 Joueurs ... actions à lancer "par moment" toutes les secondes => durée d'exécution du script, supérieur à une seconde => crash

2. un script qui se lance en fonction des actions liées à l'utilisateur chargeant le script => c'est l'utilisateur qui supporte le temps de chargement => pas de perte réèlles de donnée Soucy : Si un second utilisateur lié appele la page avant la fin du script lié au premier utilisateur ne soit terminé => envisager une vérif "encours d'update" ...


A mon avis la seconde solution est la plus adaptée pour ce genre de process ... et c'est pour ça que nous l'avions envisagée, maintenant, je peux me tromper
nours312 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 19h35   #19
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 247
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 247
Points : 2 291
Points : 2 291
Citation:
Envoyé par nours312 Voir le message
Tout dépends bien de la logique que tu souhaites mettre en place :

1. la solution que tu envisage (à ce que j'en ai compris^^):
un script qui se lance à chaque évènement dans le temps ... pour tous les joueurs => 2000 Joueurs ... actions à lancer "par moment" toutes les secondes => durée d'exécution du script, supérieur à une seconde => crash
Oui c'est bien ce qui m'inquiète, j'espère qu'il n'y aura pas trop de joueurs

Citation:
Envoyé par nours312 Voir le message
2. un script qui se lance en fonction des actions liées à l'utilisateur chargeant le script => c'est l'utilisateur qui supporte le temps de chargement => pas de perte réèlles de donnée Soucy : Si un second utilisateur lié appele la page avant la fin du script lié au premier utilisateur ne soit terminé => envisager une vérif "encours d'update" ...
Oui mais les evements (notamment les attaques) se lanceront ils si le joueur attaquant n'est pas connecté ?
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 21h39   #20
Nouveau Membre du Club
 
Nours Moreau
Inscription : janvier 2010
Messages : 33
Détails du profil
Informations personnelles :
Nom : Nours Moreau

Informations forums :
Inscription : janvier 2010
Messages : 33
Points : 39
Points : 39
le principe qu'on a mis en place est qu'à chaque opérations d'un joueur, on fait une recherche sur son Historique et on effectu toutes les opérations lié à cet Historique.

Prenons un cas précis :

Je me connecte, Mon village à été attaqué durant mon absence, mais l'attaquant ne s'était pas connecté depuis, donc je lance le script (vu que c'est lié à l'historique de mon village)

avant de calculer mes éventuelles pertes, je vérifi l'attaquant et constate que sa troupe à est tombée dnas un piège(embuscade) lié à un troisième joueur (lui non plus ne ct pas connecté) ... Pour connetre la troupe m'attaquant, je dois donc effectuer le calcul des pertes sur cette embuscade (précédente à l'attaque de mon village)

Je met donc à jour les joueurs 2 et 3 avant de calculer l'attaque subie par mon village, c'est fait, l'attaquant à 2 unités survivantes et j'ai calculer mes pertes ...

J'ai mis à jour les productions précédents l'offensive, celles perdues durant l'attaque (pillage), mis à Jour mon volume d'unité présent dans le village, mes nouvelles productions et suit pret à passer à l'evennement suivant

J'ai une troupe qui est rentrée de pillage (avant ma connexion, toujours), j'effectue la mise à jour du village attaqué à l'instant de l'attaque, calcule la battaille mes pertes et butins met à jour le profil du 4eme Joueur Jusqu'à la fin de la battaille; Puis je calcul mes ressources précédent leur arrivée, les troupes inactives, ... mes nouvelles vitesses de productions, ...

Et depuis, plus rien !... je rentre donc dans l'historique la mise à jour du stock à cet instant T ...

2 min après, le joueur 2 se connecte, je ne fais pas le calcule de l'attaque, il a été fait et validé par le joueur 1, par contre, je valid les prod jusqu'au retour des troupes (les 2 survivants), et celle précédent ma connexion ! met à jour les stocks Joueur 2 à l'instant T ...


Tout ceci pour dire, que le joueur qui se connecte lance le script permettant la mise à jour des données de tous les Joueurs lié à celui qui ce connecte (dans l'ordre de l'historique) ... puis termine la mise à Jour du joueur jusqu'à l'instant T ... ensuite, tant que le joueur est connecté, les mises à jour sont faites en fonction des infos du Joueur seul ... à chaque mise à jour on informe l'instant de la mise à Jour, ... et c'est tout !

Il est tout a fait possible, avec ce système qu'un Joueur mette à jour Tout le serveur (je plein l'internaute en charge de lancer le script ^^) ... tout comme il est possible qu'un internaute arrive et découvre qu'il à été mêlé à une guerre mondiale, mais le serveur à déjà été mis à Jour donc il ne se rend pas compte du lancement du script !....

Voilà la trame que l'on avait mis en place !... une jolie petite classe avec 3/4 tables ... rien de bien méchant, mais la conception n'a pas été bien simple ^^

@++
nours312 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 21h32.


 
 
 
 
Partenaires

Hébergement Web