Использование Metamod-P

Клиентские команды

Клиенту доступны следующие команды Metamod:

meta version
отображает информацию о версии Metamod работающей на сервере:

meta version

Metamod v1.17.4p17 2005/02/19 
by Will Day 
  http://www.metamod.org/ 
 Patch: Metamod-P (mm-p) v17 
 by Jussi Kivilinna 
   http://koti.mbnet.fi/axh/ 
compiled: Feb 19 2005, 23:17:48 EET (optimized) 

meta list
отображает информацию о запущенных плагинах:

meta list

Currently running plugins: 
[ 1] Trace HLSDK API, v1.XX.93, 2003/02/17, by Will Day <willday@metamod.org>, see http://www.metamod.org/ 
[ 2] Adminmod, v2.50.56 (MM), Jul 13 2003, by Alfred Reynolds <alfred@valvesoftware.com>, see http://www.adminmod.org/ 
2 plugins 

Клиентские переменные

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

metamod_version
1.17.1p9

Установка

Для установки Metamod, вы должны сделать следующее:

Скопировать библиотеку Metamod (.dll для win32, или .so для linux) в директорию с вашей игрой. К примеру для Counter-Strike, работающем на win32 это будет вот так:

half-life/cstrike/addons/metamod/dlls/metamod.dll

Если необходимых директорий нет, создайте их

Отредактируйте файл liblist.gam в директории вашей игры, заменив имя файла библиотеки вашей игры, на библиотеку Metamod. К примеру, для Counter-Strike, вы должны сменить:

gamedll "dlls/mp.dll" 
gamedll_linux "dlls/cs_i386.so" 

на:

gamedll "addons/metamod/dlls/metamod.dll" 
gamedll_linux "addons/metamod/dlls/metamod_i386.so" 

В действительности необходимо изменить только строку соответствующую вашей операционной системе (win32 или linux); вы можете оставить вторую строку неизменной. Измените вы ее или нет не имеет значения.

Для автоматической загрузки плагинов во время старта игры вам необходимо создать файл plugins.ini, содержащий список плагинов для загрузки.

Конфигурирование

У Metamod есть несколько способов конфигурирования. Частично так сложилось исторически, одни методы появились первыми, потом добавились другие. А также потому что одни способы удобнее других, в зависимости от ситуации.

Есть два основных метода передачи параметров для Metamod:

  • в командной строке, через параметры +localinfo для hlds.
  • как содержимое нескольких файлов, которые Metamod подгружает и анализирует.

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

В любом случае Metamod использует вот эти переменные конфигурации для определения имен конфигурационных файлов (перечислены в порядке приоритета):

в определениях указаны файлы по умолчанию и аналоги используемые для этих же целей. $gamedir здесь и ниже означает директорию с игрой, такую как cstrike

+localinfo mm_configfile <file>
$gamedir/addons/metamod/config.ini
главный конфигурационный файл.
+localinfo mm_pluginsfile <file>
config.ini option: plugins_file <file>
$gamedir/addons/metamod/plugins.ini
$gamedir/metamod.ini
+localinfo mm_execcfg <file>
config.ini option: exec_cfg <file>
$gamedir/addons/metamod/exec.cfg
$gamedir/metaexec.cfg
+localinfo mm_gamedll <file>
config.ini option: gamedll <file>
$gamedir/metagame.ini – Больше не поддерживаеться

Файл plugins.ini

Расположение по умолчанию: $gamedir/addons/metamod/plugins.ini, к примеру так cstrike/addons/metamod/plugins.ini.

Плагины в файле plugins.ini описываються в необходимом порядке загрузки по одному на строку вот в таком формате:

<platform> <filepath> [<description>]

Поля разделены пробелами или символом табуляции.

platform
ключевое слово, «linux» или «win32».
filepath
путь к библиотеке плагина; относительный путь от директории с игрой, или абсолютный путь к библиотеке.
пути определяются всегда как в *nix, через прямой слеш '/', не через обратный '\', принятый на win32 платформах.
description
не обязательное описание плагина, используеться как внутреннее имя плагина при выводе в логах.
Пробелы разрешены, заключение в кавычке не обязательно.
Коментарии в файле разрешены, но должны начинаться в начале строки в стиле в shell '#' или в стиле С '//'.

Пример файла cstrike/addons/metamod/plugins.ini, все строки в котором валидны:

plugins.ini

    // linux    dlls/mybot.so
    # win32     dlls/mybot-old.dll         Mybot old
    win32       dlls/mybot.dll             Mybot current
    linux       /tmp/stub_mm_i386.so
    win32       /tmp/stub_mm_i386.dll
    linux       ../dlls/trace_mm_i386.so
    win32       ../dlls/trace_mm_i386.dll
    linux       dlls/admin_MM_i386.so
    win32       dlls/admin_MM_i386.dll

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

Этот файл перечитываеться при смене уровня, и принудительно по команде meta refresh:

  • загрузка любых новых плагинов добавленных в файл
  • выгрузка плагинов удаленных из файла. Это применимо только к плагинам загруженным через конфиг. Если плагины загружали вручную через консоль, они не будут выгружены не зависимо от того были они в конфиге или нет.
  • перезапуск плагинов если они изменились с момента згрузки. Это применимо только для платформ linux, на Windows вы не сможете заменить или переименовать загруженную библиотеку.

Вы можете переопределить имя этого файла с помощью поля mm_pluginsfile параметра +localinfo.

Для совместимости с предыдущими версиями, Metamod также просматривает файл metamod.ini в директории игры, к примеру как cstrike/metamod.ini.

Файл config.ini

Расположение по умолчанию: $gamedir/addons/metamod/config.ini, к примеру так cstrike/addons/metamod/config.ini.

Содержит базовую информацию о конфигурации. На данный момент дублирует большинство переменных, задаваемых через +localinfo, но в будущем позволит расширить список опций. Также позволяе избежать порчи некоторых параметров передаваемых через +localinfo, в частности лидирующих точек в путях, к примеру как здесь '../dlls/blah.dll'.

Формат строк в конфиге:

<option> <value>

Поля разделяються пробелами или символом табуляции. Коментарии в файле разрешены, но должны начинаться в начале строки в стиле shell '#' или в стиле С '//'. Ниже приведен список текущих опций, их дефолтных значений и примеры использования.

debuglevel <number>
<number> целое число, 0 или больше.
Устанавливает начальный уровень отладки для Metamod (тоже самое что и переменная meta_debug).
По умолчанию 0. Если hlds запущен с параметром -dev, дефолтное значение будет 3.
Переопределяеться: +localinfo mm_debug <number>

Examples

debuglevel 0 
debuglevel 42 
gamedll <path>
<path> путь к библиотеке, абсолютный или относительно директории игры.
Может быть заменено автоопределением, в частности для ботов.
По умолчанию пусто, автоопределяеться по названию игровой директории.
Переопределяеться: +localinfo mm_gamedll <number>.

Examples

gamedll dlls/hl.dll 
gamedll ../podbot/podbot.dll 
gamedll /home/bots/dlls/mybot.dll 
plugins_file <path>
<path> абсолютный путь к библиотеке, или относительно директории игры.
Зменяет стандартное имя файла содержащего список плагинов для загрузки.
По умолчанию: addons/metamod/plugins.ini.
Переопределяеться: +localinfo mm_pluginsfile <number>.

Examples

plugins_file cfg/clanmode.ini 
plugins_file ../private.ini 
plugins_file /home/half-life/testing.ini 
exec_cfg <path>
<path> путь к конфигу, относительно директории игры.
Заметьте, абсолютный путь не работает, hlds не выполняет подгрузку конфигов по абсолютному пути.
Зменяет стандартное имя файла содержащего список команд выполняющихся после загрузки Metamod.
Значение по умолчанию: addons/metamod/exec.cfg.
Переопределяеться: +localinfo mm_execcfg <number>.

Examples

exec_cfg configs/debugging.cfg 
exec_cfg ../clan/match.cfg 
autodetect <yes/no>
Включает или выключение автоопределения мода по библиотеке. 1)
По умолчанию: «yes».
Переопределяеться: +localinfo mm_autodetect <yes/no>.
clientmeta <yes/no>
Включает или выключает доступность на слиенте команд Metamod, таких как meta list и meta version. 2)
По умолчанию: «yes».
Переопределяеться: +localinfo mm_clientmeta <yes/no>.
Вы можете изменить имя этого файла с помощью поля mm_configfile параметра +localinfo командной строки.

Файл exec.cfg

Размещение по умолчанию: $gamedir/addons/metamod/exec.cfg, к примеру вот так: cstrike/addons/metamod/exec.cfg.

Этот файл необходим для плагинов которые должны быть настроены раньше стандартного порядка активации сервера ServerActivate, но autoexec.cfg подгружаеться слишком рано, а server.cfg слишком поздно. В частности, я нашел это необходимым для настройки плагина трассировки, чтобы отследить порядок вызовов RegUserMsg вызванных в процессе ServerActivate.

Вы можете изменить имя этого файла с помощью параметра +localinfo mm_execcfg командной строки.

Для совместимости с предыдущими версиями, Metamod также просматривает файл metaexec.cfg в директории игры, такой как cstrike/metaexec.cfg.

Файл metagame.ini

Этот файл больше не используеться! – используйте параметр +localinfo mm_gamedll или в файле config.ini опцию gamedll.

Опции командной строки +localinfo

Некоторые конфигурационные переменные Metamod могут быть определены как поля параметра командной строки hlds +localinfo. Применение аналогично клиентской консольной команде setinfo:

+localinfo <field> <value> 

Действительные поля localinfo используемые Metamod

mm_configfile
Переопределяет имя файла config.ini содержащего конфигурационные параметры.
<value> содержит или абсолютный путь и имя или путь и имя относильно директории игры.
mm_pluginsfile
Переопределяет имя файла plugins.ini содержащего список загружаемых плагинов.
<value> содержит или абсолютный путь и имя или путь и имя относильно директории игры.
mm_execcfg
Переопределяет имя файла exec.cfg выполняемого hlds после запуска плагинов.
<value> содержит или абсолютный путь и имя или путь и имя относильно директории игры.
mm_autodetect
Определяет включить или выключить автоопределение игры. По умолчанию включено. 3)
mm_clientmeta
Определяет включить или выключить команды Metamod на стороне клиента. По умолчанию включено. 4)
mm_gamedll
Определяет библиотеку которую нужно использовать вместо родной библиотеки игры.
<value> содержит или абсолютный путь и имя или путь и имя относильно директории игры.
Это замена использованию файла metagame.ini. В предыдущих версиях для той же цели использовался файл admin.ini.
mm_debug
Определяет начальное значение meta_debug.

Каждое поле localinfo может содержать только одно значение. Если вы используете несколько, только последнее будет учтено. (В частности, попытка использовать mm_gamedll для загрузки нескольких библиотек с ботами работать не будет.).

Несколько примеров

 
	./hlds_run -game cstrike +localinfo mm_pluginsfile mylist.ini
	./hlds_run -game cstrike +localinfo mm_execcfg mysettings.cfg
	./hlds_run -game cstrike +localinfo mm_gamedll dlls/pod_bot.so
	./hlds_run -game cstrike +localinfo mm_debug 7

пути определяются всегда как в *nix, через прямой слеш '/', не через обратный '\', принятый на win32 платформах.

Команды

Все консольные команды являються cуб-командами к единственной команде meta, с дополнительными параметрами:

meta

  usage: meta <command> [<arguments>]
   valid commands are:
      version                - display Metamod version info (покажет версию Metamod)
      list                   - list plugins currently loaded (список запущенных плагинов)
      cmds                   - list console cmds registered by plugins (список команд зарегистрированных плагинами)
      cvars                  - list cvars registered by plugins (список переменных зарегистрированных плагинами)
      refresh                - load/unload any new/deleted/updated plugins
      config                 - show config info loaded from config.ini (покажет информацию о конфигурации загруженной из config.info)
      load <name>            - find and load a plugin with the given name (поиск и загрузка плагина по имени)
      unload <plugin>        - unload a loaded plugin (останов запущенного плагина)
      reload <plugin>        - unload a plugin and load it again (выгрузить и запустить плагин по новой)
      info <plugin>          - show all information about a plugin (покажет всю информацию о плагине)
      pause <plugin>         - pause a loaded, running plugin (приостанвка загрженного и запущенного плагина)
      unpause <plugin>       - unpause a previously paused plugin (продолжение работы ранее приостановленного плагина)
      retry <plugin>         - retry a plugin that previously failed its action (попытка повторить неудавшуюся последнюю операцию)
      clear <plugin>         - clear a failed plugin from the list (удалить ошибочные плагины из списка)
      force_unload <plugin>  - forcibly unload a loaded plugin (принудительная выгрузка запущенного плагина)
      require <plugin>       - exit server if plugin not loaded/running (останов сервера если плагин не загрузился)

Также доступна единственная переменная:

 meta_debug       - set debugging level (установка уровня отладки)

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

К примеру имеем:

meta list

  Currently loaded plugins:
        description       stat pend  file               vers    src  load  unlod
   [ 1] Trace HLSDK API   RUN   -    mm_trace_i386.so   v0.90   ini  ANY   Pause
   [ 2] adminmod          RUN   -    admin_MM.so        v2.11   ini  Start Start
   [ 3] stub              RUN   -    mm_stub_i386.so    v0.90   ini  ANY   Pause
  2 plugins, 2 running

Можно выгрузить плагин трассировки (Trace) любым из приведенных способов:

meta unload [index|частично имя]

   meta unload 1
   meta unload trace
   meta unload mm_trace

Процесс запуска/останова плагинов

В процессе запуска/останова плагины могут находиться в разных состояниях (колонка stat в выводе команды meta list):

BADFILE
Плагин не найден или это не валидный Metamod плагин.
OPENED
Плагин найден и являеться валидным плагином Metamod, готов к запуску.
FAILED
Попытка пуска или останова не удалась.
RUNNING
Плагин запущен и работает.
PAUSED
Плагин загружен но временно остановлен.
Также в процессе работы плагина он может ожидать перехода в следующее состояние (показываеться в колонке pend вывода команды meta list), и означает следующее:

LOAD
Плагин открыт и просматриваеться.
ATTACH
Присоединение плагина к запущенной игре - активация.
UNLOAD
Выгрузка плагина и закрытие файла.
RELOAD
Выгрузка/закрытие и переоткрытие/загрузка плагина, если файл плагина изменился.

Примеры использования

Примеры выполнения команд:

meta info

meta info admin

            name: adminmod
            desc: Adminmod
          status: running
          action: none
        filename: dlls/admin_MM.so
            file: admin_MM.so
        pathname: /home/willday/test/cstrike/dlls/admin_MM.so
           index: 3
          source: ini file
        loadable: at server startup
      unloadable: at server startup
         version: 2.11
            date: 2001/02/04
          author: Alfred Reynolds <alfred@mazuma.net.au>
             url: http://www.adminmod.org/
          logtag: ADMIN
     last loaded: Mon Feb  5 02:06:34 2001
   DLLAPI functions:
      GameDLLInit
      DispatchThink
      ClientConnect
      ClientCommand
      ClientUserInfoChanged
      ServerActivate
   6 functions (dllapi)
   No DLLAPI-Post functions.
   No NEWAPI functions.
   No NEWAPI-Post functions.
   No Engine functions.
   No Engine-Post functions.
   Registered commands:
      admin_command
   1 commands
   Registered cvars:                      float value  string value
      users_file                             0.000000  users.ini
      maps_file                              0.000000  mapvote.txt
      default_access                         1.000000  1
      ips_file                               0.000000  0
      reserve_slots                          1.000000  1
      reserve_slots_msg                      0.000000  0
      admin_debug                            1.000000  1
      password_field                         0.000000  admin_password
      alarm_message                          0.000000  0
      alarm_time                             0.000000  0
      use_regex                              1.000000  1
      models_password_field                  0.000000  0
      models_file                            0.000000  models.ini
      models_kick_msg                        0.000000  Invalid model
      script_file                            0.000000  cstrike/dlls/admin.amx
      help_file                              0.000000  admin_help.txt
      vote_freq                            360.000000  360
      encrypt_password                       1.000000  1
      pretty_say                             1.000000  1
      admin_mod_version                      2.110000  2.11
      reserve_type                           1.000000  1
      map_ratio                             60.000000  60
      kick_ratio                            75.000000  75
      words_file                             0.000000  0
      password_timeout                    1800.000000  1800
      file_access_read                       0.000000  0
      file_access_write                      0.000000  0
      public_slots_free                     20.000000  20.000000
      allow_client_exec                      0.000000  0
      admin_balance_teams                    0.000000  0
   30 cvars

meta cmds

meta cmds

   Registered plugin commands:
          plugin              command
    [  1] API trace           trace_version
    [  2] API trace           trace
    [  3] API trace           untrace
    [  4] API trace           showtrace
    [  5] Adminmod            admin_command
   5 commands, 5 available

meta cvars

meta cvars

   Registered plugin cvars:
          plugin      cvar                   float value  string value
    [  1] API trace   trace_debug               3.000000  3.000000
    [  2] API trace   trace_dllapi              8.000000  8
    [  3] API trace   trace_newapi              0.000000  0
    [  4] API trace   trace_engine              8.000000  8
    [  5] Adminmod    users_file                0.000000  users.ini
    [  6] Adminmod    maps_file                 0.000000  mapvote.txt
    [  7] Adminmod    default_access            1.000000  1
    [  8] Adminmod    ips_file                  0.000000  0
    [  9] Adminmod    reserve_slots             1.000000  1
    [ 10] Adminmod    reserve_slots_msg         0.000000  0
    [ 11] Adminmod    admin_debug               1.000000  1
    [ 12] Adminmod    password_field            0.000000  admin_password
    [ 13] Adminmod    alarm_message             0.000000  0
    [ 14] Adminmod    alarm_time                0.000000  0
    [ 15] Adminmod    use_regex                 1.000000  1
    [ 16] Adminmod    models_password_fiel      0.000000  0
    [ 17] Adminmod    models_file               0.000000  models.ini
    [ 18] Adminmod    models_kick_msg           0.000000  Invalid model
    [ 19] Adminmod    script_file               0.000000  cstrike/dlls/admin.amx
    [ 20] Adminmod    help_file                 0.000000  admin_help.txt
    [ 21] Adminmod    vote_freq               360.000000  360
    [ 22] Adminmod    encrypt_password          1.000000  1
    [ 23] Adminmod    pretty_say                1.000000  1
    [ 24] Adminmod    admin_mod_version         2.110000  2.11
    [ 25] Adminmod    reserve_type              1.000000  1
    [ 26] Adminmod    map_ratio                60.000000  60
    [ 27] Adminmod    kick_ratio               75.000000  75
    [ 28] Adminmod    words_file                0.000000  0
    [ 29] Adminmod    password_timeout       1800.000000  1800
    [ 30] Adminmod    file_access_read          0.000000  0
    [ 31] Adminmod    file_access_write         0.000000  0
    [ 32] Adminmod    public_slots_free        20.000000  20.000000
    [ 33] Adminmod    allow_client_exec         0.000000  0
    [ 34] Adminmod    admin_balance_teams       0.000000  0
   34 cvars, 34 available

meta unload

meta unload stub

   Unloaded plugin 'Stub plugin'
   Currently loaded plugins:
         description       stat pend  file               vers   src  load  unlod
    [ 1] Trace HLSDK API   RUN   -    mm_trace_i386.so   v0.90  ini  ANY   Pause
    [ 2] adminmod          RUN   -    admin_MM.so        v2.11  ini  Start Start
   2 plugins, 2 running

meta load

meta load stub

   Loaded plugin 'stub' successfully
   Currently loaded plugins:
         description       stat pend  file               vers   src  load  unlod
    [ 1] Trace HLSDK API   RUN   -    mm_trace_i386.so   v0.90  ini  ANY   Pause
    [ 2] adminmod          RUN   -    admin_MM.so        v2.11  ini  Start Start
    [ 3] stub              RUN   -    mm_stub_i386.so    v0.90  cmd  ANY   Pause
   3 plugins, 3 running

1) , 2) , 3) , 4) Дополнительно для патча Metamod+All-Mod-Support.

Дискуссия

Введите ваш комментарий (доступен синтаксис wiki):
If you can't read the letters on the image, download this .wav file to get them read to you.

 
server/metamod/usage.txt · Последние изменения: 2009/11/16 12:32 От zefir
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki


Linux coutner EOMY TOP 100Game's TOP-100 Counter