- Автор
-
Текущие разработчики
- Nicholas "psychonic" Hastings - Разработчик ядра, мейнтейнер
- Fyren - Сеньор-разработчик ядра
- Scott "DS" Ehlert - Разработчик ядра
- Asher "asherkin" Baker - Разработчик ядра
- Ruben "Dr!fter" Gonzalez - Разработчик ядра, мейнтейнер расширения CStrike
- David "BAILOPAN" Anderson - Основатель
Более не занимаются проектом, но внесли свой вклад...
- Matt "pRED" Woodrow - Разработчик ядра
- Matt "bl4nk" Schubert - Разработчик плагинов
- Borja "faluco" Ferrer - Сеньор-разработчик
- Rob "Liam" Butler - Разработчик плагинов
- Michael "ferret" McKoy - Разработчик плагинов
- Phong "teame06" Dang - Главный разработчик
- Требования
-
- Metamod:Source v1.10 и выше.
- Благодарности
-
- Viper с GameConnect: нарисовал нам наши логотипы
- Mani из проекта Mani-Admin-Plugin
SourceMod - серверная модификация для любой игры, которая работает под управлением движка Half-Life 2 (Source Engine). Это мощная, высоко оптимизированная платформа для написания сценариев-плагинов и администрирования сервера. Стандартный пакет включается в себя набор из базовых плагинов, но для SourceMod написано более 2500 плагинов сообществом.
Базовые возможности (для пользователей)
Возможности сценариев (для разработчиков)
Дополнительные ссылки
Базовые возможности (для пользователей)
- Лёгкая в использовании, глубоко детализированная система прав (возможно использование SQL-баз данных (MySQL, SQLite))
- Глубоко настраиваемое админ-меню
- Резервные слоты
- Гибкий набор плагинов управления картой (номинации, голосование за смену, и так далее)
- Базовые команды вроде кика/бана/шлепков/мута игроков, изменениях консольных переменных, и так далее
- Разнообразные варианты команд для голосований
- Простая система защиты чата от спама
- Комплексные чат-триггеры для игроков и администраторов
- Легко переводится на любой язык
Возможности сценариев (для разработчиков)
- Администрирование - Комплексный API для разработки систем администрирования.
- Клиенты - Работа с игровой информацией о клиенте (игроке) и обратными вызовами (каллбеками, событиями).
- Команды - Создание, перехват и переопределение команд консоли для клиента и сервера.
- Консольные переменные - Создание, перехват и чтение консольных переменных.
- Базы данных - Абстрактный доступ к SQL базам данных. Из коробки, доступны драйвера для SQLite и MySQL.
- Движок - Доступ ко многим функциям движка Half-Life 2, с добавлением новых.
- Сущности (энтити) - Изменение, получение свойств сущностей, как именованных, так и просто нумерованных.
- События - Создание, вызов и перехват игровых событий Half-Life 2.
- Файлы - Доступ к файловой системе.
- IPC - Расширенная связь между плагинами, похожая на ту, что используется в AMX Mod X.
- Меню - API для создания абстрагированного меню для всех игр.
- Сетевые пользовательские сообщения - Отправка и перехват пользовательских сетевых сообщений (UserMessages).
- Парсинг - Расширенный, высоко оптимизированный парсинг текстовых файлов в формате VDF (Valve Data Format).
- Таймеры - Создание отложенных вызовов некоторого кода.
- Мультиязычность - Возможность перевода плагина на несколько разных языков.
- Скорость. SourceMod очень лёгкий, быстрый, и это не хвастовство. Каждый плагин загружается в память и конвертируется в код для процессора. Очень важно, чтобы каждая область в SourceMod работала так быстро, насколько это возможно. Язык сценариев типизирован статически, и не требует сборки мусора.
- API. Основная часть работы SourceMod заключается в том, чтобы сделать API настолько хорошим, насколько это только возможно. При добавлении любого интерфейса или функции, мы задаёмся следующими вопросами:
- Оптимизировано ли наше решение?
- Кто-нибудь использовал бы это?
- Насколько это сбивает с толку?
- Это соответствует наиболее вероятному общему использованию?
- Удастся ли расширить его в будущем?
- Его имя полностью охарактеризовывает то, что он делает?
- Соответствует ли его название другим, аналогичным функциям?
- Расширяемость. SourceMod полностью расширяем. Он предоставляет полный C++ API для расширения как SourceMod, так и API, доступного плагинам.
- С открытым исходным кодом. SourceMod, его расширения, и его плагины, имеют полностью открытый исходный код, и распространяются по лицензии GNU General Public License!
Дополнительные ссылки
- Issue Tracker: перечень текущих проблем.
- Сборка SourceMod: инструкция по сборке SourceMod с применением AMBuild.
- Wiki для рядового пользователя: всевозможная информация по настройке SourceMod и его стандартных плагинов. Покрываются все основные возможные настройки.
- Введение в синтаксис SourcePawn: основная информация касательно синтаксиса.
- Введение в плагины SourceMod: простой мануал для написания своего первого плагина.
- SourceMod API: перечень всех доступных "из коробки" функций, событий (обратных вызовов).
- Команды
-
*Этот раздел будет дополняться!
Для управления всеми загруженными расширения и плагинами, SourceMod предоставляет единую входную точку:sm
. Например, для загрузки плагина, используется команда видаsm plugins load my_awesome_plugin.smx
(расширение необязательно, если в имени файла нет точек), а для просмотра списка расширений -sm exts list
.
Аргументы, заключенные в угловые скобки (<
и>
) обязательны.
Аргументы, заключенные в квадратные скобки - необязательны, опциональны.
Базовый набор команд
Здесь перечислен базовый набор команд, которые считаются безопасными для War Mode серверов; они предоставляют базовый функционал для администрирования Вашего сервера.
Команда Плагин Необходимый уровень доступа Аргументы Описание
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>
Запускает голосование на убийство определённого игрока.