Дата: Суббота, 20.06.2026, 07:21:38 | Сообщение # 1
VIP (CSS:34, CSS:OB) (Linux)
Plugin: v4.0.2 Extension: v4.1.3
- Купить VIP по ЭТОЙ ссылке. - Оформить VIP подписку по ЭТОЙ ссылке (не требуется).
- Shop позволяет использовать VIP как магазин, где покупаются/улучшаются отдельные функции, а можно использовать оба. - Основной код на C++, а это + к скорости/производительности. - После установки VIP, создайте группы в groups.txt и установите нужные модули (бесплатные) (по подписке). - Для добавления VIP игрока установите VIP [Commands] и используйте vip_add. - Игрок может быть в нескольких группах одновременно, но функции применяются из группы, приоритет которой выше (подробнее в groups.txt).
- MYSQL (инструкция). - 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` или купил функцию в Shop, то настройки не удалятся. // 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_functions id name
// Группы (здесь нет Shop) vip_groups id name
// Логи vip_logs id target_id // acountid цели action // vip_add, vip_remove, vip_time, shop_buy info // Дополнительная информация об action, например, "health:8" для action shop_buy значит, что для функции health куплен 8 уровень. plugin // Имя плагина, который выполнил action действие. admin_id // acountid админа created_at // Дата создания записи
// VIP игроки vip_players id name expires_at // Время истечения прав. NULL = доступ навсегда. created_at // Дата создания записи updated_at // Дата обновления записи
// Настройки игрока в VIP меню + купленные в Shop функции. // SELECT делается 1 раз и кэшируется, поэтому не обновляйте shop_level через сайт и т.д., а дайте игроку кредиты (можно через сайт/phpmyadmin) и он сам купит. vip_player_functions vip_player_id // accountid игрока vip_function_id enabled // Включена ли в меню settings // Настройки, сохранённые плагином-создателем функции, например, выбранный скин. updated_at shop_level // Если не NULL и > 0, то это купленный (навсегда) в Shop уровень улучшения функции.
// Группы игрока (здесь нет Shop) vip_player_groups vip_player_id vip_group_id
// Shop данные игрока. // Перед INSERT/UPDATE, сервер делает SELECT, поэтому можете безопасно менять balance и т.д. через сайт. vip_shop_players id // accountid игрока name balance // Баланс (кредиты) purchases // Всего покупок spent // Всего потрачено кредитов daily_taken_at // Дата/время, когда игрок забрал бесплатный ежедневный бонус последний раз. created_at updated_at
Дата: Суббота, 20.06.2026, 08:07:36 | Сообщение # 2
Старый 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 странице есть кнопка Назад и там можно читать разную инфу, смотреть в каких игрок группах и по каким типам доступа есть к ней доступ (база данных, сессия, по флагам и т.д.). На этой странице и ссылка для перехода в магазин (VIP [Shop]), если он установлен.
- Любую функцию игрок сможет забиндить. Инфа про это есть в самом меню. - Настройки игрока теперь обновляются каждые X секунд и только если это нужно. - Другое..
Дата: Четверг, 06.08.2026, 18:44:27 | Сообщение # 4
Extension: v4.1.1
- Если игрока нет ни в одной VIP группе и он пишет !vip, то откроется магазин VIP [Shop] (если не установлен, напишет нет прав). - Подправлены некоторые SQL запросы, связанные с Shop, из-за которых были проблемы. - Исправлен серьёзный недочёт, когда без файла подписки (cfg/vip/subscription) игроку писало, что он не авторизован.
Дата: Понедельник, 10.08.2026, 21:45:52 | Сообщение # 5
Plugin: v4.0.2 Extension: v4.1.2
- lock_after_damage в function_management.txt - теперь учитывается урон лишь от врага. - native VIP_GetClientSecondsSinceAttacked - native VipFunction.CanActivate