Witam
mam taki problem otóż nie wiem jak zrobić takie odliczanie czasu jak w grach przeglądarkowych by sprawiedliwie odliczać surowce w grze. A dokładniej odliczanie czasu niekatywności na stronie (nie kliknięcia w jakiś link ) lub zalogowania się (by surowce były odliczane nawet jeśli użytkownika nie ma na stronie a po jakiś czasie się zaloguje)
oto to co wymyśliłem sam ale troche to jest nie tak jak ja chciałem ponieważ nie odliczanie jest w sekunach a jeśli zmienie na minuty to użytkownik bd musiał być min. minute nie aktywny
<?php
session_start();
mysql_connect('',',');
mysql_select_db('gra');
$baza=mysql_query('SELECT * FROM user_gra WHERE id=1');
while($row=mysql_fetch_assoc($baza))
{
$water_lvl=$row['lvl_wod'];
$fabrik_lvl=$row['lvl_fabrik'];
$time=$row['time'];
$woda=$row['woda'];
$zywnosc=$row['zywnosc'];
}
$przyrost_wody=0.25*($water_lvl+1);
$przyrost_zywnosci=0.5*($fabrik_lvl+1);
$d=date('d');
$h=date('H');
$m=date('i');
$h_in_s=$h*3600;
$m_in_s=$m*60;
$suma=(int) ($h_in_s+$m_in_s+date('s'));
$_SESSION['log']=true;
if($time==null )
{
mysql_query("UPDATE gra.user_gra SET time='$suma' WHERE id= 1 LIMIT 1") or die('Blad pośredni');
}
$ogółem=(int) ($suma-$time );
mysql_query("UPDATE gra.user_gra SET time='$suma' WHERE id= 1 LIMIT 1") or die('Blad pośredni');
echo' <br />Różnica czasu '.$ogółem.'<br /> czas z ciasteczek '.$time.'<br />';
$woda= (int) ($woda+($ogółem*$przyrost_wody)-($water_lvl*1.0));
$zywnosc=(int) ($zywnosc+($ogółem*$przyrost_zywnosci)-($fabrik_lvl*3.5));
echo'Stan wody :'.$woda.' Przyrost: '.$przyrost_wody.'<br/>';
echo'Stan Żywności :'.$zywnosc.' Przyrost: '.$przyrost_zywnosci.'<br/>';
mysql_query("UPDATE gra.user_gra SET zywnosc='$zywnosc' WHERE id= 1 LIMIT 1");
mysql_query("UPDATE gra.user_gra SET woda='$woda' WHERE id= 1 LIMIT 1");
echo'<center>Budynki</center><hr />';
if($woda>(200*($water_lvl+1)))
{
$wodociagi=$water_lvl+1;
echo'<hr><br/>';
echo'<br />Wodociągi('.$water_lvl.')<br />Masz tyle wody <a href=?build=wodociagi>Buduj na '.$wodociagi.' Poziom </a>';
}
else
{
echo'<hr />Wodociągi('.$water_lvl.')<br />Wymagania: Woda: '.(200*($water_lvl+1));
echo'<br />Nie masz wyst Wody';
}
if($water_lvl>2 and $woda>(350*($fabrik_lvl+1)) and $zywnosc>(550*($fabrik_lvl+1)))
{
$fabryka=$fabrik_lvl+1;
echo'<hr><br/>';
echo'<br />Fabryka('.$fabrik_lvl.')<br />Masz tyle wody <a href=?build=fabryka>Buduj na '.$fabryka.' Poziom </a>';
}
else
{
echo'<hr />Fabryka Pożywienia('.$fabrik_lvl.')<br />Wymagania: Woda: '.(350*($fabrik_lvl+1)).' Żywność: '.(550*($fabrik_lvl+1)).' Wodociągi :Level 2';
echo'<br />Nie masz wyst Wody lub Żywności<hr >';
}
if($time==null and $time==0)
{
mysql_query("UPDATE gra.user_gra SET time='$suma' WHERE id= 1 LIMIT 1") or die('Blad pośredni');
}
///////////////////////////////////////////
if(isset($_GET['build'])){
switch($_GET['build']){
case'wodociagi':
if($woda>(200*($water_lvl+1)))
{
$woda=$woda-(200*($water_lvl+1));
mysql_query("UPDATE gra.user_gra SET woda='$woda' WHERE id= 1 LIMIT 1");
$water_lvl=$water_lvl+1;
mysql_query("UPDATE gra.user_gra SET lvl_wod='$water_lvl' WHERE id= 1 LIMIT 1");
echo'<script>window.location="?";</script>';
}
else
{
echo"<script>alert('nie masz wystarczająco surowców');</script>";
echo'<script>window.location="?";</script>';
}
break;
////////////////////////////////////
case'fabryka':
if($water_lvl>2 AND $woda>350*($fabrik_lvl+1) AND $zywnosc>(550*($fabrik_lvl+1)))
{
$woda=$woda-(350*($fabrik_lvl+1));
mysql_query("UPDATE gra.user_gra SET woda='$woda' WHERE id= 1 LIMIT 1");
$zywnosc=$zywnosc-(550*($fabrik_lvl+1));
mysql_query("UPDATE gra.user_gra SET zywnosc='$zywnosc' WHERE id= 1 LIMIT 1");
$fabrik_lvl=$fabrik_lvl+1;
mysql_query("UPDATE gra.user_gra SET lvl_fabrik='$fabrik_lvl' WHERE id= 1 LIMIT 1");
echo'<script>window.location="?";</script>';
}
else
{
echo"<script>alert('nie masz wystarczająco surowców');</script>";
echo'<script>window.location="?";</script>';
}
break;
/////////////////////////////////////////////////////////
}}
?>