-
Bjr
AH bizarre ... Chez moi lorsque je ferme le navigateur et que je relance la page le compteur est bien à zéro (c'est normal !) par contre si je me reconnecte avec le même pseudo alors le compteur reprend sa course en tenant compte du temps écoulé.
Evidemment comme je n'ai mis que 100 secondes il faut fermer puis rouvrir la page puis se reconnecter en moins de 100" sinon la partie est déjà finie ! Tu peux bien sûr augmenter la durée
-
Bonsoir,
Sa fait un moment que je suis pas venu (pas trop eu le temps de faire quoi que ce soit mais le 1er script j'ai finalement reussi a le modifier (je c'est je suis lourd a la longue lol) mais j'ai reussi a quelque chose mais maintenant quand j'actualise mon temps est * ainsi que mon niveau
je remet les fichiers.
countdownusine.php
<?php
//session_start();
$now=getdate();
$restant=0;
$last = "stop";
$_duree = isset($_GET["duree"]) ? intval($_GET["duree"]) : 0;
if (isset($_GET["last"])) {$last = $_GET["last"];}
if (!isset($_GET["last"]))
{
if (isset($_SESSION['start_time'])) { $_SESSION['start_time']=0;}
}
if ($last == "stop")
{
if (isset($_SESSION['start_time'])) { $_SESSION['start_time']=0;}
}
else
{
if (isset($_SESSION['start_time']) && $_SESSION['start_time'])
{
$restant= $_duree-(intval($now['hours'])*3600+intval($now['minutes'])*60+intval($now['seconds']))+$_SESSION['start_time'];
}
else
{
$_SESSION['start_time']=intval($now['hours'])*3600+intval($now['minutes'])*60+intval($now['seconds']);
$restant=$_duree;
}
}
?>
<html>
<head>
<title>Game</title>
<style>
body
{
font-size:10pt;
font-family:Arial;
}
div img
{
padding:0px;
margin:0px;
display:inline;
border-width:0px;
}
</style>
<script type="text/javascript">
<!--
function toHMS(duree)
{
var temps = new Array();
var hh = Math.floor(duree/3600);
var mm = Math.floor((duree-hh*3600)/60);
var ss = duree-hh*3600-mm*60;
temps[0]=Math.floor(hh/10);
temps[1]=hh-temps[0]*10;
temps[2]=Math.floor(mm/10);
temps[3]=mm-temps[2]*10;
temps[4]=Math.floor(ss/10);
temps[5]=ss-temps[4]*10;
return temps;
}
var restant=<?php echo $restant; ?>;
function decompte()
{
var seq = toHMS(restant);
for (var i=0; i < 6; i++)
{
document.getElementById("seq_"+i).src="c"+seq[i]+".gif";
}
if (restant)
{
restant--;
window.setTimeout("decompte()",1000);
}
else
{
<?
?>
alert("Batiment finit");
document.getElementById("exec").submit();
}
}
function go()
{
restant=parseInt(document.getElementById("duree").value);
decompte();
}
// -->
</script>
<?php
mysql_connect('localhost','root','');
mysql_select_db('test');
$data = mysql_query('SELECT usine, tpsusine FROM batiment');
while($donnees = mysql_fetch_array($data))
{
$usine1 = $donnees['usine'];
$tpsusine1 = $donnees['tpsusine'];
$usine = $usine1 + 1;
$tpsusine = $tpsusine1 *2;
mysql_query("UPDATE batiment SET usine='$usine', tpsusine='$tpsusine'");
mysql_close();
} ?>
</head>
<body <?php if ($restant) echo "onload=\"decompte()\"";?>>
<div>
<center>
<!--<img id="seq_0" src="c0.gif"><img id="seq_1" src="c0.gif"><img src="colon.gif"><img id="seq_2" src="c0.gif"><img id="seq_3" src="c0.gif"><img src="colon.gif"><img id="seq_4" src="c0.gif"><img id="seq_5" src="c0.gif"> !-->
</center>
</div>
</br>
</br>
</br>
</br>
<?php
if ($last == "stop")
{
include("usine/form_gousine.php");
}
else
{
include("usine/form_stopusine.php");
}
?>
</html>
formgo_usine.php
<?
mysql_connect('localhost','root','');
mysql_select_db('test');
$data = mysql_query('SELECT * FROM batiment Order by usine desc LIMIT 1');
while($donnees = mysql_fetch_array($data))
{
?>
<center><font color="white">
Niveau <? echo $donnees['usine']; ?>
<?
$tpsusine = $donnees['tpsusine'];
$usine = $donnees['usine'];
?>
<form id="exec" name="exec" action="index2.php" method="get">
Durée <? echo $tpsusine * $usine; ?> <input id="duree" name="duree" type="hidden" value="<? echo $tpsusine * $usine ; ?>" size="8" length="8">sec.
<input type="hidden" name="last" id="last" value="go">
<input type="submit" value="Démarrer">
</form>
<?
}
mysql_close();
?>
form_stopusine.php
<img id="seq_0" src="c0.gif"><img id="seq_1" src="c0.gif"><img src="colon.gif"><img id="seq_2" src="c0.gif"><img id="seq_3" src="c0.gif"><img src="colon.gif"><img id="seq_4" src="c0.gif"><img id="seq_5" src="c0.gif">
<form id="exec" name="exec" action="index2.php" method="get">
<input type="hidden" name="last" id="last" value="stop">
<input type="submit" value="Stop">
</form>
Voila si quelqu'un peut m'aider un peu pour eviter que quand je l'arrete ou que je l'actualise les niveau et le temps augmente.
Merci d'avance -
oups j'ai reecrit l'ancien, je voulais dire que le cpt marcher nickel et que je suis en train de le modifier sa fait un bail que j'était pas venu ici la prochaine fois que je posterai je lirai tout avant
-
Je suis aussi en train de développer un MMORPG textuel avec ce type de fonctions, il est vrai que ça a l'air sympa à faire...
Si tu as besoin d'infos laches des koms sur mon forum, j'essaierai de te filer un coup de main .....et la meilleure technique à adopter....je viens de lancer le forum donc personne mais dès qu'il sera référencé ça ira mieux....
voilà l'adresse:
https://debbog2007.kanak.fr/ -
je sais que ce post est ancien mais bon, voila la solution pour creer un compte à rebourds infini en php:
creer une base (ici ma base) avec un champ heuredeplace, et heurerefer mettre les timestamp correspondant(heurerefer etant plus petit). inserer ce script dans toutes les pages.
$chrono="ma base";
$duree=60*60; // durée du compte à rebours (mn X 60 sec)
$query = 'SELECT * FROM '.$chrono;
$result = mysql_query($query);
while ($val = mysql_fetch_array($result)) {
// Variables
$heure_serveur = time(); // heure actuelle
$heuredeplace=$val['heuredeplace']; // ton heure de deplacement (style time dans ta bdd)
$heure_refer=$val['heurerefer']; // ton heure de reference (style time dans ta bdd)
}
// Calcul nouveaux cours
if (time()>=($heuredeplace)){
// Calcul du prochain cours ou redirection pour action, dans ce cas mettre ce qui est entre parentheses dans ta page d'action.
$ope=abs(time()-$heure_refer);
$entier=floor($ope/$duree);
$heure_refer=$heure_refer+($entier*$duree);
$heuredeplace = $heure_refer + $duree;
// Mise à jour du compte à rebourds
$sql = 'UPDATE "'.$chrono.'" SET heureserveur= "'.$heure_serveur.'", heuredeplace = "'.$heuredeplace.'" where id="1" LIMIT 1';
$req = mysql_query($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());
}
// Horloge
$timestampb = abs($heuredeplace - time());
$diff_heure = floor($timestampb / 3600); //Calcul des heures
$timestampb = $timestampb - ($diff_heure * 3600);
$diff_min = $timestampb / 60; //Calcul des minutes
$diff_min = floor(abs($diff_min));
$secb=($heuredeplace - time())/60;// Calcul des secondes
$diff_sec = floor(abs($secb));
$sec3=(($heuredeplace - time())-($diff_sec*60)); // pour afficher l'horloge echo $diff_heure."h".$diff_min."mn".$sec3."sec";
Précédent
- 1
- 2