Выдавайте игрокам доступ к разным функциям на время или навсегда. Это можно сделать через админку в игре, командой в консоле, можно создать ключ и пусть игрок активирует его в угодное ему время (ключ может продлевать время доступа и менять группу, зависит от настроек в vip.cfg), или можно дать доступ по IP/SteamID/Админ группам/Логину и Паролю, прописав игрока в vips.txt. Как только время доступа истекает, все VIP функции сразу же отключаются и игроку открывается меню с вашим сообщением. Если у вас есть Персональный Аттестат WebMoney (или выше), то можете автоматизировать процесс продажи ключей с помощью таких сайтов, как например, http://world.plati.ru/
В этом первом посте вы не увидите полного описания того, на что способен VIP, поэтому смотрите ниже историю обновлений. Несколько интересных функций:
УПРАВЛЕНИЕ МОДУЛЯМИ
В любой момент можно включить/отключить/изменить любую функцию любому игроку. Например, есть модуль "флаги и иммунитет". Через Управление модулями вы можете выдать флаги/иммунитет любому игроку прямо на сервере, это не даст игроку VIP прав, даст лишь эту конкретную функцию, и работать она будет пока он не покинет сервер или пока вы сами не отключите её. И это работает с любым модулем. Например модуль скорости: обычно вы прописываете инфу один раз в группу и повышаете игроку скорость, но через Управление модулями скорость можно установить любому игроку, например подшутить на кем-то и наоборот замедлить его. Выданные права сразу же доступны игрокам в !vip меню. Если прав к функции у игрока не было и вы выдали, то ему откроется !vip меню, чтобы он понял что доступ получил. Всё, что было сделано через управление модулями, будет отменено после смены карты/выхода игрока.
Создавайте ключи прямо на сервере через меню. Смотрите историю последних активаций, сколько всего ключей в базе и сколько было использовано.
БЕСПЛАТНЫЙ VIP В ОПРЕДЕЛЁННОЕ ВРЕМЯ СУТОК (подробнее)
Позволяет временно бесплатно выдавать VIP доступ ВСЕМ игрокам. В базу игрок не добавляется, это временные права, пока игрок онлайн. Группа, время, всё легко настраивается. В любой момент можно включить/отключить функцию. Можно включить её и на 1 минуту.
VIP игрок может приостановить свои права, чтобы время зря не шло. Полезно, если нужно куда-то уехать и тд.
ВЫДАЧА ЛЮБОЙ ФУНКЦИИ ПО ЛЮБОМУ ФЛАГУ
К любой функции (любому модулю) можно привязать любой админский флаг в cfg/vip/settings.txt в разделе _ACCESS_BY_FLAG Сначала происходит авторизация игрока, ему устанавливаются права из группы (если он есть в vips.txt или базе). Если прав не оказалось, то идёт попытка выдачи бесплатного VIP в определённое время. И после этого, неважно VIP игрок это или нет и неважно какие у него права, проверяются флаги игрока и доступ к функциям по этим флагам. Если к функции привязан флаг и у игрока он есть, то функция доступна ему в !vip меню, пока у него есть этот флаг. Как только игрок лишится флага, в течение секунды у него пропадёт доступ, который был выдан по этому флагу. Или наоборот, если у него вдруг появился какой-то флаг, то в течение секунды он получит доступ к функциям, которые привязаны к этому флагу. Если это не VIP игрок, то ему в меню будет писать [временный доступ], ну или то, как у вас в файле перевода.
Каким будет VIP меню игрока, зависит от того, в какой группе он находится, и какие модули в его группе прописаны. Модуль - это отдельный плагин-дополнение к главному VIP плагину. Выберите лишь те, которые вам нужны, и вашему серверу будет легче дышать, чем если бы все функции были в одном VIP плагине. Сервер грузится не количеством плагинов, а тем, что они делают, так что неважно сколько их установлено. Данный список не окончательный, модули будут постепенно добавляться и обновляться. Можете предлагать свои идеи или заказывать модули у скриптеров.
Если VIP модуль делал я и его нет в этом списке, значит он для старой версии VIP и работать скорее всего не будет. Точно работают лишь те, которые есть в этом списке:
Нельзя выдать игроку VIP доступ не создав хотя бы одну VIP группу. Исключением являются функции Управление модулями и выдача доступа по админ флагу (cfg/vip/settings.txt). Каким будет доступ у игрока, зависит от доступа группы, в которой находится игрок. Чтобы создать/изменить группу, достаточно создать текстовый документ с нужным вам именем группы в папке cfg/vip/groups и сменить карту. В имени группы можно использовать лишь цифры, английские буквы и символы _ и -. Для примера уже есть две группы: Gold и Silver.
Цитата
Что писать в группы?
В каждой модуль-теме вверху есть выделенный жирным текст, например, в теме с модулем VIP [Color Screen Of Death]: color_screen_of_death // цветной экран при убийстве/смерти Именно эту строку и нужно добавить в группу. Справа, начиная с //, находится комментарий, который можно удалить, но лучше оставить.
Теперь, когда группы созданы, можно выдавать VIP права:
1. Через админку на сервере (sm_vipadmin) 2. Командой в консоле sm_vipadd (вместо <> используйте "") 3. Создайте ключ и дайте игроку (смотрите команду sm_vipkeyadd) 4. Дайте доступ навсегда по IP/SteamID/Админ группам/Логину и Паролю, прописав игрока в cfg/vip/vips.txt 5. Даже если группы не созданы, временный доступ к функциям можно выдавать через Управление модулями или по админскому флагу (cfg/vip/settings.txt)
addons/sourcemod/scripting/include/vip.inc - скриптерам (смотрите модуль VIP [Speed], там есть комментарии) addons/sourcemod/translations/vip.phrases.txt - перевод addons/sourcemod/translations/vip_admin_menu.phrases.txt - перевод админ меню addons/sourcemod/translations/vip_modules.phrases.txt - фразы (имена), создаваемые модулями addons/sourcemod/translations/vip_modules_description.phrases.txt - описание модулей cfg/vip/cache - кэш (личные настройки игроков) cfg/vip/groups - группы cfg/vip/log - лог cfg/vip/modules - тут модули хранят свои конфиги cfg/vip/admins.txt - список IP/SteamID админов (если не хотите выдавать им флаг z) cfg/vip/downloads.txt - загрузка игрокам нестандартных моделей/звуков и тд cfg/vip/ItemNameValues.txt - используется в "Управление модулями", когда нужно скопировать какое-то значение cfg/vip/sort.txt - имена модулей (фразы) в нужном порядке (каждый с новой строки), чтобы отсортировать опции в VIP меню (если нужно) cfg/vip/vip.cfg - разные настройки cfg/vip/vips.txt - выдать VIP доступ навсегда по IP/SteamID/Флагам/Группам/Логину и Паролю cfg/vip/commands.txt - изменить команды на свои (такие как sm_vip) addons/sourcemod/translations/vip_free_time.phrases.txt - перевод (VIP в определенное время суток) cfg/vip/vip_free_time.txt - сохраненные настройки времени - забудьте и настраивайте время через админку cfg/vip/settings.txt - имя SQL таблицы, время в меню, и другие настройки.
Код
// По флагу z sm_vipadmin - открыть админ меню (если нет z флага, но игрок в cfg/vip/admins.txt, команда сработает) sm_vipgroups - список созданных групп sm_vipgrouprename <group> <new group name> - переименовать несуществующую группу sm_vipgroupset <steamid> <group> - изменить группу игроку sm_vipadd <steamid> <min/0=forever> <group> - добавить игрока в VIP группу sm_vipdel <steamid> - удалить VIP игрока из базы sm_vipinfo <steamid> - информация о VIP игроке sm_vipdump - информация о всех VIP игроках в cfg/vip/vip_dump.txt sm_viptime <+/-/=> <min> <steamid> - добавить/отнять/установить минуты доступа
// Если команда введена через RCON, то ключи запишутся в cfg/vip/log/, иначе сразу админу в консоль. // // sm_vipkeyadd 1 "Gold" "60" // Ключ должен добавить игрока в группу Gold на 60 минут // Ключ может продлить время и изменить группу (зависит от настроек в vip.cfg) // // sm_vipkeyadd 1 "cmd" "mp_restartgame 1" // После активации ключа произойдет рестарт раунда // Можно использовать аргументы: {name} {id} {ip} {steam} // Пример: sm_vipkeyadd 1 "cmd" "kickid {id}" sm_vipkeyadd <count 1-100> <cmd/group> <cmdstring/min> - создать VIP ключи
sm_vipkeydel <key/all> - удалить один ключ или все sm_vipkeydump - информация о всех ключах в cfg/vip/key_dump.txt sm_vipadminreload - перезагрузить список VIP администраторов (cfg/vip/admins.txt) sm_vipreloaditemnamevalues - перезагрузить cfg/vip/ItemNameValues.txt
Код
// По флагу z
// Используется в админ меню для управления функциями, которые были созданы модулями. // Какие бы изменения не были внесены с помощью этой команды, они отменятся после смены карты. // Если был указан [UserID], то изменения отменятся, когда игрок выйдет с сервера. sm_vipsetitemstatus <ItemName/all> <1=on|0=off> [UserID] [ItemNameValue]
// 1. sm_vipsetitemstatus <ItemName/all> 1 // Снимает запрет с функции на текущей карте. Если у VIP игрока есть доступ, функция работает.
// 2. sm_vipsetitemstatus <ItemName/all> 1 [UserID] // Снимает запрет с функции на текущей карте. Если у VIP игрока есть доступ, функция работает. (выполнить на одном VIP игроке).
// 3. sm_vipsetitemstatus <ItemName> 1 [UserID] [ItemNameValue] // all использовать нельзя. Даёт доступ к функции ЛЮБОМУ (даже не VIP) игроку. Если доступ уже есть, меняет ItemNameValue.
// 4. sm_vipsetitemstatus <ItemName/all> 0 // Отнимает доступ у ВСЕХ (даже не VIP) и запрещает использовать функции до смены карты.
// 5. sm_vipsetitemstatus <ItemName/all> 0 [UserID] // Отнимает доступ лишь у одного игрока (даже не VIP) и запрещает использовать функции до смены карты.
Код
// Доступные всем: sm_viphelp - список команд sm_vipkey <key> - использовать ключ sm_vip - открыть VIP меню sm_vipstatus - статус SQL/Socket server_time sm_vipfree
Если хотите использовать MYSQL, то добавьте в addons/sourcemod/configs/databases.cfg новый раздел:
Код
"ws_vip" { "driver" "mysql" "host" "IP или домен" "database" "имя базы данных" "user" "логин" "pass" "пароль " "port" "3306" }
Если вам это не нужно или вообще не знаете что это, то не надо ничего добавлять, по умолчанию будет использоваться SQLite и информация будет храниться в addons/sourcemod/data/sqlite/ws_vip.sq3
Имя таблицы с игроками настраивается в cfg/vip/settings.txt ("sql_table_name" "vip_tab"), а её поля такие:
Код
`name` VARCHAR(32) // ник игрока `steamid` VARCHAR(32) // стим `time` INT UNSIGNED // timestamp когда vip истекает, 0 = постоянный доступ `vip_group` VARCHAR(40) // вип группа `holiday` INT DEFAULT 0 // 1 = в отпуске 0 = нет `holiday_last` INT UNSIGNED DEFAULT 0 // timestamp когда в последний раз был взят отпуск `vip_test` INT(1) DEFAULT 0 // Если 1, то доступ получен через функцию !viptest PRIMARY KEY (`steamid`)
Если нужно чтобы у игрока был доступ сразу на всех ваших серверах, то нужно использовать MYSQL и одинаковое имя таблицы.
// `vip_test_tab` `steamid` VARCHAR(32) `test_last` INT UNSIGNED `test_count` INT PRIMARY KEY (`steamid`)
Если после обновления ваша таблица не совпадает с этой и вы не хотите терять данные, то придётся вручную её отредактировать. Файлы .sq3 можно редактировать с помощью SQLiteStudio. Если не нужно сохранять данные, можно удалить таблицу (если SQLite, то удалить ws_vip.sq3) и VIP плагин сам создаст таблицы с нужными полями.
Гости не могут скачивать файлы
Сообщение отредактировал _wS_ - Воскресенье, 08.09.2024, 09:32:31
Дата: Понедельник, 13.02.2017, 11:43:12 | Сообщение # 2
Изменений немало, не буду о каждом писать, по первому посту многое видно. Самое интересное наверно "Управление модулями" в админке. Переходим в этот раздел и открывается список с названиями плагинов, которые создавали VIP функции:
Выбираем один из них и открывается список с названиями функций, которые были созданы этим плагином (модулем):
Выбираем функцию и управляем ей через такое меню:
Цитата
Запретить на текущей карте
Функция сразу же вырубается у игроков, даже если они живы (скин пропадает и тд), но не только у VIP игроков, а у всех, у кого был доступ. В VIP меню данная функция становится белой, её нельзя выбрать, и даже если он там где-то в меню уже лазит, включить он её никак не сможет. Запрет с функции снимется лишь после смены карты. Если нужно чтобы запрет был на каждой карте, используйте плагин вроде Map Config и команду sm_vipsetitemstatus.
Цитата
Отменить запрет
Функция сразу же врубается для всех VIP игроков, у которых есть доступ к этой функции (устанавливается скин и тд), но с учетом личных настроек игроков - если у него в меню функция отключена, то она и останется откл, но доступ вернулся и теперь он может её вкл.
Цитата
Включить/изменить любому игроку
После выбора этой опции, откроется следующее меню:
Вы можете дать доступ к функции любому игроку, даже если он не VIP. Игрок не будет считаться VIP игроком, у него просто будет доступ к этой одной функции (без доступа к VIP меню). Такой доступ пропадает после выхода игрока с сервера или смены карты. Например текущий модуль VIP [Skins] : если установить игроку скин вороны, то он всегда будет вороной, пока не выйдет с сервера, но если это VIP игрок и у него есть доступ к скинам, то он сможет отключить ворону. С помощью VIP [Speed] можно над любым прикольнуться и замедлить его и тд.
Цитата
Отключить игроку
Сразу же отключает функцию игроку и запрещает её использовать до смены карты. Если игрок перезайдет на сервер, запрет уже не будет в силе, и если он VIP и есть доступ к функции, то сможет её использовать. Если вы повыдавали способностей и уже не знаете как вернуть всё на свои места (стандартный VIP доступ), то нажмите "Запретить на текущей карте", а затем на "Отменить запрет".
Несколько других изменений:
Код
- SQL запрос после каждого входа игрока (раньше был один + кэш) Это значит что можно таблицу напрямую менять как угодно и плагин всегда будет доставать свежую инфу.
- Возобновление SQL соединения, если оно было разорвано //- Если перезагрузить VIP плагин, модули не умрут, а продолжат работать (раньше надо было делать рестарт сервера) - Модули обновлены (пока не все) - старые работать не будут, надо переписывать - Таймер, лишающий VIP доступа, теперь один - Немало новых функций в vip.inc, некоторые были изменены - Добавлять VIP админов можно по IP/SteamID (если нет z флага) - Добавлять VIP игроков можно по IP/SteamID/Флагам/Группам/Логину и Паролю - В csgo менюшках теперь есть кнопки выхода, а то некоторые из них нельзя было закрыть - Другое
Дата: Понедельник, 13.02.2017, 12:13:52 | Сообщение # 3
Переход на новую версию (v2.9+) платный (используйте контакты).
Стоимость перехода: 50% от стоимости плагина. В стоимость входит не один сервер, а все, какие у вас есть, главное чтобы у вас был доступ к нужной почте. Если у вас есть версия 2.9 или выше, то конечно же обновления доступны бесплатно.
Дата: Воскресенье, 05.03.2017, 07:32:00 | Сообщение # 4
- убран лимит с квара vip_spawntimer - в forward VIP_OnPlayerSpawn новые аргументы - иcпользуя sm_vip.. команды через RCON, консоль сможет показывать ответ, если у вас log "on" в server.cfg (и вы взяли лог) - sm_vipadd SQL_Query изменено на SQL_TQuery (все запросы на SQL_TQuery), чтобы не было подвисаний - вместо sm_vipaddtime и sm_vipsettime теперь sm_viptime - sm_vipdump не отображает инфу в консоле/логе (её может быть много), только в cfg/vip/vip_dump.txt - sm_vipsetgroup переименована в sm_vipgroupset (для удобства, т.к. есть другие sm_vipgroup.. команды)
Почти все sm_vip.. команды переписаны. Например так активация ключа происходила раньше: 1. Нашли ключ (SELECT) 2. Дали вип права (sm_vipadd) 3. Удалили ключ И неизвестно выдались ли вип права и удалился ли ключ.
Теперь всё срабатывает лишь после успешно выполненных запросов: 1. Нашли ключ (SELECT) 2. Удалили ключ (не удалился = стоп) 3. Дали права (не дались = вернули ключ и стоп) (ключ не удалось вернуть = сообщение в лог + таймер, который пытается)
Если игрок скажет "я использовал ключ и права не дались" - такое уже почти невозможно. Единственное что может произойти, это если произошла какая-то ошибка при выдаче прав, мы пытались вернуть ключ в базу и он почему-то не вернулся. Эта ошибка очень маловероятна. Запустится таймер, который будет пытаться вернуть этот ключ, и в cfg/vip/log/ запишется ошибка:
LogToFileEx(sInfo, "\nKey '%s' successfully returned to database\n", key);
Если по логу не видно инфы что ключ вернулся, то нужно дать игроку новый ключ.
По просьбе добавлена возможность изменить sm_vip команду на свою (можно и добавить к ней ещё команд) cfg/vip/commands.txt
Код
// Здесь можно изменить команды // Если команда sm_x, то в консоль можно писать: sm_x, а в чат: !x или /x // На данный момент можно изменить лишь: VIP_MENU
Дата: Суббота, 18.03.2017, 23:41:11 | Сообщение # 5
В VIP плагин встроена функция выдачи VIP доступа в определённое время суток (в базу игрок не добавляется).
start_time - время сервера, с которого начнётся выдача VIP (часы:минуты, 0-23:0-59) time - сколько часов:минут будет выдаваться VIP (0-23:0-59) vip_group - в какую группу будут добавляться игроки
Если вы изменили настройки времени и функция была включена, то чтобы изменения вступили в силу, нужно отключить функцию и снова включить. Если вы изменили группу и функция включена, то группа сразу же меняется у игроков. Если вы вручную изменили vip_free_time.txt, то изменения вступят в силу после смены карты. Если start_time 1:10 и time 0:2 и сейчас 1:11, то функция сразу же включается и отключится через 1 мин (может и не 1, учитываются и секунды), т.е. всё четко должно расчитываться
addons/sourcemod/translations/vip_free_time.phrases.txt - перевод cfg/vip/vip_free_time.txt - сохраненные настройки времени - но лучше забыть об этом файле и настраивать время через админку (добавлена опция).
Команда server_time - текущее время сервера Команда sm_vipfree
Если админ отключил функцию, то игроку так и напишет, что она отключена. Если включена, то показывает время с точностью до секунды, через сколько начнется выдача VIP, или через сколько завершится, если уже началась. Если VIP уже выдаётся и у игрока уже есть какая-то VIPка, и группы не совпадают, откроется меню с предложением временно сменить группу. Если игрок принял предложение и время выдачи завершилось, он сразу же вернётся в свою группу. Если игрок хочет вернуться в свою группу не дожидаясь окончания выдачи, то нужно просто перезайти на сервер, об этом ему напишет в чат.
--------- Я вчера забыл перезалить на сайт некоторые файлы, если пытались перейти на новую версию, то наверно не получилось. Только что все нужные файлы загрузил. Достаточно закинуть vip_free_time.phrases.txt и обновить 2 файла (пункт 5 и 6 в инструкции)
Дата: Пятница, 24.03.2017, 07:52:18 | Сообщение # 6
Группы перезагружаются после смены карты, делать рестарт сервера уже не нужно. В админку добавлена опция "Управление группами" - на данный момент там только показывает список созданных групп и их права. Обновлены файлы: vip_admin_menu.phrases.txt и vip.hueco_mundo
Дата: Воскресенье, 26.03.2017, 10:30:10 | Сообщение # 8
В админку добавлена опция Управление ключами
- Показывает сколько всего есть неиспользованных ключей в базе - Показывает сколько всего было использовано ключей (новая таблица vip_keys_history_tab) - Список последних 50 успешных активаций ключей (кто (ник+стим+ip), когда, сколько прошло, данные ключа) - Возможность создавать ключи через меню:
Работает так же, как и команда sm_vipkeyadd, за исключением того, что нельзя использовать cmd. 1. Нажали "Создать ключ" 2. Ввели в чат дни : часы : минуты (через двоеточие) (например 0:0:5 это 5 минут) 3. Выбрали группу 4. Ввели в чат сколько нужно создать ключей (от 1 до 100) 5. Ключи создаются, вам их пишет в чат + консоль
Дата: Вторник, 28.03.2017, 01:40:29 | Сообщение # 9
- В VIP меню добавлена опция "Отключить вcё (перезаход = вкл)" - Немного подправлено "Управление модулями" - Новая папка cfg/vip/modules_private - некоторые модули будут встраиваться в сам VIP
Дата: Среда, 19.04.2017, 11:48:05 | Сообщение # 10
Убрал ошибку в паутине, из-за которой не открывались двери. Сейчас подправляю вип так, чтобы он меньше грузил и модули делать было намного проще, а то там жестко и кода много.
Дата: Суббота, 22.04.2017, 06:52:37 | Сообщение # 11
Все модули обновлены (просто замените .smx + обновите файлы из пунктов 5 и 6). Теперь их писать намного проще, vip.inc почти весь обновлён, в VIP [Speed] новые комментарии, грузить сервер будет поменьше.
Иногда, после старта/рестарта сервера, вылетают такие ошибки в логе:
Код
L 04/21/2017 - 22:18:12: [SM] Failed to load plugin "vip.smx": Unable to load plugin (bad header). L 04/21/2017 - 22:18:12: [SM] Unable to load plugin "vip_armor_helmet.smx": Native "VIP_RegisterItem" was not found
Теперь если они вылетят, Hueco Mundo скорее всего сделает рестарт сервера, после чего всё должно заработать.
Дата: Суббота, 13.05.2017, 22:30:53 | Сообщение # 12
Требуется Уэко Мундо v1.0.8 или выше. Убрал конфликт с платным античит плагином Smac Ultra - теперь они должны дружить.
Теперь подобных ошибок быть не должно:
Код
L 04/21/2017 - 22:18:12: [SM] Failed to load plugin "vip.smx": Unable to load plugin (bad header). L 04/21/2017 - 22:18:12: [SM] Unable to load plugin "vip_armor_helmet.smx": Native "VIP_RegisterItem" was not found
Если вы закинули модули в папку plugins/ и обнаружили что они куда-то пропали, то они спрятались здесь: plugins/disabled/vip Они будут перемещаться туда сюда в нужный момент. Имена (.smx) модулей должны начинаться с vip_
Если у вас стоял Hueco Mundo Fix - обязательно удалите его.
Дата: Вторник, 16.05.2017, 20:12:47 | Сообщение # 13
В vip.inc написано что функции VIP_GiveAccess/VIP_TakeAccess/VIP_MenuSelect необязательны в модулях, но VIP_GiveAccess и VIP_TakeAccess оставались обязательными, если был указан флаг VIP_ITEM_TOGGLE. И если одна из этих функций не была использована в модуле, то вызывалась такая ошибка:
Код
[SM] Native "Call_StartFunction" reported: Invalid function id (FFFFFFFF) [SM] Displaying call stack trace for plugin "vip.smx": [SM] [0] Line 222, vip/menu.sp::VipMenu_CallBack()
Дата: Среда, 27.12.2017, 20:54:11 | Сообщение # 15
Добавлена функция "VIP тест" + vip.cfg подправлен для более читаемого вида. Новые настройки в vip.cfg:
Код
////////////////////////////////////////// // VIP ТЕСТ //////////////////////////////////////////
// Группа (если не указана или не существует, то игроки не смогут тестировать VIP) vip_test_group ""
// Команда для тестирования VIP vip_test_cmd "sm_viptest"
// Сколько минут игрок будет тестировать VIP vip_test_min "30"
// Сколько всего раз можно протестировать VIP (0 = без ограничений) vip_test_limit "1"
// Через сколько минут (после лишения VIP прав) можно протестировать VIP (если vip_test_limit позволит) vip_test_delay "10080"
Новые фразы перевода в addons\sourcemod\translations\vip.phrases.txt
Код
"test_limit" { "#format" "{1:d}" "ru" "Вы больше не можете тестировать VIP (лимит: {1} раз)" "en" "You can no longer test VIP (limit: {1} times)" } "test_delay" { "#format" "{1:d},{2:d},{3:d},{4:d}" "ru" "Будет доступно через: {1}д {2}ч {3}м {4}с" "en" "Will be available through: {1}d {2}h {3}m {4}s" } "test_info" { "ru" "!viptest - протестировать" "en" "!viptest - test" }
Используется существующая фраза "key_already_vip". Можете подправить её на "У вас уже есть VIP" и "You already have VIP"
Используется существующая фраза "vfree_off" (vip_free_time.phrases.txt). Можете подправить её на "Эта функция отключена" и "This feature is disabled"
Новая SQL таблица:
Код
"CREATE TABLE IF NOT EXISTS `vip_test_tab` (`test_count` INT, `test_last` INT UNSIGNED, `steamid` VARCHAR(35), PRIMARY KEY (`steamid`))"
Если VIP тест включен и игрок без VIP прав пишет !vip, там будет подсказка что VIP можно протестировать. Сделано так, чтобы не давало тестировать тем, у кого недавно были права. Как только игрок лишается прав, ему ставится пометка test_last, что именно сейчас он тестировал VIP в последний раз. Зачем ему давать доступ к VIP тест, если у него только что были права.