Metamod

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску

Описание

Основная цель проекта Metamod - расширить возможности HLDS сервера, добавить новый функционал или изменить существующий при помощи плагинов. Находясь в связке между библиотекой мода (далее просто DLL) и DLL подключенного к метамод плагина, он перехватывает вызовы функций между ними, с возможностью передачи их в другие плагины. Таким образом, вы можете подключать неограниченное количество плагинов и расширять возможности движка. Проще говоря, metamod внедряет функции DLLки плагина в мод. Плагины могу добавляеть или изменять функциональность мода, или самого движка - например, добавить новые команды и квары для сервера или клиента. Последняя версия: 1.20

Установка

Установка метамода довольно проста: необходимо создать пару папок и произвести изменения в liblist.gam.

Последовательность установки Metamod на Windows сервер:

  • Создать папку addons в папке с модом (прим, valve или tfc).
  • Создать папку metamod в созданной папке addons (основная папка metamod).
  • Создать папку dlls в папке metamod (место расположение dllku метамода).
  • Скопировать файл metamod.dll из архива metamod-1.20-win.zip в папку addons/metamod/dlls/.
  • Теперь последняя часть: подключение метамода к серверу.
    • Открыть файл liblist.gam в папке с модом при помощи блокнота.
    • Найти строчку с gamedll и удалить её.
    • Вписать на место удаленной строчке следующее: gamedll "addons\metamod\dlls\metamod.dll" .
    • Сохранить файл liblist.gam.

Теперь при запуске сервера в консоль будет выводится следующее:

Metamod version 1.19p32 Copyright (c) 2001-2006 Will Day
Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `meta gpl' for details.

Что говорит нам о успешной установки metamod модуля.

Настройка и Использование

Установка плагинов

В основном используется файл plugins.ini в папке addons/metamod/ для подключения плагинов. Синтаксис файла plugins.ini: <платформа> <путь к DLL плагина> <описание (опционально)>

Платформа - это ключевое слово для обозначения типа ОС плагина. win32 для .dll и linux для .so . Путь к DLL плагина - прописываем место нахождение плагина. Используется наклонная черточка стиля unix - (/).

К примеру, строка для подключения плагина AMX MOD X будет смотреться так: win32 addons/amxmodx/dlls/amxmodx_mm.dll .

Консольные команды

Все консольные команды имеют префикс meta. использование: meta <команда> [<параметры>]

  Доступные команды:
     version                - отобразить информацию о версии metamod
     list                   - отобразить список загруженных плагинов
     cmds                   - список консольных команды, добавленных плагинами
     cvars                  - список кваров, добавленных плагинами
     refresh                - перезагрузить metamod
     config                 - конфигурация из config.ini (нигде не используется)
     load <name>            - найти и загрузить плагин по указанному путь
     unload <plugin>        - выгрузить указанный плагин
     reload <plugin>        - перезагрузить указанный плагин
     info <plugin>          - отобразить подробную информацию о указанном плагине
     pause <plugin>         - приостановить работу плагна
     unpause <plugin>       - возобновить работу всех остановленных плагинлв
     retry <plugin>         - повторить попытку неудачной загрузки плагина
     clear <plugin>         - выгрузить из памяти неудачно загруженный плагин
     force_unload <plugin>  - принудительная выгрузка плагина
     require <plugin>       - выключить сервер, если указанный плагин не запущен

где <plugin> это ID плагина, его префикс или путь до плагина

Так-же есть квар:

meta_debug       - установка уровня отладки

Metamod-P

Это специальная версия Metamod от финского коддера Jussi Kivilinna (автора JK_Botti). Отличия от оригинальной версии:

  • Встроенный список энтайтов в библиотеке был замен на динамический. Информация о энтайтах берется на прямую из мода. Можно подключить и использовать этот метамод в любом моде.
  • Автоматическое обнаружение и загрузка библиотек сервера.
  • Лучшее потребление ресурсов CPU.

Ссылки