Приветствуем, геймер! Ты можешь или
16+
Ava

Геймер metalhead 16

101

Sourcemod: всё, что вы хотели знать.

Введение.

Если вы простой игрок в CSS и не собираетесь делать свой сервер, а также ковыряться в связанных с этим вопросах, можете не читать данный пост. Если вы долгое время держите сервер CSS или любой другой игрушки на движке Source, то вам, скорее всего, уже известна содержащаяся здесь информация. Пост нацелен главным образом на быстрое ознакомление c модификацией серверов, именуемой SourceMod, затрагивая при этом базовые найстройки и команды.

Sourcemod: всё, что вы хотели знать.
Counter-Strike: Source - Sourcemod: всё, что вы хотели знать.Sourcemod: всё, что вы хотели знать.

Назначение SourceMod.

SM главным образом предназначен для облегчения жизни админам сервера. Это удобный, простой, и вместе с тем мощный инструмент. Всем известная плюшка с наказаниями тимкиллеров всеми возможными способами, включая поджигание или превращение в ходячую бомбу, есть плагин к сурсмоду. Конечно, только этим дело не ограничивается, в вашем распоряжении просто уйма стандартных команд и действий. Более удобный кик, бан (чем встроенные, в которых вам нужно либо полностью указать ник игрока, либо его ID). Вы также можете управлять правами доступа к серверу как различных игроков, так и целых кланов, объединенных одним тегом. Создание плагинов является не очень сложной задачей, можно использовать как встроенный скриптовый язык, так и С++.

Установка SourceMod.

1. Качаем.
На момент написания поста версия была 1.2.1. Скачать ее вы можете вот по этой ссылке. Также вам понадобится скачать MetaMod (это уже отдельная история, вкратце скажу, что метамод позволяет запускать несколько модификаций для сервера, в том числе и сурсмод). Все эти разработки являются Open-Source и выпускаются под GPL - если сильно захочется, вы можете ознакомиться с исходниками :).
2. Настраиваем для работы.
Для начала надо настроить MetaMod. Распаковывайте архив в папку с сервером, каталог cstrike.
Например, у меня это "D:\games\Steam\steamapps\<мой аккаунт steam>\source dedicated server\cstrike".
Должна появиться папка addons. В нее мы должны поместить файл metamod.vdf, сгенерированный на этой странице.

Проделав данные манипуляции, запустим сервер и введем команду meta version, чтобы убедиться, что все сделано правильно.

Выглядеть должно примерно так:

] meta version

Metamod:Source version 1.7.1

Build ID: 644:f526469efdeb

Loaded As: Valve Server Plugin

Compiled on: Feb 25 2009

Plugin interface version: 10:7

SourceHook version: 4:3

http://www.metamodsource.net/

Теперь переходим непосредственно к SourceMod'y. Распаковываем в ту же папку, перезапускаем сервер, пишем команду sm version
Получить должны нечто вроде:

] sm version

SourceMod Version Information:

SourceMod Version: 1.2.1

SourcePawn Engine: SourcePawn 1.1, jit-x86 (build 1.2.1)

SourcePawn API: v1 = 4, v2 = 3

Compiled on: May 30 2009 23:59:05

Build ID: 2708:69195a250d70

http://www.sourcemod.net/

Сейчас можно глубоко вдохнуть и успокоиться - все начальные шаги проделаны :).

Окончательная настройка.

Сервер работает, метамод подключен, сурсмод тоже, осталось самое главное - настроить всё это добро под себя и свой сервер.

  • Этап 1. Добавляем админа.

    Сервером должен кто-то управлять, верно? :) Базовое средство для этого (через rcon) не очень удобно. SourceMod предоставляет следующую схему администрирования и выдачи прав игрокам: вы можете связать определенный набор прав на всевозможные стандартные действия либо с ником игрока, тогда ему придется завести пароль, либо с IP-адресом машины, либо со SteamID нужного нам человека.

    Для этого необходимо подредактировать файл admins_simple.ini по адресу "<папка с сервером>/cstrike/addons/sourcemod/configs"

    На мой взгляд, самым удобным и надежным является привязка к SteamID (стимайди - ваш уникальный идентификатор в системе стим, узнать его можно открыв в игре консоль и выполнив команду status; это запись вида STEAM_0:1:1234567) .

    В этот файл (admins_simple.ini) каждый администратор задается отдельной строчкой. Добавьте себя:

    "ВАШ_SteamID" "99:z"

    Здесь первое поле - ваш идентификатор (стимайди, айпи, ник), второе поле - уровень иммунитета и права. Данная запись означает, что вы обладаете всеми правами (флаг z) и ваш иммунитет = 99. Иммунитет - число, эдакая система иерархии между админами. Люди с меньшим иммунитетом, чем у вас, не смогут с вами ничего сделать.

    Примеры строк:

    "STEAM_0:1:16" "bce" // основные права, кик, разбан, иммунитета нет

    "!127.0.0.1" "5:z" // полный доступ по ip, иммунитет = 5

    "BAILOPAN" "abc" "Gab3n" //ник BAILOPAN, пароль"Gab3n": резервация слота, базовые команды + кик

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

    Я бы рекомендовал не копаться, вручную редактируя файл, но пользоваться вот этой программой.

  • Этап 2. Знакомство с возможностями SM.

    • 1. Резервация слотов.

      Достаточно удобная вещь, благодаря которой на сервере всегда (ну или почти всегда) найдется место для админа. Суть заключается в следующем: задаются несколько запасных, иначе говоря, резервных слотов, которые при заполнении сервера останутся свободными, доступными для админов.

      Хранятся эти настройки в sourcemod.cfg в "<папка с сервером>/cstrike/cfg/sourcemod"

      Таблица настроек резервации слотов:

      Переменная
      Значения
      Описание
      sm_reserve_type
      0|1|2
      0: Резервные слоты могут быть заняты только админами и только после заполнения всех свободных слотов. Игрок в резервном слоте не может быть автоматически кикнут. При заполнении запасных мест сервер становится полным и для админов, и они тоже не могут приконнектиться. Таким образом, на сервер всегда может зайти по крайней мере 1 админ.

      1: Если кто-то с доступом к резервным слотом пытается зайти на сервер и при этом все свободные слоты заполнены, то кикается игрок либо с самым высоким пингом, либо с самым долгим временем игры, либо случайно. Таким образом, резервные слоты практически всегда пустуют, за исключением ситуации, при который сервер забит админами :) Используйте, если хотите, чтобы определенные люди всегда могли зайти на сервер.

      2: Аналогично 1, но с ограничением числа админов. Как только оно достигнуто, сервер перестает кикать игроков для освобождения слотов и присоединиться к игре может любой.

      sm_reserve_slots
      #
      Количество зарезервированных слотов.
      sm_hide_slots
      0|1
      Скрывать или нет резервные слоты в окне поиска серверов. При установленной в 1 опции сервер на 24 человека, из которых 2 места зарезервированы в браузере будет показано, что сервер рассчитан на 22 человека.
      sm_reserve_maxadmins
      #
      Максимальное число админов на сервере при sm_reserve_type = 2
      sm_reserve_kicktype
      0|1|2
      0: кикается игрок с самым высоким пингом

      1: дольше всего находящийся на сервере

      2: случайным образом

    • 2. Меню админов.

      Каждый администратор может вызвать в игре меню, облегчающее ему жизнь и освобождающее от написания команд в консоли. Забиндите на какую-либо клавишу (я предпочитаю "=") команду sm_admin и пользуйтесь этим. Все (ну или почти все) доступные вам действия будут отображены в этом меню.

    • 3. Базовые команды.

      Команды, доступные всем (пишутся в чате):

      Команда
      Плагин
      Формат
      Описание
      currentmap

      basetriggers

      Выводит название текущей карты.

      ff

      basetriggers

      Сообщает, включен friendly fire или нет.

      nextmap

      nextmap

      Выводит название следующей карты.

      nominate

      rockthevote

      map

      Предложить карту для выбора голосованием.

      rtv или rockthevote

      rockthevote

      Вызвать досрочное голосование за смену карты.

      thetime

      basetriggers

      Показывает текущее время.

      timeleft

      basetriggers

      Показывает, сколько осталось времени до смены карты.

      sm_settings

      clientprefs

      Показывает меню клиентских настроек.

      Базовые команды для админов:
      Команда
      Плагин
      Доступ
      Формат
      Описание
      sm_addban

      basebans

      rcon

      время steamid [причина]

      Бан по стимайди.

      sm_admin

      adminmenu

      admin

      Показывает меню админа.

      sm_ban

      basebans

      ban

      #userid|ник минуты|0 [причина]

      Простой бан.

      sm_banip

      basebans

      rcon

      ip|#userid|ник время [причина]

      Бан по айпи.

      sm_cancelvote

      basecommands

      vote

      Отменяет текущее голосование.

      sm_cvar

      basecommands

      cvar

      переменная [значение]

      Показывает или меняет значение серверной переменной.

      sm_execcfg

      basecommands

      config

      имя файла.cfg
      Выполняет конфиг на сервере.

      sm_help

      adminhelp

      admin

      [команда]
      Выдает список всех команд с их описанием, также можно указать конкретную команду.

      sm_kick

      basecommands

      kick

      #userid|ник [причина]

      Кикает игрока.

      sm_map

      basecommands

      map

      карта
      Меняет карту.

      sm_rcon

      basecommands

      rcon

      команда
      Выполняет команду через rcon, при этом вы не увидите никаких сообщений.

      sm_reloadadmins

      basecommands

      config

      Обновляет список админов и выдает заново права, если потребуется.

      sm_unban

      basebans

      unban

      steamid

      Разбанивает Steam ID.

      sm_who

      basecommands

      admin

      [#userid|ник]

      Показывает всех игроков сервера и их права доступа. Можно указать конкретного игрока.

      Расширенные команды для админов:
      Команда
      Плагин
      Доступ
      Формат
      Описание
      sm_beacon

      basefuncommands

      slay

      цель
      Вокруг цели появляются кольца, что делает ее легко заметной. Нечто наподобие маячка.

      sm_burn

      basefuncommands

      slay

      цель [время]

      Поджигает игрока на указанное время.

      sm_chat

      basechat

      chat

      сообщение
      Посылает сообщение в чате всем админам.

      sm_csay

      basechat

      chat

      сообщение
      Показывает сообщение всем игрокам по центру экрана.

      sm_gag

      basecomm

      chat

      цель
      Отключает игроку чат.

      sm_hsay

      basechat

      chat

      сообщение
      Посылает сообщение всем игрокам в рамочке по центру экрана (хинт).

      sm_msay

      basechat

      chat

      сообщение
      Показывает сообщение как меню с радиокомандами.

      sm_mute

      basecomm

      chat

      цель
      Отключает указанному игроку микрофон (голосовой чат).

      sm_play

      basefuncommands

      admin

      цель файл
      Воспроизводит указанный звуковой файл данному игроку.

      sm_psay

      basechat

      chat

      цель сообщение
      Посылает приватное сообщение.

      sm_say

      basechat

      chat

      сообщение
      Посылает сообщение в чате всем игрокам.

      sm_silence

      basecomm

      chat

      цель
      Запрещает игроку пользоваться чатом и микрофоном (отключает их).

      sm_slap

      basefuncommands

      slay

      цель [урон]

      Дает звучный "пинок" игроку, толкая его в случайном направлении. По умолчанию урон = 0.

      sm_slay

      basefuncommands

      slay

      цель
      Убивает игрока.

      sm_tsay

      basechat

      chat

      [цвет] сообщение
      Посылает сообщение всем игрокам, отобразится в левом верхнем углу. По умолчанию цвет белый. Возможные цвета: white, red, green, blue, yellow, purple, cyan, orange, pink, olive, lime, violet, lightblue.

      sm_ungag

      basecomm

      chat

      цель
      Разрешает пользоваться чатом.

      sm_unmute

      basecomm

      chat

      цель
      Разрешает говорить по микрофону.

      sm_unsilence

      basecomm

      chat

      цель
      Возвращает возможность писать в чате и говорить по микрофону.

      Команды голосований:
      Команда
      Плагин
      Доступ
      Формат
      Описание
      sm_vote

      basevotes

      vote

      вопрос [ответ1] [ответ2] [ответ3] ...

      Начинает опрос с указанными вариантами ответа. Если их нет, то опрос будет типа да\нет.

      sm_votealltalk

      basefunvotes

      vote

      Начинает голосование за значение sv_alltalk.

      sm_voteban

      basevotes

      vote, ban

      цель [причина]

      Начинает голосование за бан игрока на 30 минут.

      sm_voteburn

      basefunvotes

      vote, slay

      цель
      Начинает голосование за поджигание указанного игрока.

      sm_voteff

      basefunvotes

      vote

      Начинает голосование за значение mp_friendlyfire.

      sm_votegravity

      basefunvotes

      vote

      значение [значение2] [значение3] ...

      Начинает голосование за смену sv_gravity.

      sm_votekick

      basevotes

      vote, kick

      цель [причина]

      Начинает голосование за кик указанного игрока с сервера.

      sm_votemap

      basevotes

      vote, map

      карта [карта2] [карта3] ...

      Начинает голосование за карту.

      sm_voteslay

      basefunvotes

      vote, slay

      цель
      Начинает голосование за убийство конкретного игрока.

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

      Хранятся в файле sourcemod.cfg в "<папка с сервером>/cstrike/cfg/sourcemod"

      Таблица настроек 1:

      Переменная
      Знач. по ум.
      Описание
      sm_show_activity
      13
      Варианты показа действий админа. Параметр является суммой следующих вариантов:

      1: обычные игроки не знают, кто именно произвел действие

      2: если 1 вкл., то игрокам будет показан ник админа

      4: админы не знают, кто именно выполнил данную команду

      8: если 4 вкл., то админы узнают, кто именно это сделал

      16: всегда показывать ники полным админам (с флагом z)

      По умолчанию установлено 1+4+8

      sm_menu_sounds
      1
      Звуки в менюшках:

      1: включены

      0: отключены

      sm_vote_delay
      30
      Через сколько секунд можно устроить новое голосование или опрос
      sm_datetime_format
      "%m/%d/%Y - %H:%M:%S"
      Отображение даты в логах. Возможно много вариантов, сверьтесь вот с этим.
      sm_immunity_mode
      1
      Определяет взаимодействие уровней иммунитета при попытке одного админа применить какую-либо команду к другому админу.

      0: проигнорировать иммунитет

      1: защитить админов с более высоким иммунитетом от админов, у которых иммунитет меньше

      2: защитить админов с более высоким иммунитетом от админов, у которых иммунитет меньше либо равен

      3: аналогично 2, но админы без иммунитета могут делать друг с другом, что их душа пожелает ;)

      sm_flood_time
      0.75
      Задержка между двумя сообщениями одного и того же игрока во избежание флуда. Необходим плагин antiflood.smx (по умолчанию входит в состав SM)
      sm_chat_mode
      1
      Могут или нет обычные игроки посылать приватные сообщения админам через команду say_team @ник_админа. Требуется basechat.smx
      sm_timeleft_interval
      0
      Время в секундах между сообщениями "Осталось N минут\секунд до конца карты". Диапазон 0 - 1800, 0 - отключено.
      Примечание: сюда не включены переменные, относящиеся к резервации слотов.

      Есть еще кое-какие настройки, они содержатся в файле core.cfg в папке с конфигами сурсмода.

      Таблица настроек 2:

      Параметр
      Значение по умолчанию
      Описание
      Logging
      on
      on - логи пишутся, off - отключены.
      LogMode
      daily
      Определяет, как именно пишутся логи. daily - один файл для одного дня, map - отдельный файл для каждой смены карты, game - писать в логи игры.
      ServerLang
      en
      Язык, используемый на сервере. Допускаются только перечисленные в languages.cfg
      PublicChatTrigger
      !
      Команды, выполненные админом через чат, следующие после этого знака, будут видны всем. Пустая строка отключает данную опцию.
      SilentChatTrigger
      /
      Команды, выполненные админом через чат, следующие после этого знака, не будут отображаться. Пустая строка отключает данную опцию.
      SilentFailSuppress
      no
      Если введенная в чате команда не соответствует никакой из доступных на сервере, то она отобразится в чате, даже если следует после "/" . Установка параметра в yes позволяет избежать этого.
      PassInfoVar
      _password
      Поле для хранения паролей при авторизации по нику.
      MenuItemSound
      buttons/button14.wav
      Звук, воспроизводимый при выборе пункта меню.
      MenuExitSound
      buttons/combine_button7.wav
      Звук, воспроизводимый при выходе из меню.
      MenuExitBackSound
      buttons/combine_button7.wav
      Звук, воспроизводимый при выборе возврата в меню.
      AllowClLanguageVar
      on
      Позволяет игрокам использовать свои родные языки, а не навязывать их сервером. При установке параметра в no у всех людей на данном сервере будет использоваться один и тот же язык.
      DisableAutoUpdate
      no
      Вкл. \ выкл. автоматическое обновление SourceMod'a.
      ForceRestartAfterUpdate
      no
      Делать рестарт после обновления, или нет.
      AutoUpdateURL
      Откуда обновлять сурсмод.
      DebugSpew
      no
      Показывать или нет отладочную информацию. На данном этапе разработки сюда входит только информация об обновлениях.

  • Этап 3. Радуемся, ликуем.

Заключение.

В общем-то, вы теперь знаете все базовые вещи, касающиеся SourceMod, от его установки до эксплуатации. Если вы заинтересовались - добро пожаловать на страницы вики и форум, где вы найдете уйму информации, например, как писать свои плагины. Этот же пост, поскольку место не резиновое ;) , подошел к логическому завершению. Спасибо за внимание.

Засим, разрешите откланяться :)

101
Еще в блоге
Интересное на Gamer.ru

21 комментарий к «Sourcemod: всё, что вы хотели знать.»

    Загружается
Чат