Files
vip-custom-models/README.md
T
deidara 53d3702c69 v2.0.0: refactor - models assigned by SteamID64 via config
Major changes:
- Added configs/vip_custom_models_locked.cfg (SteamID64 to model_id)
- Command sm_vmodel_reload for hot reload
- Removed model selection menu (!vmodel/!models/!agents)
- Removed VIP-Core integration (item removed from VIP menu)
- Removed ClientPrefs cookies and SQLite (config is single source of truth)

Bug fixes:
- Fixed null-check bug (error[0] != space instead of null terminator)
- Removed DB vs Cookie race condition
- Cleaned up buffer null-termination workarounds
- author = deidara.dev
2026-05-01 20:53:51 +03:00

114 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)