|
|
|
| Вот у меня есть переменная, скажем $hp. Она имела, к примеру, значение 500. После некоего действия с ней, она стала равной 0. Надо сделать, чтобы она за 10 минут стала опять равной 500. Тоесть на 5 минутах должна быть равной 250, на 2,5 минутах 125, вообщем плавно. Эта переменная не должна быть дробной!
Внимание вопрос: как это сделать?
И ещё. Мы, повторюсь, делаем игру. Так вот - с помощью чего надо проверять в игре ли пользователь или нет? Я думаю можно заносить в базу время последнего действия (отправка сообщения в чате, переход куда-то и т.д) и сравнивать с текущем временем. Вот только как это сравнивать я не знаю! Подскажите пожалуйста! | |
|
|
|
|
|
|
|
для: Trunk
(26.05.2005 в 21:32)
| | А где хранится значение переменной? В базе данных или в файле? Или в массиве GLOBALS?
Вы правы, на клиентской машине работает JavaScript который каждые N секунд отсылает запрос серверу (открывает ссылку например) | |
|
|
|
|
|
|
|
для: Flash5
(26.05.2005 в 22:45)
| | Переменная хранится в БД. И ещё надо, чтобы она восстанавливалась независимо от пользователя! | |
|
|
|
|
|
|
|
для: TrunK
(27.05.2005 в 08:49)
| | Я быть может не очень правильно понял задачу, но если данная переменная для каждого пользователя своя, то все очень просто: присваиваем переменной значение 500 и запоминаем время обращения. Затем, при каждом заходе пользователя сравниваем время записи с текущим и, если разница больше определенного интервала, то меняем значение переменной. | |
|
|
|
|
|
|
|
для: Loki
(27.05.2005 в 09:43)
| | Да нет же... Эта переменная - есть жизни персонажа. Ну вообщем как во многих рпг. Вот у вас есть 1 жизнь из 500 возможных. К примеру за 3 секунды должен восстановится 1 % жизней (от 500). Как это сделать??? | |
|
|
|
|
|
|
|
для: TrunK
(27.05.2005 в 15:03)
| | Так а чем мой вариант не устраивает?
Есть персонаж. Для простоты пусть у него будет 3 параметра: id (имя), здоровье, время последнего удара.
Предположим, персонаж получил удар, который отнял 250 единиц здоровья. При следующем обращении к этому персонажу (причем, обращении как самим игроком, так и его противником), вычисляем его здоровье:
здоровье_текущее=(здоровье(после последнего удара)+(текущее время-время последнего удара)/3)
Если он получает очередной удар, то записываем в базу здоровье=здоровье_текущее-сила удара и дату удара.
Я, к сожалению, от игр совсем далек, так что фантазирую только из тех данных что вы сами предоставили:) | |
|
|
|
|
|
|
|
для: Trunk
(26.05.2005 в 21:32)
| | Для этой цели вам понадобится хостинг с поддержкой cron, с помощью него можно указать как часто должен запускаться (автономно) некий скрипт. | |
|
|
|