Руководство по установке и обновлению MetaMod и SourceMod.
Требования
- SRCDS сервер, работающий на Windows, Linux или Mac.
- Доступ к файловой системе SRCDS (например, через FTP или проводник).
- Если ваш клиент работает на Windows, а сервер — на Linux/Mac, вам понадобится архиватор/распаковщик файлов, например 7-ZIP.
Как установить MetaMod
MetaMod необходим для работы SourceMod. Поэтому я обычно устанавливаю MetaMod первым.
- Скачайте нужный пакет для вашей операционной системы здесь.
- Распакуйте скачанный файл, например, с помощью ZIP или Tar/GZIP.
- Скопируйте папку addons/ из распакованного файла в основную игровую директорию вашего сервера. Например, для Counter-Strike: Source это будет /path/to/server/cstrike/. Для Team Fortress 2 — /path/to/server/tf/.
Если появится запрос на замену папок или файлов, выберите «да». После установки убедитесь, что у вас есть файл metamod.vdf, расположенный в папке addons/. Все последние версии MetaMod уже включают этот файл, но если файла metamod.vdf нет, вы можете сгенерировать его здесь.
Обновление
- Выключите игровой сервер (технически, на Linux это необязательно, но сервер может упасть после смены карты).
- Выполните шаги 1–3, описанные выше.
Подтверждение
Чтобы убедиться, что MetaMod установлен на игровом сервере, вы можете выполнить команду meta version, чтобы проверить установленную версию. Если вы получите ошибку «unknown command», значит MetaMod установлен неправильно.
meta version
Metamod:Source Version Information
Metamod:Source version 1.12.0-dev+1165
Plugin interface version: 16:14
SourceHook version: 5:5
Loaded As: Valve Server Plugin
Compiled on: Dec 19 2022 17:29:31
Built from: https://github.com/alliedmodders/metamod-source/commit/63c5c15
Build ID: 1165:63c5c15
http://www.metamodsource.net/
Как установить SourceMod
Чтобы установить SourceMod, выполните следующие шаги.
- Скачайте нужный пакет для вашей операционной системы здесь.
- Распакуйте скачанный файл, например, с помощью ZIP или Tar/GZIP.
- Скопируйте папки addons/ и cfg/ из распакованного файла в основную игровую директорию вашего сервера. Например, для Counter-Strike: Source это будет /path/to/server/cstrike/. Для Team Fortress 2 — /path/to/server/tf/.
Обновление
- Выключите игровой сервер (технически, на Linux это необязательно, но сервер может упасть после смены карты).
- Выполните шаги 1 и 2, описанные выше.
- Скопируйте все папки и файлы из папки addons/sourcemod/ распакованного файла, за исключением папки configs/, в директорию SourceMod вашего игрового сервера. Например, для Counter-Strike: Source это будет /path/to/server/cstrike/addons/sourcemod/.
Причина, по которой мы исключаем папку configs/, заключается в том, чтобы не перезаписать какую-либо пользовательскую конфигурацию, которая у вас была, например, распространённый файл databases.cfg.
Подтверждение
Чтобы убедиться, что SourceMod установлен на игровом сервере, вы можете выполнить команду sm version, чтобы проверить установленную версию. Если вы получите ошибку «unknown command», значит SourceMod установлен неправильно.
sm version
SourceMod Version Information:
SourceMod Version: 1.11.0.6926
SourcePawn Engine: 1.11.0.6926, jit-x86 (build 1.11.0.6926)
SourcePawn API: v1 = 5, v2 = 16
Compiled on: Dec 20 2022 14:00:51
Built from: https://github.com/alliedmodders/sourcemod/commit/fd63fff8
Build ID: 6926:fd63fff8
http://www.sourcemod.net/
Игры, использующие MetaMod и SourceMod
Вот небольшой список игр, где сообщество и модифицированные игровые серверы используют MetaMod и SourceMod. Учтите, что есть и другие игры, не вошедшие в этот список.
- Half Life 2
- Counter-Strike: Source
- Counter-Strike: Global Offensive
- Team Fortress 2
- Left 4 Dead 1/2
- Day of Defeat: Source
- Zombie Panic: Source
- Fistful of Frags
Что такое MetaMod (MM)?
MetaMod — это C++ плагин для движка Half Life 2/Source от Valve, который позволяет работать другим плагинам/аддонам, таким как SourceMod. Вот полное описание от AlliedModders.
Цитата
Metamod:Source — это среда выполнения C++ плагинов для Half-Life 2. Она действует как «метамод», который располагается между игрой и движком и позволяет плагинам перехватывать вызовы, проходящие между ними. Она предоставляет механизм под названием SourceHook — очень мощную библиотеку для перехвата, переопределения и замены вызовов виртуальных функций.
Хотя Valve предоставляет собственную среду для C++ плагинов, мы нашли две основные причины для разработки Metamod:Source:
Если отдельные плагины используют собственные механизмы перехвата, возникнут конфликты. Централизованная среда SourceHook решает эту проблему, предоставляя единый шлюз.
У слоя Valve есть особенности, такие как неполная выгрузка из памяти и слабый консольный и программный контроль. Metamod:Source является явным, гибким и с открытым исходным кодом.
Важно отметить, что Metamod:Source — это не то же самое, что «Mani Admin Plugin», «SourceMod» или «EventScripts». Это очень небольшая библиотека-обёртка, предназначенная для загрузки и передачи нескольких указателей C++ плагинам. Она почти не содержит ненужного функционала (такого как игровые моды или поддержка MySQL) и сама по себе не создаёт накладных расходов.
Metamod:Source распространяется по очень либеральной лицензии с открытым исходным кодом. Вам не требуется раскрывать исходный код своих плагинов, так как лицензия допускает коммерческое/проприетарное использование. (Учтите, что вам, возможно, придётся соблюдать лицензионные соглашения стороннего программного обеспечения, такого как SDK от Valve или другие библиотеки.)
Что такое SourceMod (SM)?
SourceMod — это аддон к MetaMod, позволяющий пользователям и владельцам серверов писать/разрабатывать плагины на собственном языке программирования — SourcePawn. Он также включает команды и инструменты, значительно облегчающие администрирование сервера. Вот полное описание от AlliedModders.
Quote
SourceMod — это серверная модификация для любой игры, работающей на движке Half-Life 2. Это мощная, глубоко оптимизированная платформа для написания скриптов плагинов и администрирования сервера. Стандартный пакет включает базовый набор плагинов, но в сообществе доступно более 2500 плагинов.
Основные возможности (для пользователей)
Простая в использовании, детально настраиваемая система прав доступа (совместима с SQL)
Гибко настраиваемое админ-меню
Зарезервированные слоты
Гибкие плагины управления картами (номинации, rock the vote и т.д.)
Базовые команды, такие как kick/ban/slap/mute игроков, изменение cvar’ов и т.д.
Различные команды голосования
Защита от спама в чате
Продуманные чат-триггеры как для пользователей, так и для администраторов
Лёгкая локализация
SourceMod хорошо оптимизирован и идеально подходит для максимальной производительности ваших Source-серверов без необходимости писать код на C++.
Возможности для разработки скриптов (для разработчиков)
Administration — обширный API для разработки систем администрирования.
Clients — работа с информацией об игровых клиентах и колбэками.
Commands — создание, перехват и переопределение клиентских и серверных консольных команд.
ConVars — создание, перехват и получение значений консольных переменных.
Database — абстрагированный доступ к базам данных.
Engine — доступ ко многим функциям движка Half-Life 2, список которых постоянно пополняется.
Entities — изменение и получение свойств сущностей, как именованных, так и по номеру.
Events — создание, вызов и перехват GameEvents Half-Life 2.
Files — доступ к файловой системе.
IPC — продвинутое межплагинное взаимодействие, аналогичное AMX Mod X.
Menus — абстрагированный API меню для создания единообразных меню в разных модах.
Messages — отправка и перехват UserMessages.
Parsing — продвинутый, сильно оптимизированный парсинг текста.
Timers — создание событий по таймеру.
Translation — поиск фраз в многоязычных файлах перевода.
Чем отличается SourceMod? (для разработчиков)
- Скорость — SourceMod работает молниеносно, и это не пустые слова. Каждый плагин загружается в память и преобразуется в машинный код процессора. Уделяется огромное внимание тому, чтобы каждый критичный участок SourceMod работал так быстро, как должен. Язык скриптов статически типизирован и не требует сборки мусора.
- API — Большая часть работы над SourceMod направлена на то, чтобы сделать API максимально удобным. При добавлении любого интерфейса или функции мы задаём себе следующие вопросы:
- Представляет ли это оптимизированное решение?
- Будет ли этим кто-то пользоваться?
- Насколько это запутанно?
- Соответствует ли это наиболее вероятному сценарию использования?
- Можно ли будет расширить это в будущем?
- Отражает ли название суть функции?
- Соответствует ли название другим похожим функциям?
- Расширяемость — SourceMod полностью расширяем. SourceMod предоставляет полноценный C++ API для расширения как самого SourceMod, так и нативного API событий плагинов.
- Открытый исходный код — SourceMod, его расширения и плагины — всё это открытый исходный код под лицензией GNU General Public License!
См. также
Заключение
Вот и всё! Теперь вы знаете, как устанавливать и обновлять как SourceMod, так и MetaMod.
Если у вас есть вопросы или пожелания, пожалуйста, ответьте в этой теме!

