Counter-Strike: Source Guide

Установка и настройка Sourcemod for Counter-Strike: Source

Установка и настройка Sourcemod

Overview

Вы обзавелись собственным сервером на движке Source и теперь хотите стать полноправным администратором своего виртуального мира. Это не так сложно и страшно, как может показаться сначала или как вас запугали друзья “крутые админы”, о чем я Вам и поведаю на страницах этой статьи.

Общие сведения

Что такое SourceMod?
Правильно сказать, что SourceMod – это плагин для MetaMod:Source, который в свою очередь является прослойкой между движком Source и плагинами. Другими словами, он даёт нам возможность модифицировать игру по нашему желанию с помощью простейших действий – как использования функций самого SourceMod, так и устанавливая плагины.

Так для чего нужен SourceMod?
А предназначен он, во-первых, дабы облегчить жизнь нам, админам, а во-вторых, повторюсь, для запуска дополнительных плагинов, преносящих как изменения игры, так и дополнительные возможности, опять же, нам, админам. . SourceMod даёт огромное количество вкусностей: это и кик/бан игроков парой нажатий, всевозможные голосовалки, смена конфигов, наказания тимкиллеров вроде поджога или ходячей бомбы, смена карты, установка параметров сервера прямо из строки чата или консоли и куча других фан-команд. Итак, приступим.

Установка

Качаем последние версии

MetaMod: Source

SourceMod

Что конкретно качать и устанавливать – решать вам. Я же рекомендую сначала всегда пробовать стабильную версию. Если будут проблемы, что часто бывает после выхода обновления сервера, то надо пробовать последнюю нестабильную сборку.

Подготовим наши моды к установке на сервер.
Сначала создадим у себя на диске директорию и назовем её, например, myServer. И разархивируем в неё содержимое скачанных файлов. В итоге должны получить в корне две директории – addons и cfg.

Идём по ссылке[www.metamodsource.net] и кладём сгенерированный metamod.vdf в папку addons.

Теперь сделаем тестовый прогон – закачаем содержимое нашей папки myServer на сервер, просто скопируем в директорию сервера.
Для разных серверов это различные директории:

  • Left 4 Dead 2 – left4dead2/
  • Counter-Strike: Source – cstrike/
  • Counter-Strike: Global Offensive – csgo/
  • Team Fortress 2 – tf/
  • Day of Defeat: Source – dod/
    …и далее по аналогии…

Теперь запустим сервер и проверим, запустился ли MetaMod и подгрузил ли он свои плагины:

meta list

Должны получить в ответ что-то вроде:

Listing 5 plugins: [01] SourceMod (1.4.0-dev) by AlliedModders LLC [02] SDK Tools (1.4.0-dev) by AlliedModders LLC [03] SDK Hooks (1.3.0) by Tsunami

Если же в ответ вы получили:

Unknown command “meta”

То проверьте наличие файла metamod.vdf в папке addons, либо читайте логи, которые появятся в директории logs – там будут выводится ошибки.

Теперь проверим SourceMod:

sm plugins list

В ответ что то вроде:

01 “Admin File Reader” (1.4.0) by AlliedModders LLC 02 “Admin Help” (1.4.0) by AlliedModders LLC 03 “Admin Menu” (1.4.0) by AlliedModders LLC 04 “Anti-Flood” (1.4.0) by AlliedModders LLC

Итак, мы убедились в работоспособности SourceMod, приступим к настройке.

Настройка

Настройка SourceMod заключается в редактировании конфигурационных (.cfg) файлов. Их довольно много, но нас интересуют всего несколько. Я разобью настройку на несколько этапов, где укажу, какие конфиги нужно править.

  • Создание администраторов

Информация об администраторах может храниться в двух файлах:

addons/sourcemod/configs/admins_simple.ini addons/sourcemod/configs/admins.cfg

В первом файле проще, во втором нагляднее. Какой именно использовать, решать вам. Можно и в обоих.
Формат admins_simple.ini до безобразия прост:

“steam id” “иммунитет:флаг”

или

“steam id” “иммунитет:@группа”

Т.е. каждая строка файла содержит Steam ID администратора, его иммунитет и его права – флаги или группа (обязательно впереди поставить ‘@’).

Иммунитет олицетворяет иерархию администраторов сервера – игроки с высшим иммунитетом могут применять действия, которые описываются флагом, к другим игрокам с более низким иммунитетом или вовсе без него.

Флаг же как раз указывает те действия, которые и может применять администратор и может принимать значения:

Имя
Флаг
Описание
reservation
a
Доступ к зарезервированным слотам
generic
b
Администратор. Должен быть указан у всех администраторов, если не указано ‘z’
kick
c
Кикать других игроков
ban
d
Банить других игроков
unban
e
Удалять баны
slay
f
Убивать/наносить вред
changemap
g
Смена карты
cvar
h
Менять большинство параметром cvar
config
i
Запуск конфигурационных файлов
chat
j
Особые привилегии в чате
vote
k
Запуск или создание голосований
password
l
Установка пароля на сервер
rcon
m
Использование RCON
cheats
n
Смена параметра sv_cheats или читов
root
z
Включает все флаги

Пример файла admins_simple.ini:

“STEAM_0:1:111222” “50:bcdg” // Права администратора, кикать, банить игроков и смена карты, авторизация по Steam ID, иммунитет 50 “!10.8.9.10” “60:z” // Авторизация по IP, полный доступ, иммунитет 60 “Bulkin” “abcdeghm” “12345” //Авторизация по нику Bulkin, пароль”12345″, иммунитета нет, резервация слота, права администратора, кик, бан, снятие бана, смена карты, смена cvar

В файле admins.cfg информация хранится в более расширенном и наглядном виде:

Admins { “Имя администратора” { “auth” “[steam|name|ip]” “identity” “unique id” “group” “значение” “flags” “флаги” “immunity” “значение” /* …. */ } }

Дабы закрепить материал, запишем наших администраторов из admins_simple.ini в admins.cfg:

Admins { “Skilled Player” { “auth” “steam” “identity” “STEAM_0:1:111222” “immunity” “50” “flags” “bcdg” } “Cool admin” { “auth” “ip” “identity” “10.8.9.10” “immunity” “60” “flags” “z” } “Comrade Bulkin” { “auth” “name” “identity” “Bulkin” “flags” “abcdeghm” “password” “12345” } }

Создание групп администраторов

Группы позволят нам применять одинаковый набор иммунитета и флагов сразу нескольким администраторам. При этом не нужно в описании каждого администратора указывать отдельно иммунитет или флаги. Для описания групп используется файл

addons/sourcemod/configs/admin_groups.cfg

Я не буду приводить тут полное описание конфига, лишь базовые принципы, которые нам очень пригодятся. Если же вам интересно, то можете получить более развернутую информацию на страницах техподдержки самого SourceMod.
Итак, формат групп такой:

Groups { “Администратор” { “flags” “флаги” “immunity” “значение” } }

Теперь на примере admins.cfg создадим наш собственный admin_groups.cfg, в который вынесем группы:

Groups { “Модератор” { “flags” “bcdg” “immunity” “50” } “Администратор” { “flags” “z” “immunity” “60” } “Смотритель” { “flags” “abcdeghm” } }

И перепишем admins.cfg, в котором укажем группы вместо флагов и иммунитета:

Admins { “Skilled Player” { “auth” “steam” “identity” “STEAM_0:1:111222” “group” “Модератор” } “Cool admin” { “auth” “ip” “identity” “10.8.9.10” “group” “Администратор” } “Comrade Bulkin” { “auth” “name” “identity” “Bulkin” “group” “Смотритель” } }

Теперь мы можем добавлять новых админов в только что созданные группы и не думать о флагах и иммунитете. Согласитесь, очень удобно!

Вывод сообщений и меню администратора на русском языке

Сначала надо внести русский в список доступных серверу языков:

addons/sourcemod/configs/languages.cfg
“Languages” { “en” “English” “ru” “Russian” }

Если есть желание, можно жёстко заставить сервер выдавать по-умолчанию все сообщения на русском, но я это не рекомендую – лучше оставить как есть, а выводить сообщен на на языке, который определяется автоматически по переменной cl_language, установленной у игрока. Тем не менее, чтобы установить язык меню и сообщений по-умолчанию на русский, вы можете внести в core.cfg следующий параметр:

addons/sourcemod/configs/core.cfg
“ServerLang” “ru”

Обратите внимание, что здесь можно указать только язык, определённый в файле languages.cfg.
А чтобы установить автоматическое определение языка, в этом же файле пропишем параметр:

“AllowClLanguageVar” “on”

Базовые настройки

Я приведу только наиболее часто используемые параметры.

    sourcemod.cfg
cfg/sourcemod/sourcemod.cfg

Полный список параметров sourcemod.cfg

Параметр
Значение по умолчанию
Описание переменной
sm_show_activity
13
Как показывать действия админа. Параметр является суммой следующих значений:
1: рядовые игроки не видят, кто именно совершил действие
2: если 1 установлен, то игрокам будет показан ник админа
4: админы не видят, кто именно совершил действие
8: если 4 установлен, то админы видят, кто именно совершил действие
16: всегда показывать ники админам с флагом ‘z’
По умолчанию установлено 1+4+8
sm_menu_sounds
1
Звуки в меню:
1: включены
0: отключены

Дальнейшие настройки звуков производятся в addons/sourcemod/configs/core.cfg

sm_vote_delay
30
Время в секундах, через которое можно запустить новое голосование или опрос
sm_datetime_format
“%m/%d/%Y – %H:%M:%S”
Формат даты и времени в лог-файлах. Полные сведения можно получить по ссылке [opengroup.org]
sm_immunity_mode
1
Определяет взаимодействие уровней иммунитета при попытке одного админа применить какую-либо команду к другому админу.
0: Игнорировать иммунитет
1: Защищать админов с более высоким иммунитетом
2: Защищать админов с более высоким или равным иммунитетом
3: Защищать админов с более высоким или равным иммунитетом, а также позволить админам без иммунитета совершать действия друг над другом
sm_flood_time
0.75
Задержка в секундах между двумя сообщениями одного и того же игрока во избежание флуда. Переменная относится к плагину antiflood.smx (входит в состав SourceMod).
sm_reserve_type
0
Указывает, как резервивовать слоты:
0: Резервировать слоты. Например, если на сервер на 24 слота, зарезервированы 2, то доступны будут только 22 слота.
1: Не резервировать слоты, но при заходе админа будет кикнут игрок с максимальной задержкой и без права доступа к резервированному слоту. Причём сначала кикаются спектаторы, если их нет, то игроки. Единственный вариант, когда никого кикать не будет, если все игроки на сервере имеют доступ к резервированным слотам.

Переменная относится к плагину reservedslots.smx (входит в состав SourceMod).

sm_reserved_slots
0
Количество зарезервированных слотов. Админы смогут подключиться к серверу, если нет доступных публичных слотов.
Переменная относится к плагину reservedslots.smx (входит в состав SourceMod).
sm_hide_slots
0
Прятать или нет резервные слоты.
1: Да
0: Нет

Переменная относится к плагину reservedslots.smx (входит в состав SourceMod).

sm_chat_mode
1
Разрешает обычным игроки посылать приватные сообщения админам через команду say_team @админ .
Переменная относится к плагину basechat.smx (входит в состав SourceMod).
sm_timeleft_interval
0
Время в секундах между сообщениями “Осталось N минутсекунд до конца карты”. Диапазон от 0 до 1800. 0 – отключено.
Переменная относится к плагину basetriggers.smx (входит в состав SourceMod).
sm_trigger_show
1
Показывать сообщения триггеров всем игрокам либо только тому, кто его включил.
Переменная относится к плагину basetriggers.smx (входит в состав SourceMod).
sm_vote_progress_hintbox
0
Показывать или нет процесс голосования в hint-области
sm_vote_progress_chat
0
Показывать или нет процесс голосования в общем чате
    core.cfg
addons/sourcemod/configs/core.cfg

Полный список параметров core.cfg

Параметр
Значение по умолчанию
Описание переменной
Logging
On
Писать ли лог
on: Да
off: Нет
LogMode
daily
Режим записи в лог-файлы:
daily: Создавать новый лог-файл каждый день с сохранением старых
map: Создавать новый лог-файл с сохранением старых при смене каждой карты
game: Использовать логи сервера (т.е. писать в общий лог)
ServerLang
en
Язык сервера по-умолчанию. На этом языке будут выводится сообщения сервера и плагинов с поддержкой множества языков, если не установлен параметр AllowClLanguageVar “on” либо не удастся его определить. Указывать можно только языки, перечисленные в languages.cfg.
PublicChatTrigger
!
Символ команды сервера.
Если в начале команды стоит этот символ, то всем игрокам будет видна и введёная команда и её результат. Например, если ввести !vote “Нравится ли вам Sourcemod”, то игроки увидят текст этой команды в общем чате, а потом и запущенное голосование.
SilentChatTrigger
/
Символ тихого режима команд.
Если в начале команды стоит этот символ, то ведёная команда будет видна только её создателю, а результат всем игрокам. Например, если ввести /vote “Нравится ли вам Sourcemod”, то игроки увидят только запущенное голосование.
SilentFailSuppress
no
Если в начале в начале команды использовался символ, определённый параметром SilentChatTrigger, и команда была введена администратором, но сервер не смог её определить, то команда будет показана всем. Этот параметр нужен, чтобы скрыть случайные ошибки в воде команд.
on: Включено
off: Показ ошибочных команд выключен
PassInfoVar
_password
Название команды, которая определяет пароль у игрока. Этот параметр должен быть установлен у игрока, чтобы он смог использовать пароль для доступа к SourceMod, если таковой для него установлен.
AllowClLanguageVar
on
Указывает SourceMod переводить или нет меню и сообщения сервера на язык, который SourceMod определяет по переменной cl_language, установленной у клиента. Перевод может быть только на языки, перечисленные в languages.cfg.
on: Переводить
off: Не переводить
DisableAutoUpdate
off
Отключить автоматическое обновление игровых данных SourceMod. Т.е. файлов в директории gamedata, а не всего SourceMod, как ошибочно полагают многие. По умолчанию автоматическое обновление включено.
on: Обновление отключено
off: Обновление включено
ForceRestartAfterUpdate
off
Перегрузить SourceMod после обновления. SourceMod будет выгружен и загружен, будет запущена карта сервера по-умолчанию. Т.к. проверка обновлений происходит при загрузке сервера, вмешательство минимальноее. Тем не менее, этот параметр отключен для безопасности.
on: Перезагрузить SourceMod
off: Не перезагружать

Предисловие

Я постарался разбавить сухую документацию о пользовании SourceMod более живым изложением. Убрал лишнее и акцентировал внимание на важных аспектах. Надеюсь, что так будет адекватнее для практического использования.

SteamSolo.com