Иконка ресурса

Custom weapons 1.1.27

7pElllHuK

Участник
Сообщения
1,558
Реакции
557
V 1.1.28

Посмотреть вложение 123295


Данное обновление создано совместно с 7pElllHuK и он выступал тестировщиком на css V34, мной на css ob.

Изменения:
1.
Добавлен осмотр оружия на F.
2. Возможность вешать на одну модель оружия, разные текстуры.
3. Плагин смены перчаток.
4. Исправлен баг с flip_view_model ( когда он не менял позицию оружия)

📖 Руководство по настройке Custom Weapons и Gloves




📋 СОДЕРЖАНИЕ
  1. Быстрый старт
  2. CVAR настройки (что и где менять)
  3. Настройка custom_weapons.txt
  4. Настройка gloves.ini
  5. Как работают плагины вместе
  6. Примеры конфигураций
  7. Решение проблем




🚀 БЫСТРЫЙ СТАРТ

  1. Скопируйте custom_weapons.smx в
    C-подобный:
    addons/sourcemod/plugins/
  2. Скопируйте sm_gloves.smx в
    C-подобный:
    addons/sourcemod/plugins/
  3. Создайте файл configs/custom_weapons.txt (см. раздел ниже)
  4. Создайте файл configs/gloves.ini (см. раздел ниже)
  5. Перезагрузите плагины:
    C-подобный:
    sm plugins reload custom_weapons
    sm plugins reload sm_gloves

Важно: Плагин custom_weapons должен загружаться ПЕРЕД sm_gloves, иначе sm_gloves выдаст ошибку при запуске.




⚙️ CVAR НАСТРОЙКИ - ЧТО И ГДЕ МЕНЯТЬ

Все настройки изменяются в файле custom_weapons.cfg или через консоль сервера.

CVARПо умолчаниюГде менятьОписание
sm_custom_weapons_enable1custom_weapons.cfgВключить/выключить систему кастомных моделей (0/1)
sm_custom_weapons_menu_spawn0custom_weapons.cfgОткрывать меню при спавне (0/1). Если 1, меню открывается автоматически.
sm_custom_weapons_force_menu_spawn0custom_weapons.cfgПринудительно открывать меню при каждом спавне (0/1). Игнорирует настройки игрока.
sm_custom_weapons_default_disabled1custom_weapons.cfgНовые игроки по умолчанию имеют выключенную смену моделей (0/1)
sm_custom_weapons_force_disabled0custom_weapons.cfgПринудительно отключить для всех (0/1). Если 1, никто не сможет использовать кастомные модели.
sm_custom_weapons_admin_flags""custom_weapons.cfgФлаги доступа (например: "abc"). Пустое = доступно всем. Формат:
C-подобный:
sm_custom_weapons_admin_flags "abc"
sm_custom_weapons_models_pathconfigs/custom_weapons.txtcustom_weapons.cfgПуть к файлу конфигурации. Можно изменить:
C-подобный:
sm_custom_weapons_models_path "configs/my_weapons.txt"
sm_custom_weapons_downloads_pathconfigs/custom_weapons_downloads.txtcustom_weapons.cfgПуть к файлу списка загрузок. Можно изменить на другой путь.
sm_custom_weapons_stop_animation1custom_weapons.cfgОстанавливать анимацию осмотра при повторном нажатии F (0/1)
sm_custom_weapons_disable_flashlight1custom_weapons.cfgОтключить фонарик (0/1). Если 1, кнопка F будет использоваться для осмотра оружия (если включено в меню).




📁 НАСТРОЙКА CUSTOM_WEAPONS.TXT

Файл:
C-подобный:
addons/sourcemod/configs/custom_weapons.txt

Путь можно изменить через CVAR sm_custom_weapons_models_path.

📝 Структура файла:

C-подобный:
"Weapons"
{
    "ak47"        // Название оружия БЕЗ префикса "weapon_"
    {
        // === ПАРАМЕТРЫ ОСНОВНОЙ СЕКЦИИ ===
        "flags"        ""            // Флаги доступа (пусто = для всех)
        "ru"        "АК-47"        // Название на русском
        "en"        "AK-47"        // Название на английском
        "category"    "0"            // Категория в меню (0-6)
 
        // === ПОДСЕКЦИИ - ВАРИАНТЫ МОДЕЛЕЙ ===
        "Gold"        // Название варианта (отображается в меню)
        {
            "flags"        ""            // Флаги доступа для этой модели
            "ru"        "Золотой АК-47"
            "en"        "Gold AK-47"
 
            // === ОБЯЗАТЕЛЬНЫЕ ПАРАМЕТРЫ ===
            "view_model"        "models/weapons/v_ak47_gold.mdl"        // Модель от первого лица (ОБЯЗАТЕЛЬНО)
            "world_model"        "models/weapons/w_ak47_gold.mdl"        // Модель от третьего лица (опционально)
 
            // === ПАРАМЕТРЫ ДЛЯ ПЕРЧАТОК ===
            "skin_index"    "0"        // Индекс текстуры оружия (складывается с skin перчаток)
            "body"            "0"        // Индекс body группы (складывается с body перчаток)
 
            // === ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ===
            "flip_view_model"    "0"        // Перевернуть модель в правую руку (0/1)
            "inspect"            "10"    // Номер анимации осмотра (для кнопки F)
 
            "Sequences"        // Перенаправление анимаций
            {
                "1"        "7"        // Старая анимация -> Новая анимация
            }
        }
    }
}

📋 Описание параметров:

ПараметрГдеОписание
flagsОсновная секция или подсекцияФлаги доступа (например: "abc"). Пустое = для всех. Можно указать в основной секции (для всего оружия) или в подсекции (для конкретной модели).
ru, enОсновная секция и подсекцияЛокализованные названия. Если не указано, используется название секции.
categoryТолько основная секцияКатегория в меню: 0-Автоматы, 1-Пистолеты-пулеметы, 2-Дробовики, 3-Пистолеты, 4-Ближний бой, 5-Взрывные, 6-Снайперские
view_modelТолько подсекцияПуть к модели от первого лица. ОБЯЗАТЕЛЬНЫЙ параметр. Путь относительно папки cstrike/csgo.
world_modelТолько подсекцияПуть к модели от третьего лица. Опционально.
skin_indexТолько подсекцияИндекс текстуры оружия. Важно для перчаток: складывается с skin перчаток. Формула: итоговый skin = skin_index + skin перчаток.
bodyТолько подсекцияИндекс body группы. Важно для перчаток: складывается с body перчаток. Формула: итоговый body = body + body перчаток.
flip_view_modelТолько подсекцияПеревернуть модель в правую руку (1) или оставить в левой (0). Для леворуких моделей.
inspectТолько подсекцияНомер анимации осмотра оружия на кнопку F. Если указан и осмотр включен в меню, F будет осматривать оружие вместо фонаря.




🧤 НАСТРОЙКА GLOVES.INI

Файл:
C-подобный:
addons/sourcemod/configs/gloves.ini

Важно: Путь нельзя изменить - он жестко прописан в коде плагина.

📝 Структура файла:

C-подобный:
"Gloves"
{
    // === ВАРИАНТЫ ТЕКСТУР ПЕРЧАТОК ===
    "default"        // Название секции (идентификатор)
    {
        "name"        "По умолчанию"        // Название для меню (ОБЯЗАТЕЛЬНО)
        "skin"        "0"                    // Индекс текстуры (складывается с skin_index оружия)
        "body"        "0"                    // Индекс body (складывается с body оружия)
    }
 
    "red"
    {
        "name"        "Красные перчатки"
        "skin"        "1"
        "body"        "0"
    }
}

📋 Описание параметров:

ПараметрГдеОписание
view_modelКорневая секция "Gloves"Путь к модели перчаток от первого лица. ОБЯЗАТЕЛЬНЫЙ. Одна модель для всех текстур! Только текстуры меняются через параметр skin.
world_modelКорневая секция "Gloves"Путь к модели от третьего лица. Опционально, обычно пустое.
nameСекция варианта перчатокНазвание варианта для меню. ОБЯЗАТЕЛЬНЫЙ. Если не указан, секция не отображается в меню!
skinСекция варианта перчатокИндекс текстуры перчаток. ОБЯЗАТЕЛЬНЫЙ. Складывается с skin_index оружия. Формула: итоговый skin = skin_index оружия + skin перчаток.
bodyСекция варианта перчатокИндекс body группы. Опционально, по умолчанию 0. Складывается с body оружия. Формула: итоговый body = body оружия + body перчаток.

Важные моменты:

  • Плагин использует одну модель перчаток для всех вариантов текстур
  • Меняются только текстуры через параметр skin
  • Перчатки применяются только к кастомному оружию (если игрок использует стандартное оружие, перчатки не применятся)
  • Секции без параметра name не отображаются в меню




🔗 КАК РАБОТАЮТ ПЛАГИНЫ ВМЕСТЕ

  1. Порядок загрузки: Custom Weapons должен загружаться ПЕРЕД sm_gloves. Если sm_gloves загрузится первым, он выдаст ошибку: "This plugin requires custom_weapons plugin!"
  2. Применение перчаток:Перчатки применяются только когда:
    • Игрок использует кастомную модель оружия (выбранную через меню custom_weapons)
    • Оружие имеет viewmodel entity (полученное через CW_GetCustomModelIndex)
      Итоговая формула:
    • Итоговый skin = skin (из gloves.ini) + skin_index (из custom_weapons.txt)
    • Итоговый body = body (из gloves.ini) + body (из custom_weapons.txt)
  3. Сохранение выбора:
    • Выбор перчаток сохраняется через cookie cwr_module_gloves
    • Выбор оружия сохраняется через cookies вида название_оружия_custom (например, ak47_custom)
  4. Меню:
    • Меню оружия: sm_weapon или sm_cw
    • Меню перчаток: sm_gloves
    • Меню перчаток показывает только секции с параметром name
  5. Перезагрузка конфигурации:
    • custom_weapons.txt перезагружается при изменении CVAR sm_custom_weapons_models_path или при sm plugins reload custom_weapons
    • gloves.ini перезагружается при sm plugins reload sm_gloves или при sm plugins reload custom_weapons (так как sm_gloves перезагружает конфигурацию в OnConfigsExecuted)




📝 ПРИМЕРЫ КОНФИГУРАЦИЙ

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        "Gold"
        {
            "flags"        ""
            "ru"        "Золотой АК-47"
            "en"        "Gold AK-47"
 
            "view_model"        "models/weapons/v_ak47_gold.mdl"
            "world_model"    "models/weapons/w_ak47_gold.mdl"
            "skin_index"    "0"
            "body"            "0"
            "flip_view_model"    "0"
            "inspect"        "10"
        }
    }
}

// ===== gloves.ini =====
"Gloves"
{
    "default"
    {
        "name"        "По умолчанию"
        "skin"        "0"
        "body"        "0"
    }
 
    "red"
    {
        "name"        "Красные перчатки"
        "skin"        "1"
        "body"        "0"
    }
 
    "blue"
    {
        "name"        "Синие перчатки"
        "skin"        "2"
        "body"        "0"
    }
}

Результат:
  • Если игрок выбрал "Gold" АК-47 (skin_index = 0) и "Красные перчатки" (skin = 1):
  • Итоговый skin = 0 + 1 = 1
  • Итоговый body = 0 + 0 = 0

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        // Одна модель, разные текстуры
        "Standard"
        {
            "view_model"        "models/weapons/v_ak47.mdl"
            "world_model"    "models/weapons/w_ak47.mdl"
            "skin_index"    "0"
        }
 
        "Red"
        {
            "view_model"        "models/weapons/v_ak47.mdl"        // Та же модель!
            "world_model"    "models/weapons/w_ak47.mdl"
            "skin_index"    "1"        // Другая текстура
        }
 
        "Blue"
        {
            "view_model"        "models/weapons/v_ak47.mdl"        // Та же модель!
            "world_model"    "models/weapons/w_ak47.mdl"
            "skin_index"    "2"        // Еще одна текстура
        }
    }
}

Результат: Одна модель v_ak47.mdl с тремя разными текстурами (skin_index 0, 1, 2).

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""            // Основное оружие доступно всем
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        "Standard"
        {
            "flags"        ""            // Стандартная модель для всех
            "view_model"        "models/weapons/v_ak47.mdl"
            "skin_index"    "0"
        }
 
        "VIP"
        {
            "flags"        "abc"        // VIP модель только для админов с флагами a, b, c
            "ru"        "VIP АК-47"
            "view_model"        "models/weapons/v_ak47_vip.mdl"
            "skin_index"    "0"
        }
    }
}

Результат: Стандартная модель доступна всем, VIP модель только админам с флагами a, b, c.

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        "Gold"
        {
            "ru"        "Золотой АК-47"
            "view_model"        "models/weapons/v_ak47_gold.mdl"
            "world_model"    "models/weapons/w_ak47_gold.mdl"
            "skin_index"    "0"
            "body"            "0"
            "inspect"        "10"
        }
    }
 
    "m4a1"
    {
        "flags"        ""
        "ru"        "M4A1"
        "en"        "M4A1"
        "category"    "0"
 
        "Red"
        {
            "ru"        "Красный M4A1"
            "view_model"        "models/weapons/v_m4a1.mdl"
            "world_model"    "models/weapons/w_m4a1.mdl"
            "skin_index"    "1"
            "body"            "0"
        }
    }
}

// ===== gloves.ini =====
"Gloves"
{
    "default"
    {
        "name"        "По умолчанию"
        "skin"        "0"
        "body"        "0"
    }
 
    "red"
    {
        "name"        "Красные перчатки"
        "skin"        "1"
        "body"        "0"
    }
 
    "blue"
    {
        "name"        "Синие перчатки"
        "skin"        "2"
        "body"        "0"
    }
 
    "green"
    {
        "name"        "Зеленые перчатки"
        "skin"        "3"
        "body"        "0"
    }
}




❓ РЕШЕНИЕ ПРОБЛЕМ

Проблема: Перчатки не применяются
  • Проверьте, что игрок использует кастомную модель оружия (не стандартную)
  • Проверьте, что плагин custom_weapons загружен:
    C-подобный:
    sm plugins list | grep custom_weapons
  • Проверьте, что файл gloves.ini существует в папке configs
  • Проверьте синтаксис файла gloves.ini (правильные кавычки, скобки)
  • Убедитесь, что в секции перчаток указан параметр name
  • Проверьте логи на ошибки:
    C-подобный:
    sm plugins reload sm_gloves

Проблема: Модель оружия не отображается
  • Проверьте правильность путей к моделям в custom_weapons.txt
  • Убедитесь, что файлы моделей существуют на сервере
  • Проверьте, что модели добавлены в downloads.txt
  • Проверьте флаги доступа (если установлены)
  • Убедитесь, что игрок включил смену моделей в меню
  • Проверьте CVAR sm_custom_weapons_enable (должен быть 1)

Проблема: Меню перчаток пустое
  • Проверьте, что в секциях перчаток указан параметр name
  • Проверьте синтаксис файла gloves.ini
  • Проверьте, что файл gloves.ini находится в папке configs

Проблема: Перчатки применяются неправильно (неправильный skin)
  • Помните формулу: итоговый skin = skin_index оружия + skin перчаток
  • Если оружие имеет skin_index = 1, а перчатки skin = 2, итоговый skin будет 3
  • Проверьте значения skin_index в custom_weapons.txt и skin в gloves.ini
  • Убедитесь, что вы используете правильную секцию оружия (проверьте cookie игрока)

Проблема: Плагин sm_gloves не загружается
  • Проверьте, что плагин custom_weapons загружен ПЕРЕД sm_gloves
  • Проверьте наличие файла gloves.ini в папке configs
  • Проверьте синтаксис файла gloves.ini
  • Посмотрите логи сервера на ошибки:
    C-подобный:
    tail -f addons/sourcemod/logs/error_*.log

Проблема: Ошибка "This plugin requires custom_weapons plugin!"
  • Убедитесь, что плагин custom_weapons загружен:
    C-подобный:
    sm plugins list
  • Проверьте, что custom_weapons загружается ПЕРЕД sm_gloves
  • Перезагрузите плагины в правильном порядке:
    C-подобный:
    sm plugins unload sm_gloves
    sm plugins reload custom_weapons
    sm plugins load sm_gloves

PS: Архив TEST_weapons_1128.zip создан для того, чтобы вы поняли как можно подвязать к одной модели оружия, разные текстуры.
Сообщения автоматически склеены:


PS Обновил архив 29.12.25_custom_weapons_1128.zip исправлен баг когда плагин перчаток загружался быстрее ядра.
PSS Обновил архив 29.12.25_custom_weapons_1128.zip исправлен баг когда плагин перчаток и ядра, перчатки становились стандартными.
Ждем фиксы)
 

DENZEL519

Работаю через AI !
Сообщения
534
Реакции
390

Nekro

Терра инкогнита
Сообщения
4,087
Реакции
2,359
V 1.1.28

Посмотреть вложение 123295


Данное обновление создано совместно с 7pElllHuK и он выступал тестировщиком на css V34, я на css ob.

Изменения:
1.
Добавлен осмотр оружия на F.
2. Возможность вешать на одну модель оружия, разные текстуры.
3. Плагин смены перчаток.
4. Исправлен баг с flip_view_model ( когда он не менял позицию оружия)

📖 Руководство по настройке Custom Weapons и Gloves




📋 СОДЕРЖАНИЕ
  1. Быстрый старт
  2. CVAR настройки (что и где менять)
  3. Настройка custom_weapons.txt
  4. Настройка gloves.ini
  5. Как работают плагины вместе
  6. Примеры конфигураций
  7. Решение проблем




🚀 БЫСТРЫЙ СТАРТ

  1. Скопируйте custom_weapons.smx в
    C-подобный:
    addons/sourcemod/plugins/
  2. Скопируйте sm_gloves.smx в
    C-подобный:
    addons/sourcemod/plugins/
  3. Создайте файл configs/custom_weapons.txt (см. раздел ниже)
  4. Создайте файл configs/gloves.ini (см. раздел ниже)
  5. Перезагрузите плагины:
    C-подобный:
    sm plugins reload custom_weapons
    sm plugins reload sm_gloves

Важно: Плагин custom_weapons должен загружаться ПЕРЕД sm_gloves, иначе sm_gloves выдаст ошибку при запуске.




⚙️ CVAR НАСТРОЙКИ - ЧТО И ГДЕ МЕНЯТЬ

Все настройки изменяются в файле custom_weapons.cfg или через консоль сервера.

CVARПо умолчаниюГде менятьОписание
sm_custom_weapons_enable1custom_weapons.cfgВключить/выключить систему кастомных моделей (0/1)
sm_custom_weapons_menu_spawn0custom_weapons.cfgОткрывать меню при спавне (0/1). Если 1, меню открывается автоматически.
sm_custom_weapons_force_menu_spawn0custom_weapons.cfgПринудительно открывать меню при каждом спавне (0/1). Игнорирует настройки игрока.
sm_custom_weapons_default_disabled1custom_weapons.cfgНовые игроки по умолчанию имеют выключенную смену моделей (0/1)
sm_custom_weapons_force_disabled0custom_weapons.cfgПринудительно отключить для всех (0/1). Если 1, никто не сможет использовать кастомные модели.
sm_custom_weapons_admin_flags""custom_weapons.cfgФлаги доступа (например: "abc"). Пустое = доступно всем. Формат:
C-подобный:
sm_custom_weapons_admin_flags "abc"
sm_custom_weapons_models_pathconfigs/custom_weapons.txtcustom_weapons.cfgПуть к файлу конфигурации. Можно изменить:
C-подобный:
sm_custom_weapons_models_path "configs/my_weapons.txt"
sm_custom_weapons_downloads_pathconfigs/custom_weapons_downloads.txtcustom_weapons.cfgПуть к файлу списка загрузок. Можно изменить на другой путь.
sm_custom_weapons_stop_animation1custom_weapons.cfgОстанавливать анимацию осмотра при повторном нажатии F (0/1)
sm_custom_weapons_disable_flashlight1custom_weapons.cfgОтключить фонарик (0/1). Если 1, кнопка F будет использоваться для осмотра оружия (если включено в меню).




📁 НАСТРОЙКА CUSTOM_WEAPONS.TXT

Файл:
C-подобный:
addons/sourcemod/configs/custom_weapons.txt

Путь можно изменить через CVAR sm_custom_weapons_models_path.

📝 Структура файла:

C-подобный:
"Weapons"
{
    "ak47"        // Название оружия БЕЗ префикса "weapon_"
    {
        // === ПАРАМЕТРЫ ОСНОВНОЙ СЕКЦИИ ===
        "flags"        ""            // Флаги доступа (пусто = для всех)
        "ru"        "АК-47"        // Название на русском
        "en"        "AK-47"        // Название на английском
        "category"    "0"            // Категория в меню (0-6)
 
        // === ПОДСЕКЦИИ - ВАРИАНТЫ МОДЕЛЕЙ ===
        "Gold"        // Название варианта (отображается в меню)
        {
            "flags"        ""            // Флаги доступа для этой модели
            "ru"        "Золотой АК-47"
            "en"        "Gold AK-47"
 
            // === ОБЯЗАТЕЛЬНЫЕ ПАРАМЕТРЫ ===
            "view_model"        "models/weapons/v_ak47_gold.mdl"        // Модель от первого лица (ОБЯЗАТЕЛЬНО)
            "world_model"        "models/weapons/w_ak47_gold.mdl"        // Модель от третьего лица (опционально)
 
            // === ПАРАМЕТРЫ ДЛЯ ПЕРЧАТОК ===
            "skin_index"    "0"        // Индекс текстуры оружия (складывается с skin перчаток)
            "body"            "0"        // Индекс body группы (складывается с body перчаток)
 
            // === ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ===
            "flip_view_model"    "0"        // Перевернуть модель в правую руку (0/1)
            "inspect"            "10"    // Номер анимации осмотра (для кнопки F)
 
            "Sequences"        // Перенаправление анимаций
            {
                "1"        "7"        // Старая анимация -> Новая анимация
            }
        }
    }
}

📋 Описание параметров:

ПараметрГдеОписание
flagsОсновная секция или подсекцияФлаги доступа (например: "abc"). Пустое = для всех. Можно указать в основной секции (для всего оружия) или в подсекции (для конкретной модели).
ru, enОсновная секция и подсекцияЛокализованные названия. Если не указано, используется название секции.
categoryТолько основная секцияКатегория в меню: 0-Автоматы, 1-Пистолеты-пулеметы, 2-Дробовики, 3-Пистолеты, 4-Ближний бой, 5-Взрывные, 6-Снайперские
view_modelТолько подсекцияПуть к модели от первого лица. ОБЯЗАТЕЛЬНЫЙ параметр. Путь относительно папки cstrike/csgo.
world_modelТолько подсекцияПуть к модели от третьего лица. Опционально.
skin_indexТолько подсекцияИндекс текстуры оружия. Важно для перчаток: складывается с skin перчаток. Формула: итоговый skin = skin_index + skin перчаток.
bodyТолько подсекцияИндекс body группы. Важно для перчаток: складывается с body перчаток. Формула: итоговый body = body + body перчаток.
flip_view_modelТолько подсекцияПеревернуть модель в правую руку (1) или оставить в левой (0). Для леворуких моделей.
inspectТолько подсекцияНомер анимации осмотра оружия на кнопку F. Если указан и осмотр включен в меню, F будет осматривать оружие вместо фонаря.




🧤 НАСТРОЙКА GLOVES.INI

Файл:
C-подобный:
addons/sourcemod/configs/gloves.ini

Важно: Путь нельзя изменить - он жестко прописан в коде плагина.

📝 Структура файла:

C-подобный:
"Gloves"
{
    // === ВАРИАНТЫ ТЕКСТУР ПЕРЧАТОК ===
    "default"        // Название секции (идентификатор)
    {
        "name"        "По умолчанию"        // Название для меню (ОБЯЗАТЕЛЬНО)
        "skin"        "0"                    // Индекс текстуры (складывается с skin_index оружия)
        "body"        "0"                    // Индекс body (складывается с body оружия)
    }
 
    "red"
    {
        "name"        "Красные перчатки"
        "skin"        "1"
        "body"        "0"
    }
}

📋 Описание параметров:

ПараметрГдеОписание
view_modelКорневая секция "Gloves"Путь к модели перчаток от первого лица. ОБЯЗАТЕЛЬНЫЙ. Одна модель для всех текстур! Только текстуры меняются через параметр skin.
world_modelКорневая секция "Gloves"Путь к модели от третьего лица. Опционально, обычно пустое.
nameСекция варианта перчатокНазвание варианта для меню. ОБЯЗАТЕЛЬНЫЙ. Если не указан, секция не отображается в меню!
skinСекция варианта перчатокИндекс текстуры перчаток. ОБЯЗАТЕЛЬНЫЙ. Складывается с skin_index оружия. Формула: итоговый skin = skin_index оружия + skin перчаток.
bodyСекция варианта перчатокИндекс body группы. Опционально, по умолчанию 0. Складывается с body оружия. Формула: итоговый body = body оружия + body перчаток.

Важные моменты:

  • Плагин использует одну модель перчаток для всех вариантов текстур
  • Меняются только текстуры через параметр skin
  • Перчатки применяются только к кастомному оружию (если игрок использует стандартное оружие, перчатки не применятся)
  • Секции без параметра name не отображаются в меню




🔗 КАК РАБОТАЮТ ПЛАГИНЫ ВМЕСТЕ

  1. Порядок загрузки: Custom Weapons должен загружаться ПЕРЕД sm_gloves. Если sm_gloves загрузится первым, он выдаст ошибку: "This plugin requires custom_weapons plugin!"
  2. Применение перчаток:Перчатки применяются только когда:
    • Игрок использует кастомную модель оружия (выбранную через меню custom_weapons)
    • Оружие имеет viewmodel entity (полученное через CW_GetCustomModelIndex)
      Итоговая формула:
    • Итоговый skin = skin (из gloves.ini) + skin_index (из custom_weapons.txt)
    • Итоговый body = body (из gloves.ini) + body (из custom_weapons.txt)
  3. Сохранение выбора:
    • Выбор перчаток сохраняется через cookie cwr_module_gloves
    • Выбор оружия сохраняется через cookies вида название_оружия_custom (например, ak47_custom)
  4. Меню:
    • Меню оружия: sm_weapon или sm_cw
    • Меню перчаток: sm_gloves
    • Меню перчаток показывает только секции с параметром name
  5. Перезагрузка конфигурации:
    • custom_weapons.txt перезагружается при изменении CVAR sm_custom_weapons_models_path или при sm plugins reload custom_weapons
    • gloves.ini перезагружается при sm plugins reload sm_gloves или при sm plugins reload custom_weapons (так как sm_gloves перезагружает конфигурацию в OnConfigsExecuted)




📝 ПРИМЕРЫ КОНФИГУРАЦИЙ

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        "Gold"
        {
            "flags"        ""
            "ru"        "Золотой АК-47"
            "en"        "Gold AK-47"
 
            "view_model"        "models/weapons/v_ak47_gold.mdl"
            "world_model"    "models/weapons/w_ak47_gold.mdl"
            "skin_index"    "0"
            "body"            "0"
            "flip_view_model"    "0"
            "inspect"        "10"
        }
    }
}

// ===== gloves.ini =====
"Gloves"
{
    "default"
    {
        "name"        "По умолчанию"
        "skin"        "0"
        "body"        "0"
    }
 
    "red"
    {
        "name"        "Красные перчатки"
        "skin"        "1"
        "body"        "0"
    }
 
    "blue"
    {
        "name"        "Синие перчатки"
        "skin"        "2"
        "body"        "0"
    }
}

Результат:
  • Если игрок выбрал "Gold" АК-47 (skin_index = 0) и "Красные перчатки" (skin = 1):
  • Итоговый skin = 0 + 1 = 1
  • Итоговый body = 0 + 0 = 0

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        // Одна модель, разные текстуры
        "Standard"
        {
            "view_model"        "models/weapons/v_ak47.mdl"
            "world_model"    "models/weapons/w_ak47.mdl"
            "skin_index"    "0"
        }
 
        "Red"
        {
            "view_model"        "models/weapons/v_ak47.mdl"        // Та же модель!
            "world_model"    "models/weapons/w_ak47.mdl"
            "skin_index"    "1"        // Другая текстура
        }
 
        "Blue"
        {
            "view_model"        "models/weapons/v_ak47.mdl"        // Та же модель!
            "world_model"    "models/weapons/w_ak47.mdl"
            "skin_index"    "2"        // Еще одна текстура
        }
    }
}

Результат: Одна модель v_ak47.mdl с тремя разными текстурами (skin_index 0, 1, 2).

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""            // Основное оружие доступно всем
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        "Standard"
        {
            "flags"        ""            // Стандартная модель для всех
            "view_model"        "models/weapons/v_ak47.mdl"
            "skin_index"    "0"
        }
 
        "VIP"
        {
            "flags"        "abc"        // VIP модель только для админов с флагами a, b, c
            "ru"        "VIP АК-47"
            "view_model"        "models/weapons/v_ak47_vip.mdl"
            "skin_index"    "0"
        }
    }
}

Результат: Стандартная модель доступна всем, VIP модель только админам с флагами a, b, c.

C-подобный:
// ===== custom_weapons.txt =====
"Weapons"
{
    "ak47"
    {
        "flags"        ""
        "ru"        "АК-47"
        "en"        "AK-47"
        "category"    "0"
 
        "Gold"
        {
            "ru"        "Золотой АК-47"
            "view_model"        "models/weapons/v_ak47_gold.mdl"
            "world_model"    "models/weapons/w_ak47_gold.mdl"
            "skin_index"    "0"
            "body"            "0"
            "inspect"        "10"
        }
    }
 
    "m4a1"
    {
        "flags"        ""
        "ru"        "M4A1"
        "en"        "M4A1"
        "category"    "0"
 
        "Red"
        {
            "ru"        "Красный M4A1"
            "view_model"        "models/weapons/v_m4a1.mdl"
            "world_model"    "models/weapons/w_m4a1.mdl"
            "skin_index"    "1"
            "body"            "0"
        }
    }
}

// ===== gloves.ini =====
"Gloves"
{
    "default"
    {
        "name"        "По умолчанию"
        "skin"        "0"
        "body"        "0"
    }
 
    "red"
    {
        "name"        "Красные перчатки"
        "skin"        "1"
        "body"        "0"
    }
 
    "blue"
    {
        "name"        "Синие перчатки"
        "skin"        "2"
        "body"        "0"
    }
 
    "green"
    {
        "name"        "Зеленые перчатки"
        "skin"        "3"
        "body"        "0"
    }
}




❓ РЕШЕНИЕ ПРОБЛЕМ

Проблема: Перчатки не применяются
  • Проверьте, что игрок использует кастомную модель оружия (не стандартную)
  • Проверьте, что плагин custom_weapons загружен:
    C-подобный:
    sm plugins list | grep custom_weapons
  • Проверьте, что файл gloves.ini существует в папке configs
  • Проверьте синтаксис файла gloves.ini (правильные кавычки, скобки)
  • Убедитесь, что в секции перчаток указан параметр name
  • Проверьте логи на ошибки:
    C-подобный:
    sm plugins reload sm_gloves

Проблема: Модель оружия не отображается
  • Проверьте правильность путей к моделям в custom_weapons.txt
  • Убедитесь, что файлы моделей существуют на сервере
  • Проверьте, что модели добавлены в downloads.txt
  • Проверьте флаги доступа (если установлены)
  • Убедитесь, что игрок включил смену моделей в меню
  • Проверьте CVAR sm_custom_weapons_enable (должен быть 1)

Проблема: Меню перчаток пустое
  • Проверьте, что в секциях перчаток указан параметр name
  • Проверьте синтаксис файла gloves.ini
  • Проверьте, что файл gloves.ini находится в папке configs

Проблема: Перчатки применяются неправильно (неправильный skin)
  • Помните формулу: итоговый skin = skin_index оружия + skin перчаток
  • Если оружие имеет skin_index = 1, а перчатки skin = 2, итоговый skin будет 3
  • Проверьте значения skin_index в custom_weapons.txt и skin в gloves.ini
  • Убедитесь, что вы используете правильную секцию оружия (проверьте cookie игрока)

Проблема: Плагин sm_gloves не загружается
  • Проверьте, что плагин custom_weapons загружен ПЕРЕД sm_gloves
  • Проверьте наличие файла gloves.ini в папке configs
  • Проверьте синтаксис файла gloves.ini
  • Посмотрите логи сервера на ошибки:
    C-подобный:
    tail -f addons/sourcemod/logs/error_*.log

Проблема: Ошибка "This plugin requires custom_weapons plugin!"
  • Убедитесь, что плагин custom_weapons загружен:
    C-подобный:
    sm plugins list
  • Проверьте, что custom_weapons загружается ПЕРЕД sm_gloves
  • Перезагрузите плагины в правильном порядке:
    C-подобный:
    sm plugins unload sm_gloves
    sm plugins reload custom_weapons
    sm plugins load sm_gloves

PS: Архив TEST_weapons_1128.zip создан для того, чтобы вы поняли как можно подвязать к одной модели оружия, разные текстуры.
Сообщения автоматически склеены:


PS Обновил архив 29.12.25_custom_weapons_1128.zip исправлен баг когда плагин перчаток загружался быстрее ядра.
PSS Обновил архив 29.12.25_custom_weapons_1128.zip исправлен баг в плагине перчаток и ядра, когда перчатки становились стандартными. [Обновлено 29.12.25 23:30]
Это наверное лучше красиво оформить отдельным ресурсом
 

DENZEL519

Работаю через AI !
Сообщения
534
Реакции
390
Это наверное лучше красиво оформить отдельным ресурсом
Можно так сделать, но пока ещё плагин оптимизируется, и обновляется. Как всё будет реализовано, сделаю отдельной темой.
 
Сверху Снизу