|
|
|
| Здравствуйте, такой вопрос, можно ли как-нить заставить php выполняться в определенное время без вмешательства пользователя? | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:07)
| | только по расписанию. В зависимости от системы, это может быть планировщик задач или таблица cron. | |
|
|
|
|
|
|
|
для: DJ Paltus
(19.03.2012 в 14:09)
| | Вот мне над так чтоб к каждому пользователю(строке в mysql) была привязная выполнение в указанный период, скажем так я делаю он лайн стратегию и при завершении строительства здания над выполнить php код и закончить строительство... | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:18)
| | А зачем Вам именно в указанный период? может Вас устоит такой вариант: - если у юзера страница открыта, то от клиента отправляйте запрос на сервер на завершение действий. А если закрыта, то при входе юзера в игру завершайте все стройки. | |
|
|
|
|
|
|
|
для: Lotanaen
(19.03.2012 в 14:30)
| | Не если его нет стройка должна быть завершена в срок иначе нападающий её не увидет, а если это будет оборонительная стена или башня )) я то же так думал, потом даже хотел написать вин приложение которое отпровляет каждые 10 сек запрос и завершает стройку но потом решил что эт слишко накладно для сервака | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:36)
| | ну так же точно и при просмотре нападающим можно показывать что идет стройка и сколько до завершения стройки осталось, ну и завершать стройку аналогично по запросу.
На кроне он же тоже не увидит, что стройка завершена, если посмотрит например за полминуты до ее завершения. | |
|
|
|
|
|
|
|
для: Lotanaen
(19.03.2012 в 14:39)
| | И так тоже пытался, тока для этого почему то приходить 2 раза делать запрос незнаю почему я 20 раз переписывал код и все равно приходиться посылать 2 запроса ( | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:43)
| | какие запросы и зачем два? | |
|
|
|
|
|
|
|
для: Lotanaen
(19.03.2012 в 14:49)
| | Мне сейчас вам трудно объяснить, но я помню что приходилось 2 раза обновлять одну и туже страницу 1-й раз он строил второй раз показывал что стройка завершена | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:52)
| | а зачем полностью страницу обновлять? ajax используйте. | |
|
|
|
|
|
|
|
для: Lotanaen
(19.03.2012 в 14:56)
| | я с аяксом не очень дружу ( | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:59)
| | Вообще-то это не такой уж и простой вопрос как сделать лучше. Что и как там у вас реализовано я только смутно могу себе представить. | |
|
|
|
|
|
|
|
для: Lotanaen
(19.03.2012 в 15:00)
| | Вообщем скажу так у меня все работает, даже строительство происходит как вы сказали "перед нападением завершает все стройки" тока прихоиться 2 раза отправлять запрос "посмотреть", а если он отправит тока один раз и не увидит что так УЖЕ стоит стена ))) во я пришел сюда узнать про пхп чуть больше | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:18)
| | строительство там заканчивается ровно в тот момент когда оно начинается
просто ставятся две метки времени начало строительства и конец строительства
и ставятся они одновременно, одним запросом
а РНР код выполняется в любое время, но не раньше конца строительства
вот и вся "уличная магия"
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Valick
(19.03.2012 в 14:44)
| | Знаю так и делаю:
$vrema = time() + 3600;
if (time() >= $vrema) echo "Строительство завершено";
|
| |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:48)
| | нет не так :)
у вас практически вся логика должна быть "завязана" на базу данных
грубо говоря $vrema = time() + 3600; в коде быть не должно
я сейчас вам не могу подробно объяснить почему
но конец строительства так же как и начало, это конкретная физическая величина
и она должна быть отражена в базе данных, потому как эти сущности непосредственно влияют на механику игры | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:48)
| | и вообще зацените http://ru.battlestar-galactica.bigpoint.com/big/11?aid=333&aig=311
лично у меня оно надолго отбило желание писать игры :) | |
|
|
|
|
|
|
|
для: Valick
(19.03.2012 в 14:59)
| | Впечатляет, но я видел самые ничтожные сервера онлайн стратегии, на которых было как минимум 1000 игроков | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 15:05)
| | конечно впечатляет, там только название браузерная, на самом деле браузер где-то в сторонке курит, а основную работу делает Unity Web Player
___
если вы хотите стратегию реального времени, то вам либо AJAX либо Flash без вариантов | |
|
|
|
|
|
|
|
для: Valick
(19.03.2012 в 15:18)
| | Я знаю, я не профии, поэтому пока хочу сделать игру по запросам | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:07)
| | другое дело, зачем вам это понадобилось? | |
|
|
|
|
|
|
|
для: Valick
(19.03.2012 в 14:14)
| | Ну так что люди стоит мне браться за эту КРОН систему она поможет мне? | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 14:21)
| | не надо браться за этот КРОН, браться надо за создание таблиц и за организацию грамотных связей между этими таблицами
например таблица строительство:
stroyka
st_id - идентификатор строки (int)
st_user - пользователь которому принадлежит здание (внешний ключ) (int)
st_vid - вид постройки (дом, стена, оградка, башня, замок и тд) (внешний ключ) (int)
st_start - начало строительства (timestamp)
st_end - конец строительства (timestamp)
st_och - очки "жизни" постройки (int)
st_rem - окончание ремонта (timestamp)
ну и еще какие-нибудь поля характеристики конкретной постройки | |
|
|
|
|
|
|
|
для: Valick
(19.03.2012 в 15:37)
| | Так есть у меня отдельная таблица строительства, все есть сторойка проходит отлично тока у меня проблема с окончанием строительства при отсутствии пользователя | |
|
|
|
|
|
|
|
для: Dazzl
(19.03.2012 в 16:12)
| | Так есть у меня отдельная таблица
так покажите ее структуру
блин, ну как вам еще объяснить, что с окончанием проблем быть не должно, хоть онлайн пользователь, хоть вообще месяц не заходил, и ему кто-то в подарок хату построил
есть конкретная дата окончания постройки, которая сравнивается с текущей меткой времени при запросе к бд, если текущее время меньше чем время окончания постройки, то значит не построено, если текущее время больше времени окончания постройки, то построено | |
|
|
|