[Résolu] Probleme dans l'augmentation d'un niveau - 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 : [Résolu] Probleme dans l'augmentation d'un niveau (/showthread.php?tid=1114) |
RE: Probleme dans l'augmentation d'un niveau - Angelko - 21-04-2008 ceci ne marchera pas car if($donnees_joueur['temporairehopital']>$tempsactuel) { la on mais le compte rebours !!! ça ok !! } else { l'augmentation du niveau } mais a chaque fois que le joueur refresh, le niveau augmente car cette condition "$donnees_joueur['temporairehopital']>$tempsactuel" est vérifié kan y a plus de compte a rebours !!! Ou alors j'ai toujours pas pigé !! RE: Probleme dans l'augmentation d'un niveau - Belsion - 21-04-2008 Rappelle toi quand tu étais jeune et que tu notais tes devoirs à faire dans ton agenda. Tu ne refaisais jamais ce que tu avais déjà fais parce que tu le barrais ou que tu l'effaçais de ton agenda... Là c'est pareil, soit tu indiques dans ta base que c'est déjà fait, soit tu effaces ce qui as été fait. Là tu as tout ce qu'il te faut pour arriver au bout. RE: Probleme dans l'augmentation d'un niveau - Angelko - 21-04-2008 Excuse moi c'est un peu flou !! J'y réfléchirais mais je vois pas comment faire. Peut être un booléen ( J'adore les booléens )! Oui ça doit être ça ^^ RE: Probleme dans l'augmentation d'un niveau - Angelko - 21-04-2008 C'est bon ça marche sauf que bon il faut que le joueur refresh tout seul mais bon ^^ perso c'est un bon début pour un test ^^ ! Merci beaucoup tous pour votre aide !! A l'avenir j'aurais surement encore besoin de vous jusqu'à ce que la première version de mon jeu sorte ^^ !! Merci RE: Probleme dans l'augmentation d'un niveau - Angelko - 21-04-2008 Attendez ce n'est pas finit: voila ce que j'ai rajouté Code PHP :
En gros le joueur doit se connecté s'il veut son niveau !! Il n'y a pas un moyen pour que le niveau augmente même si le joueur n'est plus la ? ( ou alors dans tous les jeux PHP il faut se connecter pour avoir son niveau ?? ) De plus je ne comprends pas le joueur doit refrech deux fois !! RE: Probleme dans l'augmentation d'un niveau - Kassak - 21-04-2008 Moi pour avoir un semblant de temps réel, je met les scripts dans ton genre, du moins la requête finale dans le header, qui se lance a chaque clique, donc il suffit qu'un joueur soit connecté et qu'il clique pour mettre à jour tous les autres joueurs, ce qui permet d'avoir un classement un peu plus réel RE: Probleme dans l'augmentation d'un niveau - Belsion - 21-04-2008 Faut utiliser un cron pour ça. Si personne n'est là pour exécuter les scripts alors rien ne va se passer. Tu peux toujours t'inspirer de ce tuto pour comprendre le mécansime: http://www.jeuweb.org/board/showthread.php?tid=530 Si le joueur doit rafraîchir la page, c'est simplement parce que tu exécutes ta construction à la fin de ton script, après ton affiche. Commence par tes traitements sur les données et fait l'affichage seulement après. Sinon quelques conseils à la volée pour ta bdd. A priori tu n'utilises qu'une seule table avec des SELECT *, c'est pas, mais alors vraiment pas la meilleure solution. Divise tes tables ça te simplifierais beaucoup de choses. Tu pourrais très bien avoir les tables suivantes - membres (id_membre, pseudo,mail, pwd,...) - batiments(id_membre, id_batiment, niveau...) (dans ce cas un batiment pas enregistrement, mais tu pourrais avoir l'intégralité des bâtiments du joueur dans la liste) - batiments_encours(id_membre, id_batiment, temps_fin,...) - liste_batiments(id_batiment, nom_batient, description,...) Avec cette répartition, tu peux très facilement voir pour un joueur donné quels sont ses bâtiments en cours de construction, et quand la construction est achevée, il suffit de supprimer l'enregistrement de la table batiment_encours. Ce n'est là qu'un exemple, des solutions il y en a énormément, mais tout mettre dans une seule table est à proscrire. Va voir ce tuto: http://www.jeuweb.org/board/showthread.php?tid=2157 et il y en a encore d'autres qui traînent Ensuite, au niveau des connexion/déconnexion à la bdd. Au lieu de faire une connexion avant chaque requête et de la refermer juste après, préfère faire une connexion au début de tes traitement et une déconnexion en sortie de tes traitements. Dans ton cas, tu ne devrais avoir qu'une seule connexion et une seule déconnexion. En continuant sur ce chemin, passe par des include ou des appels de fonctions pour les gérer. Là si tu utilise un autre utilisateur que "root" ce qui est souhaitable et même obligatoire quand ça sera en ligne) tu devras le changer dans tous tes scripts, en passant par des fonctions ou des include, tu n'auras plus qu'un fichier à modifier. @Kassak: Imaginons que tu te retrouves avec 2.000 joueurs sur ton site, tu vas vraiment faire la mise à jour pour l'intégralité de tes joueurs. Si tes traitements sont simples ça va passer, mais si tu dois faire une boucle pour rentrer dans les détails de chaque joueur, tu risque d'avoir des petits soucis. Personnellement, j'ai opté pour une solution où chaque joueur met à jour son propre compte, et j'ai un cron qui fait une mise à jour générale toutes les heures RE: Probleme dans l'augmentation d'un niveau - Angelko - 21-04-2008 Merci pour ton aide Belsion tes conseils ne sont pas tombés dans l'oreille d'un sourds. J'essayerai de me coder selon ça !! Petit a petit j'avance ^^ !! Même si j'ai pas trop compris l'histoire du "cron" lol Encore merci pour vos conseils ^^ RE: Probleme dans l'augmentation d'un niveau - Kassak - 21-04-2008 Belsion, en effet je ne m'occupe que des petits traitements, rien de vraiment énorme, pour tout le reste c'est par CRON, chaque heure ou chaque jour. Angelko, un CRON, c'est un script que tu lanceras a intervalle régulier, toutes les minutes, les heures, 1 fois par jour, par mois etc... Des sites sont spécialisé pour ça, moi j'utilise Online Cron, mais il y en a d'autre. Pour te donner un exemple, dans ton script, tu te connecte a la BDD, tu fait une requête qui rajoute 10 points d'action à tous les joueurs, et tu le programme pour qu'il se lance chaque heure, ainsi toutes les heures tous les joueurs gagneront 10 points d'action. Tu piges le système? RE: Probleme dans l'augmentation d'un niveau - Belsion - 21-04-2008 cron = exécution d'un programme ou d'un script à intervalle de temps régulier Une liste de site proposant ce genre de service: http://www.onlinecronservices.com/ |