Erweiterungen

7  Erweiterungen

 7.1  LogDaemon (LogD)
  7.1.1  Installation
  7.1.2  Variablen
  7.1.3  Befehle
  7.1.4  Performance und Plattenplatz
 7.2  StatsMe
  7.2.1  Installation und Konfiguration
  7.2.2  Performance und Plattenplatz
 7.3  HLStats
 7.4  Metamod Plugins

7.1  LogDaemon (LogD)

Einige Plugins benötigen zusätzlich noch LogD (LogDaemon), das auf der LogD-Seite1 bzw. die 64bit-Version auf Adminmod.de2 zu bekommen ist. LogD ist ein Metamod-Plugin, das die Logeinträge von Half-Life in Realtime parsed und damit die Möglichkeiten von Adminmod erweitert (z.B. Teamkillerkennung in Counter-Strike). Es wurde zwar zwischenzeitlich an erweiterten Funktionen in Adminmod selber gearbeitet, was aber nie über eine leicht verbuggte Betaversion hinaus geführt hat.

7.1.1  Installation

Linux:
Erstelle Verzeichnis addons/logd/dlls
Kopiere logd_mm_i386.so -→ addons/logd/dlls

Windows:
Erstelle Verzeichnis addons\logd\dlls
Kopiere logd_mm.dll -→ addons\logd\dlls

Anschließend muss LogD noch in der addons/metamod/plugins.ini durch folgende Einträge aktiviert werden.

linux addons/logd/dlls/logd_mm_i386.so
win32 addons/logd/dlls/logd_mm.dll

Nun muss nur der Gameserver neugestartet werden. Ob LogD funktioniert, kann man über die Serverconsole oder per RCon prüfen. Dazu schreibt man “meta list”. Als Ergebnis sollte Folgendes in etwa zu sehen sein:

[x]LogDaemon RUN - logd_mm.dll v1.00.6 ini ANY Pause

Wichtig ist dabei der Begriff “RUN”.

Eine weitergehende Konfiguration ist in der Regel nicht mehr notwendig. Ggf. muss die Variable mp_logdetail editiert oder auch logd_block gesetzt werden. Die Einstellung für mp_logdetail wird einem in der Regel in der Readme des jeweiligen Plugins mitgeteilt. Der Befehl logd_block ist optional (s. Abschnitt 7.1.4). Die Plugins sind nichts anderes als Admin Mod Plugins mit erweiterter Funktionalität und werden daher genauso wie alle anderen installiert.

7.1.2  Variablen

7.1.2.1. logd_debug

logd_debug <#>

Setzt man hier den Wert ungleich 0, werden einige Informationen zum Parsingvorgang in die Logdateien geschrieben. LogD ist leider nicht mit allen Mods kompatibel, da sich einige Programmierer nicht an die Vorgaben von Valve für die Log-Syntax halten. Mit der Debugfunktion kann schnell erkannt werden, was LogD nicht erkennt. In der Regel setzt man diese Variable aber nicht.

7.1.2.2. logd_version

logd_version <#>

Diese Variable zeigt ausschließlich die LogD-Version an. Ursprünglich wollte Wraith, diese nie in LogD einbauen, da es von außen unerheblich zu erkennen ist, in welcher Version LogD läuft. Letzlich hat er sich aber überreden lassen, da die Admin Mod Scripter gerne in ihren Plugins überprüfen wollten, ob LogD installiert ist. Die Variable wird automatisch von LogD gesetzt.

7.1.3  Befehle

7.1.3.1. logd_block

logd_block <#>

Mit diesem Befehl kann man verhindern, dass bestimmte Ereignisse in die Logdateien geschrieben werden. Damit kann man die Größe der Logdateien teilweise massiv reduzieren. Dies kann insbesondere bei der Auswertung von Treffern sinnvoll sein (mp_logdetail > 0). In Abschnitt 7.1.4 wird darauf näher eingegangen.

 
Beispiel:
logd_block 58

In diesem Beispiel wird verhindert, dass Treffer in die Logdateien geschrieben werden.

7.1.3.2. logd_reg

logd_reg <#> <Befehl>

Dieser Befehl registriert einen Server-Befehl, den LogD bei einem bestimmten Ereignis (Nummer) ausführt und an den die zugehörigen Parameter weitergegeben werden. Diesen Befehl setzt in der Regel ein Admin Mod Plugin ab. Man kann ihn auch per Hand setzen, was aber in den meisten Fällen nicht sinnvoll ist.

 
Beispiele:
logd_reg 57 admin_command logd_kill
logd_reg 51 say Neuer Spieler!
logd_reg 62 admin_command admin_tsay Rundenstart oder Rundenende

Im ersten Beispiel wird der Admin Mod Befehl „logd_kill“ für das Ereignis 57 (Kill) registriert. Der Befehl wird bei jedem Kill ausgeführt. Dies ist ein typischer Aufruf in einem Plugin.

Das zweite Beispiel zeigt, wie man LogD auch ohne Admin Mod nutzen kann. Hierbei wird bei Ereignis 51 (Spieler tritt dem Spiel bei) die Nachricht „Neuer Spieler!“ in den Chat geschrieben. Allerdings wird der Userindex noch dahinter angezeigt.

Im letzten Beispiel wird beim Ereignis 62 (allgemeine Ereignisse) die Nachricht „Rundenstart und Rundenende“ links auf dem Bildschirm gezeigt. Dazu wird aber auch „Round_End“ oder „Round_Start“ angezeigt.

Wie man bei den letzten beiden Beispielen sehen kann, ist Admin Mod nicht wirklich für LogD notwendig, aber man kann die Parameter nicht auswerten bzw. muss sie mit anzeigen.

Außerdem ist wichtig zu bemerken, dass beim Mapstart alle Registrierungen zurückgesetzt werden.

7.1.3.3. logd_reginfo

logd_reginfo

Dieser Befehl gibt aus, welche Befehle zu welchen Ereignissen registriert wurden.

 
Beispiel:

LogD callback registration information:  
Event Name          Event Code   Function to call  
Enter               51           admin_command im_connect  
Disconnect          52           admin_command im_disconnect  
Suicide             53           admin_command im_suicide  
Team Selection      54           admin_command allowsound_team  
Kill                57           admin_command logd_teamkill  
Kill                57           admin_command im_kill  
Kill                57           admin_command hp_kill  
Injury              58           admin_command im_injure  
Injury              58           admin_command hp_injure  
Player Action       60           admin_command im_playeraction  
Player Action       60           admin_command hp_paction  
Team Action         61           admin_command im_teamaction  
Team Action         61           admin_command hp_taction  
World Action        62           admin_command im_world  
World Action        62           admin_command hp_reset

So sieht eine typische Rückmeldung auf „logd_reginfo“ aus.

7.1.3.4. logd_status

logd_status

Dieser Befehl gibt aus, welche Ereignisse registriert wurden und ob sie aus den Logdateien gefiltert werden.

 
Beispiel:

LogD parser status:  
Event Name          Event Code   Active?  Blocking?  
Cvar                1            No       No  
Log                 2            No       No  
Map                 3            No       No  
Rcon                4            No       No  
Server Name         5            No       No  
Server Chat         6            No       No  
Connect             50           No       No  
Enter               51           Yes      No  
Disconnect          52           Yes      No  
Suicide             53           Yes      No  
Team Selection      54           Yes      No  
Role Selection      55           No       No  
Name                56           No       No  
Kill                57           Yes      No  
Injury              58           Yes      No  
PvP Action          59           No       No  
Player Action       60           Yes      No  
Team Action         61           Yes      No  
World Action        62           Yes      No  
Player Chat         63           No       No  
Team Alliance.      64           No       No  
Team Score          65           No       No  
Private Chat        66           No       No

So sieht eine typische Rückmeldung auf „logd_status“ aus.

7.1.4  Performance und Plattenplatz

Es kommt immer wieder das Gerücht auf, dass die Verwendung LogD zu Einbrüchen in der Serverperformance führe.

Grundsätzlich gilt natürlich, dass mit jedem installiertem Metamod-Plugin der Server mehr belastet wird. LogD jedoch für Performanceprobleme verantwortlich zu machen, ist in der Regel eine Mär. Die LogD-Programmierer hatten den Fehler gemacht auf ihrer Seite Performanceprobleme nicht auszuschließen. Auch Admin Mod oder andere Plugins können Probleme bereiten, was meist auf eine Fehlkonfiguration oder ineffiziente Plugins zurückzuführen ist.

Für viele Gameserveranbieter war es immer wieder ein guter Vorwand eigene Probleme auf den Benutzer abzuwälzen.

Nutzt man TK-Plugins (TK = Teamkill) kann es aber durchaus bei sehr schwachen Servern zu Performance-Problemen kommen, weil man mp_logdetail ungleich 0 laufen lassen muss, um alle Arten von Treffern zu loggen. Die um das zehnfache vergrößerten Logdateien können dabei zu Lags führen, aber diese Einträge lassen sich auch mit LogD herausfiltern. Das spart Plattenplatz und reduziert die Schreibvorgänge, das Problem rührt aber nicht von Seiten LogD her.

LogD hat zum Filtern den Befehl logd_block <event>. Der zugehörige Event für die Treffer ist 58. Der Eintrag in der server.cfg muss also lauten:

logd_block 58

Dabei ist aber zu beachten, dass dann externe Statistikprogramme (z.B. Psychostats3) diese Daten nicht mehr auswerten können.

Schaut man sich das Alter von LogD an, so ist nachvollziehbar dass LogD selber keine Performanceprobleme verursacht. Heutzutage haben Server eine vielfach höhere Leistung als damals. LogD fällt da nicht mehr auf.

7.2  StatsMe

Einige Admin Mod Plugins benötigen über Admin Mod selber hinaus auch Statsme4. Statsme ist wie LogD ein Metamod Plugin, welches diverse Events zur Verfügung stellt, die man mit Admin Mod abgreifen und auswerten kann. Dabei geht Statsme vielfach über das hinaus, was LogD kann, da es nicht die Logs liest, sondern alle Events auslesen kann, die die Half-Life Engine bietet.

Statsme wurde von Admin Mod Seite recht stiefmütterlich behandelt, da es gerne zur „Verschönerung“ des Servers verwendet wurde. Es war laut und bunt. Man kann aber Statsme auch recht geräuschlos nebenbei laufen lassen. Einige recht gute Customplugins sind dadurch entstanden.

7.2.1  Installation und Konfiguration

Die Dateien liegen bereits in ihrer Struktur fertig für die Installation vor.

Kopiere Verzeichnis addons

Anschließend muss Statsme noch in der addons/metamod/plugins.ini durch folgende Einträge aktiviert werden.

linux addons/statsme/dlls/statsme_mm_i386.so
win32 addons/statsme/dlls/statsme_mm.dll

Nun ist nur der Gameserver neu zu starten. Ob Statsme funktioniert, kann man über die Serverconsole oder per RCon prüfen. Dazu schreibt man “meta list”. Als Ergebnis sollte Folgendes in etwa zu sehen sein:

[x]STATSME RUN - statsme_mm.dll v2.8.3 ini Chlvl Chlvl

Wichtig ist dabei der Begriff “RUN”. Weitere Einstellungen müssen nicht getätigt werden.

7.2.2  Performance und Plattenplatz

Wie LogD braucht Statsme etwas Rechenleistung. Da im Hintergrund deutlich mehr verarbeitet wird, dürfte Statsme auch etwas mehr Rechenleistung beanspruchen als LogD. Bei einem sehr leistungsschwachen Server kann sich das bemerkbar machen, aber solche Rechner setzt heute niemand mehr ein.

Durch die Zusatzeinträge in den Logdateien ist es erste Wahl z.B. für Psychostats5, geht aber damit nicht weniger sparsam mit dem Plattenplatz um als LogD. Ggf. sollte man darüber nachdenken, ob man das Logging nicht abschaltet, sofern man auf externe Statistikprogramme verzichten will oder kann.

7.3  HLStats

Bei HLStats6 handelt es sich um ein Perl-Skript, das in Echtzeit die Logs auswertet. Die Ergebnisse werden in eine MySQL-Datenbank geschrieben und sind damit über eine Webseite abrufbar.

Ab der HLStats-Version 1.40 ist das sogenannte Skill-Pack schon inklusive. Dieses sorgt dafür, dass man nach Chat-Eingabe von „/hls_skill“ bzw. „/hls_pskill“ seinen Rang und die erreichten Skill-Punkte angezeigt bekommt. Letzteres zeigt nur dem aufrufenden Spieler selbst diese Information. Eine Meldung direkt an einen einzelnen Spieler erfordert jedoch ein Metamod-Plugin wie Admin Mod.

Um die Funktion „/hls_pskill“ zu aktivieren sind folgende Einträge in der hlstats.conf zu machen:

Rcon 1
RconSay “admin_psay”

Außerdem sollte man im Webinterface nicht vergessen, das Rcon-Passwort unter „Game Settings/<mod>/Servers“ einzugeben. Ansonsten könnte es passieren, dass der HLStats-Server vom Gameserver ausgesperrt wird.

7.4  Metamod Plugins

Neben LogD und StatsMe gibt es noch weitere Metamod-Plugins, die bestimmte Server-Funktionen nachrüsten. Auch wenn diese keine definierte Schnittstelle zu Admin Mod besitzen, können sie dennoch von Admin Mod ferngesteuert werden. Vielfach gibt es sogar Admin Mod Plugins, die dafür entwickelt wurden, die Administration zu verbessern, bzw. das Rechtelevelsystem für diese Metamod-Plugins nutzbar zu machen. Für die Metamod-Plugin spezifischen Serverbefehle werden dabei Aliase in Form von Admin Mod-Befehlen erstellt.

Eine, wenn auch nicht vollständige, Liste der Metamod-Plugins lässt sich auf der Metamod-Webseite7 einsehen. Einige Admin Mod Plugins zu ihrer Administration sind auf Adminmod.de8 oder Adminmod.org9 im Downloadbereich zu finden.




Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"