[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: sсheduled tasks
wow9995
Доброго времени суток!

Мне интересен вопрос, о том как делаются "sheduled tasks" в веб-программировании. Для примера возьмем многочисленные онлайн игры в которых нападение одного игрока на другого происходит через некоторое время не зависимо от того в игре атакующий игрок или нет.
Как такое реализовать? Куда смотреть? Что читать?

Заранее благодарю



Спустя 8 минут, 39 секунд (20.03.2011 - 23:12) sergeiss написал(а):
Правильно пишется "scheduled" - в заголовке я тебе поправил.

Спустя 2 минуты, 25 секунд (20.03.2011 - 23:15) inpost написал(а):
wow9995
Ничего не понятно =) Видимо стоит почитать, что это за термин такой выдуманный =)

Спустя 4 минуты, 52 секунды (20.03.2011 - 23:20) wow9995 написал(а):
Опишу подробнее приведенный пример с игрой.
Ваш ПЕРСОНАЖ делает нападение на ИГРОК выбором ИГРОК со списка и нажатием кнопки НАПАСТЬ.
В связи с тем что ПЕРСОНАЖ и ИГРОК территориально размещены в разных концах игрового мира нападение не может быть мгновенным. Соответственно у ПЕРСОНАЖ появляется обратный отсчет. И НАПАДЕНИЕ произойдет по окончанию отсчета НЕ ЗАВИСИМО от того был ли ПЕРСОНАЖ в игре (обновлял ли он страницу или нет)

Спустя 3 минуты, 10 секунд (20.03.2011 - 23:23) neadekvat написал(а):
Такое чувство, будто машинный перевод сейчас прочитал. Особенно второе предложение.

Но если пытаться найти логику.. то как игрок может биться с тем, кто находится на другом конце карты, либо который вообще отсутствует в игре?

Спустя 1 минута, 45 секунд (20.03.2011 - 23:25) Snus написал(а):
wow9995
Записывай время нападения + время до истечения в БД, при загрузке страницы доставай это значение и делай обратный отчет времени time() - время из БД

Спустя 33 секунды (20.03.2011 - 23:25) inpost написал(а):
Есть таблица TASKER, куда все действия заносятся (на такой то минуте - такое то действие). Есть скрипт, который кроном загружается раз в маленький период и проверяет задачник, если надо какое-то действие - он его выполняет. Есть пользователь со своей сессией, откуда тягаются данные из сервера о конкретной ситуации. Например там указываешь, что на данный момент данный пользователь дожидается из задачника действие, когда срок наступил - либо запустился скрипт и выполнил всё, что надо, либо перебросил игрока на страницу поединка. Если скрипт сам выполнил без участия игрока, то достаточно крона, если пользователя перебросить на какую-то страницу, то там Ajax ом посылать запросы с интервалом на сервер и проверять, пора ли перебросить пользователя на отведённую ему страницу для поединка.

Читать: PHP + AJAX + MySQL + Крон.

Спустя 41 секунда (20.03.2011 - 23:26) neadekvat написал(а):
Цитата (Snus @ 20.03.2011 - 23:25)
и делай обратный отчет времени time() - время из БД

Только тогда уж время из бд - time()

Спустя 1 минута, 26 секунд (20.03.2011 - 23:27) Snus написал(а):
Цитата (neadekvat @ 20.03.2011 - 20:26)
Только тогда уж время из бд - time()

Ну да ) Очепяточка smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.