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

Key Bind Manager 1.1.0

Поддерживаемые игры
  1. CS: Source (OrangeBox)
KEY BIND MANAGER - ВЕРСИЯ 1.1.0

ОПИСАНИЕ


Плагин Key Bind Manager позволяет настраивать привязку клавиш Source Engine к любым командам через конфигурационный файл. Поддерживает все типы команд (консольные, SourceMod, чат), систему кулдаунов, переменные в командах и фильтрацию по командам.


Основные возможности:
  • Привязка любых клавиш Source Engine к командам
  • Поддержка всех типов команд (консольные, SourceMod, чат)
  • Система кулдаунов для предотвращения спама
  • Поддержка переменных в командах ({player}, {steamid}, {team}, {userid}, {index})
  • Фильтрация по командам (T, CT, все)
  • Включение/выключение плагина через ConVar
  • Персональное включение/выключение для каждого игрока
  • Отладочный режим для диагностики
  • Автоматическое создание конфигурационного файла




УСТАНОВКА​


Шаг 1: Компиляция
Скомпилируйте файл
C-подобный:
key_bind.sp
в
C-подобный:
key_bind.smx
используя компилятор SourceMod или онлайн-компилятор.

Шаг 2: Копирование
Скопируйте
C-подобный:
key_bind.smx
в папку
C-подобный:
addons/sourcemod/plugins/
вашего сервера.

Шаг 3: Загрузка
Перезапустите сервер или выполните в консоли сервера:
C-подобный:
sm plugins load key_bind

Шаг 4: Первая настройка
После загрузки плагин автоматически создаст файл конфигурации по пути:
C-подобный:
addons/sourcemod/configs/key_bind.cfg

Откройте этот файл и настройте бинды под свои нужды. Примеры уже включены в файл.




НАСТРОЙКА КОНФИГУРАЦИИ​


Структура файла конфигурации

Файл конфигурации находится в
C-подобный:
addons/sourcemod/configs/key_bind.cfg
и использует формат KeyValues.

Базовая структура:
C-подобный:
"KeyBinds"
{
    "Binds"
    {
        "ИмяБинда"
        {
            "key"          "IN_USE"           // Клавиша
            "command"      "say_team Привет!"  // Команда
            "enabled"      "1"                 // Включен (1) или выключен (0)
            "cooldown"     "1.0"               // Кулдаун в секундах (0 = использовать значение по умолчанию)
            "team"         "0"                 // Команда: 0=все, 2=T, 3=CT
        }
    }
}

Параметры бинда

C-подобный:
key
(обязательный) - Название клавиши. Список доступных клавиш см. ниже.

C-подобный:
command
(обязательный) - Команда для выполнения. Может содержать переменные.

C-подобный:
enabled
(необязательный, по умолчанию: 1) - Включен ли бинд. 1 = включен, 0 = выключен.

C-подобный:
cooldown
(необязательный, по умолчанию: 0.5) - Кулдаун в секундах. Устанавливает задержку между использованиями бинда. 0 = использовать значение из ConVar
C-подобный:
sm_keybind_default_cooldown
.

C-подобный:
team
(необязательный, по умолчанию: 0) - Для какой команды работает бинд. 0 = все команды, 2 = только T, 3 = только CT.

Доступные клавиши

  • C-подобный:
    IN_USE
    - Клавиша использования (E)
  • C-подобный:
    IN_RELOAD
    - Перезарядка (R)
  • C-подобный:
    IN_ATTACK
    - Атака (ЛКМ)
  • C-подобный:
    IN_ATTACK2
    - Альтернативная атака (ПКМ)
  • C-подобный:
    IN_JUMP
    - Прыжок (Пробел)
  • C-подобный:
    IN_DUCK
    - Приседание (Ctrl)
  • C-подобный:
    IN_FORWARD
    - Вперед (W)
  • C-подобный:
    IN_BACK
    - Назад (S)
  • C-подобный:
    IN_LEFT
    - Влево (A)
  • C-подобный:
    IN_RIGHT
    - Вправо (D)
  • C-подобный:
    IN_MOVELEFT
    - Движение влево
  • C-подобный:
    IN_MOVERIGHT
    - Движение вправо
  • C-подобный:
    IN_RUN
    - Бег (Shift)
  • C-подобный:
    IN_WALK
    - Ходьба
  • C-подобный:
    IN_ZOOM
    - Прицеливание
  • C-подобный:
    IN_GRENADE1
    - Граната 1
  • C-подобный:
    IN_GRENADE2
    - Граната 2
  • C-подобный:
    IN_WEAPON1
    - Оружие 1
  • C-подобный:
    IN_WEAPON2
    - Оружие 2
  • C-подобный:
    IN_SCORE
    - Таблица счета (Tab)
  • C-подобный:
    IN_ALT1
    - Альтернативная клавиша 1
  • C-подобный:
    IN_ALT2
    - Альтернативная клавиша 2

Переменные в командах

Вы можете использовать переменные в командах, которые будут автоматически заменяться на реальные значения:

  • C-подобный:
    {player}
    - Имя игрока
  • C-подобный:
    {steamid}
    - SteamID игрока (Steam2 формат)
  • C-подобный:
    {team}
    - Команда игрока (T, CT или SPEC)
  • C-подобный:
    {userid}
    - UserID игрока
  • C-подобный:
    {index}
    - Индекс клиента (1-65)

Примеры конфигурации

Пример 1: Команда в командный чат при нажатии E

C-подобный:
"TeamChat"
{
    "key"          "IN_USE"
    "command"      "say_team Привет команде!"
    "enabled"      "1"
    "cooldown"     "1.0"
    "team"         "0"
}

Пример 2: Открытие меню при нажатии R
C-подобный:
"Menu"
{
    "key"          "IN_RELOAD"
    "command"      "sm_menu"
    "enabled"      "1"
    "cooldown"     "0.5"
    "team"         "0"
}

Пример 3: Вывод информации об игроке с переменными (только для T)
C-подобный:
"PlayerInfo"
{
    "key"          "IN_ATTACK"
    "command"      "say Игрок {player} ({steamid}) из команды {team}"
    "enabled"      "1"
    "cooldown"     "2.0"
    "team"         "2"
}

Пример 4: Команда чата с префиксом
C-подобный:
"ChatCommand"
{
    "key"          "IN_JUMP"
    "command"      "!shop"
    "enabled"      "1"
    "cooldown"     "1.5"
    "team"         "0"
}

Пример 5: Консольная команда
C-подобный:
"ConsoleCommand"
{
    "key"          "IN_DUCK"
    "command"      "r_screenoverlay effects/combine_binocoverlay"
    "enabled"      "1"
    "cooldown"     "0.0"
    "team"         "0"
}




КОМАНДЫ​


Для администраторов:

C-подобный:
sm_keybind_reload
или
C-подобный:
sm_kb_reload
- Перезагружает конфигурацию биндов. Требует флаг
C-подобный:
ADMFLAG_CONFIG
.

Для игроков:

C-подобный:
sm_keybind
или
C-подобный:
sm_kb
- Включает/выключает бинды клавиш для себя. Позволяет игрокам временно отключить все бинды.




CONVARS (НАСТРОЙКИ СЕРВЕРА)​


Все ConVars сохраняются в
C-подобный:
cfg/sourcemod/key_bind.cfg
при первом запуске.

C-подобный:
sm_keybind_enabled
(по умолчанию: 1)
Включить или выключить плагин глобально. 1 = включен, 0 = выключен.

C-подобный:
sm_keybind_default_cooldown
(по умолчанию: 0.5)
Кулдаун по умолчанию для биндов без указанного кулдауна. Указывается в секундах. Используется для биндов, у которых параметр
C-подобный:
cooldown
установлен в 0.

C-подобный:
sm_keybind_debug
(по умолчанию: 0)
Включить или выключить отладочные сообщения. 1 = включен, 0 = выключен. В режиме отладки плагин выводит информацию о загруженных биндах, кулдаунах и выполнении команд.

Примеры использования ConVars:
C-подобный:
// Выключить плагин
sm_cvar sm_keybind_enabled 0

// Установить кулдаун по умолчанию 1 секунда
sm_cvar sm_keybind_default_cooldown 1.0

// Включить отладку
sm_cvar sm_keybind_debug 1




КАК РАБОТАЕТ ПЛАГИН​


1. Загрузка конфигурации
При запуске плагина или смене карты он загружает файл конфигурации
C-подобный:
addons/sourcemod/configs/key_bind.cfg
. Если файл не существует, создается файл с примерами биндов. Все бинды загружаются в память для быстрого доступа.

2. Отслеживание нажатий клавиш
Плагин использует хук
C-подобный:
OnPlayerRunCmd
для отслеживания нажатий клавиш игроками. Он проверяет только новые нажатия (когда клавиша только что была нажата), что оптимизирует производительность и предотвращает повторные срабатывания при удержании клавиши.

3. Проверка условий
Для каждого бинда проверяются следующие условия:
  • Включен ли плагин глобально (ConVar
    C-подобный:
    sm_keybind_enabled
    )
  • Включен ли плагин для игрока (команда
    C-подобный:
    sm_keybind
    )
  • Включен ли конкретный бинд (параметр
    C-подобный:
    enabled
    в конфиге)
  • Соответствует ли команда игрока (параметр
    C-подобный:
    team
    в конфиге)
  • Прошел ли кулдаун с последнего использования

4. Выполнение команды
Если все условия выполнены:
  • Заменяются переменные в команде ({player}, {steamid}, и т.д.)
  • Определяется тип команды (чат, SourceMod, консольная)
  • Команда выполняется от имени игрока
  • Обновляется время последнего использования для кулдауна

5. Типы команд
Плагин автоматически определяет тип команды и выполняет её соответствующим образом:

  • Команды чата (начинаются с
    C-подобный:
    !
    или
    C-подобный:
    /
    ) - выполняются через
    C-подобный:
    say
  • SourceMod команды (начинаются с
    C-подобный:
    sm_
    ) - выполняются напрямую через
    C-подобный:
    FakeClientCommand
  • Команды
    C-подобный:
    say
    и
    C-подобный:
    say_team
    - выполняются напрямую
  • Обычные консольные команды - выполняются через
    C-подобный:
    ClientCommand




ОТЛАДКА И РЕШЕНИЕ ПРОБЛЕМ​


Включение отладочного режима

Для диагностики проблем включите отладочный режим:
C-подобный:
sm_cvar sm_keybind_debug 1

В этом режиме плагин выводит:
  • Информацию о загруженных биндах в консоль сервера
  • Сообщения о кулдаунах в чат игрокам
  • Информацию о выполнении команд в консоль сервера

Частые проблемы и решения

Проблема: Бинд не срабатывает

  • Проверьте, что плагин включен:
    C-подобный:
    sm_cvar sm_keybind_enabled
  • Проверьте, что бинд включен в конфиге (
    C-подобный:
    "enabled" "1"
    )
  • Проверьте, что команда игрока соответствует параметру
    C-подобный:
    team
  • Проверьте кулдаун — возможно, он еще не прошел
  • Включите отладку и проверьте логи сервера

Проблема: Команда выполняется, но не работает
  • Убедитесь, что команда существует и доступна
  • Проверьте права игрока на выполнение команды
  • Некоторые команды могут не работать через
    C-подобный:
    FakeClientCommand
    и требуют прямого выполнения

Проблема: Файл конфигурации не создается
  • Проверьте права на запись в папку
    C-подобный:
    addons/sourcemod/configs/
  • Проверьте логи сервера на наличие ошибок
  • Попробуйте создать файл вручную по примеру выше




ОПТИМИЗАЦИЯ​


Плагин оптимизирован для работы на серверах с большим количеством игроков:
  • Проверяет только новые нажатия клавиш (не проверяет удержание)
  • Использует битовые операции для быстрой проверки клавиш
  • Минимальное использование таймеров (только для выполнения команд)
  • Эффективное хранение данных в массивах
  • Кэширование состояния кнопок для каждого игрока




ОГРАНИЧЕНИЯ​


  • Плагин работает только с клавишами Source Engine, не поддерживает произвольные клавиши клавиатуры
  • Команды выполняются от имени игрока, поэтому требуют соответствующих прав
  • Некоторые команды могут не работать через
    C-подобный:
    FakeClientCommand
    и требуют прямого выполнения
  • Кулдаун работает на основе времени игры, а не реального времени




ИСТОРИЯ ВЕРСИЙ​


Версия 1.1.0
  • Добавлена система кулдаунов для предотвращения спама
  • Добавлена поддержка переменных в командах ({player}, {steamid}, {team}, {userid}, {index})
  • Добавлена фильтрация по командам (T/CT)
  • Добавлены ConVars для настройки плагина
  • Добавлена возможность персонального включения/выключения
  • Добавлен отладочный режим
  • Улучшена обработка ошибок
  • Оптимизирована проверка клавиш
  • Исправлен путь к конфигурационному файлу

Версия 1.0.1
  • Первая публичная версия
  • Базовая функциональность биндов клавиш




АВТОРЫ​


Автор: DENZEL519&AI
Требования
Sourcemod 1.10+
Установка
Раскидать файлы из архива по папкам.
  • Мне нравится
Реакции: 7pElllHuK и Nekro
Автор
DENZEL519
Скачивания
35
Просмотры
280
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя DENZEL519

Сверху Снизу