- Купить VIP по ЭТОЙ ссылке. - Оформить VIP подписку по ЭТОЙ ссылке (не требуется).
- MYSQL. В addons/sourcemod/configs/databases.cfg добавьте:
Код
"vip" { "driver" "mysql" "host" "" // ваши данные "database" "" // ваши данные "user" "" // ваши данные "pass" "" // ваши данные "port" "3306" }
- Colors With ClientMod Support - Life State Notifier - Helper Functions - если будете компилировать модули. - vip.zip в прикреплениях. - vip_ext.zip в прикреплениях. Распаковать в addons/sourcemod/extensions/. Пароль узнаете после покупки. - cfg/vip/license - получаете после покупки. - cfg/vip/subscription - не требуется. Получаете после покупки подписки, чтобы работали ЭТИ модули. - SourceMod один из этих:
Чтобы узнать имена функций, установите "VIP [Commands]" и введите в консоль vip_fn_list
"Имя функции" { "round_limit" "" // Лимит активаций за раунд (для игрока). "team_round_limit" "" // Для команды.
// Лимит активаций за карту (для игрока). "map_limit" ""
"cooldown" "" // Активация не чаще одного раза в X сек (целое) (для игрока). Действует и после смены карты. "team_cooldown" "" // Для команды.
// Для каких команд (складывайте). // Чтобы разрешить лишь SPEC и CT, укажите 10, т.к. 2 + 8. // Если для "quick_defuse" запретить CT, то от модуля не будет смысла - осторожнее. // 2 = SPEC, 4 = T, 8 = CT. "team_filter" ""
// 1 = после установки бомбы функция отключается. Включается в начале следующего раунда. "no_bomb_planted" ""
// Функция начнёт работать с указанного раунда. // Номер раунда это "счёт Т + счёт СТ + 1", поэтому указывайте от 2 и выше и только один. "unlock_at_round" ""
// Запретить активацию на X сек (целое) после получения урона от врага (или союзника при mp_friendlyfire 1). // Это не отключает уже включенное, а просто не позволяет включать. // Таймер сбрасывается после рождения. "lock_after_damage" ""
// Имя карты, на которой функция не будет работать. // Если указать, например, "awp_*", то не будет работать на ВСЕХ awp_ картах (звёздочка * важна и можно указать лишь одну в конце). // Если нужно указать несколько карт: // "disable_on_map" "карта1" // "disable_on_map" "карта2" "disable_on_map" ""
// Если 1, то функция всегда ВКЛ в VIP меню и игрок не сможет её ОТКЛ. "always_enabled" ""
// Чтобы звук слышали и окружающие, добавьте @: "@folder/x.wav" "sound_activate" "" // Звук активации. sound/folder/x.mp3 или folder/x.wav "sound_deactivate" "" // Звук деактивации.
// Уведомление в чат после активации функции ("VipFnActivated" в vip.phrases.txt). // 0 = откл, 1 - всем, 2 - команде, 3 - врагам. "notify_activate" "" }
// Порядок функций. // Где все имена функций? -> модуль "VIP [Commands]" -> vip_fn_list в консоль.
Создание групп с нужными функциями. По умолчанию созданы две группы: Platinum и Silver. Вы должны сами установить нужные вам МОДУЛИ и указать их в ваших группах с нужными настройками.
Код
"Имя VIP группы 1" // Лимит символов: 51. Разрешены лишь: a-z A-Z 0-9 _ и пробел. { Список функций в группе. Если у функции есть значение, вы должны указать его с помощью "value".
Чем группа выше, тем она лучше (выше её приоритет).
////
Для каждой функции можно указать дополнительные настройки. Если вы не указали какую-либо, то применяется из function_management.txt, иначе применяется указанная. Если игрок в нескольких группах, то функции/настройки всегда берутся из лучшей, которая выше.
"round_limit" "" // Лимит активаций за раунд (для игрока). 0 = без ограничений. "map_limit" "" // Лимит активаций за карту (для игрока). 0 = без ограничений. "cooldown" "" // Активация не чаще одного раза в X сек (целое) (для игрока). Действует и после смены карты. 0 = без ограничений.
//// }
"Имя VIP группы 2" { Список функций в группе. }
"Platinum" { "speed" { "value" "150" }
"additional_weapon" {} }
Код
"settings" { // Поддерживается только MYSQL. // Кодировка обычно "utf8mb4" или "utf8". // default: "utf8mb4" "mysql_charset" "utf8mb4"
// Удалить настройки игрока (`vip_player_functions`), который не заходил 'x' дней (min: 1, max: 255). // Если игрок в `vip_players`, то настройки не удалятся. // default: "7" "vip_player_functions_cleanup_days" "7"
// Уведомление об истечении времени VIP доступа (vip.phrases.txt -> "TimeExpiredNotify"). // 1 = вкл, 0 = откл. "vip_expired_notify" "1"
// Применить VIP функции через 'x' секунд, после рождения (min: 0.1). // default: "0.1" "vip_spawn_apply_delay" "0.1" }
Код
В addons/sourcemod/translations/. Основной перевод. Неявно подгружается в модули, которые создают функции. Даже если модуль создал функцию с значением типа INT, то в переводе должно быть "{1:s}".
Старый VIP перемещён в архив. Если вы решили обновиться со старого на новый VIP v4.0+, то старый куда-то сохраните, чтобы если что откатиться назад. Это не простое обновление, т.к. было переписано ВСЁ и основной код сейчас на С++, поэтому я не хочу здесь применять правило "обновления бесплатны", с учётом взломов, т.к. сил и времени ушло достаточно. Если у вас уже есть купленные VIP на какие-то ip:port (неважно сколько), то вы получите на них новый VIP только после покупки подписки (при оформлении подписки укажите ваши ip:port адреса).
Коротко о том, что нового:
- Игрок может быть в нескольких группах. - Удобное управление функциями в function_management.txt (звук активации, когда можно и нельзя, и т.д.). - API лучше. Можно перехватить активацию почти любой функции для совместимости и т.д. - VIP меню ещё шустрее, т.к. состоит лишь из тех опций, что вы видите в данный момент. После "Вперёд" создаётся другое меню с максимум 10 опциями. - Для любой функции можно создать описание. В vip.phrases.txt есть, например:
У игрока сразу возникает вопрос "а как?" Поэтому ниже добавляем такую же фразу, но с символом ? в конце:
Код
"buy_enemy_weapons?" { "ru" "Да вот так чувак, делаешь то и то и как-то купится может быть когда-то." }
Теперь, перед выбором опции, если игрок удерживает TAB, то ему откроется описание функции (если есть). А о том, что нужно удерживать TAB, игрок узнает из самого VIP меню, т.к. на 1 странице есть кнопка Назад и там можно читать разную инфу, смотреть в каких игрок группах и по каким типам доступа есть к ней доступ (база данных, сессия, по флагам и т.д.).
- Любую функцию игрок сможет забиндить. Инфа про это есть в самом меню. - Настройки игрока теперь обновляются каждые X секунд и только если это нужно. - Другое..