Я создаю небольшую браузерную игру, и я программирую обработчик ресурсов.
Я использую базу данных PHP и MySQL. я понял, что я не могу обновить базу данных каждую секунду, чтобы увеличить свои ресурсы, поэтому чтение на Stackoverflow, я нашел этот пост:Браузерная игра PHP + MySQL увеличивает ресурс каждую секунду
Я также пытаюсь сделать онлайн-игры в PHP и сталкиваются также этот проблема. Мое решение было довольно простым. Предполагая, что вы используете , используя разные города или планеты, вам понадобится таблица базы данных для города/планеты. В этой базе данных хранятся текущие ресурсы и ресурсов в час. А также временную метку.
Для обновления ресурсов объекта (золото шахты, например) у меня есть база данных , который имеет все здание Ques с начальным время и закончить время.
Тогда я сделал страницу, которую я включил на каждую страницу в игре. Это сначала проверяет, есть ли - любые строительные вопросы для выбранного города, которые должны быть закончены, так как была введена последняя база данных. Если это золото мин было закончено, позвольте сказать 12.00, а метка времени в вашем городе 11.00, а текущее время - 13.00. Что делает страница, она вычисляет все ресурсы за время с 11.00 до 12.00. Затем он обновит золото в час на столе города. И затем он пересчитывает ресурсы с 12.00 до 13.00.
Когда все вышеописанное сделано, оно помещает отметку времени на ток. Но как у вас есть все ресурсы в час со второго запуска, вы можете сохранить в массиве и позволить локальному таймеру запускать обновление ресурсов на экране . Но поскольку вы включаете вышеупомянутую страницу на каждую страницу, , когда вы переходите на следующую страницу, она получит доступ к базе данных, чтобы узнать, что должно быть . Таким образом, локальные данные предназначены только для просмотра . По DutchEcho
Это ссылка: LINK
Я запрограммировал очередь событий, и все в порядке. Проблема заключается в том, чтобы увеличить ресурс, если игрок находится в сети.
Если я сохранить last_login
игрока по time()
, а затем рассчитать новый объем производства у меня есть проблема:
"UPDATE `stats` SET `rock` = `rock`+(('".time()."' - $last_login)*$rock_production)
я делаю: время() - $ last_login. Если я сохраняю last_login каждый раз, когда игрок перезагружает или меняет страницу, это различие всегда будет 0.
Потому что два раза равны.
Как я могу увеличить свой ресурс каждую секунду?
привет, спасибо, что ответили. Я могу это сделать, но я думаю, что моя проблема будет такой же. Я всегда буду вычислять 0-разницу, а также, я не могу использовать last_login (сохраненный при запуске сеанса) в разнице между last_login и current_time, игрок, вероятно, потратит некоторый ресурс. – Vito
- это вопрос о дыре? так что вы обновите все ROW –
нет, это часть кода – Vito