Регенерация здоровья на PHP
|
|
Derpie | Дата: Воскресенье, 11 Мая 2014, 19:53 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Я разрабатываю браузерку для телефонов, и мне нужно реализовать регенерацию здоровья у меня есть две переменных максимального и текущего здоровья проблема в том что я незнаю как сделать чтобы оно регенерировалось через определенный промежуток времени, я уже гуглил ничего не нашел. Надеюсь мне тут помогут.
Сообщение отредактировал Derpie - Воскресенье, 11 Мая 2014, 19:55 |
|
| |
lvovand | Дата: Воскресенье, 11 Мая 2014, 20:05 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| как часто должно регенирироваться? можно кроном запускаить скрипт, можно смотреть время между кликами игрока и в зависимости от прошедшего времени считать здоровье
Разработка и продвижение сайтов. Дизайн
|
|
| |
Derpie | Дата: Воскресенье, 11 Мая 2014, 20:08 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Цитата lvovand ( ) как часто должно регенирироваться? Через 4-5 минут. Цитата lvovand ( ) можно кроном запускаить скрипт, Цитата lvovand ( ) можно смотреть время между кликами игрока и в зависимости от прошедшего времени считать здоровье Можно поподробнее?
|
|
| |
Saitei | Дата: Воскресенье, 11 Мая 2014, 20:36 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Цитата Derpie ( ) Цитата lvovand () можно смотреть время между кликами игрока и в зависимости от прошедшего времени считать здоровье
Можно поподробнее? Можно получить серверное время и сравнить с тем, когда была последняя регенерация. Если модуль разности времен >=5 минут, то делаем регенерацию
Сообщение отредактировал Saitei - Воскресенье, 11 Мая 2014, 20:37 |
|
| |
Derpie | Дата: Воскресенье, 11 Мая 2014, 20:46 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Цитата Saitei ( ) Можно получить серверное время и сравнить с тем, когда была последняя регенерация. Если модуль разности времен >=5 минут, то делаем регенерацию Я не понимаю, можно пример если не трудно с меня +
|
|
| |
Saitei | Дата: Воскресенье, 11 Мая 2014, 20:59 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| Derpie, я не особо много на PHP сидел, но так можно получить часы\минуты\секунды: Код $info = getdate(); $hour = $info['hours']; $min = $info['minutes']; $sec = $info['seconds']; Где-то на сервере (в текстовом файле или базе) надо хранить переменную "А нужно ли регенерировать?" и переменную со временем последней регенерации. Дальше над мелочами сам подумай. Модуль разности это всего лишь расстояние. Пример: 2-3 = -1 //Ничего необычного l2-3l = 1 //Т.к. 2-3<0, то модуль равен 1. Но, думаю, ты это итак понимаешь и знаешь Ни в коем случае не делай регенерацию на javascript, иначе в игре появятся игроки с... кхм... god mode'ом : ))
|
|
| |
LunarPixel | Дата: Воскресенье, 11 Мая 2014, 21:01 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Как можно делать что-то относительно масштабное и не знать, как сделать, по сути, простейшую вещь. Есть несколько вариантов, как один из них:
После боя записываешь в базу текущее время/дату. При обновлении страницы сравниваешь текущее время и записанное (время, само собой, серверное). В зависимости от разницы во времени восстанавливаешь N здоровья, например, 1 единицу за каждую минуту.
|
|
| |
Saitei | Дата: Воскресенье, 11 Мая 2014, 21:09 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| LunarPixel, присоединяюсь к такому подходу. Разве что дополнение: надо проверять, а нужна ли регенерация. Если нет - то и время проверять смысла нет
|
|
| |
Derpie | Дата: Воскресенье, 11 Мая 2014, 21:11 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Всем спасибо за помощь, решил тем что записываю время последней регенерации в БД и сравниваю с текущим. Добавлено (11.05.2014, 21:11) ---------------------------------------------
Цитата Saitei ( ) Разве что дополнение: надо проверять, а нужна ли регенерация. Уже есть. Цитата LunarPixel ( ) Как можно делать что-то относительно масштабное и не знать, как сделать, по сути, простейшую вещь. Ну я ведь только учусь.
|
|
| |
lvovand | Дата: Воскресенье, 11 Мая 2014, 21:20 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Цитата Derpie ( ) решил тем что записываю время последней регенерации в БД и сравниваю с текущим только getdate() совсем необязательно, лучше сделай целочисленное поле в базе, и пиши туда текущее время time(), при обновлении страницы смотришь разницу текущего time() и тем что в базе, получишь разницу в секундах
Разработка и продвижение сайтов. Дизайн
|
|
| |
Saitei | Дата: Воскресенье, 11 Мая 2014, 21:23 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| Стёрто. Ляпнул глупость, пардон)
Сообщение отредактировал Saitei - Воскресенье, 11 Мая 2014, 21:25 |
|
| |
Derpie | Дата: Воскресенье, 11 Мая 2014, 21:36 | Сообщение # 12 |
был не раз
Сейчас нет на сайте
| Цитата lvovand ( ) только getdate() совсем необязательно, лучше сделай целочисленное поле в базе, и пиши туда текущее время time(), при обновлении страницы смотришь разницу текущего time() и тем что в базе, получишь разницу в секундах Так и сделал.
|
|
| |