помогите создать скрипт который будет, например, к числу N каждую секунду добавлять число M
Спустя 1 час, 43 минуты, 45 секунд (13.04.2011 - 23:27) kirik написал(а):
$n = 0;
$m = 2;
while(1) {
$n += $m; // складываем
sleep(1); // "спим" 1 секунду
}
Но будьте осторожны - он бесконечен :)
Спустя 28 минут, 12 секунд (13.04.2011 - 23:55) Krevedko написал(а):
человек наверное ява-скриптом хотел..типа счетчик ))
хотя каков вопрос, таков и ответ. Код правильный, но результата мы никогда не увидим ))
хотя каков вопрос, таков и ответ. Код правильный, но результата мы никогда не увидим ))
Спустя 18 часов, 16 минут, 32 секунды (14.04.2011 - 18:12) zikworld написал(а):
вы меня не правильно поняли, я хочу сделать для своей рпг регенерацию жизней персонажа
для этого у меня есть:
$max_hp - максимальные жизни
$cur_hp - текущее значение жизней
$hp_regen = $max_hp/100 - само значение регенерации (каждую секунду к $cur_hp добавляется $hp_regen и заносится в базу данных)
вот что я хочу сделать, регенерацию не должны видеть игроки, они должны видеть только $cur_hp...регенерация выполняется внутри программы
для этого у меня есть:
$max_hp - максимальные жизни
$cur_hp - текущее значение жизней
$hp_regen = $max_hp/100 - само значение регенерации (каждую секунду к $cur_hp добавляется $hp_regen и заносится в базу данных)
вот что я хочу сделать, регенерацию не должны видеть игроки, они должны видеть только $cur_hp...регенерация выполняется внутри программы
Спустя 12 минут, 30 секунд (14.04.2011 - 18:24) inpost написал(а):
zikworld
Не так всё просто, если ты поставишь каждую секунду - то при минимальном числе посетителей - сайт загнётся ооочень быстро.
Тут нужна связка PHP + AJAX, и хранишь время последнего состояния ХП, и когда совершается следующее действие с персонажем (именно следующее, а не секунда прошла), тогда высчитываешь пройденный период и прибавляешь хп регенерации. Чтобы в игре смотрелось, будто регенерация идёт в живую, то JS вешаешь счетчик, который будет просто писать показатели жизни, не настоящие, а лишь запустится цикл увеличения ХП до максимума, и счетчик заново каждый раз запускать, чтобы он был на стороне клиента.
Не так всё просто, если ты поставишь каждую секунду - то при минимальном числе посетителей - сайт загнётся ооочень быстро.
Тут нужна связка PHP + AJAX, и хранишь время последнего состояния ХП, и когда совершается следующее действие с персонажем (именно следующее, а не секунда прошла), тогда высчитываешь пройденный период и прибавляешь хп регенерации. Чтобы в игре смотрелось, будто регенерация идёт в живую, то JS вешаешь счетчик, который будет просто писать показатели жизни, не настоящие, а лишь запустится цикл увеличения ХП до максимума, и счетчик заново каждый раз запускать, чтобы он был на стороне клиента.
Спустя 22 минуты, 34 секунды (14.04.2011 - 18:47) Krevedko написал(а):
правда если юзер свалит с сайта во время регенерации, то ничего не сохранится )
Спустя 16 минут, 16 секунд (14.04.2011 - 19:03) zikworld написал(а):
да ненадо что б ктото видел как регенятся хп
я так понял что при каком-то действии запускается таймер, и при следующем действии он фиксирует разницу от запуска в секундах и множится на $hp_regen и добавляет это число к $cur_hp...ну вот мне и нужно узнать как это реализовать, я новичек для вас, ветеранов, это пустяк
заранее спасибо
я так понял что при каком-то действии запускается таймер, и при следующем действии он фиксирует разницу от запуска в секундах и множится на $hp_regen и добавляет это число к $cur_hp...ну вот мне и нужно узнать как это реализовать, я новичек для вас, ветеранов, это пустяк
заранее спасибо
Спустя 37 минут, 4 секунды (14.04.2011 - 19:40) inpost написал(а):
zikworld
Сейчас 50 HP , запись в БД 2020.11.11 11:11:11
Следующий удар по нему в 11:30:11 - прошло 19 минут! В скрипте
50HP + REGEN*(11:30:11 - 11:11:11) = 69hp.
Удар отнимает ХП не с 50, а уже с 69!
Запись показаний ХП, и запись, когда был измерен ХП в БД.
Никакие таймеры не нужны, внутри скрипта урона исчисляешь регенерацию, а потом отнимаешь уже сам урон.
Сейчас 50 HP , запись в БД 2020.11.11 11:11:11
Следующий удар по нему в 11:30:11 - прошло 19 минут! В скрипте
50HP + REGEN*(11:30:11 - 11:11:11) = 69hp.
Удар отнимает ХП не с 50, а уже с 69!
Запись показаний ХП, и запись, когда был измерен ХП в БД.
Никакие таймеры не нужны, внутри скрипта урона исчисляешь регенерацию, а потом отнимаешь уже сам урон.
Спустя 19 часов, 5 минут, 35 секунд (15.04.2011 - 14:46) zikworld написал(а):
да без ударов пока что как будет выглядеть скрипт простой регенерации?
Спустя 3 часа, 48 минут, 31 секунда (15.04.2011 - 18:34) zikworld написал(а):
скажите как расчитать время между 1 обновлением страницы и 2 обновлением?
например я обновил страницу в 10 часов а второй раз в 10.25...как расчитать в секундах разницу и вывести ее?
например я обновил страницу в 10 часов а второй раз в 10.25...как расчитать в секундах разницу и вывести ее?
Спустя 4 минуты, 24 секунды (15.04.2011 - 18:38) inpost написал(а):
zikworld
При чём тут удар? Я говорю конкретно про ЛЮБОЕ действие игрока, ЛЮБОЕ. Подсчет когда он совершает действие, и дату этого действия необходимо записывать, а считать тебе надо разницу дат.
GOOGLE: => PHP => Разница дат, вычитание дат и т.д. в зависимости от твоей идеи реализации.
При чём тут удар? Я говорю конкретно про ЛЮБОЕ действие игрока, ЛЮБОЕ. Подсчет когда он совершает действие, и дату этого действия необходимо записывать, а считать тебе надо разницу дат.
GOOGLE: => PHP => Разница дат, вычитание дат и т.д. в зависимости от твоей идеи реализации.
Спустя 11 минут, 48 секунд (15.04.2011 - 18:50) zikworld написал(а):
и где ее начинать считать и где заканчивать чтоб узнать разницу?
Спустя 42 минуты, 32 секунды (15.04.2011 - 19:33) inpost написал(а):
zikworld
между последним действием и нынешним, когда запущен скрипт. Первый раз дата записывается при создании персонажа, каждый раз, когда дёргаешь данные - пересчитываешь.
У пользователя должно быть что-то вроде "lastActive" или "lastCheckHp" ячейка в БД.
между последним действием и нынешним, когда запущен скрипт. Первый раз дата записывается при создании персонажа, каждый раз, когда дёргаешь данные - пересчитываешь.
У пользователя должно быть что-то вроде "lastActive" или "lastCheckHp" ячейка в БД.
Спустя 9 минут, 22 секунды (15.04.2011 - 19:42) zikworld написал(а):
до самого дошло чуть волосы на себе не пообрывал))
тут без базы никак
тут без базы никак
<?php
$query = mysql_query("SELECT * FROM `users` WHERE `login`='{$welcome}' LIMIT 1");
while($result = mysql_fetch_assoc($query)) {
$timestart = $result['timestart'];
$endtime = time();
$raznica = $endtime-$timestart;
}
$starttime = time();
$querystime = "UPDATE `users` SET
`timestart`=$starttime
WHERE `login`='{$welcome}'";
$sqlstime = mysql_query($querystime);
?>