JeuWeb - Crée ton jeu par navigateur
Gestion des ressources en temps réel [version simple] - 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 : Gestion des ressources en temps réel [version simple] (/showthread.php?tid=362)

Pages : 1 2 3 4 5 6 7


Gestion des ressources en temps réel [version simple] - orditeck - 26-10-2006

Aide pour le tutoriel :
Gestion des ressources en temps réel [version simple]

Toutes les demandes d'aide pour ce tutoriel doivent être faite à la suite de ce message.
Merci de ne pas aller créer un nouveau sujet dans la section demande d'aide : le message sera mis à la corbeille.


RE: Gestion des ressources en temps réel [version simple] - Ysuke - 26-10-2006

J'ai testé ça marche ! Bravo à Toi ! :good:


RE: Gestion des ressources en temps réel [version simple] - Globe - 26-10-2006

Merci Wink


RE: Gestion des ressources en temps réel [version simple] - kunutheking - 26-10-2006

mais si un autre joueur attaque pendant qu'on est pas connecté les ressources sont actualisées ou pas?


RE: Gestion des ressources en temps réel [version simple] - Helifyl - 26-10-2006

kunutheking a raison, si tu bosses sur un système de jeu où les joueurs peuvent piller les ressources de leurs ennemis, cela pose un problème.

Une alternative est de découper une journée en petits tours (3 ou 4 heures): à chaque début de tour les ressources sont attribuées à tous les joueurs. Ce n'est pas vraiment du temps réel, mais ça permet aux joueurs de repasser plusieurs fois par jour. Par contre si on a un très grand nombre de joueurs ça peut être problématique: exécution longue, attribution des ressources déclenchée simultanément par plusieurs joueurs qui martèlent leur touche "réactualiser". On peut par contre trouver des parades à tout ça.


RE: Gestion des ressources en temps réel [version simple] - Globe - 26-10-2006

A toutes les attaques il suffit de réactualiser les ressources.


RE: Gestion des ressources en temps réel [version simple] - Archange - 14-11-2006

Merci pour ce tuto, mais j'ai une qst enfin une remarque, si je laisse le script tel quel ( je parle des valeurs) et bien je sa e me fait pas 1 ressource a la seconde mais 0,xxxxxxx ( qui ne s'ajoute pas ) donc j'ai du modifier pr arriver a ceci

Code PHP :
<?php 
$mine
= 1;
//---------------Productions--------------

$prod_metal = $mine*$temps_ecoule;
au lieu de
Code PHP :
<?php 
$mine
= 10;
//---------------Productions--------------

$prod_metal = ($mine/3600)*$temps_ecoule;
DOnc je voulai savoir si c'etait une erreur de ta part ou plutot de la mienne ( ou une malcomprehension de ma part) , et aussi par exemple si je veu que l'usine ne produise que 0,2( ou autre ) comment puis-je faire ? car si je fai
Code PHP :
<?php 
$prod_metal
= $mine*($temps_ecoule/4);
pour quelle ne produise que 0.25 et bien si j'actualise deux fois ( seconde a la suite )ou plus celle ci ne son pas additioner ( par ex 4 * 0.25 = 1 non ajouter ) , et si je marrange pr mettre 0.5 a la seconde et bien 1 sont ajouter a la ressources ( jspr que tu vois se qe je veu dire ), donc si tu avais une solution ou autre ..

merci Smile


RE: Gestion des ressources en temps réel [version simple] - Globe - 15-11-2006

Code PHP :
<?
//------------ressources-------------
$appel = mysql_query('SELECT * FROM ressources WHERE joueur="'.$id.'"');
$ressource=mysql_fetch_assoc($appel);
//------------*******************************-------------
$temps_actuel = time();
$temps_ancien = $ressource['timestamp'];
$temps_ecoule = $temps_actuel - $temps_ancien;
//-----------------------------------------
//On va ici dire que l'on possède 10 mines
$mine = 10;
//---------------Productions--------------

$prod_metal = ($mine/3600)*$temps_ecoule;

//-----------------------------------------
//---------------M.A.J--------------
mysql_query("UPDATE ressources SET metal=metal+$prod_metal, timestamp=$temps_actuel WHERE joueur='$id'");

?>

Normalement le script fonctionne comme je l'ai donné je pense m'enfin tu me fous le doute alors je vais jeter un oeil ce soir, j'éditerais le message.


RE: Gestion des ressources en temps réel [version simple] - Archange - 15-11-2006

Le script fonctionne oui, mais comme j'ai dit pas une ressource a la seconde ( enfin 10 avec 10 mine ) mais 0,xxx avec les 10 mines enfaite c'est ce passage peu etre

Code PHP :
<?php 
$prod_metal
= ($mine/3600)*$temps_ecoule;

Car le timestamps est deja en seconde ( enfin quand j'ai crée mon entrée timestamp dans ma bdd je ne lui est pas attribué la valeur TIMESTAMP, mais INT, car si c'est la valeur TIMESTAMP alors la ce n'est plus 0,xxxx a la seconde mais une nombre a 5 chiffre ( 32420 par la )


RE: Gestion des ressources en temps réel [version simple] - Globe - 15-11-2006

Oui en effet, j'ai regardé j'ai gardé la base d'un de mes anciens scripts d'ou l'erreur, en fait je comptais par heure, par exemple 100 par heure avec une valeur de table en entiers...

Donc voici :
Code PHP :
<?
//------------ressources-------------
$appel = mysql_query('SELECT * FROM ressources WHERE joueur="'.$id.'"');
$ressource=mysql_fetch_assoc($appel);
//------------*******************************-------------
$temps_actuel = time();
$temps_ancien = $ressource['timestamp'];
$temps_ecoule = $temps_actuel - $temps_ancien;
//-----------------------------------------
//On va ici dire que l'on possède 10 mines
$mine = 10;
//---------------Productions--------------

$prod_metal = $mine*$temps_ecoule;
// Si vous souhaitez determiner la valeur par heure : (($mine*10)/3600)*$temps_ecoule; ici chaque mine produit 10 de métal par heure
//-----------------------------------------
//---------------M.A.J--------------
mysql_query("UPDATE ressources SET metal=metal+$prod_metal, timestamp=$temps_actuel WHERE joueur='$id'");

?>