Probleme - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Probleme (/showthread.php?tid=554) |
Probleme - Thenitrofilme - 19-12-2006 Salut, je suis en train de développez un rpg en php du nom d'arcania. La map est déjà finie, la gestion des déplacement aussi, mais voilà g un problème. Je pense que beaucoup d'entre vous connaisse le jeu mounty hall et son système de DLA, c'est la que réside mon problème. En effet g une base de donnée contenant les 4 donnée concernées:
-que Dep son les point de déplacement(une cas egale a -1 dep) -que Dep_max est le nombre maximal de dep -que pac sont les point d'action(une attaque, par exemple, coute 4 pac) -que pac_max est le nombre max de point d'action(pac) Je voudrait que quand un membre se connecte avec son compte, un message lui demande s'il veut jouer maintenant, si oui, la valeur des pac doit vaoilr la valeure des pac_max et la valeur de dep doit valoir celle de dep_max. Si jamais il utilise touten 10 minutes, qu'il se déconecte, il doivent attendre 12heure( depuis le premier message) afin de pouvoir remettre ses pac à pac_max et dep à dep_max en passant par le meme message. Donc en l'ordre: 1.connection du membre. 2.Demande de jouer 3. si oui, dep=dep_max,pac=pac_max 4.joue. 5.il se deconnecte 5 bis. il se reconnecte 6.Si cela ne fait pas 12 heures, on lui fait remarque en indiquant combien de temps il lui reste mais il peut quad meme rentrer dans le jeu sans aucune mise a jour de ses pac et dep 7.Si cela fait 12 heure, on retourne au message2 Je pensait a un timestamp mais voila je ne sais pas comment faire, je vous remercie d'avance pour votre aide. Thenitrofilm RE: Probleme - joshua - 19-12-2006 tout bete.... pour un timestamp, tu utilise la fonction time() tu sauvegardes dans une variable en base la valeur de time() comme "reference" a chaque appel, tu recupere la valeur de dep et de pac. Si time-ref > 12*60*60, alors tu mets dep et pac aux valeurs max. Par contre, tu ne les decremente en base que lorsque le joueur fait un deplacement. ex: Le joueur se connecte apres 12H; on lui affiche la valeur max mais la valeur en base n'est pas changée. le joueur se reconnecte une heure apres et se deplace. les valeurs lui indique alors avant son deplacement le max et apres le max -1, et en plus, en base tu as stocké la valeur de déplacement qui lui reste et le nouveau timestamp. RE: Probleme - Aramiil - 19-12-2006 Tu rajoutes dans ta base de données un champs last (par exemple) Ensuite lorsque l'utilisateur se connecte, tu fais 'UPDATE taTable SET last = ' . time() . ' WHERE ...'; pour mettre le résultat de la fonction time() dans le champs last. Et lorsque l'utilisateur se connecte, tu fais : Code PHP :
Edit: arf, grillé ^^ RE: Probleme - joshua - 19-12-2006 salut aramiil, je ne suis pas d'accord avec toi ^^ Je pense qu'il vaut mieux mettre à jour en base uniquement quand la personne fait des actions pour une raison simple: avec ta methode, si la personne appuie sur refresh plusieurs fois il peut donner une sacrée claque a ta base... surtout s'ils sont 1000 a le faire ou une simple personne malintentionnée. RE: Probleme - Thenitrofilme - 19-12-2006 Merci beaucoup. En fait j'ai trouvé une solution j'utilise une page avec un if du genre(aramiil) Page d'accueil: Code : <? Ensuite la page update.php: Code : <? Est-ce bon? RE: Probleme - gtsoul - 19-12-2006 tu n'as plus qu'à remplacer 43200 par le poids porté et tu obtiens le système de mountyhall (ils se font pas chier avec des cron). et rajouter un ";" ici : Code PHP :
RE: Probleme - Thenitrofilme - 19-12-2006 Ne t'inquiete pas je vien de tout remplacer et sa marche nickel c imposible de frauder et adieu les cron ^^ merci joshua et Aramiil RE: Probleme - Aramiil - 19-12-2006 Pfiou juste pour répondre à joshua oui, je devais être fatigué en écrivant ça ^^" je voulais simplement dire que l'update se faisait lorsque les points était mis à jour, pas à chaque connexion ^^" Faut vraiment que je dorme, moi... |