Требования
Базовые возможности (для пользователей)
Возможности сценариев (для разработчиков)
*Этот раздел будет дополняться!
Для управления всеми загруженными расширения и плагинами, SourceMod предоставляет единую входную точку: sm. Например, для загрузки плагина, используется команда вида sm plugins load my_awesome_plugin.smx (расширение необязательно, если в имени файла нет точек), а для просмотра списка расширений - sm exts list.
Аргументы, заключенные в угловые скобки (< и >) обязательны.
Аргументы, заключенные в квадратные скобки - необязательны, опциональны.
Базовый набор команд
Здесь перечислен базовый набор команд, которые считаются безопасными для серверов; они предоставляют базовый функционал для администрирования Вашего сервера.
Расширенный набор команд
Эти команды предоставляют более расширенный функционал, который может присутствовать не во всех играх, из-за отсутствия поддержки самим МОДом, или движком. Как правило, они работают на всех популярных модах.
Команды для голосования
Эти команды выделены в отдельный раздел, т.к. все связаны с голосованием. Ни одна из этих команд не доступна в War Mode по умолчанию.
- Metamod:Source v1.10 и выше.
Базовые возможности (для пользователей)
- Лёгкая в использовании, глубоко детализированная система прав (возможно использование SQL-баз данных (MySQL, SQLite))
- Глубоко настраиваемое админ-меню
- Резервные слоты
- Гибкий набор плагинов управления картой (номинации, голосование за смену, и так далее)
- Базовые команды вроде кика/бана/шлепков/мута игроков, изменениях консольных переменных, и так далее
- Разнообразные варианты команд для голосований
- Простая система защиты чата от спама
- Комплексные чат-триггеры для игроков и администраторов
- Легко переводится на любой язык
Возможности сценариев (для разработчиков)
- Администрирование - Комплексный API для разработки систем администрирования.
- Клиенты - Работа с игровой информацией о клиенте (игроке) и обратными вызовами (каллбеками, событиями).
- Команды - Создание, перехват и переопределение команд консоли для клиента и сервера.
- Консольные переменные - Создание, перехват и чтение консольных переменных.
- Базы данных - Абстрактный доступ к SQL базам данных. Из коробки, доступны драйвера для SQLite и MySQL.
- Движок - Доступ ко многим функциям движка Half-Life 2, с добавлением новых.
- Сущности (энтити) - Изменение, получение свойств сущностей, как именованных, так и просто нумерованных.
- События - Создание, вызов и перехват игровых событий Half-Life 2.
- Файлы - Доступ к файловой системе.
- IPC - Расширенная связь между плагинами, похожая на ту, что используется в .
- Меню - API для создания абстрагированного меню для всех игр.
- Сетевые пользовательские сообщения - Отправка и перехват пользовательских сетевых сообщений (UserMessages).
- Парсинг - Расширенный, высоко оптимизированный парсинг текстовых файлов в формате VDF (Valve Data Format).
- Таймеры - Создание отложенных вызовов некоторого кода.
- Мультиязычность - Возможность перевода плагина на несколько разных языков.
- Скорость. SourceMod очень лёгкий, быстрый, и это не хвастовство. Каждый плагин загружается в память и конвертируется в код для процессора. Очень важно, чтобы каждая область в SourceMod работала так быстро, насколько это возможно. Язык сценариев типизирован статически, и не требует сборки мусора.
- API. Основная часть работы SourceMod заключается в том, чтобы сделать API настолько хорошим, насколько это только возможно. При добавлении любого интерфейса или функции, мы задаёмся следующими вопросами:
- Оптимизировано ли наше решение?
- Кто-нибудь использовал бы это?
- Насколько это сбивает с толку?
- Это соответствует наиболее вероятному общему использованию?
- Удастся ли расширить его в будущем?
- Его имя полностью охарактеризовывает то, что он делает?
- Соответствует ли его название другим, аналогичным функциям?
- Расширяемость. SourceMod полностью расширяем. Он предоставляет полный C++ API для расширения как SourceMod, так и API, доступного плагинам.
- С открытым исходным кодом. SourceMod, его расширения, и его плагины, имеют полностью открытый исходный код, и распространяются по лицензии GNU General Public License!
*Этот раздел будет дополняться!
Для управления всеми загруженными расширения и плагинами, SourceMod предоставляет единую входную точку: sm. Например, для загрузки плагина, используется команда вида sm plugins load my_awesome_plugin.smx (расширение необязательно, если в имени файла нет точек), а для просмотра списка расширений - sm exts list.
Аргументы, заключенные в угловые скобки (< и >) обязательны.
Аргументы, заключенные в квадратные скобки - необязательны, опциональны.
Базовый набор команд
Здесь перечислен базовый набор команд, которые считаются безопасными для серверов; они предоставляют базовый функционал для администрирования Вашего сервера.
Команда | Плагин | Необходимый уровень доступа | Аргументы | Описание |
---|---|---|---|---|
sm_addban | basebans | rcon | <steamid> [reason] | Добавляет игрока в банлист движка. |
sm_admin | adminmenu | admin | Выводит меню администратора. | |
sm_ban | basebans | ban | <#userid|name> <minutes|0> [reason] | Банит игрока. |
sm_banip | basebans | ban | <ip|#userid|name> <time> [reason] | Банит игрока по IP-адресу. Прописать IP-адрес напрямую может только администратор с уровнем доступа rcon! |
sm_cancelvote | basecommands | vote | Отменяет любое запущенное голосование. | |
sm_cvar | basecommands | cvar | <cvar> [value] | Выводит или изменяет значение консольной переменной на стороне сервера. Доступ к защищённым переменным может быть получен только администратором с уровнем password, к sv_cheats - только с уровнем доступа cheats. Чтобы добавить переменную в список защищённых переменных (по-умолчанию, этот список содержит все переменные с флагом PROTECTED: rcon_password, sm_show_activity, и sm_immunity_mode), используйте sm_cvar protect <name> |
sm_execcfg | basecommands | config | <filename> | Выполняет конфигурационный файл (полный путь не требуется, но расширение файла должно быть). |
sm_help | adminhelp | admin | [page] [search] | Выводит все администраторские команды. Список разделён на страницы, и номер страницы может быть указан. Так же, доступен поиск по перечню команд. |
sm_kick | basecommands | kick | <#userid|name> [reason] | Выгоняет игрока с сервера. |
sm_map | basecommands | map | <map> | Меняет текущую карту. |
sm_rcon | basecommands | rcon | <argstring> | Выполняет переданную строку в консоли сервера, выводя в ответ - результат из серверной консоли (доступно с SM 1.4.0). |
sm_reloadadmins | basecommands | config | Перезагружает админкеш из всех источников. | |
sm_unban | basebans | unban | <steamid|ip> | Удаляет бан игрока по SteamID или IP. |
sm_who | basecommands | admin | [#userid|name] | Выводит список всех игроков на сервере с указанием перечня имеющихся администраторских прав, или только конкретного. |
Эти команды предоставляют более расширенный функционал, который может присутствовать не во всех играх, из-за отсутствия поддержки самим МОДом, или движком. Как правило, они работают на всех популярных модах.
Команда | Плагин | Необходимый уровень доступа | Аргументы | Описание |
---|---|---|---|---|
sm_beacon | funcommands | slay | <target> | Добавляет кольцо, которое так же издаёт звук, делая игрока легко видимым. |
sm_burn | funcommands | slay | <target> [time] | Поджигает игрока на указанное кол-во секунд. Это может не работать полностью на некоторых играх (к примеру, TF2 страдает отсутствием спрайта огня, но игроки теряют здоровье). |
sm_chat | basechat | chat | <message> | Отправляет сообщение для всех администраторов. |
sm_csay | basechat | chat | <message> | Отправляет сообщение для всех игроков по центру экрана. |
sm_gag | basecomm | chat | <target> | Блокирует указанному игроку возможность использовать текстовый чат. |
sm_hsay | basechat | chat | <message> | Отправляет сообщение всем игрокам в виде отцентрированного хинт-бокса, чуть ниже прицела. |
sm_msay | basechat | chat | <message> | Отправляет сообщение всем игрокам в виде меню-панели (работает только на играх, которые поддерживают радио-стиль меню). |
sm_mute | basecomm | chat | <target> | Блокирует указанному игроку возможность использовать голосовой чат. |
sm_play | sounds | admin | <target> <file> | Воспроизводит звук |
sm_psay | basechat | chat | <target> <message> | Отправляет сообщение только определённому игроку. |
sm_rename | playercommands | slay | <#userid|name> [new name] | Изменяет имя игроку. |
sm_resetcvar | basecommands | cvar | <cvar> | Сбрасывает значение переменной обратно в стандартное значение. |
sm_silence | basecomm | chat | <target> | Блокирует указанному игроку возможность использовать и голосовой, и текстовый чат. |
sm_slap | playercommands | slay | <target> [damage] | Выполняет "шлепок" игрока, воспроизводя так же звук и откидывая его в рандомное направление. Если указано, наносится так же определённое кол-во урона. |
sm_tsay | basechat | chat | [color] <message> | Отправляет сообщение всем игрокам в левый верхний угол. Если цвет не указан, используется белый. Доступный перечень цветов: white, red, green, blue, yellow, purple, cyan, orange, pink, olive, lime, violet, lightblue. Имена цветов не чувствительны к регистру. |
sm_ungag | basecomm | chat | <target> | Разрешает указанному игроку использовать текстовый чат. |
sm_unmute | basecomm | chat | <target> | Разрешает указанному игроку использовать голосовой чат. |
sm_unsilence | basecomm | chat | <target> | Разрешает указанному игроку использовать и текстовый, и голосовой чат. |
Эти команды выделены в отдельный раздел, т.к. все связаны с голосованием. Ни одна из этих команд не доступна в War Mode по умолчанию.
Команда | Плагин | Необходимый уровень доступа | Аргументы | Описание |
---|---|---|---|---|
sm_vote | basevotes | vote | <question> [answer1] [answer2] ... [answer5] | Запускает кастомное голосование с своим вопросом. Если необходимо, так же используются свои варианты ответов. В противном случае, используются стандартные варианты "Да" и "Нет", которые переводятся на язык клиента. |
sm_votealltalk | funvotes | vote | Запускает голосование на смену значения консольной переменной sv_alltalk. | |
sm_voteban | basevotes | vote, ban | <target> [reason] | Запускает голосование на бан определённого игрока на 30 минут. |
sm_voteburn | funvotes | vote, slay | <target> | Запускает голосование на "поджигание" определённого игрока. |
sm_voteff | funvotes | vote | Запускает голосование на смену значения консольной переменной mp_friendlyfire. | |
sm_votegravity | funvotes | vote | <amount> [amount2] ... [amount5] | Запускает голосование на смену значения sv_gravity. |
sm_votekick | basevotes | vote, kick | <target> [reason] | Запускает голосование на кик указанного игрока. |
sm_votemap | basevotes | vote, map | <map> [map2] ... [map5] | Запускает голосование на смену карты. |
sm_voteslay | funvotes | vote, slay | <target> | Запускает голосование на убийство определённого игрока. |