Реализация системы подписки для игроков

Привет! У меня есть вопрос по одной вещи. Я думал, как можно сделать систему подписки: например, человек покупает PREMIUM-подписку и получает привилегию PREMIUM, если он не является администратором. Если же игрок — администратор, ему просто дают «подписку» с такими же бонусами.

Вариант такой: проверять привилегию через аддоны и одновременно проверять саму покупку через функцию IGS. Сможет ли это сработать?

Я хоть и не кодер, но чисто физически можно вроде реализовать всё через хук или функцию на проверку игрока ply:IsAdmin или что-то в том духе.

Типо банально через bool (true/false).

Просто не понимаю, как оптимально реализовать эту фичу. Скрипт ведь будет постоянно проверять игрока, из-за чего сильно нагружается сервер. Если администратора снимают — привилегия должна сразу же выдаваться, по идее.

Можно сделать и не постоянную проверку а при покупке будет проверка

Так после покупки могут снять админа

ну не через Think делать. К примеру 1 раз в сколько-то времени проверять

Ну так. Через Hook делать. Типо при вызове такой-то такой-то ситуации, активируется функция… Вроде это работает так.

Не вижу тут никакой проблемы. Просто в реализации функционала премки прописываешь проверки является ли тип админом. Из чего выходит что администратор не имеет как таковой привелегии премиум, но имеет полный доступ к ее функционалу.

Попробую написать, как будет время. Если будет результат скажу.

Проверка ply:HasPurchase(“premium”) может помочь