JeuWeb - Crée ton jeu par navigateur
Systeme tours complexe ! - 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 : Systeme tours complexe ! (/showthread.php?tid=1044)

Pages : 1 2 3


RE: Systeme tours complexe ! - tchad - 07-04-2007

oui je le sais mais les deux sont valables donc des fois j'utilise la méthode que tu vois dans la citation, et quand je prend mon temps, je fais comme tu fais dans la p'tite remarque Smile Smile


RE: Systeme tours complexe ! - Haiken - 07-04-2007

et bien prends toujours ton temps alors... Wink
la première méthode est à proscrire, car beaucoup beaucoup plus lente. C'est ce genre de trucs qui met facilement un serveur sur les genoux...


RE: Systeme tours complexe ! - Maegia - 08-04-2007

Pourquoi ne pas simplement actualisé tes ressources un jour à la fois, lorsque ce dernier se connecte ? Ça permet de ne gérer les ressources que pour ce joueur, avec ses propres caractéristiques, sans surcharger le serveur. T'as pas besoin d'actualliser les ressources d'un joueur qui n'est pas connecté... Et si un combat a lieu contre un joueur dont les ressources auraient dû être actualisés, tu les actualises au début du combat pour ce joueur en particulier, simplement.


RE: Systeme tours complexe ! - zneman - 11-04-2007

Je viens de mettre mon jeu sur un nouveau serveur où les taches Cron vont bientot etre activées.
Comment faire avec des taches Cron ? Smile


RE: Systeme tours complexe ! - Michu - 11-04-2007

Moi je suis du même avis que Maegia, pour avoir un système plus rigoureux il faut que tu actualise les données a chaque connection du joueur. Moi je le fait même à chaque rafraîchissement de page.
Fait un truc du genre :

ressources + (temps_actuel - temps_du dernier_rafraîchissement * un nombre / 3600 ) (exemple)

et tu stocke le nombre de ressources dans ta BDD en float comme ca tu ne perd pas d'infos mais tu l'affiche en forçant en int :

(int)ressources, comme ca tu a l'impression que le nombre est un entier sans perdre la précision si tu fesais un arrondi à chaque fois.

En général on se sert d'un cron pour actualiser le classement général d'un jeu car si le jeu est célère cela devient lourd pour le serveur de faire les calculs à chaque rafraîchissement


RE: Systeme tours complexe ! - Byleth - 11-04-2007

Si va varie selon les joueurs, oui, tu le fais à chacune de leur connections où à chaque fois qu'il passe sur une page en particulier.

Et oui, tu actualises à chaque fois qu'un autre joueur vient perturber tout ça, c'est le plus simple.


RE: Systeme tours complexe ! - zneman - 11-04-2007

oki... je vais voir ca Tongue
Je vous montre mon code finis (ca risque de pas etre tres beau ^^ xD)


RE: Systeme tours complexe ! - zneman - 11-04-2007

Voila donc ce que j'ai fais:

Code PHP :
<?php
// Je vais recherche le timestamp enregistré dans la BDD
$reponse = mysql_query("SELECT timestamp FROM tours")or die (mysql_error());
$timestampBDD = mysql_fetch_array($reponse);
// Je vais chercher les infos sur les membres:
$reponse_membres = mysql_query("SELECT pseudo, gald, mana, tours FROM membres") or dir (mysql_error());
// Je vais rechercher combien de mages a chaque membre:
reponse_mages = mysql_query("SELECT mages FROM troupes") or dir (mysql_error());
$mages = mysql_fetch_array($reponse_mages);
// Je cherche le timestamp actuel:
$timestamp_actuel = time();
// Je regarde combien de temps s'est écoulé depuis la derniere fois:
$timestamp_ecoule = $timestamp_actuel - $timestampBB;
// S'il s'est ecoulé entre une heure et 2 heures:
if (3600 <= $timestamp_ecoule < 7200)
{
while(
$infos_membres = mysql_fetch_array($reponse_membres))
{
$pseudo_ajour = $infos_membres['pseudo'];
$nouveaux_galds = $infos_membres['gald'] + 50000;
$nouveau_mana = $mages['mages'] * 100;
$new_tours = $infos_membres['tours'] +1;
mysql_query("UPDATE membres SET gald='".$nouveaux_galds."', mana='".$nouveau_mana."', tours='".$new_tours."' WHERE pseudo='$pseudo_ajour'")or dir (mysql_error());
}
}
mysql_close();
?>

Ca m'a l'air vraiment tout faux et inutile mais bon :/
Qu'en dites vous ?


RE: Systeme tours complexe ! - alfanor - 11-04-2007

Euh si tu veux faire un jeu au tour par tour quelle est l'intérêt de mettre à jour les ressources à chaque chargement de page ? La sa deviens du temps réel (enfin temps réel made in PHP, mais temps réel quand même :hahahaha: )

Le mieux c'est que tu utilise les crons si tu veux un jeu parfaitement au tour par tour, enfin bien sûr faut avoir les crons sur son hébergement ou serveurs, si tu utilise un truc bidon du genre webcron tu peux être sûr que sa ne marchera qu'une fois sur deux (voir moins, j'étais sur un petit jeu deux tours sur trois sautés ... des fois deux étaient généré d'un coup ... enfin du n'importe quoi), donc si tu as les crons je te conseille de le faire, si tu ne sais pas faire tu regarde tes identifiant SSH, tu télécharge un logiciel du type Putty, tu te connecte à ton serveur, tu fais un petit "crontab -e" et tu utilise "wget" pour faire charger ta page toutes les X minutes, heures, jours ...


RE: Systeme tours complexe ! - zneman - 11-04-2007

Comme je l'ai dis, les Cron font bientot etre mis en place sur le serveur ou je suis Wink
Le probleme c'est que je ne sais pas du tout comment faire ca ^^