PHP/MySQL | Восстановление єнергии
Всем привет,пользуюсь вот таким алгоритмом для восстановления энергии
$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 все нормально
$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 все нормально
Или предложите свой алгоритм
![wtf](https://bym.guru/modules/smiles/smiles/wtf.png)
Zeref4ik, зачем оффтопить?
Нечего не понял,мысль сформулирована не грамотно,и не понятна
Sibir Games, что не понятно?Когда у игрока вся энергия восстановилась 5/5 он тратит одну энергию,ему показывается 4/5,он обновляет страницу у него снова 5/5 хоть 300сек не прошло чтоб добавилась еще одна.Потом снова тратит одну энергию,и у него 4/5,потом еще 3/5 и так до 0/5 .ПРоблема в том когда у тебя максимальное 5/5,оно один раз прибавляет +1 один раз
wladua2016, вот теперь понятно,а до этого так не льзя было написать?))
Sibir Games, вот еще скрины если что
http://prntscr.com/e05eyq
http://prntscr.com/e05f8j
http://prntscr.com/e05fdw
http://prntscr.com/e05fjxи дальше уже нормально
http://prntscr.com/e05ft5
Ну приношу извинения что не так написал,там на скринах все происходит в пределах - минут
http://prntscr.com/e05eyq
http://prntscr.com/e05f8j
http://prntscr.com/e05fdw
http://prntscr.com/e05fjxи дальше уже нормально
http://prntscr.com/e05ft5
Ну приношу извинения что не так написал,там на скринах все происходит в пределах - минут
Sibir Games, есть идея как исправить?
wladua2016, возможно эта строчка $newFuel = $arr['max_energy']; возвращает максимальное значение? К сожалению, тяжело разбирать логику работы чужого скрипта
________
посл. ред. 31.01.2017 в 02:35; всего 1 раз(а); by etozhedanya
________
посл. ред. 31.01.2017 в 02:35; всего 1 раз(а); by etozhedanya