MetaMod

Od HLDS.pl
(Różnice między wersjami)
Skocz do: nawigacji, wyszukiwania
(Wymagania)
m (Wycofano edycję użytkownika DeLL (dyskusja). Autor przywróconej wersji to PawelS.)
 
(Nie pokazano 5 wersji utworzonych przez 3 użytkowników)
Linia 1: Linia 1:
 
=Wstęp=
 
=Wstęp=
{{stub}}
+
MetaMod jest dodatkiem do serwerów [[HLDS]], dzieki któremu mozemy doistalować jeszcze inne dodatki, unikająć podmiany plików głównych moda w grze (''chodzi o np.: mp.dll'').
MetaMod jest dodatkiem do serwerów [[HLDS]], dzieki któremu mozemy doistalować jescze inne dodatki, unikajć podmiany plików głównych moda w grze (chodzi o np mp.dll).
+
  
 
Dzięki niemu możmey dodać takie dodatki do serwera jak:
 
Dzięki niemu możmey dodać takie dodatki do serwera jak:
 
* [[AMX Mod]]
 
* [[AMX Mod]]
 
* [[AMX Mod X]]
 
* [[AMX Mod X]]
* [[StatsMe]]
 
* [[ClanMod]]
 
 
* [[HLGuard]]
 
* [[HLGuard]]
* [[WWCL]]
 
 
* [[SoundCheck]]
 
* [[SoundCheck]]
* [[PODBot mm]] (boty do gry)
+
* [[WWCL]]
 +
* [[StatsMe]] (''nie wspierane'')
 +
* [[ClanMod]] (''nie wspierane'')
 +
* [[PODBot mm]] (''boty do gry'')
 
ora jeszcze parę innych
 
ora jeszcze parę innych
  
Aktualnie istnieją dwa projeky - MetaMod oraz MetaMod-p. Ten drugi napisany został w czasie kiedy Valve wprwadziło ważne zmiany do gier, i wymagana była aktualzacja metamoda, a oficjalna strona nie dawała zycia. Aktualnie w wersji 1.19 oba projekty wykonują to samo. MetaMod-p jest torchę lepiej zoptymalizowany.
+
Aktualnie istnieją dwa projeky - MetaMod oraz MetaMod-P. Ten drugi napisany został w czasie kiedy Valve wprowadziło ważne zmiany do gier i wymagana była aktualzacja MetaMod-a, a oficjalna strona nie dawała życia. Aktualnie w wersji 1.19 oba projekty wykonują to samo. MetaMod-P jest trochę lepiej zoptymalizowany.
  
Opis na tej stronie jest właściwie do zastosowania w każdej wersji MetaModa albo MetaMod-P zaczynając od MetaModa 1.17.3 włącznie.
+
Opis na tej stronie jest właściwie do zastosowania w każdej wersji MetaMod-a albo MetaMod-P zaczynając od MetaMod-a 1.17.3 włącznie.
  
 
=Różnice=
 
=Różnice=
'''MetaMod''' jest rozwijany przez kodera o pseudonimie '''willday'''. Aktualnie wersja 1.19 pojawiła się PO metamod-p i jest ulepszona niz metamod-p, między innymi jest rekomendowana dla użytkówników korzystających z [[PODBot]]a.
+
'''MetaMod''' jest rozwijany przez kodera o pseudonimie '''willday'''. Aktualnie wersja 1.19 pojawiła się po MetaMod-P i jest ulepszona niż MetaMod-P, między innymi jest rekomendowana dla użytkówników korzystających z [[PODBot]]a.
  
'''MetaMod-P''' jest ulepszoną wersją Metamod'a. Posiada funkcję dynamicznego linkowania obiektów i wykrywania modu, posiada kilkanaście innych ulepszeń, które pozwalają mu na pracę z przyszłymi aktualizacjami silnika [[Half-Life]] oraz pojawiających się nowych modów. Metamod-P jest rozwijany przez kodera o pseudonimie willday. Jussi Kivilinna (evilspy)
+
'''MetaMod-P''' jest ulepszoną wersją Metamod'a. Posiada funkcję dynamicznego linkowania obiektów i wykrywania modu, posiada kilkanaście innych ulepszeń, które pozwalają mu na pracę z przyszłymi aktualizacjami silnika [[Half-Life]] oraz pojawiających się nowych modów. Metamod-P jest rozwijany przez kodera o pseudonimie hullu, evilspy (Jussi Kivilinna).
  
 
Co jest takiego specjalnego w MetaMod-P?
 
Co jest takiego specjalnego w MetaMod-P?
* Statycznie przypisane linki do obiektów zostały zastąpione dynamicznymi linkami - dzięki temu nie trzeba aktualizować metamod-p jak wychodzą nowe wersje tego samogo [[mod|moda]].
+
* Statycznie przypisane linki do obiektów zostały zastąpione dynamicznymi linkami - dzięki temu nie trzeba aktualizować MetaMod-P jak wychodzą nowe wersje tego samego [[mod|moda]].
* Dodatkowe miejsca na funkcje silnika , przeznaczone na przyszłe aktualizacje silnika [[Half-Life]] (raczej mało prawdopodobne bo Valve jest bardziej zainteresowane w [[Source]]). Żeby MetaMod-P się zeaktualizował, Valve musiałoby odać ekstra 128 nowych funkcji do silnika Half-Life, a to jest masa.
+
* Dodatkowe miejsca na funkcje silnika, przeznaczone na przyszłe aktualizacje silnika [[Half-Life]] (''raczej mało prawdopodobne bo Valve jest bardziej zainteresowane w [[Source]]''). Żeby MetaMod-P się zeaktualizował, Valve musiałoby odać ekstra 128 nowych funkcji do silnika Half-Life, a to jest masa.
*Automatycznie wykrywa gamedll dla niezanych/nowych modów, dzięki czemu nie musisz używać metamod-config aby zmusić metamod'a do działania z tymi pluginami.
+
* Automatycznie wykrywa gamedll dla niezanych/nowych modów, dzięki czemu nie musisz używać metamod-config aby zmusić metamod'a do działania z tymi pluginami.
* Z powodu powyższych zmian nie musisz aktualizować metamod-p gdyby wyszły nowe wersje modów gry Half-Life.
+
* Z powodu powyższych zmian nie musisz aktualizować MetaMod-P gdyby wyszły nowe wersje modów gry Half-Life.
* Lepsza wydajność - niższe użycie CPU niż oryginalnego MetaMod'a.
+
* Lepsza wydajność - niższe użycie CPU, niż oryginalnego MetaMod'a.
*Niestety nie posaida paru ulepszeń jakie ma MetaMod 1.19, który pojawił się po MetaMod-P, i brakuje mu kilku funkcji porawionych dla CS 1.5, i nie nadaje się zbytnio właśnie do CS.15 szczególnie z botami.
+
* Niestety nie posaida paru ulepszeń jakie ma MetaMod 1.19, który pojawił się po MetaMod-P, i brakuje mu kilku funkcji porawionych dla CS 1.5, i nie nadaje się zbytnio właśnie do CS 1.5 (''szczególnie z botami'').
  
 
=Linki=
 
=Linki=
* Metamod [http://www.metamod.org Metamod]
+
* [http://www.metamod.org MetaMod]
* MeaMod-p [http://metamod-p.sourceforge.net Metamod-p]
+
* [http://metamod-p.sourceforge.net Metamod-P]
 +
 
 
=Instalacja=
 
=Instalacja=
 
Przykład dla serwera z modem [[Counter-Strike]], czyli mamy nazwę [[mod]]a ''cstrike''. Jak uzywacie innego moda, odpowiednio zmieńcie ''cstrike'' na nazwę, np ''dod'', ''czero'', ''tfc''
 
Przykład dla serwera z modem [[Counter-Strike]], czyli mamy nazwę [[mod]]a ''cstrike''. Jak uzywacie innego moda, odpowiednio zmieńcie ''cstrike'' na nazwę, np ''dod'', ''czero'', ''tfc''
 +
 
==Wymagania==
 
==Wymagania==
 
* '''[http://pl.wikipedia.org/wiki/Iloraz_inteligencji IQ] w okolicach 120 - jeżeli nie spełniasz tego warunku ODPUŚĆ sobie'''
 
* '''[http://pl.wikipedia.org/wiki/Iloraz_inteligencji IQ] w okolicach 120 - jeżeli nie spełniasz tego warunku ODPUŚĆ sobie'''
Linia 41: Linia 42:
 
==Linux==
 
==Linux==
 
Wszekie komendy wykonujemy w [[konsola|konsoli]]
 
Wszekie komendy wykonujemy w [[konsola|konsoli]]
*Ściągamy metamoda (Linux binary):
+
* Ściągamy metamod-a (''Linux binary''):
  wget http://voxel.dl.sourceforge.net/sourceforge/metamod-p/metamod-1.19p28-linux-i586.tar.gz  
+
** http://sourceforge.net/project/showfiles.php?group_id=135860&package_id=149232
 +
  wget http://belnet.dl.sourceforge.net/sourceforge/metamod-p/metamod-p-1.19p32-linux_i586.tar.gz
  
 
*W katalogu "cstrike":  
 
*W katalogu "cstrike":  
Linia 54: Linia 56:
 
  `-- metamod
 
  `-- metamod
 
     `-- dlls
 
     `-- dlls
 
  
 
*Przechodzimy do katalogu ze ściągniętym metamodem i rozpakowujemy go:
 
*Przechodzimy do katalogu ze ściągniętym metamodem i rozpakowujemy go:
  tar -zxvf metamod-1.19p28-linux-i586.tar.gz
+
  tar -zxvf metamod-p-1.19p32-linux_i586.tar.gz
  
 
Otrzymujemy plik: ''metamod_i386.so''
 
Otrzymujemy plik: ''metamod_i386.so''
Linia 67: Linia 68:
 
  touch plugins.ini  
 
  touch plugins.ini  
  
Wpisujemy do niego ścieżki do modów, takich jak amx, amxx, hlguard...itd (opisy w artach dotyczących poszczególnych modow)
+
Wpisujemy do niego ścieżki do modów, takich jak amx, amxx, hlguard...itd (''opisy w artach dotyczących poszczególnych modów'')
  
 
*Przechodzimy do katalogu ''cstrike'', odnajdujemy plik ''liblist.gam'', a w nim linie zaczynające sie od:
 
*Przechodzimy do katalogu ''cstrike'', odnajdujemy plik ''liblist.gam'', a w nim linie zaczynające sie od:
 
  gamedll_linux "dlls/cs_i386.so"
 
  gamedll_linux "dlls/cs_i386.so"
Wtedy dajemy na początku linii znaczek # i niżej dodajemy zmodyfikowana linię aby ładować MetaModa.
+
Wtedy dajemy na początku linii znaczek # i niżej dodajemy zmodyfikowana linię aby ładować MetaMod-a.
 
  #gamedll_linux "dlls/cs_i386.so"
 
  #gamedll_linux "dlls/cs_i386.so"
 
  gamedll_linux "addons/metamod/dlls/metamod_i386.so"   
 
  gamedll_linux "addons/metamod/dlls/metamod_i386.so"   
Linia 77: Linia 78:
 
I startujemy nasz server, jeśli otrzymamy przy starcie:
 
I startujemy nasz server, jeśli otrzymamy przy starcie:
 
<pre>
 
<pre>
Metamod version 1.19p28 Copyright (c) 2001-2005 Will Day
+
Metamod version 1.19p32 Copyright (c) 2001-2005 Will Day
Patch: Metamod-P (mm-p) v26 Copyright (c) 2004-2005 Jussi Kivilinna
+
Patch: Metamod-P (mm-p) v32 Copyright (c) 2004-2005 Jussi Kivilinna
 
Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
 
Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
 
This is free software, and you are welcome to redistribute it
 
This is free software, and you are welcome to redistribute it
 
under certain conditions; type `meta gpl' for details.
 
under certain conditions; type `meta gpl' for details.
 
</pre>
 
</pre>
/lub podobnie, zaleznie od wersji/
+
/lub podobnie, zależnie od wersji/
  
i dalej sie ladują (bedz nie :P ) mody, znaczy to ze metamod działa.
+
i dalej sie ladują (''bądź nie :P'') mody, znaczy to, że metamod działa.
Po co znaczek # na początku? Jak cos nie zadziała, to damy w nowo dodanej linii znaczek # i usuniemy z pierwszej, i serwer po restarcie będzie działał jak przed aktywacj a MetaModa.
+
Po co znaczek # na początku? Jak coś nie zadziała, to damy w nowo dodanej linii znaczek # i usuniemy z pierwszej, i serwer po restarcie będzie działał jak przed aktywacja MetaMod-a.
  
 
Jak nie masz dostepu do konsoli serwera uzyj komendy [[#meta_version|meta version]] albo [[#meta_list|meta list]]
 
Jak nie masz dostepu do konsoli serwera uzyj komendy [[#meta_version|meta version]] albo [[#meta_list|meta list]]
  
 
==Windows==
 
==Windows==
*Sciągamy metamoda [http://sourceforge.net/projects/metamod-p Windows binary]
+
*Ściągamy metamod-a (''Windows binary'')
 +
** http://sourceforge.net/project/showfiles.php?group_id=135860&package_id=149232
 +
 
 
[[Grafika:Metamod_windows.gif|right]]
 
[[Grafika:Metamod_windows.gif|right]]
 
*W katalogu ''cstrike'':  
 
*W katalogu ''cstrike'':  
Linia 98: Linia 101:
 
**wchodzimy do ''metamod'', tworzymy ''dlls''
 
**wchodzimy do ''metamod'', tworzymy ''dlls''
  
*Czyli powinno to wygladac nastepująco (jak na obrazku na prawo):
+
*Czyli powinno to wygladac nastepująco (''jak na obrazku na prawo''):
 
cstrike\addons\metamod\dlls
 
cstrike\addons\metamod\dlls
  
Przechodzimy do katalogu ze sciągnietym metamodem i rozpakowujemy go.
+
Przechodzimy do katalogu ze ściągnietym metamodem i rozpakowujemy go.
  
 
Otrzymujemy plik: ''metamod.dll''
 
Otrzymujemy plik: ''metamod.dll''
Linia 110: Linia 113:
 
Mozemy stworzyc plik "plugins.txt" i zmienic mu rozszerzenie na "ini", ale uwaga na ukryte rozszerzenia w windowsie, czyli ma być plugins.ini, a '''nie''' plugins.ini.txt\
 
Mozemy stworzyc plik "plugins.txt" i zmienic mu rozszerzenie na "ini", ale uwaga na ukryte rozszerzenia w windowsie, czyli ma być plugins.ini, a '''nie''' plugins.ini.txt\
  
Wpisujemy do niego scieżki do modów, takich jak amx, amxx, hlguard...itd (opisy w artach dotyczacych poszczegolnych modow)
+
Wpisujemy do niego scieżki do modów, takich jak amx, amxx, hlguard...itd (''opisy w artach dotyczacych poszczegolnych modów'')
  
 
*Przechodzimy do katalogu "cstrike", odnajdujemy plik "liblist.gam", a w nim linie zaczynajaca sie od:
 
*Przechodzimy do katalogu "cstrike", odnajdujemy plik "liblist.gam", a w nim linie zaczynajaca sie od:
 
  gamedll "dlls\mp.dll"
 
  gamedll "dlls\mp.dll"
Dajemy w tej linii znak '''#''' na początku, a niżej wstawiamy nową linię, zmodyfikowaną tak aby ładować MetaModa:
+
Dajemy w tej linii znak '''#''' na początku, a niżej wstawiamy nową linię, zmodyfikowaną tak aby ładować MetaMod-a:
 
  #gamedll "dlls\mp.dll"
 
  #gamedll "dlls\mp.dll"
 
  gamedll "addons\metamod\dlls\metamod.dll"  
 
  gamedll "addons\metamod\dlls\metamod.dll"  
Linia 120: Linia 123:
 
i odpalamy nasz serverek.
 
i odpalamy nasz serverek.
  
'''Po co znaczek # na początku?''' Jak cos nie zadziała, to damy w nowo dodanej linii znaczek # i usuniemy z pierwszej, i serwer po restarcie będzie działał jak przed aktywacj a MetaModa.
+
'''Po co znaczek # na początku?''' Jak cos nie zadziała, to damy w nowo dodanej linii znaczek # i usuniemy z pierwszej, i serwer po restarcie będzie działał jak przed aktywacja MetaMod-a.
  
 
=Komendy=
 
=Komendy=
Linia 126: Linia 129:
 
=== Wersja ===
 
=== Wersja ===
 
<div id="meta_version"></div>
 
<div id="meta_version"></div>
Wersja MetaModa - stosuj aby sprawdzić czy działa i jaka ma wersje.
+
Wersja MetaMod-a - stosuj aby sprawdzić czy działa i jaka ma wersje.
 
  meta version
 
  meta version
 
<pre>
 
<pre>
Linia 135: Linia 138:
 
</pre>
 
</pre>
  
=== Lista pluginów=== <div id="meta_list></div>
+
=== Lista pluginów ===
 +
<div id="meta_list></div>
 
Listowanie pluginów, podaje numer ładowania pluginu, opis (description), status (''RUN'' czyli uruchomiony, ''badload'' to znaczy że nie działa), status oczekiwania (pend), nazwa pliku (file), versja pluginu (vers), źródło ładowania (src, ''ini'' oznacza ze z pliku konfiguracyjnego, ''plX'' oznacza, że załadował go automatycznie plugin o numerze X), metode ładowania (load, ''ANY'' czyli kiedykowliek mozńa załadować, ''Chlvl'' tylko podczas zmainy mapy), metode odłączenia (unlod, czyli iedy mozna wyładwac plugin). Ostatnie dwa nie zawsze mówią prawdę :D
 
Listowanie pluginów, podaje numer ładowania pluginu, opis (description), status (''RUN'' czyli uruchomiony, ''badload'' to znaczy że nie działa), status oczekiwania (pend), nazwa pliku (file), versja pluginu (vers), źródło ładowania (src, ''ini'' oznacza ze z pliku konfiguracyjnego, ''plX'' oznacza, że załadował go automatycznie plugin o numerze X), metode ładowania (load, ''ANY'' czyli kiedykowliek mozńa załadować, ''Chlvl'' tylko podczas zmainy mapy), metode odłączenia (unlod, czyli iedy mozna wyładwac plugin). Ostatnie dwa nie zawsze mówią prawdę :D
 
  meta list
 
  meta list
Linia 309: Linia 313:
 
== plugins.ini==
 
== plugins.ini==
 
===Opis===
 
===Opis===
plugins.ini przetrzymuje podstawowe informacje o ładowanych pluginach podczas staru (albo zmiany) mapy.
+
plugins.ini przetrzymuje podstawowe informacje o ładowanych pluginach podczas staru (''albo zmiany'') mapy.
MetaMod ładuje tylko pliki binarne obsługiwane przez dany system -  dlatego w plugins.ini mogą byc linie dla linuxa i windows i nic się nie stanie.
+
MetaMod ładuje tylko pliki binarne obsługiwane przez dany system -  dlatego w plugins.ini mogą byc linie dla linuksa i windowsa i nic się nie stanie.
  
 
===komentarze===
 
===komentarze===
Wszelkie linie zaczynające się od średnika są traktowane jako komentarze i nie są przetwarzane przez MetaModa. Dodatkowo jako komentarze mozna uzywać '''//''' albo '''#'''
+
Wszelkie linie zaczynające się od średnika są traktowane jako komentarze i nie są przetwarzane przez MetaMod-a. Dodatkowo jako komentarze mozna uzywać '''//''' albo '''#'''
  
 
===format linii===
 
===format linii===
Linia 326: Linia 330:
 
===Przykład===
 
===Przykład===
 
====Prosty====
 
====Prosty====
Ponizyszy przykład zawiera 2 linie z komentarzami, oraaz ładuje 1 plugin [[[AMX Mod X]] pod [[Linux]]a tylko, a drugi wpis ładuje binarki [[PODBot]]a zarówno pod [[Linux]]a (plik .so) jak i [[Windows]] (plik .dll). Tak więc ten plik załadowałby (oczywiście jeśli istnieją) binarki amxx i podbota pod linuksem, a pod windows tylko binarke podbota.
+
Ponizyszy przykład zawiera 2 linie z komentarzami, oraaz ładuje 1 plugin [[[AMX Mod X]] pod [[Linux|Linuksa]] tylko (''Windows jest zakomentowany''), a drugi wpis ładuje binarki [[PODBot]]a zarówno pod [[Linux|Linuksa]] (''plik .so'') jak i [[Windows]] (''plik .dll''). Tak więc ten plik załadowałby (''oczywiście jeśli istnieją'') binarki amxx i podbota pod linuksem, a pod windows tylko binarke podbota.
 
<pre>
 
<pre>
; AMX Mod
+
; AMX Mod X
 +
; win32 addons/amxmodx/dlls/amxmodx_mm.dll
 
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
 
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
 
  
 
; POD Bot MM
 
; POD Bot MM
 
win32 addons/podbot/podbot_mm.dll
 
win32 addons/podbot/podbot_mm.dll
 
linux addons/podbot/podbot_mm_i386.so
 
linux addons/podbot/podbot_mm_i386.so
 
 
</pre>
 
</pre>
  
 
====Wypasiony====
 
====Wypasiony====
Z serverpacka trawiatora, ładuje wiele pluginów, np [[HLGuard]] ma zakomentowane linie gdze są nazwy binarek nie zoptymalizwoanych - '''NIE należy''' ładować optymalizowanych i nie optymalizowanych na raz. Jesli istnieją pliki to ten plik by załadował wszstkie pluginy zarówno pod windows jak i linuksem. Widzimy także w liniach dla windows ściezki z ukośnikami pod windows (pochylone na prawo).
+
Z serverpacka trawiatora, ładuje wiele pluginów, np [[HLGuard]] ma zakomentowane linie gdze są nazwy binarek nie zoptymalizwoanych - '''NIE należy''' ładować optymalizowanych i nie optymalizowanych na raz. Jesli istnieją pliki to ten plik by załadował wszystkie pluginy zarówno pod windows jak i linuksem. Widzimy także w liniach dla windows ściezki z ukośnikami pod windows (''pochylone na prawo'').
 
<pre>
 
<pre>
 
;;Metamod plugins.ini
 
;;Metamod plugins.ini
Linia 375: Linia 378:
 
</pre>
 
</pre>
 
== localinfo ==
 
== localinfo ==
Dzieki momednom localinfo mozna zmenic zachowanie się MetaModa, szczególnie jak chcemy załadować bota, który jest do gry normalnej ale nie ma go jako pluginu metamoda.  
+
Dzieki momednom localinfo mozna zmenic zachowanie się MetaMod-a, szczególnie jak chcemy załadować bota, który jest do gry normalnej ale nie ma go jako pluginu metamod-a.  
  
Przykład zmiany biblioteki gry, jaka ma załadować metamod. Domyślnie jest to ''dlls/mp.dll'' albo ''dlls/cstrike_i486.so''. Możemy zdefiniować inną, na przykład tak sie dodawało starego [[PODBot]]a w [[Counter-Strike 1.5]] aby miec jednocześnie [[StatsMe]]. Binarka do [[PODBot]]a była w ''cstrike/podbot/podbot.dll''i dlatego podbot wymagał modyfikacji [[liblist.gam]] w taki sposób aby ''gamedll'' zawierał ''podbot/podbot.dll''. Z drugiej strony instalacja metamdoa wymagała także zmiany ''gamedll'' w [[liblist.gam]] tak aby ładować metamoda. W efekcie oznaczało to, że mozna mieć albo metamoda albo podobta włączonego. Na szczęście metamod jest elastyczny i mozna mieć oba dodatki naraz.
+
Przykład zmiany biblioteki gry, jaka ma załadować metamod. Domyślnie jest to ''dlls/mp.dll'' albo ''dlls/cstrike_i486.so''. Możemy zdefiniować inną, na przykład tak sie dodawało starego [[PODBot]]a w [[Counter-Strike 1.5]] aby miec jednocześnie [[StatsMe]]. Binarka do [[PODBot]]a była w ''cstrike/podbot/podbot.dll''i dlatego podbot wymagał modyfikacji [[liblist.gam]] w taki sposób aby ''gamedll'' zawierał ''podbot/podbot.dll''. Z drugiej strony instalacja metamdoa wymagała także zmiany ''gamedll'' w [[liblist.gam]] tak aby ładować metamod-a. W efekcie oznaczało to, że mozna mieć albo metamod-a albo podobta włączonego. Na szczęście metamod jest elastyczny i mozna mieć oba dodatki naraz.
  
W tym celu wykonywało sie 2 rzeczy: edytowało się [[liblist.gam]] zgodnie z instalacją metamoda oraz zmieniało się lisnię startową gry z jakim uruchamia sie gra (albo serwer). Opis edycji pliku liblist.gam jest na tej stronie co właśnie czytasz (poszukaj). Natomiast do skrótu startowego dodawało się
+
W tym celu wykonywało sie 2 rzeczy: edytowało się [[liblist.gam]] zgodnie z instalacją metamod-a oraz zmieniało się lisnię startową gry z jakim uruchamia sie gra (albo serwer). Opis edycji pliku liblist.gam jest na tej stronie co właśnie czytasz (poszukaj). Natomiast do skrótu startowego dodawało się
 
  +localinfo mm_gamedll "podbot\podbot.dll"
 
  +localinfo mm_gamedll "podbot\podbot.dll"
 
Mozna także dać tę linię do autoexec.cfg (jak nie ma pliku, to tworzymy cstrike/autoexec.cfg) i dodajemy
 
Mozna także dać tę linię do autoexec.cfg (jak nie ma pliku, to tworzymy cstrike/autoexec.cfg) i dodajemy
Linia 394: Linia 397:
 
badf load - meta list zwraca linie zawierające ten text. Oznacza, że dany plugin nie został załadowany. Najczęstszą przyczyną są:
 
badf load - meta list zwraca linie zawierające ten text. Oznacza, że dany plugin nie został załadowany. Najczęstszą przyczyną są:
 
* nie znaleziono pliku - żle podałeś ściezkę do pliku w [[MetaMod#plugins.ini|plugins.ini]]
 
* nie znaleziono pliku - żle podałeś ściezkę do pliku w [[MetaMod#plugins.ini|plugins.ini]]
* nieprawidłowa wersja MetaModa - plugin wymaga nowszej wersji pluginu MetaMod.
+
* nieprawidłowa wersja MetaMod-a - plugin wymaga nowszej wersji pluginu MetaMod.
 
* plugin wymaga bilblioteki - np wymagane są na serwerze ddoatkowe bliblioteki jak libmysql , libsdc++ - naprawia się to porzez instalacje pakietów na serwerze.
 
* plugin wymaga bilblioteki - np wymagane są na serwerze ddoatkowe bliblioteki jak libmysql , libsdc++ - naprawia się to porzez instalacje pakietów na serwerze.
  
 
== plugin działa ale nic sie nie dzieje==
 
== plugin działa ale nic sie nie dzieje==
 
Zładowany plugin pewnie wymaga dodatkowej konfiguracji w plikum konfiguracyjnym danego pluginu. Metamod za ciebie nie sprawdzi tego :D
 
Zładowany plugin pewnie wymaga dodatkowej konfiguracji w plikum konfiguracyjnym danego pluginu. Metamod za ciebie nie sprawdzi tego :D
 +
 +
==Dodatkowe informacje==
 +
*Zobacz [[HLDS_Parametry_Startowe#hlds_-dev_-condebug|hlds -dev -condebug]]
  
 
== Boty==
 
== Boty==
Jak odpalic inne boty z MetaMod'em, jeśli boty nie są pluginem pod metamoda.
+
Jak odpalic inne boty z MetaMod'em, jeśli boty nie są pluginem pod metamod-a.
  
 
Właściwie to opisałem to przy [[MetaMod#localinfo|localinfo]] - jest kilka rozwiązań, stosowane są dwa najpiewniejsze.
 
Właściwie to opisałem to przy [[MetaMod#localinfo|localinfo]] - jest kilka rozwiązań, stosowane są dwa najpiewniejsze.
Linia 412: Linia 418:
 
  +localinfo mm_gamedll "dlls\zbotcz.dll"
 
  +localinfo mm_gamedll "dlls\zbotcz.dll"
  
Dla przykładu linijka jak wyglądało kiedyś odpalanie podbota kiedy nie był pluginem do metamoda na linuksie
+
Dla przykładu linijka jak wyglądało kiedyś odpalanie podbota kiedy nie był pluginem do metamod-a na linuksie
 
  ./hlds_run -game cstrike +localinfo mm_gamedll "dlls/podbot_mm_i386.so" +map de_dust
 
  ./hlds_run -game cstrike +localinfo mm_gamedll "dlls/podbot_mm_i386.so" +map de_dust
  
Linia 423: Linia 429:
 
który potrafi ładować klika botów jednocześnie, ale to raczej jest dla maniaków, i wszstko jest opisane w manualach
 
który potrafi ładować klika botów jednocześnie, ale to raczej jest dla maniaków, i wszstko jest opisane w manualach
 
w wyżej wymienionym dodatku.
 
w wyżej wymienionym dodatku.
Ja (_KaszpiR_) nie dotykałem się meanmoda ponad 4 lata.
 
  
 
=Podziękowania=
 
=Podziękowania=
 
* [http://forums.bots-united.com KWo]
 
* [http://forums.bots-united.com KWo]
* [http://metamod-p.sourceforge.net/ hullu]
+
* [http://metamod-p.sourceforge.net hullu]
 
* [http://amxmodx.org BAILOPAN]
 
* [http://amxmodx.org BAILOPAN]
 
* [http://olo.counter-strike.pl OLO]
 
* [http://olo.counter-strike.pl OLO]
  
 
[[Kategoria:HLDS]]
 
[[Kategoria:HLDS]]
[[kategoria:serwery gier]]
+
[[Kategoria:serwery gier]]
[[kategoria:MetaMod]]
+
[[Kategoria:MetaMod| ]]

Aktualna wersja na dzień 17:40, 2 maj 2008

Spis treści

Wstęp

MetaMod jest dodatkiem do serwerów HLDS, dzieki któremu mozemy doistalować jeszcze inne dodatki, unikająć podmiany plików głównych moda w grze (chodzi o np.: mp.dll).

Dzięki niemu możmey dodać takie dodatki do serwera jak:

ora jeszcze parę innych

Aktualnie istnieją dwa projeky - MetaMod oraz MetaMod-P. Ten drugi napisany został w czasie kiedy Valve wprowadziło ważne zmiany do gier i wymagana była aktualzacja MetaMod-a, a oficjalna strona nie dawała życia. Aktualnie w wersji 1.19 oba projekty wykonują to samo. MetaMod-P jest trochę lepiej zoptymalizowany.

Opis na tej stronie jest właściwie do zastosowania w każdej wersji MetaMod-a albo MetaMod-P zaczynając od MetaMod-a 1.17.3 włącznie.

Różnice

MetaMod jest rozwijany przez kodera o pseudonimie willday. Aktualnie wersja 1.19 pojawiła się po MetaMod-P i jest ulepszona niż MetaMod-P, między innymi jest rekomendowana dla użytkówników korzystających z PODBota.

MetaMod-P jest ulepszoną wersją Metamod'a. Posiada funkcję dynamicznego linkowania obiektów i wykrywania modu, posiada kilkanaście innych ulepszeń, które pozwalają mu na pracę z przyszłymi aktualizacjami silnika Half-Life oraz pojawiających się nowych modów. Metamod-P jest rozwijany przez kodera o pseudonimie hullu, evilspy (Jussi Kivilinna).

Co jest takiego specjalnego w MetaMod-P?

  • Statycznie przypisane linki do obiektów zostały zastąpione dynamicznymi linkami - dzięki temu nie trzeba aktualizować MetaMod-P jak wychodzą nowe wersje tego samego moda.
  • Dodatkowe miejsca na funkcje silnika, przeznaczone na przyszłe aktualizacje silnika Half-Life (raczej mało prawdopodobne bo Valve jest bardziej zainteresowane w Source). Żeby MetaMod-P się zeaktualizował, Valve musiałoby odać ekstra 128 nowych funkcji do silnika Half-Life, a to jest masa.
  • Automatycznie wykrywa gamedll dla niezanych/nowych modów, dzięki czemu nie musisz używać metamod-config aby zmusić metamod'a do działania z tymi pluginami.
  • Z powodu powyższych zmian nie musisz aktualizować MetaMod-P gdyby wyszły nowe wersje modów gry Half-Life.
  • Lepsza wydajność - niższe użycie CPU, niż oryginalnego MetaMod'a.
  • Niestety nie posaida paru ulepszeń jakie ma MetaMod 1.19, który pojawił się po MetaMod-P, i brakuje mu kilku funkcji porawionych dla CS 1.5, i nie nadaje się zbytnio właśnie do CS 1.5 (szczególnie z botami).

Linki

Instalacja

Przykład dla serwera z modem Counter-Strike, czyli mamy nazwę moda cstrike. Jak uzywacie innego moda, odpowiednio zmieńcie cstrike na nazwę, np dod, czero, tfc

Wymagania

  • IQ w okolicach 120 - jeżeli nie spełniasz tego warunku ODPUŚĆ sobie

Linux

Wszekie komendy wykonujemy w konsoli

wget http://belnet.dl.sourceforge.net/sourceforge/metamod-p/metamod-p-1.19p32-linux_i586.tar.gz
  • W katalogu "cstrike":
    • tworzymy podkatalog addons
    • wchodzimy do addons i tworzymy metamod
    • wchodzimy do metamod, tworzymy dlls

Czyli powinno to wyglądać następująco: cstrike/addons/metamod/dlls

addons
`-- metamod
   `-- dlls
  • Przechodzimy do katalogu ze ściągniętym metamodem i rozpakowujemy go:
tar -zxvf metamod-p-1.19p32-linux_i586.tar.gz

Otrzymujemy plik: metamod_i386.so Przenosimy go do cstrike/addons/metamod/dlls

mv metamod_i386.so /home/homedir/hlds_l/cstrike/addons/metamod/dlls/ 

ścieżka domyślna, trzeba zmienić na własną lokacje

  • Przechodzimy do cstrike/addons/metamod i tworzymy plik plugins.ini:
touch plugins.ini 

Wpisujemy do niego ścieżki do modów, takich jak amx, amxx, hlguard...itd (opisy w artach dotyczących poszczególnych modów)

  • Przechodzimy do katalogu cstrike, odnajdujemy plik liblist.gam, a w nim linie zaczynające sie od:
gamedll_linux "dlls/cs_i386.so"

Wtedy dajemy na początku linii znaczek # i niżej dodajemy zmodyfikowana linię aby ładować MetaMod-a.

#gamedll_linux "dlls/cs_i386.so"
gamedll_linux "addons/metamod/dlls/metamod_i386.so"  

I startujemy nasz server, jeśli otrzymamy przy starcie:

Metamod version 1.19p32 Copyright (c) 2001-2005 Will Day
Patch: Metamod-P (mm-p) v32 Copyright (c) 2004-2005 Jussi Kivilinna
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.

/lub podobnie, zależnie od wersji/

i dalej sie ladują (bądź nie :P) mody, znaczy to, że metamod działa. Po co znaczek # na początku? Jak coś nie zadziała, to damy w nowo dodanej linii znaczek # i usuniemy z pierwszej, i serwer po restarcie będzie działał jak przed aktywacja MetaMod-a.

Jak nie masz dostepu do konsoli serwera uzyj komendy meta version albo meta list

Windows

Metamod windows.gif
  • W katalogu cstrike:
    • tworzymy podkatalog addons
    • wchodzimy do addons, tworzymy metamod
    • wchodzimy do metamod, tworzymy dlls
  • Czyli powinno to wygladac nastepująco (jak na obrazku na prawo):

cstrike\addons\metamod\dlls

Przechodzimy do katalogu ze ściągnietym metamodem i rozpakowujemy go.

Otrzymujemy plik: metamod.dll

Przenosimy go do cstrike\addons\metamod\dlls

  • Przechodzimy do cstrike\addons\metamod i tworzymy plik plugins.ini:

Mozemy stworzyc plik "plugins.txt" i zmienic mu rozszerzenie na "ini", ale uwaga na ukryte rozszerzenia w windowsie, czyli ma być plugins.ini, a nie plugins.ini.txt\

Wpisujemy do niego scieżki do modów, takich jak amx, amxx, hlguard...itd (opisy w artach dotyczacych poszczegolnych modów)

  • Przechodzimy do katalogu "cstrike", odnajdujemy plik "liblist.gam", a w nim linie zaczynajaca sie od:
gamedll "dlls\mp.dll"

Dajemy w tej linii znak # na początku, a niżej wstawiamy nową linię, zmodyfikowaną tak aby ładować MetaMod-a:

#gamedll "dlls\mp.dll"
gamedll "addons\metamod\dlls\metamod.dll" 

i odpalamy nasz serverek.

Po co znaczek # na początku? Jak cos nie zadziała, to damy w nowo dodanej linii znaczek # i usuniemy z pierwszej, i serwer po restarcie będzie działał jak przed aktywacja MetaMod-a.

Komendy

Ponizsze komendy wykonujemy bezpośrednio w konsoli serwera, alo korzystając z rcona. Poniżej każdej jest podany przykładowany komunikat. Komendy w zależności od wersji działają także po stronie klienta (nie wszstkie, przeważnie tylko meta version oraz meta list).

Wersja

Wersja MetaMod-a - stosuj aby sprawdzić czy działa i jaka ma wersje.

meta version
Metamod v1.19  2006-04-17 (5:13)
by Will Day <willday@metamod.org>
   http://www.metamod.org/
compiled: Apr 17 2006, 19:08:34 +0200 (optimized)

Lista pluginów

Listowanie pluginów, podaje numer ładowania pluginu, opis (description), status (RUN czyli uruchomiony, badload to znaczy że nie działa), status oczekiwania (pend), nazwa pliku (file), versja pluginu (vers), źródło ładowania (src, ini oznacza ze z pliku konfiguracyjnego, plX oznacza, że załadował go automatycznie plugin o numerze X), metode ładowania (load, ANY czyli kiedykowliek mozńa załadować, Chlvl tylko podczas zmainy mapy), metode odłączenia (unlod, czyli iedy mozna wyładwac plugin). Ostatnie dwa nie zawsze mówią prawdę :D

meta list
Currently loaded plugins:
      description      stat pend  file              vers      src  load  unlod
 [ 1] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.71     ini  ANY   ANY
 [ 2] POD-Bot mm       RUN   -    podbot_mm_i386.s  v3.0b12   ini  Chlvl ANY
 [ 3] Fun              RUN   -    fun_amxx_i386.so  v1.71     pl1  ANY   ANY
 [ 4] Engine           RUN   -    engine_amxx_i386  v1.71     pl1  ANY   ANY
 [ 5] FakeMeta         RUN   -    fakemeta_amxx_i3  v1.71     pl1  ANY   ANY
 [ 6] CStrike          RUN   -    cstrike_amxx_i38  v1.71     pl1  ANY   ANY
 [ 7] CSX              RUN   -    csx_amxx_i386.so  v1.71     pl1  ANY   ANY
7 plugins, 7 running

Ładowanie pluginu

Ręczne ładowanie pluginu, najlepiej podać pełną ścieżke do pliku. Pełna aktywacja pluginu moze nastapić np po zmianie mapy (jak widzimy w komunikacie poniżej)

meta load addons/podbot/podbot_mm_i386.so
Loaded plugin 'POD-Bot mm', but will wait to become active, at changelevel
Currently loaded plugins:
      description      stat pend  file              vers      src  load  unlod
 [ 1] POD-Bot mm       open load  podbot_mm_i386.s  v3.0b12   cmd  Chlvl ANY
1 plugins, 0 running

meta load addons/amxmodx/dlls/amxmodx_mm_i386.so
   AMX Mod X version 1.71 Copyright (c) 2004-2006 AMX Mod X Development Team
   AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'.
   This is free software and you are welcome to redistribute it under
   certain conditions; type 'amxx gpl' for details.

L 06/17/2006 - 15:20:05: [FUN] dev: called: GiveFnptrsToDll
L 06/17/2006 - 15:20:05: [META] dll: Loaded plugin 'Fun': Fun v1.71 Apr  2 2006, AMX Mod X Dev Team
L 06/17/2006 - 15:20:05: [ENGINE] dev: called: GiveFnptrsToDll
L 06/17/2006 - 15:20:05: [META] dll: Loaded plugin 'Engine': Engine v1.71 Apr  2 2006, AMX Mod X Dev Team
L 06/17/2006 - 15:20:05: [FAKEMETA] dev: called: GiveFnptrsToDll
L 06/17/2006 - 15:20:05: [META] dll: Loaded plugin 'FakeMeta': FakeMeta v1.71 Apr  2 2006, AMX Mod X Dev Team
L 06/17/2006 - 15:20:05: [CSTRIKE] dev: called: GiveFnptrsToDll
L 06/17/2006 - 15:20:05: [META] dll: Loaded plugin 'CStrike': CStrike v1.71 Apr  2 2006, AMX Mod X Dev Team
L 06/17/2006 - 15:20:05: [CSX] dev: called: GiveFnptrsToDll
L 06/17/2006 - 15:20:05: [META] dll: Loaded plugin 'CSX': CSX v1.71 Apr  2 2006, AMX Mod X Dev Team
L 06/17/2006 - 15:20:05: [META] dll: Loaded plugin 'AMX Mod X': AMX Mod X v1.71 Apr  2 2006, AMX Mod X Dev Team
Loaded plugin 'AMX Mod X' successfully
Currently loaded plugins:
      description      stat pend  file              vers      src  load  unlod
 [ 1] POD-Bot mm       open load  podbot_mm_i386.s  v3.0b12   cmd  Chlvl ANY
 [ 2] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.71     cmd  ANY   ANY
 [ 3] Fun              RUN   -    fun_amxx_i386.so  v1.71     pl2  ANY   ANY
 [ 4] Engine           RUN   -    engine_amxx_i386  v1.71     pl2  ANY   ANY
 [ 5] FakeMeta         RUN   -    fakemeta_amxx_i3  v1.71     pl2  ANY   ANY
 [ 6] CStrike          RUN   -    cstrike_amxx_i38  v1.71     pl2  ANY   ANY
 [ 7] CSX              RUN   -    csx_amxx_i386.so  v1.71     pl2  ANY   ANY
7 plugins, 6 running

Wyładowywanie pluginu

Any dany plugin przesał działać. Najpierw uzywamy komendy meta list aby znaleźć numer pluginu do wyładowania (numer w nawiasach kwadratowych) a następnie wykonujemy komendę. Mozna zamiast numeru pluginu podać nazwę, ścieżkę pluginu. Mozna tez wyładowac kilka pluginów naraz. UWAGA niektóre pluginy, np AMX Mod X automatycznie ładuja i wyładowywują swoje moduły ( np cstrike, fun itd) i nie trzeba ich ręcznie wyładowywać - wystarczy wyładowac główny plugin i reszta sama zostanie wyładowana.

meta unload 1
meta  unload 1
L 06/17/2006 - 15:13:05: [META] dll: Unloaded plugin 'Fun' for reason 'null (forced request from plugin[0])'
L 06/17/2006 - 15:13:05: [META] dll: Unloaded plugin 'Engine' for reason 'null (forced request from plugin[0])'
L 06/17/2006 - 15:13:05: [META] dll: Unloaded plugin 'FakeMeta' for reason 'null (forced request from plugin[0])'
L 06/17/2006 - 15:13:05: [META] dll: Unloaded plugin 'CStrike' for reason 'null (forced request from plugin[0])'
L 06/17/2006 - 15:13:05: [META] dll: Unloaded plugin 'CSX' for reason 'null (forced request from plugin[0])'
L 06/17/2006 - 15:13:05: [META] dll: Unloaded plugin 'AMX Mod X' for reason 'server command'
Unloaded plugin 'AMX Mod X'
Currently loaded plugins:
      description      stat pend  file              vers      src  load  unlod
 [ 2] POD-Bot mm       RUN   -    podbot_mm_i386.s  v3.0b12   ini  Chlvl ANY
1 plugins, 1 running

Dane o Konfigu

Zwraca dane o konfiguracji gry zwróconej od komendy localinfo oraz konfgu z jakim jest ładowany metamod.

meta config
Config options from localinfo and (null):
   debuglevel           0
   gamedll
   plugins_file         /mnt/sda1/hlds/hlds_l/cstrike/addons/metamod/plugins.ini
   exec_cfg             addons/metamod/exec.cfg

Przeładowanie konfiguracji

Przeładowanie konfiguracji - odczytuje plugins.ini i ładuje/wyładowywuje dane pluginy (np nie istneijące są wyładowywane, a nowe są ładowane).

meta refresh
L 06/17/2006 - 13:51:47: [META] Refreshing the plugins on demand...
L 06/17/2006 - 13:51:47: [META] ini: Begin re-reading plugins list: .../cstrike/addons/metamod/plugins.ini
L 06/17/2006 - 13:51:47: [META] ini: Read plugin config for: AMX Mod X
L 06/17/2006 - 13:51:47: [META] ini: Read plugin config for: POD-Bot mm
L 06/17/2006 - 13:51:47: [META] ini: Finished reading plugins list: .../cstrike/addons/metamod/plugins.ini; Found 2 plugins
L 06/17/2006 - 13:51:47: [META] dll: Updating plugins...
L 06/17/2006 - 13:51:47: [META] dll: Finished updating 7 plugins; kept 2, loaded 0, unloaded 0, reloaded 0, delayed 0

Lista zmienych

Wyświetlenie listy zmiennych zadeklarowanych przez pluginy. Podaje numer plugina jaki zarejestrował zmienną (numer w nawiasach kwadratowych i plugin), nazwę zmiennej (cvar), wartość zmiennej jako zmiennoprzecinkową (float) w tym także liczby całkowite, wartośc ciągu znaków (string) jesli zmienna jest typu ciąg znaków.

meta cvars
Registered plugin cvars:
        plugin         cvar                      float value  string value
 [   1] AMX Mod X      amxmodx_version              1.710000  1.71
 [   2] AMX Mod X      amxmodx_modules              5.000000  5
 [   3] AMX Mod X      amx_debug                    1.000000  1
 [   4] AMX Mod X      amx_mldebug                  0.000000
 [   5] AMX Mod X      amx_client_languages         1.000000  1
 [   6] (unknown)      csstats_maxsize           3500.000000  3500
 [   7] (unknown)      csstats_reset                0.000000  0
 [   8] (unknown)      csstats_rank                 0.000000  0
 [   9] (unknown)      csstats_rankbots             1.000000  1
 [  10] (unknown)      csstats_pause                0.000000  0
 [  11] POD-Bot mm     pb_aim_damper_coeffi         0.220000  0.22
 [  12] POD-Bot mm     pb_aim_damper_coeffi         0.220000  0.22
 [  13] POD-Bot mm     pb_aim_deviation_x           2.000000  2.0
 [  14] POD-Bot mm     pb_aim_deviation_y           1.000000  1.0
 [  15] POD-Bot mm     pb_aim_influence_x_o         0.250000  0.25
 [  16] POD-Bot mm     pb_aim_influence_y_o         0.170000  0.17

Lista Komend

Podaje listę komend zarejestrowanych przez pluginy, numer pluginu (w wnawiasach kwadratowych), nazwę pluginu (plugin), nazwę komendy (command)

meta cmds
Registered plugin commands:
        plugin              command
 [   1] AMX Mod X           amxx
 [   2] POD-Bot mm          pb
 [   3] AMX Mod X           amx_statscfg
 [   4] AMX Mod X           amx_reloadadmins
 [   5] AMX Mod X           amx_addadmin
 [   6] AMX Mod X           amx_kick
 [   7] AMX Mod X           amx_ban
 [   8] AMX Mod X           amx_banip
 [   9] AMX Mod X           amx_addban
 [  10] AMX Mod X           amx_unban

Gra i Lista komunikatów

Informacje o modzie oraz Lista komunikatów jakie przechwytuje MetaMod pomiędzy grą a modem.

meta game
GameDLL info:
        name: cstrike
        desc: Counter-Strike
     gamedir: /mnt/sda1/hlds/hlds_l/cstrike
    dll file: cs_i386.so
dll pathname: /mnt/sda1/hlds/hlds_l/cstrike/dlls/cs_i386.so
Game registered user msgs:    msgid   size
   VoiceMask                    64      8
   ReqState                     65      0
   CurWeapon                    66      3
   Geiger                       67      1
   Flashlight                   68      2
   FlashBat                     69      1
   Health                       70      1
   Damage                       71     12
   Battery                      72      2
   Train                        73      1

Konfiguracja

plugins.ini

Opis

plugins.ini przetrzymuje podstawowe informacje o ładowanych pluginach podczas staru (albo zmiany) mapy. MetaMod ładuje tylko pliki binarne obsługiwane przez dany system - dlatego w plugins.ini mogą byc linie dla linuksa i windowsa i nic się nie stanie.

komentarze

Wszelkie linie zaczynające się od średnika są traktowane jako komentarze i nie są przetwarzane przez MetaMod-a. Dodatkowo jako komentarze mozna uzywać // albo #

format linii

Każda linia posiada ponizyszy format

   <platforma> <sizeżka_do_pliku/plik> [<opis>] 

Znakami rodzielającymi są spacje albo znaki tabulacji

  • platforma to słowo kluczowe, może byc równe linux albo win32
  • ścieżka_do_pliku/plik to ścieżka do pluginu do załadowania. Mozliwe są do uzycia żcieżki wględne katalogu gamedir (czyli modu), więc mozna pisać ../../jakis/plugin.dll. Mozna także stosowac ścieżki bezwzględne typu /home/hlds/hlds_l/cstrike/jakis/plugin.so. Należy stosowac ścieżek w formacie unixowym czyli ze znakiem /, lepiej sie wystrzegać ukośnika w lewo (windowsowy styl), aczkolwiek od wersji 1.17.3 nie ma znaczenia w która stronę są ukośniki. Podawanie dwa razy tej samej nazwy pliku powoduje załaowanie jednkrotne pluginu.
  • opis jest opcjonalny, mozna używac spacji, nie trzeba uzywać cudzysłowów.

Przykład

Prosty

Ponizyszy przykład zawiera 2 linie z komentarzami, oraaz ładuje 1 plugin [[[AMX Mod X]] pod Linuksa tylko (Windows jest zakomentowany), a drugi wpis ładuje binarki PODBota zarówno pod Linuksa (plik .so) jak i Windows (plik .dll). Tak więc ten plik załadowałby (oczywiście jeśli istnieją) binarki amxx i podbota pod linuksem, a pod windows tylko binarke podbota.

; AMX Mod X
; win32 addons/amxmodx/dlls/amxmodx_mm.dll
linux addons/amxmodx/dlls/amxmodx_mm_i386.so

; POD Bot MM
win32 addons/podbot/podbot_mm.dll
linux addons/podbot/podbot_mm_i386.so

Wypasiony

Z serverpacka trawiatora, ładuje wiele pluginów, np HLGuard ma zakomentowane linie gdze są nazwy binarek nie zoptymalizwoanych - NIE należy ładować optymalizowanych i nie optymalizowanych na raz. Jesli istnieją pliki to ten plik by załadował wszystkie pluginy zarówno pod windows jak i linuksem. Widzimy także w liniach dla windows ściezki z ukośnikami pod windows (pochylone na prawo).

;;Metamod plugins.ini

;;HLGuard 1.8
;;win32 addons\hlguard\dlls\hlguard_mm.dll
win32 addons\hlguard\dlls\hlguard_mm_optimized.dll

;;linux addons/hlguard/dlls/hlguard_mm_i686.so
linux addons/hlguard/dlls/hlguard_mm_optimized_i686.so

;;AMX Mod X 1.60
win32 addons\amxmodx\dlls\amxmodx_mm.dll
linux addons/amxmodx/dlls/amxmodx_mm_i386.so

;;Logmod 0.7f
win32 addons\logmod\dlls\logmod_mm_i386.dll
linux addons/logmod/dlls/logmod_mm_i386.so

Względne ścieżki

Ten plik nie załadowałby żadnego pluginu (bo wszędzie są średniki, ale widac tu zastosowanie względnych ścieżek.

; AMX Mod
;win32 addons/amx/dlls/amx_mm.dll
;linux addons/amx/dlls/amx_mm_i386.so

;Pod Bot 3
;win32 addons/podbot/podbot_mm.dll
;linux addons/podbot/podbot_mm_i386.so

; RealBot with fix
;win32 ../realbot/dll/realbot_mm.dll
;linux ../realbot/dll/realbot_mm_i386.so

localinfo

Dzieki momednom localinfo mozna zmenic zachowanie się MetaMod-a, szczególnie jak chcemy załadować bota, który jest do gry normalnej ale nie ma go jako pluginu metamod-a.

Przykład zmiany biblioteki gry, jaka ma załadować metamod. Domyślnie jest to dlls/mp.dll albo dlls/cstrike_i486.so. Możemy zdefiniować inną, na przykład tak sie dodawało starego PODBota w Counter-Strike 1.5 aby miec jednocześnie StatsMe. Binarka do PODBota była w cstrike/podbot/podbot.dlli dlatego podbot wymagał modyfikacji liblist.gam w taki sposób aby gamedll zawierał podbot/podbot.dll. Z drugiej strony instalacja metamdoa wymagała także zmiany gamedll w liblist.gam tak aby ładować metamod-a. W efekcie oznaczało to, że mozna mieć albo metamod-a albo podobta włączonego. Na szczęście metamod jest elastyczny i mozna mieć oba dodatki naraz.

W tym celu wykonywało sie 2 rzeczy: edytowało się liblist.gam zgodnie z instalacją metamod-a oraz zmieniało się lisnię startową gry z jakim uruchamia sie gra (albo serwer). Opis edycji pliku liblist.gam jest na tej stronie co właśnie czytasz (poszukaj). Natomiast do skrótu startowego dodawało się

+localinfo mm_gamedll "podbot\podbot.dll"

Mozna także dać tę linię do autoexec.cfg (jak nie ma pliku, to tworzymy cstrike/autoexec.cfg) i dodajemy

localinfo mm_gamedll "podbot\podbot.dll"

Wtedy gra uruchamiała się z metamodem, a metamod zamiast podstaweowego mp.dll ładował podobt.dll, co w efekcie daje działanie bota. Oczywiście metamod przetwarza swoją drogą [#plugins.ini|plugins.ini]] a tam deklarujemy jakie dodatki chcemy mieć - na przykład StatsMe czy AMX Mod X.

Tę metodę nadal sie stosuje w Zbotach pod Counter-Strike albo innych botach w innych grach - np HPBot ze StatsMe w Half-Life.

Problemy

meta: unknown command

meta: unknown command - Oznacza to, że metamod został niepoprawnie zainstalowany albo nie został uruchomiony. Sprawdź jeszcze raz instalację, a szczególnie liblist.gam.

badf load

badf load - meta list zwraca linie zawierające ten text. Oznacza, że dany plugin nie został załadowany. Najczęstszą przyczyną są:

  • nie znaleziono pliku - żle podałeś ściezkę do pliku w plugins.ini
  • nieprawidłowa wersja MetaMod-a - plugin wymaga nowszej wersji pluginu MetaMod.
  • plugin wymaga bilblioteki - np wymagane są na serwerze ddoatkowe bliblioteki jak libmysql , libsdc++ - naprawia się to porzez instalacje pakietów na serwerze.

plugin działa ale nic sie nie dzieje

Zładowany plugin pewnie wymaga dodatkowej konfiguracji w plikum konfiguracyjnym danego pluginu. Metamod za ciebie nie sprawdzi tego :D

Dodatkowe informacje

Boty

Jak odpalic inne boty z MetaMod'em, jeśli boty nie są pluginem pod metamod-a.

Właściwie to opisałem to przy localinfo - jest kilka rozwiązań, stosowane są dwa najpiewniejsze.

Pierwsze

w skrócie do uruchomienia gry dodajemy do linijki coś podobnego do:

+localinfo mm_gamedll "<plik>"

np jeśli mamy Zbota i plik zbotcz.dll w katalogu ...\cstrike\dlls\zbotcz.dll to wystarczy ustawić

+localinfo mm_gamedll "dlls\zbotcz.dll"

Dla przykładu linijka jak wyglądało kiedyś odpalanie podbota kiedy nie był pluginem do metamod-a na linuksie

./hlds_run -game cstrike +localinfo mm_gamedll "dlls/podbot_mm_i386.so" +map de_dust

Dla windows mozna zrobić

hlds.exe -game cstrike +localinfo gamedll "addons\metamod\dlls\metamod.dll" +localinfo mm_gamedll "dlls/podbot_mm.dll" +map de_dust

Drugie

Drugie rozwiązanie jest stosowane jak ma się doczynienia z botami zgodnymi z dodatkiem MEANMod który potrafi ładować klika botów jednocześnie, ale to raczej jest dla maniaków, i wszstko jest opisane w manualach w wyżej wymienionym dodatku.

Podziękowania

Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia