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


Systeme tours complexe ! - zneman - 06-04-2007

Bonjour/bonsoir.
Mon jeu (MagusWolrd) a énormément avancé ces derniers jours grace aux heures de travails (avec Oualala) que nous avons passé devant nos ecrans Smile

Pour autant, il nous reste un dernier codage important à faire (si si je vous jure :p) Et ce codage n'est autre que celui de la distribution des ressources !

Ce que l'on veut:

- nous voulons que php regarde le timestamp actuel et le compare a celui enregistré dans la BDD.
- Si ce l'écart entre les deux est de 3600 secondes (une heure), il faut qu'il ajoute a chaque membres X galds (la monnaie du jeu), X de mana et 1 tour !

Mes questions:

- comment dire a php d'ajouter X Galds, X de mana et un tour sachant que les galds et le mana dépend de chaque membre !
- Faut il que la BDD soit constamment ouverte pour cela ?
- Serrai ce mieux avec une tache Cron ?

Voila, merci de votre aide, c'est le dernier Gros code du jeu, le seul qui nous manque pour lancer une version alpha Smile (ca se dit ca :/ ?).


Zneman


RE: Systeme tours complexe ! - kunutheking - 06-04-2007

Oui avec un script cron que tu peux mettre en place avec des sites comme http://www.webcron.org/


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

je sais bien mais le plus dure c'est d'actualiser chaque membre de ma table membres et de leur mettre les ressources qui correspondes aux paysans (pour les galds) et aux mages (pour le mana) Sad


RE: Systeme tours complexe ! - Shidame - 06-04-2007

ce qu'il faut que tu fasses (je te deconseil le cron toute les heures ca fais lourd) c'est bel et bien d'utiliser le timestamp

tu stock un timestamp (derniere maj) et tu regarde pour tout les utilisateur ou le timestamp <= timestamp actuel - 3600

et tu actualises ce que tu as à actualiser^^


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

zneman a écrit :je sais bien mais le plus dure c'est d'actualiser chaque membre de ma table membres et de leur mettre les ressources qui correspondes aux paysans (pour les galds) et aux mages (pour le mana) Sad

Ca je sais le faire Shidame Smile

Ce que je sais pas:

comment dire a php d'ajouter X Galds, X de mana et un tour sachant que les galds et le mana dépend de chaque membre !


RE: Systeme tours complexe ! - Shidame - 06-04-2007

bah ca c'est toi qui vois les règles que tu veux, mais tu peux le faire via la requete sql directement sinon jette un oeil dans la rubrique
Créer son jeu en PHP / PROGRAMMATION / Tutoriaux - scripts / Tutoriaux

le sujet a déja été abordé au moins 3 fois

je suis de bonne humeur tiens :
http://www.jeuphp.com/board/showthread.php?tid=245
http://www.jeuphp.com/board/showthread.php?tid=530
http://www.jeuphp.com/board/showthread.php?tid=680


RE: Systeme tours complexe ! - Sephi-Chan - 06-04-2007

L'argent et la mana ajouté à chaque joueur est la même pour tout le monde (exemple : tous les joueurs gagnent 100 de mana ?) ou bien le joueur 1 va gagner 100 de mana, le joueur 2 en gagnera 38, etc. ?

Si c'est le premier cas de figure, tu as juste à vérifier le timestamp, et si l'écart est de 3600 secondes, tu effectues la requête :
UPDATE table_joueurs SET galds = galds + $x, mana = mana + $y, tour = tour + 1;

Si c'est le second cas de figure, j'y réfléchis un peu dans la soirée et donne (peut-être) une réponse demain.


Sephi-Chan


RE: Systeme tours complexe ! - Shidame - 06-04-2007

il faut aussi penser au cas ou l'ecart est supérieur à 1h par exemple 6 heures, dans ce cas il faut en tenir compte et augmenter 6x les ressources


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

j'ai aussi eu ce problème avec une requete à faire qui ressemble à ce que tu veux faire

fais une requète en boucle avec WHILE comme cet exemple :

Code :
<?
$lis = mysql_query("SELECT * FROM nomdetatable") or die("ERREUR SQL !!!");
while($liste = mysql_fetch_array($lis))
{
$calcul = $liste['variable1']+1;
mysql_query("UPDATE nomdetetable SET variable1='$calcul' WHERE pseudo='". $liste['variable2'] ."'") or die ("erreur sql !!!");

?>
<?
}
?>



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

Code :
<?
$lis = mysql_query("SELECT * FROM nomdetatable") or die("ERREUR SQL !!!");
while($liste = mysql_fetch_array($lis))
{
$calcul = $liste['variable1']+1;
mysql_query("UPDATE nomdetetable SET variable1='$calcul' WHERE pseudo='". $liste['variable2'] ."'") or die ("erreur sql !!!");

?>
<?
}
?>

Mon dieu, qu'est-ce que c'est que ce code ? :heuuu:
Tu sais que ça se simplifie en un seul "UPDATE nomdelatable set variable1=variable1+1" ??