Es wird vorausgesetzt, dass bereits ein lauffähiger Half-Life
Server
zur Verfügung steht. Dabei sollte sicher gestellt werden, dass die neuste Version des Servers
(HL1) sowie der eingesetzten Modifikation (z.B. Counter-Strike) installiert ist. Es kann damit
ausgeschlossen werden, dass Admin Mod fälschlicherweise für etwaige bestehende
Probleme verantwortlich gemacht wird. Das erspart Ärger und peinliche Fragen im
Forum.
Es sollte nun die aktuelle Admin Mod-Version
(2.50.60) und am besten
die Metamod-Version 1.19
heruntergeladen werden, da die bei Admin Mod beigelegte Metamod-Version veraltet ist und
ggf. zum Serverabsturz führen kann.
Die gesamte Zip-Datei (Windows) oder TGZ-Datei (Linux) ist in ein beliebiges
Verzeichnis zu entpacken. Im eigenen Interesse sollte aber nicht in die Serververzeichnisse
entpackt werden. Es handelt sich um eine Distribution, die zunächst erst installiert
werden muss. Das Entpacken in die Server-Verzeichnisse wird nur zur Konfusion
führen.
Es gibt nun die Möglichkeit ein Skript die Installation übernehmen zu lassen. Unter Windows
führt man die install_admin.vbs und unter Linux die install_admin aus und folgt den
Anweisungen.
Dies funktioniert ausschließlich, wenn ein Zugriff über SSH oder Remote Control zur
Verfügung steht. Mit einem FTP-Zugang ist dies nicht möglich!
Als zweite Möglichkeit bietet sich die manuelle Installation Admin Mods an. Diese
funktioniert auch mit einem FTP-Zugang. Es ist in jedem Fall zu empfehlen, eine
manuelle Installation vorzunehmen, da es das Verständnis für Admin Mod verbessert.
Im Weiteren wird aus diesem Grund nicht weiter auf die automatische Installation
eingegangen.
Wie bereits erwähnt ist die Distributionsstruktur nicht identisch mit der Installationsstruktur
auf dem Server. Die Dateien müssen erst an die richtige Stelle kopiert werden. Diese
Anleitung erklärt, welche Dateien aus welchen Verzeichnissen der Distribution in welche
Verzeichnisse auf dem Server kommen. Sofern es nicht schon existiert, ist auf dem
Server ein Verzeichnis „addons\adminmod“ im gewünschten Mod-Verzeichnis (z.B.
cstrike)
zu erstellen. Es ist zu beachten, dass sich die Verzeichnisnamen zwischen der alten HL 4.1.1.x
Version gegenüber Steam unterscheiden:
4.1.1.x: z.B. X:\Hlserver\cstrike
Steam: z.B. X:\Steam\SteamApps\me@email.com\dedicated server\cstrike
Bei einem Listenserver (man spielt selbst auf dem gleichen Rechner mit) muss natürlich das
Spielverzeichnis gewählt werden
4.1.1.x: z.B. X:\Half-Life\cstrike
Steam: X:\Steam\SteamApps\me@email.com\counter-strike\cstrike
Im Mod-Verzeichnis werden 3 weitere Verzeichnisse benötigt (config, dlls und scripts).
Erstelle addons\adminmod\config
Erstelle addons\adminmod\dlls
Erstelle addons\adminmod\scripts
Aus der entpackten Admin Mod-Distribution können alle Dateien aus dem Verzeichnis
„scripting\binaries“ in das „addons\adminmod\scripts“ Verzeichnis auf dem Server
kopiert werden. Außerdem empfiehlt es sich, die plugin.ini und die adminmod.cfg
aus dem „config“ Verzeichnis in das gleichnamige Verzeichnis auf dem Server zu
kopieren. Die plugin.ini gibt an, wo Admin Mod die auf dem Server installierten
Plugins findet, während die adminmod.cfg die grundlegende Konfiguration von Admin
Mod beinhaltet. Ferner sollte auch eine leere users.ini hierhin geschoben werden.
Also:
Kopiere scripting\binaries\*.amx -→ addons\adminmod\scripts
Kopiere config\plugin.ini -→ addons\adminmod\config
Kopiere config\adminmod.cfg -→ addons\adminmod\config
Erstelle addons\adminmod\config\users.ini
Nun muss noch Metamod
installiert werden. Dazu wird wieder im Mod-Verzeichnis ein Unterverzeichnis „addons\metamod“
angelegt. Hier bedarf es eines „dlls“ Directories, in welches die metamod.dll kopiert wird. Es
kann außerdem schonmal eine leere „plugins.ini“ (Unbedingt das „s“ am Ende beachten)
in „addons\metamod“ kopiert werden (einfach eine leere Textdatei in plugins.ini
umbenennen).
Erstelle addons\metamod
Erstelle addons\metamod\dlls
Kopiere dlls\metamod.dll -→ addons\metamod\dlls
Erstelle addons\metamod\plugins.ini
Soll Admin Mod auf einem Dedicated Server installiert werden, so ist der Eintrag „exec
addons/adminmod/config/adminmod.cfg“ am Ende der server.cfg einzufügen. Bei einem
Listenserver muss dieser Eintrag natürlich stattdessen in die listenserver.cfg eingefügt werden.
Somit werden beim Serverstart die grundlegenden Einstellungen von Admin Mod
geladen.
Folgende Dateien sind zu kopieren:
Kopiere dlls\admin_MM.dll -→ addons\adminmod\dlls
Kopiere dlls\amx_admin.dll -→ addons\adminmod\dlls
Folgender Eintrag gehört außerdem in die addons\metamod\plugins.ini:
win32 addons/adminmod/dlls/admin_MM.dll
Nun noch die letzte Datei die liblist.gam (ist im „Mod“-Dir auf dem Server). Die Datei öffnet
man in einem Texteditor und ändert die Zeile:
gamedll “dlls\mp.dll” zu:
gamedll “addons\metamod\dlls\metamod.dll”
Wahlweise ist es mit einem neueren Steamserver auch möglich Metamod direkt über einen
Startparameter zu starten. Dies umgeht auch das ständige Überschreiben der liblist.gam beim
Serverupdate.
-dll addons\metamod\dlls\metamod.dll
Damit ist die Installation abgeschlossen und ein Serverrestart notwendig.
Ob alles funktioniert ist via Serverconsole oder einem Remotetool (z.B.
HLSW)
zu erkennen. Durch Eingabe von „meta list“ kann überprüft werden, ob Metamod geladen
wurde, bzw. ob es in der Lage war Admin Mod zu starten. Durch den Befehl „admin_cmd
admin_version“ kann dann kontrolliert werden, ob Admin Mod ordnungsgemäß funktioniert.
Bei Problemen sollte im Modverzeichnis eine autoexec.cfg erstellen, in der die Zeile „log on“
steht. Anschließend können die Logdateien im neuen „logs“ Verzeichnis Hinweise geben,
warum etwas nicht geht.
Einen Überblick über die entstandene Verzeichnisstruktur ist dem Kapitel 3.5 zu
entnehmen.
Wie bereits erwähnt ist die Distributionsstruktur nicht identisch mit der Installationsstruktur
auf dem Server. Die Dateien müssen erst an die richtige Stelle kopiert werden. Diese
Anleitung erklärt, welche Dateien aus welchen Verzeichnissen der Distribution in welche
Verzeichnisse auf dem Server kommen. Sofern es nicht schon existiert, ist auf dem
Server ein Verzeichnis „addons/adminmod“ im gewünschten Mod-Verzeichnis (z.B.
cstrike)
zu erstellen. Hier werden drei weitere Verzeichnisse benötigt (config, dlls und scripts).
Erstelle addons/adminmod/config
Erstelle addons/adminmod/dlls
Erstelle addons/adminmod/scripts
Aus der entpackten Admin Mod-Distribution können alle Dateien aus dem Verzeichnis
„scripting/binaries“ in das „addons/adminmod/scripts“ Verzeichnis auf dem Server
kopiert werden. Außerdem empfiehlt es sich, die plugin.ini und die adminmod.cfg
aus dem „config“ Verzeichnis in das gleichnamige Verzeichnis auf dem Server zu
kopieren. Die plugin.ini gibt an, wo Admin Mod die auf dem Server installierten
Plugins findet, während die adminmod.cfg die grundlegende Konfiguration von Admin
Mod beinhaltet. Ferner sollte auch eine leere users.ini hierhin geschoben werden.
Also:
Kopiere scripting/binaries/*.amx -→ addons/adminmod/scripts
Kopiere config/plugin.ini -→ addons/adminmod/config
Kopiere config/adminmod.cfg -→ addons/adminmod/config
Erstelle addons/adminmod/config/users.ini
Nun muss noch Metamod
installiert werden. Dazu wird wieder im Mod-Verzeichnis ein Unterverzeichnis „addons/metamod“
angelegt. Hier bedarf es eines „dlls“ Directories, in welches die metamod.dll kopiert wird. Es
kann außerdem schonmal eine leere „plugins.ini“ (Unbedingt das „s“ am Ende beachten)
in „addons/metamod“ kopiert werden (einfach eine leere Textdatei in plugins.ini
umbenennen).
Erstelle addons/metamod
Erstelle addons/metamod/dlls
Kopiere dlls/metamod_i386.so -→ addons/metamod/dlls
Erstelle addons/metamod/plugins.ini
Bei der 64 bit Version lautet die Datei metamod_amd64.so.
Im Mod-Verzeichnis ist der Eintrag „exec addons/adminmod/config/adminmod.cfg“ am Ende
der server.cfg einzufügen. Somit werden beim Serverstart die grundlegenden Einstellungen von
Admin Mod geladen.
Folgende Dateien sind zu kopieren:
Kopiere dlls/admin_MM_i386.so -→ addons/adminmod/dlls
Kopiere dlls/amx_admin.so -→ addons/adminmod/dlls
Für die 64 bit Version müssen folgende Dateien kopiert werden:
Kopiere dlls/admin_MM_amd64.so -→ addons/adminmod/dlls
Kopiere dlls/amx_admin_amd64.so -→ addons/adminmod/dlls
Folgender Eintrag gehört außerdem in die addons/metamod/plugins.ini:
linux addons/adminmod/dlls/admin_MM_i386.so
Für die 64 bit-Linuxversion, lautet die Zeile folgendermaßen:
lin64 addons/adminmod/dlls/admin_MM_amd64.so
Nun noch die letzte Datei die liblist.gam (ist im „Mod“-Dir auf dem Server). Die Datei öffnet
man in einem Texteditor und ändert die Zeile:
gamedll_linux “dlls/cstrike_i386.so” in:
gamedll_linux “addons/metamod/dlls/metamod_i386.so” oder
gamedll_linux “addons/metamod/dlls/metamod_amd64.so” für 64 bit
Wahlweise ist es mit einem neueren Steamserver auch möglich Metamod direkt über einen
Startparameter zu starten. Dies umgeht auch das ständige Überschreiben der liblist.gam beim
Serverupdate.
-dll addons/metamod/dlls/metamod_i386.so bzw.
-dll addons/metamod/dlls/metamod_amd64.so
Damit ist die Installation abgeschlossen und ein Serverrestart notwendig.
Ob alles funktioniert ist via Serverconsole oder einem Remotetool (z.B.
HLSW)
zu erkennen. Durch Eingabe von „meta list“ kann überprüft werden, ob Metamod geladen
wurde, bzw. ob es in der Lage war Admin Mod zu starten. Durch den Befehl „admin_cmd
admin_version“ kann dann kontrolliert werden, ob Admin Mod ordnungsgemäß funktioniert.
Bei Problemen sollte im Modverzeichnis eine autoexec.cfg erstellen, in der die Zeile „log on“
steht. Anschließend können die Logdateien im neuen „logs“ Verzeichnis Hinweise geben,
warum etwas nicht geht.
Es ist unbedingt zu beachten, dass Linux und FreeBSD Groß- und Kleinschreibung
unterscheiden. Die Datei- und Verzeichniseinträge sind ungültig, wenn die Schreibweise des
Eintrags von der eigentlichen Datei bzw. des Verzeichnisses abweicht!
Einen Überblick über die entstandene Verzeichnisstruktur ist dem Kapitel 3.5 am Beispiel der
Windows-Installation zu entnehmen. Abgesehen von der DLL-Bezeichnung ist sie aber
identisch mit der Linux-Installation.
Um große Usergruppen sinnvoll verwalten zu können, bietet Admin Mod eine
MySQL- und eine
PostgreSQL-Unterstützung
an. Es ist ebenso möglich Admin Mod in bestehende Content Management Systeme (CMS)
oder Foren einzubauen. Steht der Gameserver und der SQL-Server bereits, ist es recht einfach
Admin Mod-SQL aufzusetzen. Ob der Aufwand den Zweck allerdings rechtfertigt, muss jeder
für sich entscheiden. Insbesondere wenn es nur um einen Clanserver mit vielleicht 20 Usern
geht, sollte man sich mit den Dateien begnügen. Der Aufwand steht hier in keinem Bezug zum
Nutzen.
Für die Umsetzung sollte auf dem Gameserver zunächst Admin Mod ohne SQL-Unterstützung
(Windows, Linux) laufen. Dies ermöglicht zum einen Probleme schneller aufzufinden und zum
anderen ein Fallbacksystem für den Fall des Verbindungsverlustes zum SQL-Server zu
haben.
Man sollte sich außerdem Gedanken darüber machen, ob man den SQL-Server auf dem
Gameserver oder einem externen Rechner laufen lässt. Dies hat beides Vor- und
Nachteile. Während der SQL-Server auf dem Gameserver keine Verbindungsverluste
hat, produziert er aber zusätzliche Prozessorlast. Dies wird nochmals ungemein
verstärkt, wenn zur Datenadministration ein Webserver herhalten soll. Ein SQL-Server
außerhalb des eigentlichen Gameservers kann erheblich zur Lastverteilung beitragen,
hat jedoch eine höhere Latenzzeit bei Queries (evtl. Lags) und läuft Gefahr die
Verbindung komplett zu verlieren. Der SQL-Server sollte also netzwerktechnisch in direkter
Umgebung des eigentlichen Servers stehen. Außerdem muss man einen Port für
SQL nach außen öffnen, was sicherheitstechnisch auch nicht besonders zu empfehlen
ist.
Die größte Hürde für die meisten Anwender besteht jedoch darin, dass es (meines Wissens)
kein wirklich gutes Frontend für die Administration gibt. Man wird also z.B. seine eigenen
PHP-Kenntnisse bemühen und sich ein eigenes System basteln müssen. Zur Not tut es aber auch
PHPMyAdmin
oder phpPGAdmin.
Läuft der Gameserver mit Admin Mod einwandfrei, kann man sich die SQL-Version besorgen und
einspielen.
Die SQL-Version beinhaltet nur die .dll oder .so Datei. Die restlichen Dateien sind der
normalen Distribution zu entnehmen (Noch ein Grund mehr, zunächst die normale Admin
Mod-Version zu installieren!).
Windows:
Kopiere AdminSQL\admin_MM_mysql.dll → addons\adminmod\dlls (MySQL)
Kopiere AdminSQL\admin_MM_pgsql.dll → addons\adminmod\dlls (PGSQL)
Linux:
Kopiere AdminSQL/admin_MM_i386_mysql.so → addons/adminmod/dlls (MySQL)
Kopiere AdminSQL/admin_MM_i386_pgsql.so → addons/adminmod/dlls (PGSQL)
Linux 64-bit:
Kopiere AdminSQL/admin_MM_amd64_mysql.so → addons/adminmod/dlls (MySQL)
Kopiere AdminSQL/admin_MM_amd64_pgsql.so → addons/adminmod/dlls (PGSQL)
In der Linuxversion liegen noch zwei zusätzliche Bibliotheken bei, die in das Verzeichnis mit
hlds_run („Gameserver-Root“) kopiert werden sollten, wenn etwas wider erwarten nicht
funktioniert.
Kopiere AdminSQL/libmysqlclient.so.10 -→ hlds_l (MySQL)
Kopiere AdminSQL/libpg.so.3 -→ hlds_l (PostgreSQL)
Anschließend muss noch die plugins.ini von Metamod geändert werden. Nach dem Neustart
sollte der Gameserver genau so laufen wie vorher. Es wird nur noch nicht auf den SQL-Server
zugegriffen, sondern es läuft die Fallback-Konfiguration. Wie die Tabellen zu erstellen sind
bzw. welche Einstellungen zu beachten sind, geht aus der Konfigurationsanweisung für MySQL
und PostgreSQL hervor.
Anhand der Windows-Installation von Counter-Strike ist in Abbildung 3.1 beispielhaft die
Verzeichnisstruktur dargestellt. Die fett gedruckten Dateien und Verzeichnisse stellen
sozusagen die Minimalinstallation von Admin Mod dar. Dabei heißt minimal jedoch nicht,
dass man nicht noch mit weniger auskommt. Einige Dinge wie plugin_antiflood sind
jedoch für den sicheren Serverbetrieb sehr zu empfehlen und sollten nicht entfernt
werden.
Einige Bots sind nicht als Metamodplugin erhältlich, so dass sich eine parallele Installation
mit Admin Mod nicht als so einfach erweist. In diesem Fall muss man Metamod mitteilen,
dass es die Daten nicht an die Gameengine sondern an den Bot durchschleift. Dies geschieht
über den Startparameter „localinfo mm_gamedll“.
Windows:
C:\HLServer\hlds.exe -game cstrike +localinfo mm_gamedll
addons/meinbot/meinbot.dll +map de_dust
Linux:
./hlds_run -game cstrike +localinfo mm_gamedll addons/meinbot/meinbot.so
+map de_dust
Alternativ dazu kann man auch im Verzeichnis addons/metamod eine Konfigurationsdatei
namens config.ini erstellen. Der Inhalt müsste dann folgendermaßen aussehen:
Windows:
gamedll addons/meinbot/meinbot.dll
Linux:
gamedll addons/meinbot/meinbot.so
Auf die Verwendung von „localinfo mm_gamedll“ als Startparameter kann dann verzichtet
werden.
Je nach Bot muss man ausprobieren, ob man admin_bot_protection in der
Konfigurationsdatei adminmod.cfg auf 1 gesetzt haben muss, um einen Serverabsturz zu
vermeiden.
Eine Abhandlung über die Interaktion zwischen Metamod, Bot und HL ist im Anhang von
daRope dargelegt.