Всем привет,пользуюсь вот таким алгоритмом для восстановления энергии
Но есть в нем ошибки,когда набрал максимальное количество энергии,тратишь одну,она снимается,и когда обновляешь страницу,и +1 одна энергия добавляется,и дальше до 0 все нормально
$currentDate = time();
$dateDiff = $currentDate - $arr['fuel_time'];
$newFuel = $arr['energy'];
//1500 сек - время полного восстановления ...
if ($dateDiff < 300 && $newFuel < $arr['max_energy'])
{
while ($dateDiff > 60)
{
$newFuel++;
if ($newFuel >= $arr['max_energy'])
{
break;
}
$dateDiff = $dateDiff - 60; //300 сек == 5 мин
}
}
else
{
$newFuel = $arr['max_energy'];
}
if ($newFuel != $arr['energy'])
{
$sql->query("UPDATE `users` SET `energy`='$newFuel', `fuel_time`= '$currentDate' WHERE `id`='$id_user' ");
}
Но есть в нем ошибки,когда набрал максимальное количество энергии,тратишь одну,она снимается,и когда обновляешь страницу,и +1 одна энергия добавляется,и дальше до 0 все нормально