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


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

Des crons à la minute vraiment ? Bon à savoir.


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

si tu cherche bien sur le réseau du rhien tu trouve


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

probleme de phpmyadmin chez mon hebergeur, je sais aps quand il sera disponible, je ne pourrais aps tester mon script tant que sa sera pas fini, j'eesaierai de donner un truc quand meme avant jeudi.


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

Comme convenu je poste mon script

Code PHP :
<?
session_start
() ;

//Indentifiants de connexion à la base de données.
require("conf.inc.php");

//Connexion à mysql.
mysql_connect($host,$dblogin,$dbpass);
mysql_select_db($dbname);

//recupération des données sur les membres
$sqlmembres = 'SELECT * FROM donneesmembres WHERE id="'.$_SESSION['id'].'"' ;
$reqmembres = mysql_query($sqlmembres) ;
$datamembres = mysql_fetch_array($reqmembres) ;

//récupération des données de la table stockant la derniere mise à jour des ressources
$sqldernierajout = 'SELECT * FROM ajout WHERE id="'.$_SESSION['id'].'"' ;
$reqdernierajout = mysql_query($sqldernierajout) ;
$datadernierajout = mysql_fetch_array($reqdernierajout) ;

//calcul des productions en fonction des batiments
$prodbat1 = 25 * $datamembres['bat1'] * bcpow(1.1 ,$datamembres['bat1']) ;
$prodbat2 = 17 * $datamembres['bat2'] * bcpow(1.1 ,$datamembres['bat2']) ;
$prodbat3 = 8 * $datamembres['bat3'] * bcpow(1.1 ,$datamembres['bat3']) ;

//recupération du temps actuel
$time = time() ;
//calcul des temps écoulés depuis la dernière maj , $tempsprod
$timedernierajout1 = $datadernierajout['time1'] ;
$tempsprod1 = $time - $timedernierajout1 ;
$timedernierajout2 = $datadernierajout['time2'] ;
$tempsprod2 = $time - $timedernierajout2 ;
$timedernierajout3 = $datadernierajout['time3'] ;
$tempsprod3 = $time - $timedernierajout3 ;

//calcul de production pour 1 sec puis production totale depuis alderniere mise a jour
$prod1init = $prodbat1/3600 ;
$prod1 = $prod1init * $tempsprod1;
$prod2init = $prodbat2/3600 ;
$prod2 = $prod2init * $tempsprod2 ;
$prod3init = $prodbat3/3600 ;
$prod3 = $prod3init * $tempsprod3 ;

// $prod1final, n'est aps tout à fait final. on supprime les virgules, mais pour garder le temsp qui correspond à la partie décimale, il faut calculer a combien de sec correspond ce temps. resultat plus de virgule au prod et au temps.
$prod1final = floor($prod1) ;
$tempsconso1 = $prod1final / $prod1init ;
$tempsconso1 = floor($tempsconso1) ;
$timederniereaction1 = $tempsconso1 + $timedernierajout1 ;
$prod1final = $prod1init * $tempsconso1 ;
$prod2final = floor($prod2) ;
$tempsconso2 = $prod2final / $prod2init ;
$tempsconso2 = floor($tempsconso2) ;
$timederniereaction2 = $tempsconso2 + $timedernierajout2 ;
$prod2final = $prod2init * $tempsconso2 ;
$prod3final = floor($prod3) ;
$tempsconso3 = $prod3final / $prod3init ;
$tempsconso3 = floor($tempsconso3) ;
$timederniereaction3 = $tempsconso3 + $timedernierajout3 ;
$prod2final = $prod2init * $tempsconso2 ;

// on calcule l'heure de la mise a jour en deduisant le temps consommé pour obtenir le temsp non consommé et trouver le temps réel de la maj
$timenonconso1 = $time - $timederniereaction1 ;
$timeajout1 = $time - $timenonconso1 ;
$timenonconso2 = $time - $timederniereaction2 ;
$timeajout2 = $time - $timenonconso2 ;
$timenonconso3 = $time - $timederniereaction3 ;
$timeajout3 = $time - $timenonconso3 ;

//calcul des ressources
$res1 = $datamembres['res1'] + $prod1final ;
$res2 = $datamembres['res2'] + $prod2final ;
$res3 = $datamembres['res3'] + $prod3final ;

//requete sql
$sqlajouttime = 'UPDATE ajout SET time1="'.$timeajout1.'" , time2="'.$timeajout2.'" , time3="'.$timeajout3.'" WHERE id="1"';
$sqlajoutressource = 'UPDATE membres SET res1="'.$res1.'" , res2="'.$res2.'" , res3="'.$res3.'" WHERE id="'.$_SESSION['id'] . '"' ;

mysql_query($sqlajouttime) ;
mysql_query($sqlajoutressource) ;

?>

g pas mis de commentaires si vous ne comprennez absolument pas dites le moi,
beaucoup de truc ne sont aps focement utile mais on a aucun bug et aucun nombre décimaux à la sortie.

on eput gerer 3 ressources diférentes

g éditer


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

Et bien merci pr ce petit script je vai me penché dessus ce week je pense pour voir se que sa donne :=)


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

il marche mais pour une seule personne tu l'inclu ds la page et tu fais une modif pour qu'il marche sur tous et puis c bon.


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

J'ai essayer de comprendre un peu le script mais enfaite j'ai du mal, si tu pouvais me dire tes tables, et si tu peu aussi rajouter quelque commentaire parce que la :omg: lool merci en tous cas


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

vous comprenez mieux la ?


RE: Gestion des ressources en temps réel [version simple] - Cyril381 - 15-02-2007

Bonjour.
Après avoir installer votre script. J'ai mis que toutes les heure chaque mine produit 5 métal. Quand je me connecte il y a écrit :

Citation : Vous avez gagné : 0.30277777777778 Unités de métal depuis votre dernière visite

Comment faire pour que si l'heure n'est pas passé il ya écrit vosu avez gagner 0 unités de métal?


RE: Gestion des ressources en temps réel [version simple] - TiliN - 15-02-2007

Je sais pas je te dis ça comme ça c'est peut être faut
avec $metal le nombre d'unité gagné depuis la dernière connection
Code PHP :
<?
if ($metal<0)
{
echo :
'vous avez gagnés 0 métal depuis votre connection';
}
else
{
echo
'vous avez gagnés ';
echo
$metal;
echo
' depuis votre dernière connection';
}
?>

mais comme je te l'ai dit, ça me parait simple mais ce n'est peut être pas juste >< ou pas ce que tu demandes .....