# VIP Custom Models Плагин кастомных моделей игроков для CS:GO — модели **назначаются по SteamID64 через конфиг-файл**, без выбора через меню. Идеально для серверов, где админ хочет полностью контролировать кому какую модель давать. ## Функции - До **128 кастомных моделей** из конфига `vip_custom_models.ini` - Назначение **«SteamID64 → model_id»** через `vip_custom_models_locked.cfg` - Автоматическое применение модели при спавне и смене команды - Корректное восстановление **стандартных рук** для команды если кастомная модель не назначена или не подходит по команде - Команда `sm_vmodel_reload` для перезагрузки конфига без рестарта плагина - Умная загрузка файлов модели: `.mdl`, `.vvd`, `.dx90.vtx` и сопутствующие - Поддержка блочного и строкового форматов списка `downloads` - Ограничение по **команде** (T / CT / ANY) — если игрок не на нужной команде, кастомная модель не применяется (используются дефолтные руки) ## Зависимости - [SourceMod](https://www.sourcemod.net/) 1.10+ ## Установка 1. Скомпилировать `scripting/vip_custom_models.sp` 2. Положить `.smx` в `addons/sourcemod/plugins/` 3. Положить `configs/vip_custom_models.ini` (список доступных моделей) в `addons/sourcemod/configs/` 4. Положить `configs/vip_custom_models_locked.cfg` (назначения SteamID → модель) в `addons/sourcemod/configs/` 5. Загрузить файлы моделей в `models/` на сервере 6. Перезапустить сервер или загрузить плагин: `sm plugins load vip_custom_models` ## Конфиг моделей Путь: `addons/sourcemod/configs/vip_custom_models.ini` ``` "VIP_CustomModels" { "Models" { "agent_01" { "name" "FBI Agent" "model" "models/player/custom/fbi_agent.mdl" "arms" "models/weapons/ct_arms_fbi_custom.mdl" "team" "CT" "downloads" "models/player/custom/fbi_agent.mdl;models/player/custom/fbi_agent.vvd" } "elite_crew" { "name" "Elite Crew" "model" "models/player/custom/elite_crew.mdl" "arms" "" "team" "T" "downloads" { "1" "models/player/custom/elite_crew.mdl" "2" "models/player/custom/elite_crew.vvd" "3" "models/player/custom/elite_crew.dx90.vtx" } } } } ``` | Поле | Описание | |---|---| | `name` | Отображаемое имя (для логов и админ-вывода) | | `model` | Путь к `.mdl` файлу игрока | | `arms` | Путь к модели рук (пустая строка = стандартные руки команды) | | `team` | `T`, `CT` или `ANY` — на какой команде модель применяется | | `downloads` | Файлы для FastDL (через `;` или блок) | ## Конфиг назначений (новое в v2.0.0) Путь: `addons/sourcemod/configs/vip_custom_models_locked.cfg` ``` "VIP_LockedModels" { "76561198012345678" "agent_01" "76561198098765432" "elite_crew" } ``` Ключ — SteamID64 игрока, значение — id модели (название секции из `vip_custom_models.ini`). После редактирования файла: - Перезагрузи плагин: `sm plugins reload vip_custom_models` - **ИЛИ** используй админ-команду `sm_vmodel_reload` (флаг `z` / ROOT) — без рестарта, моментально применяется ко всем игрокам в игре ## Команды | Команда | Доступ | Описание | |---|---|---| | `sm_vmodel_reload` | Admin (флаг `z`) | Перезагрузить оба конфига без рестарта плагина | > Меню выбора моделей **удалено** — модели назначаются только через конфиг. ## Версия `2.0.0` — Автор: deidara.dev ### Changelog - **2.0.0** — Полный refactor: модели назначаются по SteamID64 через конфиг - Добавлен `vip_custom_models_locked.cfg` с маппингом SteamID64 → model_id - Удалено меню выбора моделей и команды `!vmodel`/`!models`/`!agents` - Удалена интеграция с VIP-Core (пункт «Кастомные модели» больше не показывается в VIP-меню) - Удалена ClientPrefs-cookies и SQLite-персистенция (конфиг — единственный источник истины) - Команда `sm_vmodel_reload` для горячей перезагрузки - **Багфиксы из 1.2.0:** - Удалён баг с `error[0] != ' '` (был неправильный null-check, спамил в errors_*.log) - Удалена race condition между загрузкой DB и cookies (DB+cookie больше не используются) - Author = `"deidara.dev"` - **1.2.0** — VIP-меню версия (legacy)