genr 0 Опубликовано 14 июня, 2018 Доброго времени суток! Пришла мысль сделать поминутную аренду мопедов, то есть плата только по факту использования. Представляю я это так: есть таймер, который каждую минуту проверяет, использует ли игрок аренду. Если да - берётся плата за минуту, нет - ничего не происходит. Как это реализовать и будет ли серьёзная нагрузка на сервер, есть ли у мысли право на жизнь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 14 июня, 2018 @genr, ничего страшного не случится, если ее воплотить в жизнь. Единственное, сделать это стоит грамотно. Не просто создать таймер при старте сервера, где циклом перебирать всех игроков, арендуют ли они транспорт и истекло ли время... Создать, конечно же, стоит индивидуальный таймер, и даже будет лучше, если Вы код проверки аренды добавите в уже имеющийся секундный таймер (неужели у Вас такового нет?). А далее лишь стоит создать переменную, например, new pRentVehicle[MAX_PLAYERS]; Затем в OnPlayerConnect или OnPlayerDisconnect ее аннулировать (если она равна нулю, значит игрок ничего не арендует). Увеличение времени аренды делать примерно так: pRentVehicle[playerid] = gettime()+(количество секунд аренды); Если у Вас это поминутно, то и самому будет удобно иметь такую структуру: pRentVehicle[playerid] = gettime()+60*(количество минут аренды); Ну, и проверять так: if(pRentVehicle[playerid] && pRentVehicle[playerid] < gettime()) { // срок аренды истек } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
genr 0 Опубликовано 20 июня, 2018 , спасибо за наводку, получилось реализовать. сделал вот как: после соглашения на аренду запускается таймер на минуту, после истечения минуты проверяется, не вылез ли игрок из транспорта по нажатию на F или enter, далее аренда или продолжается и запускается новый таймер, или заканчивается теперь осталось сделать так, чтобы отсчёт времени останавливался если игрок умер или кто-то выкинул его из транспорта, либо упал. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты