Loading...
Игрок использует симулятор , ему даётся бонус к параметру на 1 час , я записываю параметр в users , то есть прибавляется к текущему параметру,. после 1 часа у игрока заканчивается симулятор и если игрок зайдут в игру , то у него автоматов минус параметры (бонус от симулятора) , но это если он зайдет в игру ещё раз. А вот что если игрок использовал симулятор и вышел с игры и не зашёл больше в игру , то у него не снимутся бонусы от симулятора
Как можно реализовать правильно
Кроном сбрасывай и все
n0o0b , нагрузки не будет ? Например проверять 100000 записей каждую минуту
213731682 , 100к записей, это не о чем вообще, тем более у тебя там не будет никаких условий сложных, если сделать руками
________
посл. ред. 07.08.2022 в 22:38; всего 1 раз(а); by n0o0b
Сделай проще, использовал симулятор свой записалось, записалось в user параметр и так же записалось в таблице допустим simulators id users и id симулятора который использовал ну и время, дальше как время прошло, с таблицы simulators удалился запись, у user убрался параметр и все ок
Это все проще делается.
1. Ставим значение симулятора и дату. 2. Вставляем где то в шапке запрос update simul='0' если date < текущее время
________
посл. ред. 07.08.2022 в 23:34; всего 1 раз(а); by Saha_M
Saha_M (07.08.2022 в 23:32)
Это все проще делается.
1. Ставим значение симулятора и дату. 2. Вставляем где то в шапке запрос update simul='0' если date &lt; текущее время
Ты то не знаешь где он хранит эти стимуляторы свои, в бд или нет. Может просто припокупке они просто добавляются, а может симуляторы эти как элексир идёт и так далее. Короче много вопросов.
Saha_M (07.08.2022 в 23:32)
Это все проще делается.
1. Ставим значение симулятора и дату. 2. Вставляем где то в шапке запрос update simul='0' если date &lt; текущее время
Худшее, что вообще можно было посоветовать) никогда так не делайте
php
   // все игроки у которых истек время сималяторов   public static function get_expired_simulator() {     $sql = "select * from users_simulator where time_simulator < ?";     return fetchAll($sql, array(time()));   }    public static function ctr_simulator_active() {     if (!empty($user_pack = self::get_expired_simulator())) {        foreach ($user_pack as $all) {         $bonus_name = self::get_bonus_simulator($all['id_simul']); // название бонусa симулятора         $param_bonus = self::get_param_bonus_simulator($all['id_simul']); // какой прибавок          // минусуем парметры от симулятора         uc::update_param($all['id_user'], $bonus_name, -$param_bonus);          // удаляем         self::dell_simulator($all['id_simul']);        }     }   }   
Сделал вот так
Онлайн: 4
Время:
Gen. 0.1071
(c) Bym.Guru 2010-2026