Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Энергия в игре

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mrKotik
Отправлено: 23 Июля, 2016 - 17:01:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




У меня есть два поля в БД

energy_work сколько в данный момент,
energy_work_time время обновление.

+1 энергия это 90 секунд или полторы минуты.

Максимальная энергия может быть 80, как это сделать чтоб больше 80-ти не было?


Заранее спасибо.
 
 Top
IllusionMH
Отправлено: 23 Июля, 2016 - 21:13:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




mrKotik, при следуюещим тике таймера или просто запросе - проверять сколько получилось и выбирать минимальное между текущей или 80
 
 Top
mrKotik
Отправлено: 24 Июля, 2016 - 12:06:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




IllusionMH пишет:
mrKotik, при следуюещим тике таймера или просто запросе - проверять сколько получилось и выбирать минимальное между текущей или 80
можешь пример алгоритма дать?
 
 Top
mrKotik
Отправлено: 25 Июля, 2016 - 00:11:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Никто не знает?
 
 Top
Fart
Отправлено: 25 Июля, 2016 - 06:19:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. /*макс и минимальная энергия обязательно должны быть - иначе машина не поймет, откуда что взять*/
  3. $energy_max = 80;
  4. $energy_min  = 0;
  5.  
  6. /*время прибавления*/
  7. $time = 90;
  8.  
  9.  /* $time_low - время последней траты
  10. сюда вписываешь время int microtime(), которое должен быть меньше $start
  11. только после пойдет полноценный тест на серверной части*/
  12. $time_low = "";
  13.  
  14. if(empty($time_low))
  15. {
  16.     exit('в переменной $time_low введите текущий UNIX тайм из $start');
  17. }
  18.  
  19. /*старт клока на момент релоуда скрипта*/
  20. $start = explode(" ", microtime());    
  21. $start = (int) $start[1];
  22.  
  23. /*экранируем текущий UNIX тайм */
  24. echo  "UNIX-time:".$start."<br>";
  25.  
  26. /*флурим расчет согласно счетчику UNIX тайму и добавим то, что у нас было по энергии*/
  27. $e = 0;
  28.  
  29. if($energy_min<$energy_max)
  30. {
  31.    $e =  floor(($start - $time_low)/$time)+$energy_min;
  32. }
  33.  
  34. /*максиш энергию согласно диапозону*/
  35. if($e >= $energy_max)
  36. {
  37.     $e = $energy_max;
  38. }
  39.  
  40. /*экранируем текущую энергию*/
  41. echo "Энергия:".$e;
  42.  

код переделываешь под свой. данные передаешь клиентской части, которая анимирует все это дело. удачи!!!

(Отредактировано автором: 25 Июля, 2016 - 06:35:53)

 
 Top
mrKotik
Отправлено: 25 Июля, 2016 - 19:21:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB