Здравствуйте, я делаю бота в вк. Одна из его это некая игровая рулетка. Опишу её подробнее.
Допустим у нас есть внутриигровая валюта - буду называть её просто коинами.
Пусть в рулетке будет падать любое число от одного до ста(при этом с проверкой честности(то есть генерацией хеша из числа и секретного слова, которое будет показываться после итога-но это я уже сделал). Так вот игрок должен выбрать чётное выпадет число или нечётное. Как только он делает выбор(если он был первым игроком в этом раунде) должен запускаться таймер на 60 секунд(ЭТО первая проблема), а его имя вместе с сумой ставки должно записываться в бд(mysql). Если же игрок был не первым, то он и его ставка просто записывается в бд.(запись в бд-это не проблема). При этом должна быть кнопка "статус", нажав на которую, бот должен отправлять следующее сообщение:
До конца раунда осталось [кол-во секунд](то есть это время до истечения таймера-ЭТО вторая проблема)
Ставки: (по структуре: имя-ставка)(то есть тут берутся данные из бд)
Контроль честности: (тут сгенерированый при начале раунда хеш).
Продолжу. По истечении таймера(ЭТО третья проблема) бот должен очищать таблицу в бд и всем поставившим игрокам отправлять следующее сообщение:
Выпало число (тут число). Секретное слово:(тут слово, которое использовалось при генерации хеша).
Вот в принципе и весь алгоритм. Как Вы поняли возникло три проблемы, все они связаны с таймером. То есть меня интересует, как на php создавать таймер, проверять, сколько времени осталось до истечения, и как выполнять действие после окончания таймера. Пожалуйста, поделитесь своими мыслями по этому поводу-буду очень благодарен. Спасибо!
а в чем проблема? при старте записываешь time(); как начало игры.
по кнопке статус сравниваешь нынешний time() и с твоим записанным и пишешь сколько осталось
при окончании игры тут уже, к примеру, можно по крону каждый раз проверять по той же схеме сравнивания времени, и когда время пришло - выполняй все что ты хотел.
BotTimofey, вот сейчас если ты сохранишь значение time() - оно будет 1588524186
а если через пару секунд еще раз - оно будет 1588524226
какое число будет если из второго отнять первое? вот это и есть сколько прошло
iBird Rose, да, это то я понял(и уже реализовал), а как сделать что бы оно проверило ровно через 60 секунд, то есть что бы бот понял, что раунд кончился?
BotTimofey, ну к примеру, зацикли какую-то функцию в пхп и пусть она всегда проверяет пришло время или нет. если пришло - делает, то что нужно и дальше проверяет.
BotTimofey, очень зря. Лучше потратить день, чтобы переписать, чем потом материться и оплёвываться поддерживая всё это. Тем более если рулетка - значит достаточно много юзеров будет играть одновременно. Пых в этом не очень хорош (по опыту говорю, сам делаю телеграм ботов на нем, в т.ч. и рулетки, по скорости ответов и работы он в разы уступает тому же питону)