Home

- AdminMod.de

image

Contents

1. _ COMMA Wav _ period wav a wav accelerating wav accelerator wav accepted wav access wav acknowledge wav acknowledged wav acquired wav acquisition wav across wav activate wav activated wav activity wav adios wav administration wav advanced wav after wav agent wav alarm wav alert wav alien wav aligned wav all wav alpha wav am wav amigo wav ammunition wav an wav and wav announcement wav anomalous wav antenna wav any wav apprehend wav B 4 HL Sounds approach wav are wav area wav arm wav armed wav armor wav armory wav arrest wav ass wav at wav atomic wav attention wav authorize wav authorized wav automatic wav away wav b wav back wav backman wav bad wav bag wav bailey wav barracks wav base wav bay wav be wav been wav before wav beyond wav biohazard wav biological wav birdwell wav bizwarn wav black wav blast wav blocked wav bloop wav blue wav bottom wav bravo wav breach wav breached wav break wav bridge wav bust wav but wav button wav buzwarn wav bypass wav c wav cable wav call wav called wav canal wav cap wav captain wav capture wav ceiling wav celsius wav center wav centi wav central wav chamber wav charlie wav check wav checkpoint wav chemical wav cleanup wav clear wav clearance wav close wav code wav coded wav collider wav command wav communication wav complex wav computer wav condition wav containment
2. 62 strbreak strTime strTime strType MAX_DATA_LENGTH Zun chst werden die HL Strings in Small Strings konvertiert convert_ string Anschlie Bend wird der zu bannende Spieler ban_user von der Dauer des Banns strTime getrennt Ein weiterer Trennversuch sorgt daftir dass der gegebenenfalls in strTime vor handene Typ des Banns ID oder IP in strType abgetrennt wird Ist er nicht angegeben ist der String leer Geh rt zu adminlib inc Siehe auch strsep strsplit 342 266 267 268 269 270 8 10 Funktionsreferenz 8 10 164 strcasecmp strcasecmp sStringi sString2 sStringl Typ String 200 sString2 Typ String 200 Die Funktion vergleicht zwei Strings sStringl und sString2 ber ihre gesamte Lange Gro und Kleinschreibung wird nicht beachtet Sind beide Strings identisch wird eine 0 zur ckgegeben Man erh lt eine 0 zur ck wenn beide Strings gleich sind Ist das erste ungleiche Zeichen in den Strings bei sStringl gr er als bei sString2 wird eine Zahl gr er als 0 zur ckgegeben Umgekehrt wird eine Zahl kleiner als 0 zur ckgegeben Beispiel aus plugin_bk_botmanager Funktion admin_bot_ set strbreak sValue sBotCvar sValue MAX_DATA_LENGTH strtrim sValue 2 strtrim sBotCvar 2 if strcasecmp sBotCvar bots 0 Der Wert sValue wird in sBotCvar und sValue aufgeteilt strbreak Beiden Variablen werden am Anfang und am Ende von m glichen Leerzeichen bef
3. Der Spielername muss ausgeschrieben werden Beispiele admin _noclip I am a ghost on admin _noclip Beule off Im ersten Fall wird der Spieler I am a ghost in die Lage versetzt durch W nde zu gehen w hrend im zweiten Fall dem Spieler Beule diese F higkeit aberkannt wird Access Level 8192 Geh rt zu plugin_ cheat 5 5 3 admin_stack admin stack Dieser Befehl stapelt alle Spieler oberhalb des Admins Er kann insbesondere bei Clan Trainings verwendet werden um die undisziplinierten marodierenden Clanmitglieder zusammenzubringen Es sollte dringend darauf geachtet werden dass gen gend Platz ber einem ist Ansons ten k nnten einige Spieler in der Decke h ngen bleiben Beispiel admin stack Stapelt alle Spieler ber einem Access Level 8192 Geh rt zu plugin_ cheat 120 5 5 plugin cheat 5 5 4 admin_teleport admin_teleport lt Spieler gt lt x gt lt y gt lt z gt Mit diesem Befehl ist es m glich einen Spieler an eine bestimmte Stelle auf der Map zu teleportieren Daf r ben tigt man allerdings die genauen Koordinaten Da diese ber den Befehl admin _userorigin oder anderweitiges Wissen ber die Map erworben werden m ssen ist der Befehl eher als Proof of Concept f r die Teleport Funktion anzusehen Der Spieler kann entweder ber seine ID IP den Namen oder einen eindeutigen Na mensteil erkannt werden Beispiel admin _teleport Captain Jim Kirk 100 1431 10
4. aliendoorl wav aliendoor2 wav aliendoor3 wav aliendoor4 wav aliendoor5 wav doormovel wav doormove2 wav doormovel0 wav doormove3 wav doormove4 wav doormoved wav doormove6 wav doormove7 wav doormove8 wav doormove9 wav doorstopl wav doorstop2 wav doorstop3 wav doorstop4 wav doorstop5 wav doorstop6 wav doorstop7 wav doorstop8 wav fan2on wav fan3 wav fan3off wav fan3on wav fan4 wav fan4off wav fandon wav fan5 wav fan5off wav fan5on wav B 4 14 fans fanl wav fanloff wav fanlon wav fan2 wav fan2off wav B 4 15 fvox _comma wav _period wav acquired wav activated wav administering_medical wav adrenaline shot wav alert wav am wav ammo_ depleted wav ammo_ pickup wav antidote shot wav antitoxin_shot wav armor_compromised wav armor_ gone wav atmospherics_on wav automedic_on wav beep wav bell wav bio_reading wav biohazard_ _detected wav bleeding stopped wav blip wav blood__loss wav blood_ plasma wav blood_toxins wav boop wav buzz wav chemical _detected wav communications _on wav danger wav deactivated wav east wav eight wav eighteen wav eighty wav eleven wav evacuate area wav fifteen wav fifty wav five wav flatline wav four wav fourteen wav fourty wav fuzz wav get_ 44ammo wav get_ 44pistol wav get_ 9mmclip wav get_alien_wpn wav get_assault wav get_assaultgren wav get_battery wav get_ bolts wav get_buckshot wav
5. F r tempor re Einstellungen braucht man das Recht 32 zum Speichern und L schen von Einstellungen wird jedoch das Recht 512 ben tigt Beispiel admin restrictmenu Es wird ein Men zum Verbieten von Waffen und oder Equipment aufgerufen Access Level 0 32 512 Geh rt zu plugin_ CS Siehe auch admin_ restrict admin __unrestrict admin_enable_beta 5 6 25 admin_roundtime admin roundtime Minuten Dieser Befehl erm glicht es die Servervariable mp_roundtime zu ver ndern Es wird eingestellt wie lange eine Runde maximal dauert z B 3 Minuten Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _roundtime 3 admin roundtime 1 75 admin roundtime Im ersten Beispiel wird die Rundenzeit auf 3 Minuten gesetzt w hrend im zweiten Fall die Rundenzeit 1 45 Minuten betr gt Im letzten wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 136 5 6 plugin CS 5 6 26 admin_startmoney admin startmoney Dollar Dieser Befehl setzt die Servervariable mp_startmoney blicherweise beginnt jeder Spieler nach dem Mapstart oder beim Betreten des Servers mit 800 Hiermit ist es m glich das Startgeld im Bereich von 0 bis 16000 zu ver ndern Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _startmoney 8000 admin _sta
6. Geh rt zu admin inc Siehe auch get__userSessionID playerinfo 257 8 Scripting 8 10 78 get_userinfo get_userinfo sPlayer sKey sInfo iMaxLength sPlayer Typ String 33 max L nge 100 sKey Typ String 100 sInfo Typ String 200 iMaxLength Typ Integer 0 200 Mit der Funktion get _userinfo lassen sich einige wenige Usereinstellungen abfragen Diese Daten werden oftmals mit setinfo angelegt Die Funktion ben tigt einen Schl s sel sKey dessen Daten sInfo ausgelesen werden k nnen Um m gliche Schl ssel zu ermitteln kann man den Serverbefehl user lt username Session ID gt auf einen be stimmten Spieler anwenden Der f r diese Usereinstellungen zur Verf gung gestellte Speicher ist extrem klein Statsme schaffte es in der Vergangenheit mit seinen Usereinstellungen die Admin Mod Anmeldung unm glich zu machen Die Fehlermeldung info string length exceeded zeigte dann dass der geringe Speicher g nzlich aufgebraucht war Man kann mit der Funktion execclient und dem Setzen von setinfo Usereinstellungen verankern man sollte dies aber unter allen Umst nden vermeiden sofern es nicht einer bergeordneten Aufgabe zutr glich ist Mehr zu diesem Thema ist dem Abschnitt Was macht eigentlich Setinfo zu entnehmen Beispiel aus plugin_bk_hltvannounce Funktion a_hltv get_userinfo hltvname hspecs hltvspecs MAX_NAME_LENGTH 57 get_userinfo hltvname hslots hltvslots M
7. 650 for i 0 i lt c i 651 if Datali 652 Data i 653 654 655 656 snprintf SwearMsg MAX_TEXT_LENGTH s s Command Data 657 execclient User SwearMsg 658 return PLUGIN_HANDLED 659 Nach dem Check dass der schreibende Spieler keine Immunitit t besitzt gibt es einen Hinweis in der Mitte des Bildschirms dass Fluchen auf dem Server nicht erlaubt ist Danach wird das Geschriebene zensiert die Anf hrungszeichen ausgetauscht und die bereinigte Chat Nachricht nochmals vom Spieler abgeschickt execclient Um zu ver hindern dass die unzensierte Nachricht versandt wird muss die weitere Abarbeitung der Nachricht mittels PLUGIN_HANDLED unterbunden werden Geh rt zu admin inc Siehe auch check words 201 8 Scripting 8 10 5 centersay centersay sText iTime iRed iGreen iBlue sText Typ String 500 max Zeilenl nge 80 iTime Typ Integer 0 2147483647 iRed Typ Integer 0 255 iGreen Typ Integer 0 255 iBlue Typ Integer 0 255 Mit dieser Funktion kann man eine bunte Nachricht sText fiir alle Spieler in der Mitte des Bildschirms produzieren iTime ist die Einblendzeit in Sekunden iRed ist der Ro tanteil iGreen der Gr nanteil und iBlue der Blauanteil in der Nachricht Die Funktion centersayex erm glicht die gleiche Funktionalit t f r einzelne Spieler Beispiel aus plugin base Funktion admin_csay 136 if streq Co
8. 8 Scripting 8 10 158 slap slap sPlayer sPlayer Typ String 33 Die Funktion schl gt den angegebenen Spieler sPlayer Er wird dabei leicht in eine zu f llige Richtung gesto en und es werden ihm f nf Lebenspunkte abgezogen Ein Spieler kann durch diese Aktion nie weniger als einen Lebenspunkt bekommen Der Schlag wird bei einem Lebenspunkt als abzugsfreier Sto durchgef hrt Beispiel aus plugin_ retribution Funktion admin_ slap 317 if check_immunity Data 0 318 snprintf Text MAX_TEXT_LENGTH Laf You can t slap s TargetName 319 messageex User Text print_chat 320 else 321 slap Data 322 Hat die Person Data Immunit tsrechte wird eine Fehlermeldung an den Admin aus gegeben Anderenfalls wird die Person geschlagen Geh rt zu admin inc Siehe auch slay teleport 336 8 10 Funktionsreferenz 8 10 159 slay slay sPlayer sPlayer Typ String 33 Der Spieler sPlayer wird durch diese Funktion get tet Wenn admin_ fx aktiviert ist wird die Aktion durch zus tzliche Effekte untermalt Beispiel aus plugin_ retribution Funktion admin_ slap 317 if check_immunity TargetName 0 318 snprintf Text MAX_TEXT_LENGTH Laf You can t slay s TargetName 319 messageex User Text print_chat 320 else 321 if slay TargetName 322 PlaySoundToA11 ambience thunder_clap wav Hat die Person Data Immunit tsrechte wird eine
9. Geh rt zu admin inc Siehe auch set_ timer 280 122 123 124 125 126 8 10 Funktionsreferenz 8 10 103 list _maps list_maps Die Funktion zeigt dem ausf hrenden Spieler alle Maps aus der mapcycle txt in der Console Beispiel aus plugin base Funktion admin_listmaps selfmessage The maps on the mapcycle are list_maps selfmessage and the current map is currentmap curmap 100 selfmessage curmap Es wird eine berschrift f r die zur Verf gung stehenden Maps im Cycle in der Console ausgegeben Es folgt die Ausgabe dieser Maps und die berschrift f r die aktuelle Map Die aktuelle Map wird ermittelt und in der Console ausgegeben Geh rt zu admin inc 281 8 Scripting 8 10 104 listspawn listspawn sClass sClass Typ String 100 Die Funktion gibt alle Items an die gespawned wurden Man kann aber auch nur nach einem Teil sClass suchen Die Funktionalit t steht mittlerweile nicht mehr zur Verf gung Beispiel aus plugin _spawn Funktion admin_listspawn 61 convert_string HLData Data MAX_DATA_LENGTH 62 listspawn Data Der Suchtext wird von einem HL in einen Small String konvertiert convert_string Anschlie end werden die in das Muster fallenden Items in der Console angezeigt Geh rt zu admin inc Siehe auch movespawn removespawn spawn 282 870 871 872 873 874 875 876 8 10 Funktionsreferenz 8 10 105 log log sLogEntry
10. In diesem Beispiel wird ein Mapvote gestartet Access Level 1 Geh rt zu plugin _hldsld_ mapvote Siehe auch say mapvote say rockthevote admin _ vote autostart admin _ vote _echo admin_vote_freq admin vote _maxextend admin vote ratio amv_vote_ duration 144 5 8 plugin _hldsld_mapvote 5 8 4 say cancelvote say cancelvote Dieser Befehl bricht einen eventuell laufenden Mapvote ab Die gleiche Funktion l sst sich auch ber die Console admin _cancelvote ausf hren Beispiel say cancelvote In diesem Beispiel wird der laufende Mapvote abgebrochen Falls keiner l uft wird eine Fehlermeldung ausgegeben Access Level 2 Geh rt zu plugin_hldsld_ mapvote Siehe auch admin cancelvote 5 8 5 say denymap say denymap lt Map gt Dieser Befehl l scht alle Votes f r die angegebene Map Die gleiche Funktion l sst sich auch ber die Console admin denymap ausf hren Beispiel say denymap de_dust2 In diesem Beispiel werden alle Votes f r die so h ufig gespielte Map de_dust2 entfernt um zu verhindern dass zu dieser Map gewechselt wird Access Level 2 Geh rt zu plugin_hldsld_ mapvote Siehe auch admin _ denymap 145 5 Standardplugins und Befehle 5 8 6 say mapvote say mapvote Dieser Befehl startet einen Mapvote Die gleiche Funktion l sst sich auch ber say rockt hevote oder die Console admin _startvote ausf hren Einige Einstellungen z B zur Dauer des Votes der H ufigke
11. Siehe auch admin_gag 5 10 12 admin_unllama admin_unllama lt ID IP Name gt Mit diesem Befehl kann man einen urspr nglich in ein Lama verwandelten Spieler wieder von seinem Leiden befreien Es kann sowohl die Steam ID eine IP oder ein Name angegeben werden Beim Namen gen gt auch ein eindeutiger Teil des Namens Beispiel admin _unllama Kindergeburtstag admin _unllama Big admin _unllama STEAM_0 123456 admin _unllama 23 156 43 12 Im ersten Beispiel wird der Spieler Kindergeburtstag wieder erlaubt im Chat Ver st ndliches zu schreiben 154 5 11 plugin spawn Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 8192 Geh rt zu plugin_retribution Siehe auch admin _ llama 5 11 plugin_spawn Es ist leider nicht bekannt ob admin_listspawn admin_movespawn admin remove spawn und admin spawn jemals funktioniert haben In jedem Fall sind die Befehle funktionslos Das Spawn Plugin zu laden ist daher berfl ssig In der n chsten Admin Mod Version h tte es eigentlich entfernt werden sollen Mangels einer neueren Version ist es immer noch in der aktuellen enthalten Den Eintrag in der plugin ini und das Plugin einfach entfernen 5 12 plugin_TFC Das Team Fortress Classic TFC Plugin erlaubt es
12. 488 get_userorigin Victim vx vy vz 489 g_PlayerEnemyDistance iVID distance ax vx ay vy az vz Der Funktion get _user distance wird der Name des Siegers und des Verlierers des Duells und der Userindex des Verlierers bergeben Mittels get _userorigin werden die Positionen der Spieler auf der Map ermittelt und der Abstand zwischen den Spielern in einer Zelle eines Feldes gespeichert Geh rt zu math inc Siehe auch get __userorigin Shttp www adminmod de plugins php plugin plugin_sdal_logd_hp50 218 8 10 Funktionsreferenz 8 10 23 exec exec sCommand bWriteLogEntry 1 sCommand Typ String 256 bWriteLogEntry 1 Typ Integer 0 1 F hrt einen beliebigen Serverbefehl aus kann aber auch Variablen setzen Ausgenommen sind Admin Mod Befehle Diese m ssen mit plugin _exec ausgef hrt werden damit das Rechtesystem nicht ber Plugins ausgehebelt werden kann Mit bWriteLogEntry 0 kann man bewirken dass keine Logzeile beginnend mit AD MIN Executing command in die Logs eingetragen wird Beispiel aus plugin base Funktion admin pass 359 snprintf Msg MAX_DATA_LENGTH sv_password s Data 360 exec Msg Der Inhalt aus Data wird sv_ password angeh ngt und ausgef hrt so dass nun das Passwort gilt das in Data steht Auf die Logentry Einstellung wurde verzichtet so dass die Ausf hrung geloggt wird Geh rt zu admin inc Siehe auch execute_command
13. Der Spieler Captain Jim Kirk wird an die Koordinaten x 100 y 1431 und z 10 teleportiert Wo immer das auch ist Access Level 8192 Geh rt zu plugin_ cheat Siehe auch admin _userorigin 5 5 5 admin_userorigin admin_userorigin lt Spielername gt Dieser Befehl zeigt die Koordinaten eines Spielers auf der Map an Eigentlich ist er nur in Verbindung mit dem Teleportbefehl admin _ teleport von Nutzen Er ist also wie dieser nur als Proof of Concept anzusehen Der Spielername muss exakt angegeben werden Beispiel admin userorigin Hide and Seek Es werden die aktuellen Koordinaten des Spielers Hide and Seek angezeigt Access Level 8192 Geh rt zu plugin_ cheat Siehe auch admin_teleport 121 5 Standardplugins und Befehle 5 6 plugin_CS Das CS Plugin ist wie der Name schon sagt prim r f r die Administration der Counter Strike Modifikation gedacht Nur wenn man auch wirklich Counter Strike auf dem Server laufen l sst sollte man das Plugin laden Alle anderen Modifikationen werden damit wenig anfangen k nnen Es lassen sich mit dem Plugin einige CS spezifische Servervariablen setzen Es ist aber insbesondere auch die M glichkeit von Waffenrestriktionen interessant Um beispielswei se den Kauf des unbeliebten Schilds zu unterbinden ist die Einbindung von plugin _CS Pflicht 5 6 1 admin_autokick admin autokick 0 1 Der Befehl admin _autokick erlaubt das setzen der Serve
14. Diese Funktion trennt einen String sSource an im String sDelimitiers angegebenen Zeichen Die Trennung wird dort nicht ausgef hrt wo die Zeichenkette von den im String sGrouping angegebenen Zeichen umschlossen wird Werden nicht ausreichend Argumente ftir die Aufnahme der Teilstrings angegeben wird der Rest ungetrennt im letzten Argument tibergeben Die Funktion gibt zur ck wieviele Teilstrings gefunden wurden bzw 1 wenn kein Teil string gefunden wurde Beispiel aus plugin CS Funktion SetRestrictions 710 strgsep Data 7 sPlayer MAX_AUTHID_LENGTH sWhat MAX_DATA_LENGTH 711 if check_user sPlayer 0 712 selfmessage Unrecognized player 713 selfmessage sPlayer 714 selfmessage If the player name you specified containes spaces 715 selfmessage try encosing it with single quotes 716 return PLUGIN_HANDLED 717 Der String Data 7 wird an den Leerzeichen getrennt Es werden nur zwei Argumente definiert sPlayer und sWhat Falls mehr als ein Leerzeichen auftritt wird nur am ersten getrennt und der Rest in sWhat geschrieben Hat ein Spieler ein Leerzeichen im Namen w rde der Spielername getrennt und der zweite Teil des Namens mit in sWhat geschrieben Daher wurden als Gruppierungszeichen die einfachen Anf hrungszeichen gew hlt Ist der Spielername von diesen Zeichen umschlossen wird dieser Teil f r die Trennung ausgeschlossen und die Trennung am n chsten Leerzeichen durc
15. Hiermit kann die Servervariable mp_teamplay ver ndert werden die bei bestimmten Mods den Wechsel zwischen Teamplay und Deathmatch erlaubt Beispiel admin _teamplay 1 Der Server wechselt in den Team Modus Access Level 32 Geh rt zu plugin_ base 5 3 27 admin_timeleft admin timeleft Dieser Befehl erlaubt die Angabe der Restzeit bis zum Mapwechsel im Chat Das funktioniert allerdings nicht bei allen Modifikationen zuverl ssig Gerade bei Coun ter Strike z hlt nur der Client die Restzeit nicht aber der Server Die R ckgabe der Restzeit in Counter Strike ist damit ungenau Einige Custom Plugins nehmen sich dieses Umstands an Es gibt auch die M glichkeit den Chat zu verwenden say timeleft Beispiel admin timeleft Gibt die Restzeit bis zum Mapwechsel im Chat an Access Level 0 Geh rt zu plugin_base Siehe auch say timeleft 110 5 3 plugin base 5 3 28 admin_timelimit admin timelimit lt Minuten gt Hiermit kann die Servervariable mp timelimit ver ndert werden Diese legt fest wie lang eine Map l uft Die Angabe wird in Minuten erwartet 0 deaktiviert den Mapwechsel durch das Ablaufen eines Countdowns Beispiel admin timelimit 45 Die Laufzeit einer Map wird auf 45 Minuten gesetzt Access Level 2 Geh rt zu plugin_ base 5 3 29 admin_tsay admin tsay Farbe lt Text gt Dieser Befehl schreibt den gew nschten Text auf der linken Seite des Bildschirms al ler Spieler Standardm
16. Sofern die Modifikation es unterst tzt kann man mit dieser Funktion ein Message of the Day Fenster mit einer Nachricht sMessage bei einem bestimmten Spieler sTarget ffnen Die Anzahl der Zeichen ist u erst begrenzt Insbesondere bei HTML Seiten sollte man besser nur eine automatische Weiterleitung auf eine echte HTML Seite generieren Beispiel aus plugin base Funktion admin motd strbreak Data Target Msg MAX_TEXT_LENGTH if strlen Msg 0 selfmessage Unparsable format no message found return PLUGIN_HANDLED else if check_user Target 0 selfmessage Unrecognized player selfmessage Target return PLUGIN_HANDLED F get_username Target TargetName MAX_NAME_LENGTH motd TargetName Msg Zun chst werden die bergebenen Daten aus dem Befehl in einen Spieler und einen Nachrichtteil getrennt Trennzeichen ist das erste Leerzeichen strbreak Wenn kei ne Nachricht gefunden wurde oder der Spieler nicht auffindbar ist wird die Abarbei tung mit einer Fehlermeldung an den aufrufenden Admin abgebrochen Die Funktion get_ username macht aus einer ID oder einer IP einen Namen und nutzt diesen zur Ausgabe der Nachricht Geh rt zu admin inc 294 143 144 145 146 147 148 8 10 Funktionsreferenz 8 10 117 movespawn movespawn ildentity iX iY iZ iXAngle iYAngle iZAngle ildentity Typ Integer 0 2147483647 iX Typ Integer 2147483648 2147483647 iY
17. Typ Integer 2147483648 2147483647 iZ Typ Integer 2147483648 2147483647 iXAngle Typ Integer 0 359 iYAngle Typ Integer 0 359 iZAngle Typ Integer 0 359 Die Funktion verschiebt ein Item ildentity auf eine bestimmte Position iX iY iZ und in einer bestimmten Ausrichtung iX Angle iYAngle iZAngle Die Funktionalit t steht mittlerweile nicht mehr zur Verf gung Beispiel aus plugin _ spawn Funktion admin_movespawn if movespawn ildentity X Y Z XAngle YAngle ZAngle 1 selfmessage Success say_command User Command Data else selfmessage Failed Es wird versucht ein Item zu verschieben Falls dies erfolgreich war wird eine Erfolgs meldung an den Admin und alle anderen Spieler ausgegeben Anderenfalls wird nur der Admin tiber den fehlgeschlagenen Versuch informiert Gehort zu admin inc Siehe auch listspawn removespawn spawn 295 52 54 55 56 8 Scripting 8 10 118 nextmap nextmap sMap iMaxLength sMap Typ String 100 iMaxLength Typ Integer 0 100 Die Funktion gibt die nach der aktuellen geladene Map sMap aus Sie ber cksichtigt keine Plugins die in den Mapwechsel eingreifen sondern geht in der Ermittlung nach der Methode des HL Servers vor Nur bei der ersten Map nach dem Serverstart stimmt die Anzeige nicht Beispiel aus plugin chat Funktion SayNextMap SayNextMap nextmap NextMap MAX_NAME_LENGTH snp
18. Typ Integer 0 3 Die Funktion f power exponiert fExponent den die Eulersche Zahl Will man eine beliebige Zahl exponieren sollte man auf f power zur ckgreifen Beispiel aus math inc Funktion f_sinh 424 stock fixed f_sinh fixed fNum 425 return fdiv f_powere fNum f_powere fmul fNum 1 000 2 000 426 Der Sinus Hyperbolicus wird aus der Berechnung sinh x gebildet Geh rt zu math inc Siehe auch f power 8 10 55 fixed f_radtodeg f_radtodeg fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_radtodeg rechnet einen Winkel von Radiant in Grad um Beispiel fNum f_radtodeg fNum Der Winkel fNum wird in Grad umgerechnet Geh rt zu math inc Siehe auch f_degtorad 239 8 Scripting 8 10 56 fixed f_sin f_sin fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_sin gibt den Sinus Wert als eine Festkommazahl zur ck Beispiel aus math inc Funktion f_cos 394 stock fixed f_cos fixed fNum 395 return f_sin fNum fdiv f_pi Q 2 000 396 Der Kosinus wird aus der Berechnung cos x sin x 5 gebildet Geh rt zu math inc Siehe auch f_cos f_cot f_tan 8 10 57 fixed f_sinh f_sinh fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_sinh gibt den Sinus Hyperbolicus Wert als eine Festkommazahl zur ck Beispiel aus math inc Funktion f_tanh 493 stock fixed f_tanh fixed fNum 494
19. fiziert wurde d h in der users ini steht und sich angemeldet hat Es spielt dabei keine Rolle welchen Access Level die Person hat Die Funktion wird selten fiir eine vereinfachte Administratortiberprtifung genutzt Liefert als Integerwert 1 zurtick wenn die Personen authentifiziert wurde Andernfalls wird eine 0 zur ckgeliefert Beispiel aus plugin_bk_hltvannounce Funktion admin_hltv_connect 185 if auth User 186 hltvconnect Data 187 Erst wenn der Spieler User der den Befehl zum Umleiten eines anderen Spielers Data abgesetzt hat nachweisen kann dass er in der plugin ini steht d h authentifiziert ist wird dieser Spieler auch auf den HLTV umgeleitet Geh rt zu admin inc Siehe auch access check _auth 2http www adminmod de plugins php plugin plugin_bk_hltvannounce 199 8 Scripting 8 10 3 ban ban sPlayer iTime bBanBy bBanByID sPlayer Typ String 33 iTime Typ Integer 0 2147483647 bBanBy bBanByID Typ Enum 0 bBanByID bBanByIP bBanBoth Die Funktion bannt eine Person unter sPlayer angegebene Person sPlayer kann der Spie lername die SessionID oder die Steam ID sein iTime ist der Integerwert in Minuten wie lange der Spieler gebannt werden soll Der Wert 0 bedeutet dass die Person permanent vom Server verbannt wird Wenn als bBanBy die bBanByID angegeben wird wird die Steam ID gebannt Bei LAN Servern wo es keine eindeutige Steam ID gibt muss man bBanByI
20. gesch tzt hat das empfehle ich jedem da es inzwischen offensichtlich Hobby geworden ist fremde Configs zu zerst ren Leider ist der Speicherbereich der setinfo Variablen zur Verf gung gestellt werden sehr klein Wer zuviele oder zu lange Variablen hat be kommt oft ein Info String Exceeded in seiner Console meist verbunden mit einem Name reserved und einem fluchenden Spieler der Admin Mod daf r verantwortlich macht Meist ist aber Statsme daf r verantwortlich was meist 2 lange setinfos in der config cfg hinterlie Man mag soviel ber die Additionsorgie unter Adminmod meckern aber den Autoren war dieses Problem durchaus bewusst Durch dieses System wird mas siv Speicher gespart Will man also setinfo in seinem Plugin verwenden so sollte man 402 B 2 Interaktion zwischen HL Engine und GameDLL dies nur tun wenn man es als allgemeine Einstellungen f r fast alle Plugins nutzen kann Vielleicht nutzen ja mehr Plugin Programmierer am_sound Zu hoffen w re es B 2 Interaktion zwischen HL Engine und GameDLL Die HL Engine l dt beim Starten dynamisch eine GameDLL Welche das ist wird aus den Kommandozeilen Parameter game und der liblist gam Datei in dem angegebenen Verzeichnis ermittelt Diese GameDLL ist verantwortlich f r die Elemente des Spiels Engine lt gt GameDLL Wenn in der liblist gam die Metamod DLL angegeben ist ladt die Engine die Metamod DLL Der Engine ist es egal was sie f r eine DLL l dt s
21. if strmatch Data glow strlen glow 1 Zun chst werden die Funktionsargumente in Small Strings konvertiert convert _string Danach werden m gliche Anf hrungszeichen um den String entfernt strstripquotes Abschlie end wird nur dann die If Verzweigung ausgef hrt wenn die ersten 5 Zeichen von Data mit glow bereinstimmen Geh rt zu adminlib inc Siehe auch streq strcasecmp 308 210 211 212 213 8 10 Funktionsreferenz 8 10 181 strncasecmp strncasecmp sString1 sString2 iNum sStringl Typ String 200 sString2 Typ String 200 iNum Typ Integer 0 200 Die Funktion vergleicht zwei Strings sStringl und sString2 ber die L nge iNum Gro und Kleinschreibung wird nicht beachtet Sind beide Strings identisch wird eine 0 zur ckgegeben Man erh lt eine 0 zur ck wenn beide Strings gleich sind Ist das erste ungleiche Zeichen in den Strings bei sStringl gr er als bei sString2 wird eine Zahl gr er als 0 zur ckgegeben Umgekehrt wird eine Zahl kleiner als 0 zur ckgegeben Beispiel aus plugin dio _motm Funktion say_motm if strncasecmp strColor red 4 0 Red 250 Green 10 Blue 10 Es wird berpr ft ob die ersten 4 Zeichen in strColor red entsprechen Nur dann werden die Farbanteile Red Green und Blue definiert Geh rt zu string inc Siehe auch strcmp strcasecmp strncmp strmatch S nttp www adminmod de plugins
22. pesql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pgsql_dbtable_tags pesql_dbtable_ users pgsql_dbtable_words pgsql_host pgsql__ pass pgsql_port pgsql_ preload pgsql_tags sql pgsql user pgsql_users_ sql 4 1 65 pgsql_dbtable_ips nur PostgreSQL Version pgsql_dbtable_ips lt string gt Diese Variable legt fest in welcher PostgreSQL Tabelle die IPs fiir die Slotreservierung zu finden sind Ist kein Admin Mod PostgreSQL installiert wird die Variable ignoriert anderenfalls wird ggf eine Definition von ips_ file bergangen Beispiel pgsql_dbtable_ips am_ips 114 Admin Mod erwartet die Daten zur Slotreservierung f r IPs in der Tabelle am_ ips Siehe auch ips_ file pgsql_ database pgsql_dbtable_models pgsql_dbtable_plugins pgsql_dbtable_tags pesql_dbtable_ users pgsql_dbtable_words pgsql_host pgsql pass pgsql_port pgsql_preload pesql tags sql pgsql user pgsql_users_sql 48 4 1 Admin Mod einrichten adminmod cfg 4 1 66 pgsql_dbtable_models nur PostgreSQL Version pgsql_dbtable models lt string gt Diese Variable legt fest in welcher PostgreSQL Tabelle die Modelreservierungen zu fin den sind Ist kein Admin Mod PostgreSQL installiert wird die Variable ignoriert ande renfalls wird eine Definition von models file bergangen Beispiel pgsql_dbtable_models am models Admin Mod erwartet die Daten zur Modelreservierung in der Tabelle am models Siehe auch m
23. strncat strncmp strncpy strrchr strsep strsplit strspn strstr strtok strtokrest strtrim 197 8 Scripting 8 10 Funktionsreferenz 8 10 1 access access iAccess sName iAccess Typ Integer 0 2147483647 sName un Typ String 33 Mit der Funktion kann man den Accesslevel der Person abfragen die entweder direkt die Funktion im Plugin aufgerufen hat s Name braucht dann nicht angegegeben werden oder der Person die man mit sName angibt Man erh lt einen Integer mit Wert 1 zur ck wenn die Person den Rechtelevel iAccess besitzt und eine 0 wenn die Person diesen Rechtelevel nicht besitzt Beispiel aus plugin base Funktion admin_ chat 110 for i 1 i lt maxplayers i 111 strinit Name 112 if playerinfo i Name MAX_NAME_LENGTH 1 113 if access ACCESS_CHAT Name 0 4 114 messageex Name Text print_chat 115 116 117 Es werden alle Playerslots abgefragt ob ein Spieler vorhanden ist Wenn ja wird ber pr ft ob er den Rechtelevel ACCESS_CHAT 64 hat um Nachrichten die ber admin chat abgesetzt wurden lesen zu d rfen Erst wenn Admin Mod dies auch best tigt wird die Nachricht an den Spieler ausgegeben Geh rt zu admin inc Siehe auch auth check _auth 198 8 10 Funktionsreferenz 8 10 2 auth auth sName sName we Typ String 33 Mit der Funktion auth kann man abfragen ob eine Person sName als Admin authenti
24. www adminmod de plugins php plugin plugin_cw_creator3 303 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 8 Scripting 8 10 126 plugin_command plugin_command HLCommand HLData HLUserName UserIndex HLCommand Typ HLString 33 HLData Typ HLString 200 HLUserName Typ HLString 30 UserIndex Typ Integer 0 32 Bei der Funktion plugin_command handelt es sich um ein Event mit dem alle Befehle abgefangen werden k nnen Sie wird vor allem in Antiflood Plugins eingesetzt Beispiel aus plugin_blatt_map Funktion plugin command public plugin_command HLCommand HLData HLUserName UserIndex if g_BuySupressed 0 return PLUGIN_CONTINUE new Command MAX_COMMAND_LENGTH safe_convert HLCommand Command MAX_COMMAND_LENGTH if strmatch Command say 3 1 return PLUGIN_CONTINUE if streq Command drop return PLUGIN_CONTINUE return PLUGIN_HANDLED In diesem Beispiel wird die Ausf hrung aller Befehle au er say und drop unterbun den PLUGIN_ HANDLED Au erdem kann eine globale Variable g BuySupressed das Unterbinden verhindern Dieser Code macht nur Sinn wenn das Plugin als zweites hinter plugin antiflood ausgef hrt wird Nur Befehle aus Plugins die sich in der Ladereihenfolge hinter plu gin_blatt_map befinden k nnen blockiert werden Geh rt zu admin inc Siehe auch plugin _ connect plugin disconnect
25. 192 directmessage sMessage iUid tType Abh ngig vom Buchstaben der sich in der ersten Zelle von sType befindet wird der UID Typ festgelegt Die um Anf hrungszeichen befreite Nachricht Zeile 191 strstripquotes wird der ID Session ID oder Userindex geschickt Geh rt zu admin inc Siehe auch centersayex message messageex selfmessage 217 8 Scripting 8 10 22 distance distance x1 x2 y1 0 y2 0 z1 0 z2 0 x1 Typ Integer 2147483648 2147483647 x2 Typ Integer 2147483648 2147483647 y1 0 Typ Integer 2147483648 2147483647 y2 0 Typ Integer 2147483648 2147483647 z1 0 Typ Integer 2147483648 2147483647 z2 0 Typ Integer 2147483648 2147483647 Die Funktion distance berechnet die Entfernung zwischen zwei Punkten auf der Map Bei gro en Entfernungen zwischen zwei Punkten kann es zu Problemen kommen Die Berechnung ermittelt die Summe der Quadrate der Abst nde in x y und z Richtung Sollte diese Summe gr er als 2147483647 sein kommt es zu einem Overflow der zwar das Plugin nicht abst rzen l sst aber falsche Ergebnisse liefert Es wird daher empfoh len die Summe vorab abzusch tzen z B sollte die Summe der Abst nde 46340 nicht berschreiten Man kann dann die Punkte durch einen festen Faktor teilen und ihn nach der Berechnung wieder aufschlagen Beispiel aus plugin_sdal_logd_hp50 Funktion get_user_ distance 487 get_userorigin Attacker ax ay az
26. 45 4 Konfiguration 4 1 60 mysql_user nur MySQL Version mysql_user lt string gt Definiert den Loginnamen f r die MySQL Datenbank Beispiel mysql_user adminmodadmin Der Username f r den Zugriff auf die MySQL Datenbank ist auf adminmodadmin gesetzt Siehe auch mysql database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_ plugins mysql_dbtable_tags mysql_dbtable_ users mysql_dbtable_words mysql_host mysql_pass mysql_ preload mysql_tags_sql mysql_users_ sql 4 1 61 mysql_users_sql nur MySQL Version mysql_users_sql lt string gt Admin Mod l sst es dem Benutzer frei den SQL Befehl beim Zugriff auf die users Tabelle der MySQL Datenbank nach eigenem Wunsch zu ver ndern z B zur Implementierung in eine Forumssoftware Standard SELECT pass access FROM s where nick s or nick s Beispiel mysql_users_sql SELECT password access FROM s WHERE username s OR username s Der Ausdruck muss stets drei s enthalten Diese werden in der Reihenfolge User Table mysql_dbtable users Username und STEAM_ ID gef llt mysql preload muss auf 0 gesetzt sein um diese Variable zu nutzen Siehe auch mysql_database mysql_dbtable_ips mysql_dbtable_models mysql _dbtable_ plugins mysql_dbtable_tags mysql_dbtable_users mysql_dbtable_words mysql_host mysql_pass mysql_ preload mysql_tags_sql mysql user 46 4 1 Admin Mod einrichten adminmod
27. Davon steht zun chst einmal das Passwort als MD5 Hash in phpBB2 zur Verf gung phpBB3 weist einen gravierenden Unterschied zu phpBB2 auf Die MD5 Hashes werden nicht mehr als MySQL Hash sondern als Salted Hash softwarem ig nachverschl sselt gespeichert Sie sind daher f r Admin Mod nicht nutzbar Dem entsprechend ist zun chst die Verschl sselung encrypt password richtig einzustellen phpBB2 MD5 Hashes encrypt_password 2 phpBB3 Plain Text encrypt_password 0 Die weitere Beschreibung bezieht sich auf phpBB3 Im weiteren Verlauf des Kapitels werden jedoch einige Beispiele f r phpBB2 gezeigt Die genutzte Tabelle muss in mysql_dbtable_ users festgelegt werden und ist dabei in der Regel phpbb_ users mysql_dbtable_users phpbb_users Nun stimmen die Spaltennamen nicht berein so dass vom Standardformat abgewi chen werden muss mysql__ users _ sql Die Abfrage w rde also vorl ufig folgenderma en lauten SELECT user_password AS pass 0 AS access FROM s WHERE username s OR username s Es wird verglichen ob der Nickname oder dessen Steam ID mit dem Nicknamen im Forum tibereinstimmt Ist das der Fall wird das Passwort und der Accesslevel als pass bzw access zur ckgegeben Wie unschwer zu erkennen ist hat phpBB kein Feld f r den Accesslevel In dieser Abfrage bekommen alle Spieler den Accesslevel 0 Mit phpBB3 ist es m glich userspezifische Profilfelder hinzuzuf gen Man f g
28. Debuglevel gr er oder gleich zwei ist wird der noch verbleibende Heap Speicher ermittelt Ganzzahl Mit dem String context soll diese Ganzzahl in der Variable heapsize eingebettet werden Die Reihen folge der Platzhalter s vor i bestimmt die Reihenfolge der Argumente context vor 4nttp www adminmod de plugins php plugin plugin_blatt_map 338 8 10 Funktionsreferenz heapspace Ist context gleich Test und die R ckgabe von heapspace gleich 936 dann s he der String heapsize folgenderma en aus Test 936 free bytes Zuletzt wird dieser Text in der Console unter Angabe des Pluginnamens ausgegeben plugin message Geh rt zu string inc Siehe auch strsubst 339 143 144 145 146 147 148 149 150 8 Scripting 8 10 161 spawn spawn sClass iX iY iZ iXAngle iYAngle iZAngle sClass Typ String 100 iX Typ Integer 2147483648 2147483647 iY Typ Integer 2147483648 2147483647 iZ Typ Integer 2147483648 2147483647 iXAngle Typ Integer 0 359 iYAngle Typ Integer 0 359 iZAngle Typ Integer 0 359 Die Funktion erstellt ein Item iClass auf einer bestimmten Position iX iY iZ und in einer bestimmten Ausrichtung iXAngle iYAngle iZAngle Es wird die ID des Items zur ckgegeben Die Funktionalit t steht mittlerweile nicht mehr zur Verf gung Beispiel aus plugin spawn Funktion admin_ spawn ildentity spawn strClass X Y Z XAngle
29. Geh rt zu admin inc Siehe auch ban 382 8 10 Funktionsreferenz 8 10 207 userlist userlist sPattern sPattern Typ String 33 Diese Funktion gibt in der Console des aufrufenden Admins einen berblick ber die mo mentan Spielenden Dabei wird der Name die Session ID die Steam ID der Accesslevel und der Immunit tsstatus des Spielers angegeben Man kann auch die Spielerausgabe ber ein optionales Muster einschr nken Beispiel aus plugin base Funktion admin _userlist 586 public admin _userlist HLCommand HLData HLUserName UserIndex 587 new Data MAX_DATA_LENGTH 588 989 convert_string HLData Data MAX_DATA_LENGTH 590 userlist Data 591 return PLUGIN_HANDLED 592 Es wird die Spielerliste ausgegeben die ggf durch ein Muster z B a f r alle Spieler die ein a im Namen haben eingeschr nkt wurde Geh rt zu admin inc 383 8 Scripting 8 10 208 valid_map valid_map sMap sMap Typ String 100 Die Funktion berpr ft ob sich eine angegebene Map sMap auf dem Server befindet Ist eine maps ini in der adminmod cfg definiert gelten nur die dort eingetragenen Maps als g ltig Dieser Check l sst sich mit valid_ mapex umgehen Beispiel aus plugin base Funktion admin map 307 if valid_map Data 1 308 say_command User Command Data 309 changelevel Data 4 Falls es sich bei Data um eine g ltige Map auch unter Ber cksichtigung der
30. Geh rt zu plugin _chat Siehe auch admin _nomessagemode 116 5 4 plugin chat 5 4 2 admin_nomessagemode admin_nomessagemode Dieser Befehl schaltet den aktivierten Messagemode admin_ messagemode ab Beispiel admin_nomessagemode Dies schaltet den Messagemode ab nicht mehr und nicht weniger Access Level 0 Geh rt zu plugin_chat Siehe auch admin _messagemode 5 4 3 say currentmap say currentmap Gibt man currentmap im Chat ein wird der Name der Map angezeigt auf der gerade gespielt wird Beispiel say currentmap Siehe Beschreibung Access Level 0 Geh rt zu plugin_chat Siehe auch say nextmap 117 5 Standardplugins und Befehle 5 4 4 say nextmap say nextmap Gibt man nextmap im Chat ein wird der Name der Map angezeigt die als n chstes folgenden w rde wenn nicht ein Eingriff seitens eines Server Addons Plugins oder des Admins erfolgt Beim Serverstart ist die Anzeige auf der ersten Map inkorrekt Alternativ sollte man die letzte Map im Mapcycle gleich der Startmap setzen Dann ist auch diese Anzeige korrekt Alternativ kann auch der Befehl admin_nextmap verwendet werden Beispiel say nextmap Zeigt die n chste Map an Access Level 0 Geh rt zu plugin_ chat Siehe auch admin nextmap say nextmap 5 4 5 say timeleft say timeleft Gibt man timeleft im Chat ein wird die verbleibende Zeit angezeigt die auf der entsprechenden Map noch
31. Kopiere logd_mm dll addons logd dlls Anschlie end muss LogD noch in der addons metamod plugins ini durch folgende Ein trage aktiviert werden linux addons logd dl1s logd_mm_i386 so win32 addons logd dlls logd_mm dil 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 Er gebnis 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 Inttp logd sf net http www adminmod de 162 7 1 LogDaemon LogD 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 lt gt 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 er
32. MSN 5402104 ICQ 405 B Sonstiges B 4 1 agrunt ag_alertl wav ag_alert2 wav ag_alert3 wav ag_alert4 wav ag_alert5 wav ag_attackl wav ag attack2 wav ag attack3 wav ag diel wav ag_die2 wav ag_die3 wav ag_die5 wav ag_firel wav ag_fire2 wav ag_fire3 wav ag_idlel wav ag_idle2 wav ag_idle3 wav ag_idle4 wav ag idle5 wav ag _painl wav ag _pain2 wav ag_ pain3 wav ag pain4 wav ag_ pain5 wav B 4 2 ambience alien bui alien_cyc lienflyby1 alienvalve alienvalve beel wav bee2 wav __comma wav alien beacon wav alien_blipper wav alien chatter wav alien _creeper wav alien_frantic wav alien _ hollow wav alien _humongo wav alien minddrill wav alien_powernode wav alien _purrmachine wav alien _squit wav alien_twow wav alien zonerator wav aliencavel wav alienclickerl wav alienfazzlel wav alienlaserl wav alienvoicesl wav alienwindl wav alienwind2 wav biggunl wav biggun2 wav biggun3 wav bigwarning wav lder wav letone wav Wav l wav 2 wav iotone wav boomer wav reather wav burningl wav burning2 wav burning3 wav computalk1 wav cricket wav rickets wav crtnoise wav deadsignall wav deadsignal2 wav des_windl wav des _wind2 wav des _wind3 wav disgusting wav distantmortarl wav distantmortar2 wav distantmortar3 wav drips wav dronemachinel wav dronemachine2 wav dronemachine3 wav flameburst1 wav flies wav hammer wav hawk1 wav industriall
33. Wird MySQL nicht verwendet wird diese Variable igno riert Beispiel mysql_host localhost In diesem Fall erwartet Admin Mod auf dem gleichen Rechner die MySQL Datenbank Siehe auch mysql_database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_ plugins mysql_dbtable_tags mysql_dbtable_users mysql_dbtable_ words mysql pass mysql_ preload mysql_tags_sql mysql_user mysql_users_ sql 4 1 57 mysql_pass nur MySQL Version mysql _pass lt string gt Mit dieser Variablen wird das Passwort f r den Zugang zum MySQL Datenbank festge legt Standard Beispiel mysql_pass geheim Das Passwort f r den Zugriff auf die MySQL Datenbank ist auf geheim gesetzt Bitte ein besseres Passwort benutzen Siehe auch mysql_database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_ plugins mysql_dbtable_tags mysql_dbtable_users mysql_dbtable_ words mysql_host mysql_ preload mysql_tags_sql mysql user mysql_users_ sql 44 4 1 Admin Mod einrichten adminmod cfg 4 1 58 mysql_preload nur MySQL Version mysql preload lt gt Mit dieser Variable wird eingestellt ob die Datenbank Tabellen beim Admin Mod Start in den Speicher geladen werden sollen Dies verringert ganz erheblich die Last auf dem MySQL Server da keine Querys mehr ausgef hrt werden m ssen f hrt aber beispiels weise bei mehr als 1000 Usern in der users Tabelle zu einer berm igen Nutzung von Speicher durch Admin Mod
34. applaunch 10 steht fiir Counter Strike Andere Mods haben andere Zahlen Hat der Server ein Passwort so muss password lt Serverpasswort gt zusatzlich angefiigt werden Man kann das alles aber auch in der adminpass cfg ausf hren lassen die dann in etwa so auss he setinfo _pw home xxx password lt Serverpasswort gt rcon_password lt Rcon Passwort gt connect 213 239 218 84 27015 In die Verkn pfung m sste dann nur stehen X Steam Steam exe applaunch 10 exec adminpass cfg 2 Externe Tools HLSW beispielsweise erm glicht das Setzen eines Passworts beim Connect aus dem Programm heraus Hierbei muss in den Servereigenschaften bei Zus tzliche Parameter stehen exec adminpass cfg 3 autoexec cfg Wird immer gerne genannt funktioniert auch gut stellt aber ein Sicherheitsrisiko dar da das Passwort jedem Server mitgeteilt wird nicht nur dem eigenen 4 valve rc Das Selbe wie mit der autoexec cfg Wof r man sich entscheidet sei einem selbst berlassen Es ist aber zu bedenken dass die Optionen 3 und 4 ein erhebliches Sicherheitsrisiko bergen Im Zweifel admin login benutzen sofern keine Reservierungen verwendet werden Wie erkennt man aber dass der Server einen als Admin erkannt hat Die folgenden Zeilen m ssen beim Connecten erscheinen ADMIN Checking password for user access ADMIN Password accepted for user 0815 Avg Access granted 131071 Bei Steam ist nach dem Connect in die Console
35. der den zugeh rigen Befehl ausgef hrt hat eine Nachricht sMessage in die Console Beispiel aus plugin base Funktion admin _ rcon if check_auth ACCESS_RCON 0 selfmessage Laf Silly bear return PLUGIN_HANDLED Um zu verhindern dass jemand auf die Idee kommt aus der Serverconsole den Befehl admin_rcon aufzurufen was m glich aber unsinnig ist wurde eine Abfangroutine imple mentiert Nur wenn der User den Access Level 65536 ACCESS _RCON besitzt wird der RCon Befehl tiber Admin Mod abgesetzt Anderenfalls wird der Admin der den Be fehl ausf hrte etwas unh flich in der Console auf das unsinnige Ansinnen hingewiesen selfmessage Geh rt zu admin inc Siehe auch directmessage message messageex 326 8 10 Funktionsreferenz 8 10 150 servertime servertime sTimeString iMaxLen sFormat none sTimeStringl Typ String 100 iMaxLen Typ String 1 100 sFormat Typ String 100 Die Funktion gibt das aktuelle Datum und die Uhrzeit zur ck sTimeString mit L nge iMaxLen Die R ckgabe erfolgt ber die Formatvorgabe sFormat Falls diese nicht vorgegeben wurde werden die abgelaufenen Sekunden seit dem 1 1 1970 ausgegeben In der folgenden Liste sind die Formatierungszeichen beschrieben a Wochentag abgek rzt z B Mon f r Montag A Wochentag ausgeschrieben b Monat abgek rzt z B Aug f r August B Monat ausgeschrieben c Vorgefertigtes Datums u
36. f hrt auf Grund eines Compilerbugs im schlimmsten Fall zum Absturz des HL Servers Eine Besonderheit sind die Festkommazahlen W hrend das Addieren und Subtrahieren noch identisch ausgef hrt wird gibt es f r das Multiplizieren und Dividieren spezielle Funktionen fmul und fdiv ber die Grundrechenarten hinausgehende Rechenfunktio nen bzw operatoren zu Festkommazahlen sind der math inc zu entnehmen Es gibt dar ber hinaus auch logische Operatoren die insbesondere in Verzweigungen eingesetzt werden Nicht amp amp Und Oder 8 4 Verzweigungen Es gibt in Small zwei Verzweigungen if und switch Die If Verzweigung kann durch else if und oder else erweitert werden 1 vergleich i 2 new j 0 3 4 if i 1 5 j 2 6 7 else if i 2 lli 3 1 8 j 5 9 10 else 11 j 1 12 13 14 return j 15 gt Die Vergleiche wurde zur besseren Lesbarkeit in runde Klammern gesetzt Dies ist nicht notwendig aber zu empfehlen F r Konstrukte dieser Art sollte man aus Ubersichtlich keitsgr nden aber eher auf die Switch Verzweigung ausweichen Das obige Beispiel sieht dann folgenderma en aus 1 vergleich i 172 8 5 Schleifen 2 new j 0 3 4 switch i 5 case 1 6 j 2 7 8 case 2 3 9 j 5 10 11 default 12 j 1 13 14 15 16 return j 17 Switch Verzweigungen k nnen nur Zahlen jedoch keine Strings vergleichen 8 5 Schleifen Small ha
37. get_crossbow wav get __egon wav get_ egonpower wav get_ gauss wav get_grenade wav get_medkit wav get_ pistol wav get_rpg wav get _rpgammo wav get_satchel wav get_shotgun wav get_tripmine wav 411 B Sonstiges health_critical wav health_ dropping wav health_ dropping2 wav heat_damage wav hev critical fail wav hev_damage wav hev_general_fail wav hev_logon wav hev_ shutdown wav hiss wav hours wav immediately wav innsuficient medical wav internal_ bleeding wav major_fracture wav major_lacerations wav medical_repaired wav meters wav minor _ fracture wav minor lacerations wav minutes wav morphine_shot wav munitionview_on wav near death wav nine wav nineteen wav ninety wav north wav one wav onehundred wav online wav pain_block wav percent wav pm wav position wav power _below wav power _level_is wav power _restored wav powerarmor _on wav powermove _on wav powermove_overload wav radiation_detected wav range wav remaining wav safe_day wav seconds wav seek_medic wav seven wav seventeen wav seventy wav shock_damage wav six wav sixteen wav sixty wav south wav targetting_system wav ten wav thirteen wav thirty wav three wav time is now wav time_remaining wav torniquette_ applied wav twelve wav twenty wav twentyfive wav two wav vitalsigns _on wav voice _off wav voice _on wav warning wav weapon_ pickup wav weaponselect_on wav west wav wound_ sterilized wa
38. iChar Typ Integer 0 256 Die Funktion ermittelt die Position des ersten Vorkommens des Zeichens iChar im String sSource von rechts beginnend F r das Zeichen muss die ASCII Nummer ange geben werden Vereinfacht kann auch das entsprechende Zeichen in einfache Anf hrungs zeichen gesetzt werden Die Funktion liefert 1 zur ck falls das Zeichen nicht gefunden wurde Die Funktion ist ein Alias f r strrchr Beispiel new sTest MAX_TEXT_LENGTH strcpy sTest Dies ist ein Test MAX_TEXT_LENGTH new iTest 0 iTest rindex sTest Es wird zun chst Dies ist ein Test in die Variable sTest geschrieben strepy Nun wird von rechts nach dem ersten Auftreten eines Leerzeichens gesucht Leerzeichen gibt es an den Positionen 4 8 und 12 Dem entsprechend wird an iTest 12 bergeben Geh rt zu string inc Siehe auch index strchr strrchr 323 648 649 650 651 652 653 654 8 Scripting 8 10 147 say say sMessagel sMessage Typ String 100 Die Funktion gibt einen vorgegebenen Text sMessage im Chat aus Beispiel aus plugin_CS Funktion HandleKickVote new Ratio getvar kick_ratio if VoteCount gt Ratio UserCount 100 if g_AbortVote say Kick vote was aborted by an admin else set_timer KickUser 10 1 VoteUser Die Servervariable kick _ratio wird als Ganzzahl in Ratio ausgelesen Falls gen gend Stimmen fiir den Kick zusammengekommen sind w
39. ig ohne Farbangabe wird es in hellgrau dargestellt M gliche Farben sind red blue green white yellow purple und random Zufall Einen Zeilenumbruch bekommt man durch Eingabe von n Beispiel admin _tsay red Vorsicht Bissiger Admin Der Admin deutet in leuchtenden Lettern an dass mit ihm nicht zu spa en ist Access Level 64 Geh rt zu plugin_ base Siehe auch admin chat admin _csay admin dmesg admin _psay admin _ say admin_ssay admin _vsay 111 5 Standardplugins und Befehle 5 3 30 admin _unban admin unban lt ID IP gt Mit diesem Befehl wird der Ban gegen eine bestimmte Spieler ID oder IP aufgehoben Selbstverst ndlich muss der Spieler daf r nicht auf dem Server sein Beispiele admin _unban STEAM_0 1 234567 admin _unban 81 56 23 12 Im ersten Beispiel wird die Steam ID STEAM _0 1 234567 entbannt w hrend im zwei ten Beispiel die IP 81 56 23 12 entbannt wird Access Level 256 Geh rt zu plugin_base Siehe auch admin_ban admin_banip 5 3 31 admin_unpause admin_unpause Dieser Befehl ist nicht mit dem Aufheben der Serverpausierung zu verwechseln Es wird lediglich den Spielern nicht mehr erlaubt das Spiel ber den Clientbefehl pause anzu halten Exkurs Es wird die Servervariable pausable auf 0 gesetzt Zur cksetzen kann man dies mit dem Befehl admin pause Beispiel admin _unpause Verbietet ALLEN
40. nnen Befehle beim Client ausf hren wenn diese Variable auf 1 gesetzt wird Standard 0 Zum Schutz des Clients sind nicht alle Befehle ausf hrbar Au erdem wird beim Einloggen eine Nachricht angegeben dass das Ausf hren von Befehlen auf diesem Server erlaubt ist Diese Meldung l sst sich weder entfernen noch editieren Sie dient der Information des Clients dass theoretisch die M glichkeit eines b swilligen Eingriffs seitens eines Admins oder Plugins besteht Leider gibt es immer noch genug Admins die ihre Aktionen nicht reflektieren Dabei bietet Admin Mod doch so viele andere M glichkeiten der Bestrafung Beispiel allow_client_exec 1 Viele Plugins funktionieren ohne die Aktivierung dieser Funktion nicht Es empfiehlt sich daher diese Einstellung auf 1 zu setzen Siehe auch file_access_read file_access_ write 4 1 27 ami_sv_maxplayers ami_sv_maxplayers lt gt Gibt die urspr ngliche Maxplayereinstellung zur ck Diese Variable sollte nicht manuell gesetzt werden hat nur informativen Charakter f r Serverbrowser Sie dient Serverbrow sern zum erkennen wieviele Slots f r die Admins reserviert sind Siehe auch amv_hide_reserved_slots public_slots_ free reserve_slots reserve_type 28 4 1 Admin Mod einrichten adminmod cfg 4 1 28 amv_anti_cheat_options amv_anti_cheat_options lt string gt Admin Mod gibt M glichkeiten an die Hand zwei bestimmte Cheats zu erkennen und Gegenma nahmen zu er
41. random 9 return PLUGIN_HANDLED new_set_vaultnumdata sEntry iContent new sContent MAX_DATA_LENGTH snprintf sContent MAX_DATA_LENGTH d iContent set_vaultdata sEntry sContent return PLUGIN_CONTINUE public plugin_init plugin_registerinfo Testplugin Ein Testplugin 1 0 plugin_registercmd admin_write write_entry ACCESS_ALL Schreibe Eintrag 185 8 Scripting 21 return PLUGIN_CONTINUE 22 gt Auch in diesem Beispiel muss wieder ein Befehl registriert werden Zeile 20 Um den Quellcode transparenter zu machen wurde der Nachbau der Funktion set__vaultnumdata in eine interne Funktion ausgelagert 11 new_set_vaultnumdata sEntry iContent 12 new sContent MAX_DATA_LENGTH 13 snprintf sContent MAX_DATA_LENGTH d iContent 14 set_vaultdata sEntry sContent 15 return PLUGIN_CONTINUE 16 gt Die neue Funktion erwartet einen String sEntry und eine Zahl Content als Eingabe Die Zahl iContent wird ber die Funktion snprintf in einen String umgewandelt Man kann selbstverst ndlich auch numtostr verwenden Anschlie end wird mit set vaultdata der Variablenname sEntry und sein Wert sContent in die vault ini geschrieben Pro forma wurde ein PLUGIN_CONTINUE als R ckgabewert angegeben Es ist zu beachten dass die Funktion nicht ffentlich ist Sie hat kein public vorange stellt Dies ist nicht notwendig da sie ein integraler Bestandteil des Plugins ist
42. und nur von diesem selbst aufgerufen wird Die neue Funktion new_set_vaultnumdata wird aus write _entry aufgerufen 6 public write_entry HLCommand HLData HLUserName UserIndex 7 new_set_vaultnumdata TEST_ENTRY random 9 8 return PLUGIN_HANDLED 9 Als Eintrag wurde TEST_ENTRY verwendet und eine weitere Funktion random direkt eingebunden die eine Zahl zwischen 0 und 9 ausgibt Die direkte Einbindung funktioniert bei allen Funktionen Da Small aber nur Zahlen als direkten R ckgabe wert verwendet k nnen auf diese Art keine Strings eingebunden werden Strings die bergeben wurden sind jedoch automatisch referenziert d h nderungen in der Child Funktion werden automatisch an die Parent Funktion weitergeleitet Bei Zahlen muss ein kaufm nnisches Und voranstellt werden new_set_vaultnumdata sEntry amp iContent 8 8 8 LogD verwenden In diesem Abschnitt soll beschrieben werden wie die Admin Mod Events durch weitere erg nzt werden k nnen Dazu ist das Metamod Plugin LogD notwendig Dieses Plugin erkennt Damages in Counter Strike und schreibt sie in den Chat 1 include lt core gt 186 OONDOKEWNW 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 29 30 31 32 33 34 35 8 8 Tutorial include lt string gt include lt admin gt include lt adminlib gt define ACCESS_CONSOLE 131072 define MNL 33 public damages HLComma
43. zwischen zwei Votes bzw nach einem Mapchange verstrichen sein m ssen damit ein neuer Vote erstellt werden kann Setzt man den Wert auf 0 wird Voten komplett abgeschaltet Es ist zu beachten dass der Wert beim ndern erst nach dem n chsten Vote aktiv wird Standard 180 Beim Plugin hldsld_ mapvote ist eine andere Variable zu setzen admin_vote_ freq Beispiel vote_freq 300 Stellt die Zeit die zwischen zwei Votes zu verstreichen hat auf 5 Minuten Siehe auch admin vote _autostart admin _vote _echo admin _vote_freq admin_vote_maxextend admin_vote_ratio amv_vote_duration kick ratio map_ ratio admin_vote_kick admin_vote_map admin_ vsay 4 1 87 words_file words_file lt string gt Die Variable definiert den Ort an dem die Datei mit den zu zensierenden W rtern zu finden ist in der Regel addons adminmod config wordlist txt Beispiel words file wordlist txt Mit dieser Einstellung erwartet Admin Mod die wordlist txt im Mod Verzeichnis Siehe auch admin plugin file admin vault_ file ips_ file maps_ file models file mysql_dbtable_ users nicks_ kick msg pgsql_dbtable_users users_ file 99 4 Konfiguration 4 2 Plugins installieren plugin ini Einer der Gr nde f r die Beliebtheit von Adminmod ist sicherlich das Pluginsystem Ei nige Plugins die die Standardfunktionen beinhalten werden bereits mit der Admin Mod Distribution geliefert Standardm ig erwartet Admin Mod die Plu
44. 1 5 und CS 1 6 unterscheidet m ssen einige Funktionen f r beide Versionen funktional bleiben Mittels Verzweigungen auf Basis des Versionschecks kann diese Problematik bequem umschifft werden Geh rt zu admin inc Siehe auch nextmap 214 8 10 Funktionsreferenz 8 10 19 deletefile deletefile sFilename sFilename Typ String 200 L scht die Datei sFilename wenn sie existiert Relative Pfade vom Modverzeichnis aus sind erlaubt Es muss file_access_ write auf 1 gesetzt sein damit die Funktion wirksam wird Es ist nur m glich Dateien im Modverzeichnis oder darunter zu schreiben und zu l schen Beispiel aus plugin_bk_res Funktion admin_ res refresh 184 if fileexists sMap 185 deletefile sMap 186 Zun chst wird berpr ft ob die Datei sMap berhaupt existiert Erst bei einer posi tiven berpr fung wird sie gel scht Geh rt zu admin inc Siehe auch fileexists filesize readfile resetfile writefile 5http www adminmod de plugins php plugin plugin_bk_res 215 8 Scripting 8 10 20 deleteproperty deleteproperty id 0 const name value cellmin id 0 Typ Integer 2147483648 2147483647 const name Typ String variabel value cellmin Typ Integer 2147483648 2147483647 Mit dieser Funktion kann eine so genannte Property bei gegebenem Schl ssel gel scht werden Es handelt sich dabei um eine Funktion deren Benutzung unter Admin Mod vermieden werd
45. 1 schaltet den preload ein Au erdem ist die Einstellung 0 notwendig um die Variablen mysql_tags sql und mysql_users_ sql zu nutzen Beispiel mysql_preload 1 Diese Einstellung aktiviert das Laden der User in den Speicher beim Serverstart und beim Mapwechsel wie users ini Sie deaktiviert mysql_tags_sql und mysql_users_ sql Siehe auch mysql database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_ plugins mysql _dbtable_tags mysql_dbtable_ users mysql_dbtable_ words mysql_host mysql_pass mysql_tags sql mysql user mysql_users_sql 4 1 59 mysql_tags_sql nur MySQL Version mysql_tags_sql lt string gt Admin Mod l sst es dem Benutzer frei den SQL Befehl beim Zugriff auf die tags Tabelle der MySQL Datenbank nach eigenem Wunsch zu ver ndern z B zur Implementierung in eine Forumssoftware Standard SELECT pass access FROM s WHERE s REGEXP nick OR nick s Beispiel mysql_tags_sql SELECT password access FROM s WHERE tag REGEXP s OR tag 28 Der Ausdruck muss stets drei s enthalten Diese werden in der Reihenfolge Tags Table mysql_dbtable_ tags Username und STEAM_ID gef llt mysql preload muss auf 0 gesetzt sein um diese Variable zu nutzen Siehe auch mysql database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_ plugins mysql_dbtable_tags mysql_dbtable_users mysql_dbtable_ words mysql_host mysql_ pass mysql_ preload mysql_user mysql_users_ sql
46. 10 in ten oder 3 in three Diese k nnen von den Soundtypen vox m nnliche Stimme und fvox weibliche Stimme wiedergegeben werden Da hier die weibliche Stimme ben tigt wird stellt man fvox dem Satz voran Durch das Einbetten der Minuten und Sekunden kann der Satz Text beim Spieler User ausgegeben werden Es k nnen nur W rter verwendet werden die f r den jeweiligen Soundtyp vorhanden sind Geh rt zu admin inc Siehe auch playsound Shttp www adminmod de plugins php plugin plugin_sdal_time_manager 341 8 Scripting 8 10 163 strbreak strbreak str first second maxlen flen sizeof first slen sizeof second str Typ String 200 first Typ String 200 second Typ String 200 maxlen Typ Integer 1 200 flen sizeof first Typ Integer 1 200 slen sizeof second Typ Integer 1 200 Diese Funktion teilt einen gegebenen String str mit der Lange maxlen beim ersten Leerzeichen in zwei Teile first und second Die L ngen der zwei Teile sind optional und im Allgemeinen nicht notwendig zu definieren Es gibt allerdings mittlerweile bessere Funktionen strsep und strsplit die das Gleiche und noch mehr k nnen Beispiel aus plugin base Funktion admin ban 57 convert_string HLCommand Command MAX_COMMAND_LENGTH convert_string HLData Data MAX_DATA_LENGTH convert_string HLUserName User MAX_NAME_LENGTH strbreak Data ban_user strTime MAX_DATA_LENGTH
47. 5 Sekunden nach Abschluss des Votes neu gestartet Access Level 1 Geh rt zu plugin_ CS Siehe auch admin restart admin _restartround map_ ratio 139 5 Standardplugins und Befehle 5 6 31 admin _winlimit admin winlimit Anzahl Dieser Befehl ver ndert die Servervariable mp__winlimit Wenn eines der Teams die gesetzte Anzahl an Runden gewinnt wird die Map gewechselt Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin winlimit 30 admin winlimit 0 admin winlimit Im ersten Beispiel wird die Anzahl der gewonnenen Runden bis zum Mapwechsel auf 30 gesetzt w hrend im zweiten die Funktion abgeschaltet wird Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 5 7 plugin_fun Das Fun Plugin bringt eigentlich nur einige recht sinnfreie Funktionen mit sich Grund s tzlich muss man dieses Plugin nicht mitladen lassen Die Glow Funktion k nnen alle Spieler benutzen sobald der Fun Mode aktiviert wurde Dies ist meist nicht im Interesse des Admins Au erdem beinhaltet das Plugin ein Faster Egg das ggf auch nerven kann Interessant hingegen k nnte h chstens admin _ fun sein um die Glow und Discofunktion tempor r abzuschalten Im Zweifel einfach das Plugin auskommentieren 140 5 7 plugin fun 5 7 1 admin_disco admin_disco Der Befehl schaltet den Discomodus ein bzw auc
48. 8 10 188 strsplit strsplit sSource sDelimiters sSource Typ String 200 sDelimiters Typ String 200 variable Anzahl an Argumenten und Stringlangen kommagetrennt Diese Funktion trennt einen String sSource an im String sDelimitiers angegebenen Zeichen Werden nicht ausreichend Argumente f r die Aufnahme der Teilstrings angegeben wird der Rest verworfen Die Funktion gibt zur ck wieviele Teilstrings gefunden wurden bzw 1 wenn kein Teil string gefunden wurde Beispiel aus plugin_bk_cron Funktion admin_cron_ refresh 229 strsplit timevar j szaehler 3 snenner 3 230 zaehler strtonum szaehler 231 nenner strtonum snenner Der String timevar j wird ber den Slash als Trennzeichen in zwei Strings L nge jeweils 3 szaehler und snenner aufgeteilt Beide Strings werden in Ganzzahlen umgewandelt strtonum Geh rt zu string inc Siehe auch strgsep strgsplit strgtok strgtokrest strsep strtok strtokrest Snttp www adminmod de plugins php plugin plugin_bk_cron 366 8 10 Funktionsreferenz 8 10 189 strspn strspn sSource sSearch sSource Typ String 200 sSearch Typ String 200 Die Funktion sucht Zeichen aus einem String sSearch in einem anderen String sSour ce Sie gibt die Lange des Teilstrings zurtick der von links beginnend nur Zeichen aus sSearch besitzt Da Strings Felder sind ist die Lange gleichzeitig die Position des erste
49. Angabe in der models ini handelt es sich dabei bei nick um den Modelnamen und bei pass um das Passwort adminmod gt CREATE TABLE models nick VARCHAR 20 PRIMARY KEY NOT NULL pass VARCHAR 64 NOT NULL Der Tabellenname muss in der adminmod cfg unter pesql_dbtable_ models angegeben werden Es ist daher auch m glich einen anderen Namen f r die Models Tabelle zu w hlen 4 11 5 Ips Tabelle Die Ips Tabelle wird als Ersatz f r ips ini eingerichtet Sie besteht nur aus der Spalte ip Eintr ge in diese Tabelle sind identisch zur ips ini adminmod gt CREATE TABLE ips ip VARCHAR 22 NOT NULL Der Tabellenname muss in der adminmod cfg unter pgsql_dbtable_ips angegeben wer den Es ist daher auch m glich einen anderen Namen f r die Ips Tabelle zu w hlen 4 11 6 Words Tabelle Die Words Tabelle wird als Ersatz f r wordlist txt eingerichtet Sie besteht nur aus der Spalte word Eintr ge in diese Tabelle sind identisch zur wordlist txt adminmod gt CREATE TABLE words word VARCHAR 30 NOT NULL Der Tabellenname muss in der adminmod cfg unter pgsql_dbtable_words angegeben werden Es ist daher auch m glich einen anderen Namen f r die Words Tabelle zu w h len 4 11 7 Plugins Tabelle Die Plugins Tabelle wird als Ersatz f r plugin ini eingerichtet Sie besteht nur aus der Spalte plugin Eintr ge in diese Tabelle sind identisch zur plugin ini adminmod gt CREATE TABLE plugins plugin
50. Der zweite zeigt die ersten 10 Eintr ge die maps im Befehl oder ihrem Hilfetext beinhalten Access Level 0 Geh rt zu kein Plugin 5 1 5 admin_login admin login lt Passwort gt Mit diesem Befehl kann man sich auf dem Server als Admin anmelden Es ist lediglich das Passwort aus der users ini anzugeben Diese Methode funktioniert nur solange man die Namenreservierung nicht zum Accesslevel hinzugef gt wurde Anderenfalls wird man gekickt bevor man den Befehl eintippen kann Hier muss man auf die automatische Anmeldung zur ckgreifen Kapitel 4 4 2 Beispiel admin _login 37skcF12p Sollte das Passwort 37skcF12p zu der Spieler ID oder dem Spielername des Users geh ren weist Admin Mod ihm die entsprechenden Rechte zu Access Level 0 Geh rt zu kein Plugin Siehe auch admin password Namenreservierung users ini 92 5 1 Befehle unabh ngig von Plugins 5 1 6 admin_password admin _password lt Passwort gt Dieser Befehl ist ein Synonym f r admin_login Urspr nglich gab es nur admin_ pass word was jedoch zu h ufig mit admin _ pass Serverpasswort setzen verwechselt wurde Somit wurde admin_ login als Ersatz eingef hrt Der Befehl admin password existiert nur zur Abw rtskompatibilit t Beispiel admin password 37skcF12p Sollte das Passwort 37skcF12p zu der Spieler ID oder dem Spielername des Users geh ren weist Admin Mod ihm die entsprechenden Rechte zu Access Level 0 Geh rt z
51. ES 145 5 8 6 Say Mapvote 2 6 een 146 VIII Inhaltsverzeichnis 5 8 7 say rockthevote 2 ih sa sa a ehren 9 8 8 SV VOE ee ee ee ee a ee Dee oe eS 50 plugin message ed ne a AA A Be ll pl gin retribution ssas ss ea re Bess hir olol admin RY co a ea eek 5 102 admin sexecall Susan gen AS dida es Re wee BO y 5 10 3 admin execclient 0 000 00084 5 10 4 admin _execteam 0 0 00000000 ee OUR Admin BAe nos we ls eee wl eS eo ee Re ee 5106 admin llama one sun fe wom bd Bae doo ee Bae ee UO admin lan ecards ick od Bh eS e he gr SUE admin Say 2 4 ee bd eee A Be be 5 109 admin slayteam o se a s ee ed Be we Sw ee doe elt admin a se ae Bee ee BEES ASSES RRS 5 10 11 admin ngap ss es pozas po names Hee Ba Bes 5 10 12 admin unllama a aoa ee Ao a a a ew a a in 5 11 pluen SP ss e be hhh KSA ESD oe SEE oo EL EERE ES LS plana TPC pat fe nt a ca a A Rd BEE 5 121 admin balance o sost aoe bk ee eh hk ee Be 5 122 admin blue sace a aane er Ra ae an el E ers ee eek CO De Oe E 5124 admin premath sisi hadas aa 3195 aan Tel ire e am ee A a ae ee a G 5120 admin yelow s i ss ee ea ee ia AAA FAQ 6 1 admin restartround admin_ct oder admin_t funktionieren nicht 6 2 Admin Mod funktioniert nicht 2 22 2 mn nenn 6 3 Wo bekomme ich weitere Plugins her 6 4 Admin Mod Befehle funktionieren nicht z B in HLSW 6 6 Couldn t Ind Meta yer ss sse sn os He nr eriep eg 6 6 WARNIN
52. Fehler aber auch an einer g nzlich anderen Stelle oberhalb der gemeldeten liegen Es wird weiterhin angegeben ob es sich um einen Fehler oder nur eine Warnung handelt Bei Warnungen wird zwar der Compiliervorgang weitergefiihrt ob dieser aber auch feh lerfrei durchgef hrt wurde ist nicht garantiert Es gibt keinen Grund eine Warnung zu ignorieren Jedes saubere Plugin muss sich warnungsfrei compilieren lassen In eckigen Klammern ist die Fehler bzw Warnungsnummer gegeben an die sich die ausgeschrie bene Fehlermeldung anschlie t Die folgenden Meldungen wird man h ufiger finden Error 001 Die Meldung expected token but found identifier deutet darauf hin dass am Ende der vorhergehenden Zeile ein Semikolon vergessen wurde Error 010 Der Hinweis auf invalid function or declaration hat meistens den Grund dass man sich in der angegebenen Zeile vertippt hat Error 021 Die Meldung symbol already defined set _timer bedeutet dass man versucht eine bereits definierte Funktion neu zu definieren Error 029 Die Nachricht invalid expression assumed zero deutet auf ein Klammer setzungsproblem hin Error 039 Die Meldung argument type mismatch argument 1 bedeutet dass ei ner Funktion eine Variable mit falschem Datentyp bergeben wurde z B Integer statt String Als Hilfestellung wird auch angegeben bei welchem Argument dies geschehen ist Warning 209 Die Meldung
53. Ja ist die 1 Wenn Option 1 gewonnen hat gibt Admin Mod im Chat aus say dass sich die Mehrheit f r einen Restart entschieden hat Anschlie end wird die Variable sv_restart auf 1 gesetzt setstrvar was mit einem Restart nach einer Sekunde gleichzusetzen ist Gewinnt Option 2 wird dies ebenfalls den Spielern mitgeteilt aber keine weitere Aktion ausgef hrt Ein return ist hier nicht notwendig da Admin Mod beim Vote Event keine R ckgabe ben tigt 8 8 7 Vault File nutzen Variablen lassen sich bequem in Plugins speichern Die Inhalte gehen jedoch beim Map wechsel oder beim Abschalten des Servers verloren Einige der Standardplugins d rfen sich ber Servervariablen gl cklich sch tzen die f r sie von Admin Mod erstellt wurden Um auch anderen Programmierern die M glichkeit zu geben Einstellungen dauerhaft zu speichern wurde die vault ini geschaffen Mit einigen wenigen Befehlen lassen sich bequem Zahlen und Strings abspeichern Man sollte diese Funktionen allen Textdatei spielereien vorziehen Sie sind wesentlich schneller als die zum Lesen und Schreiben von Textdateien Das folgende Beispiel schreibt einen zuf lligen Wert zwischen 0 und 9 in einen Vault Eintrag Es wird dabei die Funktion set_ vaultnumdata nachgebaut include lt core gt include lt string gt include lt admin gt include lt adminlib gt public write_entry HLCommand HLData HLUserName UserIndex new_set_vaultnumdata TEST_ENTRY
54. Krane a 38 ATAG TOS Mle a ss ae ee ne Saw ae ee 39 4 1 47 models fle 2 2 2 Ho oo oe 39 4 1 48 models kick map sa se staa s ada ae ea 40 4 1 49 mysql_database nur MySQL Version 40 4 1 50 mysql_dbtable_ips nur MySQL Version 41 4 1 51 mysql_dbtable_ models nur MySQL Version 41 4 1 52 mysql_dbtable_plugins nur MySQL Version 42 4 1 53 mysql_dbtable_tags nur MySQL Version 42 4 1 54 mysql dbtable users nur MySQL Version 43 4 1 55 mysql_dbtable_words nur MySQL Version 43 4 1 56 mysql_host nur MySQL Version 44 4 1 57 mysql_pass nur MySQL Version 44 4 1 58 mysql preload nur MySQL Version 45 4 1 59 mysql_tags_sql nur MySQL Version 45 4 1 60 mysql user nur MySQL Version 2 2 22222 46 4 1 61 mysql_users_sql nur MySQL Version 46 41 62 wicks kick Wier e cios tn an et Dh ei eai 47 IV 4 2 4 3 4 4 4 5 Inhaltsverzeichnis A113 password feld n so be ak See de 47 4 1 64 pgsql database nur PostgreSQL Version 48 4 1 65 pesql_dbtable_ips nur PostgreSQL Version 48 4 1 66 pgsql_dbtable_models nur PostgreSQL Version 49 4 1 67 pesql_dbtable plugins nur PostgreSQL Version 49 4 1 68 pgsql_dbtable_tags nur PostgreSQL Version 50 4 1 69 pesql dbtable_users nur PostgreSQL Version 50 4 1 70
55. Mit jedem Mapwechsel wird die korrespondierende RES Datei verarbeitet Dazu muss sich die zugeh rige Datei im Verzeichnis befinden in dem sich die Map Datei befindet Beispiel Wird zur Map de_ dust gewechselt wird nach einer Datei namens de_ dust res im Maps Verzeichnis gesucht und diese dann sofern vorhanden verarbeitet Man muss nicht zu jeder Map im Maps Ordner des Servers eine korrespondierende RES Datei erstellen Es bietet sich jedoch an da einem Player der gerade den Server betritt in jedem Fall die Dateien bertragen werden Autor Biohazard Das Customplugin plugin bk res kann bei der Erstellung der Dateien helfen B 4 HL Sounds Einige Sounds sind bereits in Half Life vorhanden Sie sind nicht in echten Verzeichnissen vorhanden sondern werden aus den sogenannten PAK Dateien geladen Will man bei spielsweise Barney sprechen lassen kann man in der Serverconsole Folgendes eingeben speak barney somethingstinky Oder will man eine Frau sprechen lassen dass noch 15 Sekunden verbleiben speak fvox fifteen seconds remaining Die Verwendung mit Admin Mod kann mit dem Customplugin plugin_ speech verein facht werden Alle folgenden Sounds sind bereits beim Spieler vorhanden und m ssen nicht herunter geladen werden Thema Res Dateien Sie wurden von Kleen13 zusammengetragen http www adminmod de plugins php plugin plugin_bk_res 2http www adminmod de plugins php plugin plugin_speech 3kleen130 hotmail com
56. Sound untermalt Diese Aktion kann durch den Befehl admin _unbury r ckg ngig gemacht werden Bei spiel admin_bury Kriegsbeil In diesem Beispiel wird der Spieler Kriegsbeil vergraben Access Level 8192 Geh rt zu plugin_retribution Siehe auch admin unbury 5 10 2 admin_execall admin execall lt Befehl gt Der Befehl admin _execall f hrt bei allen Spielern den gew nschten Befehl aus Daf r muss auch allow _client_exec bzw bei Bots admin _bot__protection aktiviert worden sein Befehle werden zudem nicht an einen HLTV weitergeleitet Die Ausf hrung einiger Client Befehle wird von Admin Mod selber unterbunden um Spieler vor Amok laufenden Admins zu sch tzen Beispiel admin _execall cd eject Dies f hrt bei alle nicht gesch tzten Spielern die Lade des CD DVD Laufwerks aus Access Level 65536 Geh rt zu plugin_retribution Siehe auch admin execclient admin _execteam allow_ client_ exec 148 5 10 plugin retribution 5 10 3 admin_execclient admin execclient lt ID IP Name gt lt Befehl gt Der Befehl admin execclient f hrt beim angegebenen Spieler den gew nschten Befehl aus Es muss allow_client_ exec aktiviert bzw bei Bots admin_bot_ protection deakti viert worden sein Befehle werden zudem nicht an einen HLTV weitergeleitet Die Ausf hrung einiger Client Befehle wird von Admin Mod selber unterbunden um Spieler vor Amok laufenden Admins zu sch tzen Es kann sowohl die Steam
57. Spieler in andere Teams zu trans ferieren die Variable tfe_clanbattle_prematch zu ver ndern und es enth lt eine ru diment re Teambalancing Funktion 5 12 1 admin_balance admin balance lt 0 1 gt Mit diesem Befehl kann man das Teambalancing ein 1 und ausschalten 0 Beispiel admin balance 1 Hiermit wird das Teambalancing eingeschaltet Access Level 32 Geh rt zu plugin TFC 155 5 Standardplugins und Befehle 5 12 2 admin_blue admin blue lt ID IP Name gt Man kann mit diesem Befehl einen Spieler ins blaue Team verschieben Ist er nicht tot wird er bei dieser Aktion sterben Der Spieler kann entweder tiber seine ID IP den Namen oder einen eindeutigen Na mensteil erkannt werden Damit der Befehl funktioniert muss allow _client_ exec aktiviert worden sein Beispiele admin blue Blaues Veilchen admin_blue Big admin_blue STEAM_0 123456 admin _blue 23 156 43 12 Im ersten Beispiel wird der Spieler mit dem Namen Blaues Veilchen ins blaue Team verschoben Im n chsten Beispiel wird der Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ins blaue Team verschoben Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 8192 Geh rt zu plugin TFC Siehe auch admin green admin red admin _ yellow allow_client_ exec 5 12 3 admin_green admin green lt ID IP Name gt Man kann mi
58. Spielern das Pausieren des Spiels Access Level 8 Geh rt zu plugin _ base Siehe auch admin pause 112 5 3 plugin base 5 3 32 admin_userlist admin userlist Muster Dieser Befehl zeigt ein Liste aller Spieler auf dem Server in der Console an Wird ein Muster angebenen werden nur diejenigen Spieler angezeigt deren Name mit diesem Muster beginnt Als weitere Informationen werden neben dem Namen die Session ID die Steam ID der Accesslevel und die Immunit t angezeigt Beispiele admin userlist admin userlist N Im ersten Beispiel werden alle Spieler auf dem Server in der Console aufgelistet Im zweiten Beispiel hingegen werden nur die Spieler gezeigt die mit N im Namen beginnen Access Level 0 Geh rt zu plugin_ base 5 3 33 admin_vote_kick admin vote kick lt ID Namensteil IP gt Mit diesem Befehl wird ein Vote ausgel st bei dem die Mehrheit der Spieler entscheidet ob der benannte Spieler vom Server geworfen wird oder nicht Der Spieler kann entweder ber seine ID IP den Namen oder einen eindeutigen Namensteil erkannt werden Beispiele admin vote kick Idiot admin vote kick Ich bin ein Idiot Im ersten Beispiel wird ein Vote zum Spieler mit dem Namen Idiot durchgef hrt ob dieser vom Server geworfen wird Es kann sich auch um einen Teil des Namens handeln z B Ich bin ein Idiot Solange der Name mit Idiot eindeutig zuzuordnen ist wird Vote ausgef hrt Sind beispiel
59. String ben tigt nur ein Viertel des Speicherplatzes Unter Um st nden kann man ein wenig Speicher sparen Es rentiert sich aber nur wenn nicht gleichzeitig der gleiche String ungepackt definiert wird Au erdem sollte man in Admin Mod seine Plugins auf Geschwindigkeit nicht Speicher optimieren Speicher ist eigentlich nie ein Problem Beispiel new spTest 7 char strpack spTest Test123 Es wird ein Feld spTest fiir einen gepackten String von sieben Zeichen lange definiert Anschlie end wird Test123 gepackt und in spTest geschrieben Geh rt zu core inc Siehe auch strunpack 363 8 Scripting 8 10 186 strrchr strrchr sSource iChar sSource Typ String 200 iChar Typ Integer 0 256 Die Funktion ermittelt die Position des ersten Vorkommens des Zeichens iChar im String sSource von rechts beginnend F r das Zeichen muss die ASCII Nummer ange geben werden Vereinfacht kann auch das entsprechende Zeichen in einfache Anf hrungs zeichen gesetzt werden Die Funktion liefert 1 zur ck falls das Zeichen nicht gefunden wurde Die Funktion ist ein Alias f r rindex Beispiel aus plugin_rindy_chasecam Funktion plugin connect 46 convert_string HLIP UserIP MAX_IP_LENGTH 47 if strrchr UserIP 1 UserIP strrchr UserIP 0 Es wird zun chst der HL String HLIP in den Small String UserIP konvertiert Anschlie Bend wird berpr ft ob der Doppelpunkt in UserIP zu
60. Typ String 100 sValue Typ String 200 Die Funktion schreibt die Daten sValue mit dem Schliissel sKey in ein kleinen Speicherbereich Die Daten werden beim Mapwechsel nicht gel scht Der Speicher ist jedoch nur sehr gering bemessen so dass die Verwendung dieser Funktion vermieden werden sollte Beispiel aus plugin_bk_cron Funktion lag_ check 499 numtostr iTime sTime 500 set_serverinfo last_cron sTime Die Sekundenzahl der aktuellen Minute iTime wird in einen String sTime umge wandelt Anschlie end wird ein Schl ssel last _cron erstellt oder mit diesem String berschrieben Auf diese Art und Weise kann insbesondere berpr ft werden wie lang der letzte Durchlauf vor dem Mapwechsel her ist Beim Serverstart ist die Variable noch nicht gesetzt so dass 0 zur ckgegeben wird Die Nutzung der vault ini verbietet sich da der Wert beim Beenden bzw Absturz des Servers nicht automatisch auf 0 zur ckgesetzt wird Geh rt zu admin inc Siehe auch get_serverinfo get _userinfo nttp www adminmod de plugins php plugin plugin_bk_cron 329 648 649 650 651 652 653 654 8 Scripting 8 10 152 set_timer set_timer sFunction iWaitSeconds iRepeatCount sParameter sFunction Typ String 19 iWaitSeconds Typ Integer 0 2147483647 iRepeatCount Typ Integer 0 2147483647 sParameter Typ String 200 Mit dieser Funktion wird ein Timer erstellt Dabei muss
61. VARCHAR 100 NOT NULL Der Tabellenname muss in der adminmod cfg unter pgsql_dbtable_ plugins angegeben werden Es ist daher auch m glich einen anderen Namen f r die Plugins Tabelle zu w hlen 85 4 Konfiguration 4 11 8 Zugriff auf die Datenbank Nachdem die PostgreSQL Datenbank nun mit den Tabellen ausgestattet ist muss Admin Mod noch mitgeteilt bekommen wo und wie es diese erreichen kann Dazu m ssen in der adminmod cfg folgende Variablen gesetzt sein pgsql_host IP Adresse Datenbankrechner meist localhost pgsql_user Username zum Zugriff auf die Datenbank pesql_pass Passwort zum Zugriff auf die Datenbank pesql_port Port zum Zugriff auf die Datenbank 4 11 9 Au ergew hnliche Einstellungen Es gibt noch Einstellungen die nur sehr selten gebraucht werden die aber erw hnt werden sollten pgsql_ preload legt fest ob alle Spieler beim Mapwechsel in den Speicher von Admin Mod geladen werden Einstellung 1 oder aber bei jedem Spielerconnect eine Datenabank abfrage durchgef hrt wird Einstellung 0 Ersteres lohnt sich bei wenigen Spielern und oder nur wenigen nderungen in der Datenbank Letzteres ist die flexiblere L sung da nderungen in der Datenbank sofort beim n chsten Connect aktiv sind H ufige Da tenbankabfragen m ssen jedoch in Kauf genommen werden was ggf f r Verz gerungen im Spielverlauf Lags sorgen kann Dies ist aber eine sehr hypothetische Einschr nkung so dass man stets d
62. Variablennamen wird der Server vom Spielerconnect berpr fen Es ist zu beachten dass der Unterstrich zwingend vor den Variablennnamen zu schreiben ist Ansonsten wird der Server aus Sicherheitsgr nden nicht starten Der Eintrag sieht standardm ig folgenderma en aus password_field _pw home Shttp forum adminmod de info php go tools html 65 4 Konfiguration Der Hintergrund f r die zwingend vorgeschriebene Nutzung des Unterstriches ergibt sich aus einem Exploit mit dem jeder Admin das Passwort eines Users auslesen kann W hrend die ber setinfo gesetzten userspezifischen Variablen ohne den Unterstrich mit der Serverfunktion condump ausgelesen werden k nnen ist dies beim vorangestellten Unterstrich nicht der Fall Falls man also trotz mehrfacher Warnung das Passwort doch in der config cfg oder autoexec cfg setzt kann ein b swilliger Admin eines anderen Servers nicht an die Variable herankommen Fortgeschrittene Methoden und Einstellungen in der adminmod cfg default _ access admin highlander amv__private_server reserve_ slots reserve_ slots msg reserve_type use_ regex 4 4 2 Clientseitige Einstellungen Im Kapitel 4 4 1 wurde beschrieben wie dem Server das Wissen vermittelt wird wer Admin ist und wer nicht Es k nnte aber jeder mit dem passenden Namen ID oder IP kommen und behaupten er sie w re Admin Admin Mod berpr ft sofern in der users ini angegeben daher zus tzlich das Passwort Es gibt d
63. Version pgsgql_tags_sql lt string gt Admin Mod lasst es dem Benutzer frei den SQL Befehl beim Zugriff auf die tags Tabelle der PostgreSQL Datenbank nach eigenem Wunsch zu ver ndern z B zur Implementie rung in eine Forumssoftware Standard SELECT pass access FROM s WHERE s REGEXP nick OR nick s Beispiel pgsql_tags_sql SELECT password access FROM s WHERE tag REGEXP s OR tag 5 2 8 Der Ausdruck muss stets drei s enthalten Diese werden in der Reihenfolge Tags Table pgsql_dbtable_ tags Username und STEAM_ID gef llt pgsql preload muss auf 0 gesetzt sein um diese Variable zu nutzen Siehe auch pgsql_database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pgsql_dbtable_tags pgsql_dbtable_users pgsql_dbtable_ words pgsql_ host pgsql pass pgsql_ port pgsql_ preload pgsql user pgsql_users_sql 53 4 Konfiguration 4 1 76 pgsql_user nur PostgreSQL Version pgsql_user lt string gt Definiert den Loginnamen fiir die PostgreSQL Datenbank Beispiel pgsql_user adminmodadmin Der Username fiir den Zugriff auf die PostgreSQL Datenbank ist auf adminmodadmin gesetzt Siehe auch pgsql_ database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pesql_dbtable_tags pgsql_dbtable_users pgsql_dbtable_words pgsql_host pgsql_ pass pgsql_ port pgsql_preload pgsql_tags_sql pgsql_users_sql 4 1 77 pgsql_users_sql nur Postgre
64. a ar A A 129 5 5 16 admin kickpercent au 4 22 du a aan nah 130 5 6 17 admin limitteamis cose 2 da u Don an eee doe eee 130 56 18 admin maxrounds 224 2 aee p a e 44 2204 24 2 fu 131 5 6 19 admin mapvoteratio 2 6 566 ra ra ea RES 131 5 6 20 admi played s a dae ek oR EERE ER eH 132 5 6 21 admin restart 6 soi a e pa ee a e ee e k i 132 5 6 22 admin restartround s os s ia sa g e ioe wa ani aa a a ea 133 5 6 23 Admin Testrict s ora eea doh ere e Gee a ee ee 133 5 6 24 admin_restrictmenu 0 2 0 0 0 00048 136 5 6 25 admin roundtime 0 0 0084 136 5020 admin startmMon y lt esa io A A 137 DOT AI e aca e ea A a e 137 9 00 28 admin TIN wi ej 2 ok a A ee 138 50 29 admin unrestrieh ss rer esios a a 138 5 6 30 admin vot restart ace e sa s s sma s ea sa pir a RS 139 5 0 31 admin winlmit ses 64 ens ine 140 Dr pugn MN eros he Kee BEBE Be Sr are 140 Otel adman MISCO ses eeen an an BP see Ah we 141 wie Al UTE es a tse ok She o o ae ae Beto ay go Sane Ga ea 141 Ds fed admin Plow s 2 2 424 2 4 EEE EE EEE EER EE EEX 142 5 7 4 o ook eS eee ee EN 142 58 plugin hldsld mapvot lt o sacs ace ra a a 4 64 6 oe RED RAR GAS 143 5 8 1 aci eancelvwote coimas BS Rae Der Ge a 143 5 8 2 admin denymap 22444 edda ioe n T aen e E 144 5 8 3 admin Slartvote ustedes eisen a a Ea 144 5 8 4 say cancelvote ce oo kee oe eRe ee ERE a a RED 145 5 8 5 say denymap do ke Bw a kee RA n er o Oe RES Oe
65. admin _noclip admin red admin _removespawn admin spawn admin stack admin _ teleport admin unbury admin unllama admin _userorigin admin_ yellow 16384 Nickreservierung 32768 Slotreservierung 65536 admin _execall admin execclient admin execteam admin rcon 70 4 4 Administratoren einrichten users ini darf ausschlie lich vom in der users ini angegebenen Spieler mit dem passenden Passwort verwendet werden 32768 2 Man erh lt einen exklusiven Zugang zum Server selbst wenn dieser voll ist Stichwort reserve_ type reserve_ slots Es ist zu beachten dass Admin Mod nicht zaubern kann um auf den Server zu kommen ist immer noch ein freier Slot notwendig Half Life f ngt bei vollem Server den Connectenden schon ab bevor Admin Mod eingreifen kann Erst mit diesen drei gesonderten Leveln ergibt sich die h ufig zu findende Empfehlung 131071 die aber meist gar nicht notwendig ist und oftmals mehr Probleme bereitet als hilft 16 X xi 2 131071 i 0 4 4 4 Serverplatze reservieren Wer kennt das nicht Man m chte auf dem eigenen Server spielen der aber voll ist Dem Admin sollten besondere Rechte zugesprochen werden dass er auch auf einen vollen Server connecten kann Dazu wurden in Admin Mod die reservierten Pl tze oder auch Slots eingef hrt Um diese Funktion zu nutzen ist etwas Vorarbeit zu leisten Zun chst muss den Ad mins die einen reservierten Slot nutze
66. auf dem Ser ver Beispiel admin_cfg server cfg In diesem Beispiel wird die server cfg ausgef hrt so dass alle Einstellungen aus dieser aktiv werden Access Level 512 Geh rt zu plugin _ base Siehe auch admin _cfg 5 3 5 admin_chat admin chat lt Text gt Mittels dieses Befehls kann ein Admin allen anderen Admins gleichzeitig Nachrichten bermitteln ohne dass ein normaler Spieler dies mitbekommt Berechtigte Admins zum Absenden und Empfangen von Nachrichten sind alle Admins die das Recht 64 besitzen Beispiel admin _chat Der Spieler CatchMe ist vermutlich ein Cheater Hier meldet ein Admin den anderen dass er einen Spieler CatchMe als Cheater in Verdacht hat ohne dass die anderen normalen Spieler dies mitbekommen Access Level 64 Geh rt zu plugin_ base Siehe auch admin _csay admin dmesg admin _psay admin _say admin _ssay admin _tsay admin _vsay 98 5 3 plugin base 5 3 6 admin_csay admin_csay Farbe lt Text gt Dieser Befehl schreibt den gew nschten Text mittig in den Bildschirm aller Spieler Stan dardm ig ohne Farbangabe wird es in gr n dargestellt M gliche Farben sind red blue green white yellow purple und random Zufall Einen Zeilenum bruch bekommt man durch Eingabe von n Beispiel admin_csay red Vorsicht Bissiger Admin Der Admin deutet in leuchtenden Lettern an dass mit ihm nicht zu spa en ist Acc
67. 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 lt event gt 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 Psychostats 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 3http www psyc
68. cfg 4 1 62 nicks_kick _msg nicks_kick_msg lt string gt Man legt hier fest welche Meldung der Client bekommt wenn er gegen die Namensre servierung verst t Standard ADMIN That name is reserved on this server Beispiel nicks_kick_msg Du kommst hier ned rein Nickname Der Spieler wird darauf hingewiesen dass er auf Grund seines Namens gekickt wurde Siehe auch admin _ reject_msg amv_prvt_kick_ message models kick msg reserve_slots_msg users_ file 4 1 63 password_field password_field lt string gt Ein wichtige Variable damit sich die Spieler als Admin anmelden k nnen Hiermit legt man fest unter welchem Variablennamen Admin Mod vom Spieler das Passwort erwar tet Standard _pw home Beispiel password_field _ichwillrein Dann lautet die setinfo Zeile beim Client in etwa so setinfo ichwillrein binichschondrin Es ist zu beachten dass das Passwortfeld aus Sicherheitsgr nden stets mit einem Unterstrich beginnt Anderenfalls wird Admin Mod den Server nicht starten lassen Siehe auch mysql_dbtable_users users_ file 47 4 Konfiguration 4 1 64 pgsql_database nur PostgreSQL Version pgsql_database lt string gt Definiert die Datenbank auf dem PostgreSQL Server in der sich die Konfigurationsdaten von Admin Mod befinden Beispiel pgsql_database adminmod In diesem Fall sucht Admin Mod die Informationen in der Datenbank adminmod Siehe auch
69. ckgeben Der Beginn und das Ende von Verzweigun gen Schleifen usw wird durch geschweifte Klammern kenntlich gemacht Funktionen m ssen durch ein Semikolon abgeschlossen werden Includes und Deklarationen werden mittels Hashes kenntlich gemacht Au erdem ist zu beachten dass Small Gro und Kleinschreibung unterscheidet 8 2 Datentypen Variablen und Konstanten Small wird als typenlose Programmiersprache bezeichnet Der einzige direkt unter st tzte Datentyp ist 32 bit signed Integer 2147483648 bis 2147483647 Variablen werden in der Regel ber die new Anweisung deklariert Man kann sie glo bal definieren wenn sie im Skript au erhalb der Funktionen deklariert werden oder lokal innerhalb ein Funktion new iZahl1 new iZahl2 1 Man kann die Variable ohne Zuweisung erstellen und diese im Code nachholen oder wie im zweiten Beispiel gezeigt direkt zuweisen Lokale Variablen gelten nur f r die Funktion in der sie erstellt wurden und werden nach Abschluss der Ausf hrung selbiger wieder gel scht Daher findet man hin und wieder auch statt new static bei der Deklarierung da hier der Variableninhalt erhalten bleibt Eine andere M glichkeit den Variableninhalt zu behalten und ihn zudem allen Funktionen gleichzeitig zur Verf gung zu stellen besteht in der Definition globaler Va riablen Dabei muss die Variable au erhalb der Funktionen definiert werden Meist findet man diese am Kopf
70. damit festlegen wie lange nach dem Ende der Map noch gechattet werden kann bevor die neue Map geladen wird bliche Werte sind 5 Sekunden oder 10 Sekunden Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin_chattime 5 admin_chattime 10 admin chattime Im ersten Beispiel wird die Chatzeit am Ende der Map auf 5 Sekunden im zweiten auf 10 Sekunden gesetzt Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 124 5 6 plugin CS 5 6 6 admin_consistency admin _consistency 0 1 Dieser Befehl setzt die Servervariable mp__consistency Man legt damit fest ob der Ser ver spielerspezifische Texturen und Models ablehnen soll Mit 1 wird die berpr fung aktiviert mit 0 deaktiviert Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _consistency 1 admin _consistency 0 admin _consistency Im ersten Beispiel wird die Ablehnung von Custommaterial aktiviert im zweiten deak tiviert Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin_ CS 5 6 7 admin_ct admin_ct lt Spieler gt Man kann mit diesem Befehl einen Spieler ins Counter Terroristen CT Team verschie ben Ist er nicht tot wird er bei dieser Aktion sterben Der Spieler kann entweder ber seine ID
71. den letzten beiden Beispielen Access Level 2048 Geh rt zu plugin_retribution Siehe auch admin_ungag admin_gag_name admin_gag_sayteam allow_ client_ exec 150 5 10 plugin retribution 5 10 6 admin_llama admin llama lt ID IP Name gt Mit diesem Befehl kann man einen Spieler zum Lama erkl ren Er wird auch in Lla ma umbenannt Alle seine Chatnachrichten werden durch Ooorgle Bleeeat oder Brawwrr ersetzt Der Voicechat ist davon nicht betroffen Um den Befehl ausf hren zu k nnen muss allow _client_exec aktiviert werden Es kann sowohl die Steam ID eine IP oder ein Name angegeben werden Beim Namen gen gt auch ein eindeutiger Teil des Namens Diese Aktion kann durch den Befehl admin unllama r ckg ngig gemacht werden Beispiel admin _ llama Kindergeburtstag admin llama Big admin _llama STEAM_0 123456 admin _llama 23 156 43 12 Im ersten Beispiel wird der Spieler Kindergeburtstag in Llama umbenannt und gibt bei jeder seiner Chatnachrichten Unverst ndliches von sich Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 8192 Geh rt zu plugin_retribution Siehe auch admin_unllama allow__client _exec 5 10 7 admin_slap admin slap lt ID IP Name gt Mit di
72. denen die TK Dateien bereinigt werden TD Einstellungen admin_ffmon td on off TD Bestrafung ein aus admin_ffmon tdlimit lt Wert gt Default 5 Limit bei dem eine Bestrafung erfolgt admin ffmon tdaction slay kick ban bury chicken Default slay Bestrafungs art einstellen Einstellungen zum Rundenstart admin_ffmon rs lt Wert gt Default 10 Rundenstartzeit in Sekunden mit verscharfter Bestrafung admin_ffmon rsbantk on off Default on Bannen in der Rundenstartzeit ein aus schalten 398 A 2 plugin logd ffmon admin_ffmon rsbantktime lt Wert gt Default 300 Bannzeit in Minuten bei TK in der Rundenstartzeit admin_ffmon rstdslap on off Default on TD Bestrafung Slap ein ausschalten admin_ffmon rstdslapcount lt Wert gt Default 5 Anzahl der Slaps bei TD in der Rundenanfangszeit admin ffmon rstdaction none slay kick ban chicken Default ban Art der Be strafung bei berschreitung des TD Limits in der Rundenstartzeit admin_ffmon rstdcount lt Wert gt Default 3 Festlegen des TD Limits w hrend der Rundenstartzeit admin _ffmon rstdbantime lt Wert gt Default 2 Bannzeit in Minuten bei Erreichen des TD Limits in der Rundenstartzeit admin _ffmon ss on off Default off ein ausschalten der Sofortschussregistrierung admin _ffmon sstime lt Wert gt Default 2 Dauer in Sekunden der Sofortschussregis trierung am Rundenanfang admin ffmon ssaction none slay kick ban bury Def
73. der Map beim Spieler anzeigt Geh rt zu adminlib inc Siehe auch execclient http www adminmod de plugins php plugin plugin_cw_creator 221 243 244 245 246 247 8 Scripting 8 10 26 execute_command execute_command sUser sCommand sHalfLifeCmd sData sUser Typ String 33 sCommand Typ String 30 sHalfLifeCmd Typ String 30 sData Typ String 200 F hrt einen Befehl auf dem Server aus und gibt zus tzlich eine formatierte Nachricht am Bildschirm oder in den Logdateien aus wenn admin quiet entsprechend in der adminmod cfg gesetzt ist Zum Ausf hren wird der Adminname sUser der Admin Mod Befehl sCommand den er ausgef hrt hat der zu setzende Serverbefehl bzw die Servervariable sHalfLifeCmd und die Option sData ben tigt Beispiel aus plugin base Funktion admin_hostname convert_string HLCommand Command MAX_COMMAND_LENGTH convert_string HLData Data MAX_DATA_LENGTH convert_string HLUserName User MAX_NAME_LENGTH snprintf sHostName MAX_DATA_LENGTH s Data execute_command User Command hostname sHostName Zun chst werden die Half Life Strings konvertiert Data sollte dabei den neuen Server namen beinhalten und wird wegen m glicher Leerzeichen in Anf hrungszeichen gesetzt Zeile 246 Anschlie end werden die Daten execute_command bergeben User und Command geben ausf hrlich Auskunft dar ber wer wel
74. der Regel mehrere Level gleichzeitig zuweisen m chte muss man die einzelnen Rechtelevel addieren 3 0 2 ay E 24 tty 2 1 0 Beispiel 2 28 16 256 272 oder bin r 10001000 Aus den Tabellen 4 1 und 4 2 k nnen die Rechtelevel fiir die Befehle der Standardplugins entnommen werden Die Rechtelevel reichen von 0 bis 65536 Es ist aber auch m glich h here Werte zu verwenden z B f r admin highlander oder Customplugins Das Level 0 wird dem Spieler immer zugewiesen Der Hauptadmin der auch das Rcon Passwort kennt sollte fast alle Rechte erhalten 16 Y a 29 o 90 77823 i 0 Die abgezogenen Rechtelevel werden zwar hin und wieder von Customplugins fiir Befehle benutzt sie haben jedoch eine besondere Bedeutung ftir Admin Mod 4096 2 Ein Admin mit diesem Level ist immun gegen ber anderen Admins es gibt aber auch Plugins die das umgehen Die Immunit t kann im Spielverlauf durch das Setzen von admin_ignore_immunity 1 ausgesetzt werden 16384 2 Der eigene Name bzw die eigene ID oder IP ist damit reserviert und 68 Tabelle 4 1 Rechtelevel f r Befehle der Standardplugins Teil 1 Level Befehle Level Befehle 0 admin _listmaps 64 admin chat admin _messagemode admin _csay admin _nextmap admin _psay admin _nomessagemode admin_say admin timeleft admin _ssay admin userlist admin _tsay admin version admin _vsay say currentmap 128 admin_ ct say glow admin_ kick
75. deren Wert ver ndern z B in der server cfg oder als Rcon Befehl Analog dazu gibt es auch festverdrahtete Clientvariablen Beispiel rate Auch hier kann nur der Wert ver ndert werden config cfg oder Client Console Jetzt nehmen wir an dass eine Serverapplikation wie Admin Mod beim Client eine Variable auslesen m chte Es gibt nat rlich keine M glichkeit Half Life neu zu compilie ren mangels Quellcode Valve hat daher benutzerdefinierte Variablen eingef hrt Diese definiert man mittels des setinfo Befehls Anbei ein Beispiel f r Sir Drink a lot s Plugins ber ein benutzerdefinierte Clientvariable liest es aus ob der Client Customsounds h ren will setinfo am _sound 0 Man definiert hier eine Variable am sound mit dem Wert 0 Es ist also nichts anderes als eine Variablendefinition unter SMALL new am_sound 0 Wenn man diesen Befehl in der config cfg verankert wird man auf keinem Server mit Sir Drink a lot s Plugins mehr von den zugeh rigen Sounds genervt Woher wei das Plugin aber was der Client eingetragen hat Daf r gibt es die Scripting Funktion get_userinfo Damit kann man einige Clientvariablen auslesen bzw alle mit setinfo definierten Variablen Man k nnte jetzt auf die Idee kommen jedes Plugin mit setinfo Zeilen auszustatten z B Plugin f r Client an oder aus Schlie lich kann man diese Variablen einfach per execclient Befehl beim Client in die config cfg schreiben soweit er sie nicht schreib
76. die Befehlseingabe nut zen sollte man die eigenen Chatbefehle mittels plugin_registerhelp mit einem Hilfetext ausstatten Die Registrierung von say sollte hingegen keinen Hilfetext beinhalten Es muss der dem Hilfetext HelpMessage zugeh rige Befehl Command und der not wendige Access Level Required Access angegeben werden Beim Aufruf von admin help wird der Hilfetext dann angezeigt Beispiel aus plugin_bk_timeleft Funktion plugin_init 36 plugin_registerinfo Akurates Timeleft Genaue Restzeitangabe STRING_VERSION 37 plugin_registercmd say HandleSay ACCESS_ALL 38 plugin_registerhelp say ACCESS_ALL say timeleft Gibt die Restzeit an Zun chst wird das Plugin registriert und anschlie end der say Befehl D h alle Chat nachrichten au er der Teamnachrichten werden abgefangen Da auch andere Plugins say abfangen k nnten wird die Hilfe in plugin registerhelp beschrieben Geh rt zu admin inc Siehe auch plugin_registercmd 35http www adminmod de plugins php plugin plugin_bk_timeleft 312 8 10 Funktionsreferenz 8 10 135 plugin_registerinfo plugin_registerinfo Name Description Version Name Typ String 100 Description Typ String 200 Version Typ String 150 Dies Funktion registriert ein Plugin bei Admin Mod Es muss ein Pluginname Name eine Beschreibung Description und eine Versionsnummer Version angegeben werden Diese Informati
77. die Session ID targetnumber des gegen berstehenden Spielers ermittelt Diese wird in einen String umgewandelt numtostr in einen Namen targetname und schlie lich in einen Userindex targetnumber umgewandelt Geh rt zu admin inc Siehe auch gettarget 8 10 137 print print const string foreground 1 background 1 string Typ String 0 2147483647 foreground 1 Typ Integer 1 7 background 1 Typ String 1 7 Diese Funktion schreibt einen Text string in die Befehlszeile Es k nnen auch Vorder und Hintergrundfarben foreground und background genutzt werden Mangels einer solchen Befehlszeile ist die Funktion in Admin Mod nutzlos Geh rt zu console inc 3 http www adminmod de plugins php plugin plugin_seeuser 314 8 10 Funktionsreferenz 8 10 138 printf print const format 35 format Typ String 0 2147483647 Diese Funktion schreibt einen Text format in die Befehlszeile Es k nnen andere Strings unterschiedlicher Datentypen in format eingebettet werden Mangels einer solchen Be fehlszeile ist die Funktion in Admin Mod nutzlos Geh rt zu console inc 8 10 139 rainbow rainbow sText iTime iRedStart iGreenStart iBlueStart iRedEnd iGreenEnd iBlueEnd sText Typ String 80 iTime Typ Integer 0 2147483647 iRedStart Typ Integer 0 255 iGreenStart Typ Integer 0 255 iBlueStart Typ Integer 0 255 iRedEnd Typ
78. die bei Ablauf des Timers aufzurufende Funktion sFunction die Ablaufzeit iWaitSeconds und die Anzahl der Wiederholungen iRepeatCount bergeben werden Die definierte Funktion muss f fentlich public sein Unendlich viele Wiederholungen erreicht man durch die Angabe von 99999 Um nur einen einzigen Ablauf zu erreichen kann iRepeatCount auf 0 oder 1 gesetzt werden Optional kann ein String sParameter an die aufzurufende Funktion bergeben werden Die Funktion set_ timer gibt die erstellte Timer ID direkt zur ck Mehr Informationen zur Verwendung von Timern k nnen dem Tutorial entnommen wer den Beispiel aus plugin CS Funktion HandleKickVote new Ratio getvar kick_ratio if VoteCount gt Ratio UserCount 100 if g_AbortVote say Kick vote was aborted by an admin else set_timer KickUser 10 1 VoteUser Die Servervariable kick ratio wird als Ganzzahl in Ratio ausgelesen Falls gen gend Stimmen f r den Kick zusammengekommen sind wird entweder der Kick abgebrochen weil ein Admin ihn aufgehalten hat oder ein Timer ausgel st der einmal nach 10 Se kunden die Funktion KickUser ausf hrt Der entsprechende Spieler wird von dieser Funktion dann vom Server geworfen Geh rt zu admin inc Siehe auch get_ timer kill_ timer 330 8 10 Funktionsreferenz 8 10 153 set_vaultdata set_vaultdata sKey sDatal sKey Typ String 100 sData Typ String 200 Die Funkt
79. eine m gliche Fehlermeldung mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_arccot f_arcsin f_arctan 226 8 10 Funktionsreferenz 8 10 32 fixed f_arccot f_arccot fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_arccot gibt den Arkuskotangens Wert als eine Festkommazahl zur ck Beispiel fNum f_arccot fNum Aus fNum wird der Arkuskotangens gebildet Geh rt zu math inc Siehe auch f_arccos f_arcsin f_arctan 8 10 33 fixed f_arcosh f_arcosh fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_arcosh gibt den Areakosinus Hyperbolicus Wert als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zur ckgegeben Beispiel fNum f_arcosh fNum iError matherror iError Aus fNum wird der Areakosinus Hyperbolicus gebildet und anschlie end eine m gliche Fehlermeldung mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_arcoth f_arsinh f_artanh 227 8 Scripting 8 10 34 fixed f_arcoth f_arcoth fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_arcoth gibt den Areatangens Hyperbolicus Wert als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError
80. en aussehen Player 2 traf Player mit p228 28 hp Dieser Text wird abschlie end in den Chat geschrieben 8 8 9 Men s nutzen Die Verwendung von Men s muss unter Admin Mod als h here Programmierkunst be zeichnet werden Es gibt diverse Fallstricke die zu beachten sind Gerade komplexe Men strukturen bedingen ein hohes Abstraktionsverm gen Auch kann man mit ande ren Men s kollidieren auch die von Half Life z B Teamauswahl oder Waffenkauf Nicht jedes Plugin ben tigt ein Men Man sollte sich genau berlegen ob man eines verwen den m chte blicherweise verdoppelt sich der Code Au erdem muss der Serveradmin die Variable amv_enable_ beta um menul erg nzt haben Nachdem gen gend Angst ges ht wurde soll nun ein Beispiel folgen dass eine simple Verwendung des Men s demonstrieren soll Dem Spieler soll nach Eingabe von ad min test in der Console ein Men pr sentiert werden das ihn ausw hlen l sst ob er einen Maprestart nach 10 5 oder 2 Sekunden durchf hren m chte Als letzte Auswahl m glichkeit kann er das Men auch einfach schlie en include lt core gt include lt console gt include lt string gt include lt plugin gt include lt admin gt include lt adminlib gt new giMenu MAX_PLAYERS oOOOoNIOVTPRwWMNH public test HLCommand HLData HLUsername UserIndex 189 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3
81. end wird die Session ID an den Admin Mod Befehl admin_ slap weitergeleitet plugin_exec Geh rt zu admin inc Siehe auch get_ username 16http www adminmod de plugins php plugin plugin_spooge_AR 262 8 10 83 get _userTeam get_userTeam sPlayer amp team sPlayer Typ String 33 amp team Typ Integer 0 4 500 600 Die Funktion ermittelt die Team ID des Spielers sPlayer Die Teamzugeh rigkeit kann auch ber die Funktion playerinfo ermittelt werden Sonderteams sind kein Team 0 Spectator 500 und HLTV 600 Verschiedene Modi fikationen haben unterschiedliche Teams 8 10 Funktionsreferenz Mod Team 1 Team 2 Team 3 Team 4 CS Terrorist Counter Terrorist VIP TFC Team Blau Team Rot Team Gelb Team Grtin DoD Axis Allies Beispiel aus plugin CS Funktion menuselect 1512 new Team 1513 get_userTeam UserName Team 1514 Team clamp Team 1 2 1 Zun chst wird das Team des Spielers ermittelt Anschlie end wird zur Vermeidung einer Feldadressierung au erhalb des g ltigen Bereichs 4 AMX_ERR_ BOUNDS die m g lichen Teams auf 1 und 2 begrenzt Zur weiteren Bearbeitung werden die Teamnummern dekrementiert Geh rt zu admin inc Siehe auch playerinfo 263 246 247 248 249 8 Scripting 8 10 84 get _userWONID get_userWONID sPlayer amp iWONID sPlayer Typ String 33 amp iWONID Typ Integer 0 214748364
82. flashlight 0 1 Dieser Befehl ver ndert die Servervariable mp_ flashlight Sie erlaubt oder verbietet die Benutzung der Taschenlampe durch die Spieler Aktiviert wird die Funktion durch 1 deaktiviert wird sie durch 0 Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin flashlight 1 admin flashlight 0 admin _flashlight Im ersten Beispiel wird die Verwendung der Taschenlampe erlaubt im zweiten verboten Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 126 5 6 plugin CS 5 6 10 admin_footsteps admin _footsteps 0 1 Dieser Befehl ver ndert die Servervariable mp_ footsteps Sie unterbindet oder akti viert die H rbarkeit der Spielerschritte Aktiviert wird die Funktion durch 1 deakti viert wird sie durch 0 Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _footsteps 1 admin _footsteps 0 admin _footsteps Im ersten Beispiel werden die Schritte der Spieler h rbar im zweiten wird die H rbarkeit unterbunden Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin_ CS 5 6 11 admin_forcecamera admin forcecamera 0 1 2 Dieser Befehl setzt die Servervariable mp_forcecamera Man kann damit einstellen welche Einblicke der Spi
83. gesch tzten Spielern des Teams die Lade des CD DVD Laufwerks aus Bei Counter Strike w rde dies das Terror Team bei TFC das blaue Team betreffen Access Level 65536 Geh rt zu plugin_retribution Siehe auch admin_execall admin_execclient allow __client _exec 5 10 5 admin_gag admin gag lt ID IP Name gt Minuten Mit diesem Befehl kann man einen Spieler mundtot machen knebeln Er kann dann den Chat nicht mehr verwenden S mtliche Nachrichten werden geblockt Der Voicechat ist davon nicht betroffen Es kann sowohl die Steam ID eine IP oder ein Name angegeben werden Beim Namen gen gt auch ein eindeutiger Teil des Namens Diese Aktion kann durch den Befehl admin_ungag r ckg ngig gemacht werden Ob der Spieler mit dem eigenen Team sprechen kann admin gag_sayteam oder ob er seinen Namen ndern darf admin gag_ name h ngt von Einstellungen in der ad minmod cfg ab Bei letzterem ist dar ber hinaus auch allow_client_ exec notwendig Beispiele admin _gag Kindergeburtstag 5 admin _gag Kindergeburtstag admin _gag Big admin _gag STEAM_0 123456 admin _gag 23 156 43 12 Im ersten Beispiel wird der Spieler Kindergeburtstag im Chat f r 5 Minuten im zweiten Beispiel f r immer zum Schweigen gebracht Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in
84. iError 0 Typ Integer 0 3 Die Funktion f_coth gibt den Kotangens Hyperbolicus Wert als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zur ckgegeben Beispiel fNum f_coth fNum iError matherror iError Aus fNum wird der Kotangens Hyperbolicus gebildet und anschlie end eine m gliche Fehlermeldung mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_cosh f_sinh f_tanh 232 8 10 Funktionsreferenz 8 10 44 fixed f_degtorad f_degtorad fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_degtorad rechnet einen Winkel von Grad in Radiant um Beispiel fNum f_degtorad fNun Der Winkel fNum wird in Radiant umgerechnet Geh rt zu math inc Siehe auch f_radtodeg 8 10 45 fixed f_euler f_euler Die Funktion f_euler gibt die Eulersche Zahl 2 718 zur ck Beispiel fEuler f_euler In die Variable fEuler wird die Eulersche Zahl geschrieben Geh rt zu math inc Siehe auch f_pi 233 8 Scripting 8 10 46 fixed f_faculty f faculty fixed fValue amp iError 0 fixed fValue Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_ faculty gibt die Fakult t einer Zahl als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zu r ckgegeben Beispiel fNum f_faculty fNum iEr
85. ist ein Serverrestart oder besser ein einfacher Mapwechsel notwendig Erst dann wird die Datei neu eingelesen Mittels der Include Anweisung k nnen aber auch weitere Dateien eingebunden werden Es ist dabei sogar m glich diese Dateien au erhalb des Mod Verzeichnisses einzubinden include standard plugin ini In der beschriebenen standard plugin ini hier im hlds Verzeichnis k nnten beispiels weise Plugins stehen die auf allen Gameservern laufen sollen Ein identischer Eintrag bei allen Gameservern erlaubt die zentrale Verwaltung der Plugins ber diese Datei hlds cstrike addons adminmod config plugin ini include standard plugin ini addons adminmod scripts plugin_CS amx 60 4 3 Plugins kompilieren hlds standard plugin ini scripts plugin_antiflood amx scripts plugin_base amx scripts plugin_chat amx scripts plugin_cheat amx scripts plugin_hldsld_mapvote amx scripts plugin_message amx scripts plugin_retribution amx scripts plugin_fun amx Die Plugins aus der standard plugin ini befinden sich dann in hlds scripts Wie man erkennen kann k nnen Includes auch mit normalen Eintr gen kombiniert werden In diesem Fall k nnte man annehmen dass ein CS TFC und ein Ricochet Server l uft Je nach Mod kann man dann die Spezialplugins aus dem normalen Scripts Verzeichnis starten w hrend die bergreifenden aus dem gemeinsamen Verzeichnis geladen werden Hier au
86. kann wie den Beispielen oben zu entnehmen ist einen Spielernamen eine WONID eine IP Adresse eine STEAM _ ID oder eine VALVE_ ID aufnehmen Eine Kombination von unterschiedlichen IDs oder Spielernamen in einer users ini ist ohne Probleme m glich Kommen Doppelpunkte im Spielernamen auf m s sen diese mit einem Backslash escaped werden s viertes Beispiel Die Doppelpunkte in den Steam IDs werden automatisch erkannt und m ssen nicht escaped werden Wird die Option hyperrefluse regex use_regex genutzt m ssen noch weitere Zeichen escaped werden Darauf wird aber im Kapitel 4 4 6 RegEx Clantags reservieren etc n her eingegangen Von der Verwendung der Spielernamen zur Authentifizierung bei Admin Mod sollte Ab stand genommen werden Jeder kann einen in der users ini angelegten Namen annehmen und mit dem richtigen Passwort hat er bereits Rechte auf dem Server Au erdem verliert man bei einem Namenswechsel die Adminrechte Weiterhin sollte die Verwendung von IPs auf Netze mit statischer IP Vergabe beschr nkt werden also meist LANs mit statischen IPs keine automatische Vergabe oder auf MAC Adresse basierte Vergabe von IPs mittels DHCP 63 4 Konfiguration Seit der Admin Mod Version 2 50 60 ist die localhost Adresse 127 0 0 1 als ID f r den Er ffner eines Listenservers erlaubt Da zwar jeder diese Adresse auf seinem Rechner erh lt sie aber nur auf dem eigenen g ltig ist ist dies eine sichere Methode so d
87. ke Oe gie 115 plugin ebat sers a de dd eR E ee a e a e a a ae e ERS 115 5 4 1 admin messapemode o 0 0 ee 04 au a ai aaa GS 116 5 4 2 lm n nomessagemsde Ls css 646 He eRe Hae ew 117 9 4 3 say CHITENDIMAD lt aa barea biori nnee terer tesi 117 5 4 4 Say DER Map oos a we ea A re o 118 5 4 5 say Timeless te ARA 118 plugin Cheat Se A ae EDS ee Sw Oe 119 5 0 1 admin POUMIOdS lt a siie s s aoma i ed 119 5 5 2 admin MA cp ap e eier pode woe Boheme BS Bde 8 120 2 3 5 admin Stack 2 0 6 u hau eb nn a a 120 9 0 4 admin teleport u Au aa pos a EO ERR einen 121 5 5 9 admin ISSO encarna AAA 121 VII Inhaltsverzeichnis o6 PIS ss da ERA AA 2 122 5 6 1 admin autokick 0000000 eee 122 5 6 2 admin autoteambalance o s ires s s deca osa hoaa dAn a mi i 123 5 6 3 admin BU 2 4 0 22 00 2er AS Se a 123 5 6 4 admin c4timer so a sa aea gda ea eda ta eee aa 124 5 6 5 admin _chattime sa e as aa Seeon eee are 124 5 6 6 admin consistency se s e si aad ea aaa a ers Goa a e 125 5 6 7 SMUT EE ner ac eget ese te A ee ee AN 125 5 6 8 admin tadetoblack s e g lt lt 24 4 8a ib ba aa ea a a a 126 5 6 9 admin Tene lt ees seses 8 ar has here 126 50 10 admin fo tsteps s sra s sikaki sianhe SESE ORES 127 50 11 admin forcecamera cres seru a 127 5 6 12 admin forcechasecam lt s s Hmm nn 128 5 6 13 admin _freezetime s c 2 Hm nen 128 5 6 14 admin _ghostfrequency 129 Bola admin hpenalty cc a se
88. lasst den Spieler sTarget in einer Farbe leuchten Die Farbanteile werden ber RGB Rot Gr n Blau angegeben Das Gl hen wird abgeschaltet indem alle Farbwerte auf 0 gesetzt werden Beispiel aus plugin fun Funktion GlowHelper GlowHelper User Color 4 new iGoodColor 1 if streq Color red 1 glow User 250 10 10 else if streq Color blue 1 glow User 10 10 250 else if streq Color green 1 glow User 10 250 10 else if streq Color white 1 glow User 250 250 250 else if streq Color yellow 1 glow User 250 250 10 else if streq Color purple 1 glow User 250 10 250 else if streq Color off 1 glow User 0 0 0 else iGoodColor 0 return iGoodColor Die Funktion GlowHelper wandelt Farben die in einem String Color bergeben werden in einen RGB Wert um und l sst den entsprechenden Spieler User in dieser Farbe gl hen Bei off wird das Gl hen abgeschaltet Ist die bergebende Farbe nicht definiert gibt die Funktion einen Fehlerwert iGoodColor zur ck Geh rt zu admin inc 274 8 10 Funktionsreferenz 8 10 97 godmode godmode sPlayer i0n0ff sPlayer Typ String 33 i0nOff Typ Integer 0 1 Die Funktion macht den Spieler sPlayer unverwundbar wenn man als iOnOff eine 1 bergibt Mit 0 stellt man den Godmode wieder aus Es wird eine Nachricht allen Spielern auf dem Server ange
89. lt ct t gt Name Waffe Equipment Verbietet eine Waffe oder einen Gegenstand auf Basis seines Namens player lt Name gt team lt ct t gt lt Men nummer gt lt Nummer Waffe Equipment gt Verbietet eine Waffe oder einen Gegenstand auf Basis der Men und Auswahlnummer help Gibt Hinweise zur Anwendung des Befehls admin _ restrict Beispiele admin restrict Es werden die aktuellen Restriktionen angezeigt admin restrict on Die Restriktionen werden eingeschaltet admin restrict save default Die aktuell g ltigen Restriktionen werden f r alle Maps gespeichert die keine Sonderre geln haben admin _restrict save map Die aktuell g ltigen Restriktionen werden nur f r die aktuelle Map gespeichert Sonder regel admin _restrict delete map Die Restriktionen f r die aktuelle Map werden gel scht Sonderregel Es gelten dann die allgemeinen Restriktionen sofern diese definiert sind admin restrict restore Die gespeicherten Restriktionen zur gespielten Map werden wiederhergestellt Alle seit Mapstart get tigten und nicht gespeicherten Restriktionen werden r ckg ngig gemacht Dies ist in der Regel einfacher als den Befehl admin unrestrict zu bem hen admin restrict all Verbietet allen Spielern beider Teams den Einkauf 134 5 6 plugin CS admin restrict player Back to the roots weapons Verbietet dem Spieler Back to the roots den Kauf einer Waffe Die einfachen Anf h rungszeichen sind bei Spiel
90. man eine 0 zur ck Beispiel aus plugin base Funktion plugin _ init currentmap strMap MAX_DATA_LENGTH snprintf ExecCommand MAX_DATA_LENGTH s cfg strMap if fileexists ExecCommand snprintf ExecCommand MAX_DATA_LENGTH exec s cfg strMap log ExecCommand exec ExecCommand Es wird die aktuelle Map ermittelt und berpr ft ob sich im Modverzeichnis eine Konfi guartionsdatei f r diese spezielle Map befindet Existiert die Datei wird sie ausgef hrt Dies ist eine oftmals bersehene Funktion Admin Mods die der Basisfunktionalit t des HL Servers zugeschlagen wird Geh rt zu admin inc Siehe auch deletefile filesize readfile resetfile writefile 224 8 10 Funktionsreferenz 8 10 29 filesize filesize sFilename fsize unit Unit 1 sFilename Typ String 100 f size_unit Unit 1 Typ Enum 0 bytes lines Man erh lt die Anzahl der Zeilen oder die Gr e in Byte der unter sFilename angegebe nen Datei Wird fsize_unit nicht angegeben wird die Anzahl der Zeilen bei bytes hingegen die Dateigr e in Bytes zur ckgegeben Zum Ausf hren der Funktion muss file_access read auf 1 in der adminmod cfg gesetzt sein Beispiel aus plugin_bk_cron Funktion admin_cron_ refresh 187 if fileexists filename 0 188 log plugin_bk_cron found no schedule ini 189 log cron_nosched 190 return PLUGIN_CONTINUE 191 192 sizeoffile filesize filen
91. number of arguments does not match definition sagt aus dass man einer Funktion zu wenige oder zu viele Argumente bergeben hat Warning 209 Beim Hinweis symbol is never used test wird darauf hingewiesen dass eine als privat definierte Funktion von keiner anderen Funktion aus dem Plugin aufgerufen wird Der Code sollte dann entfernt oder die Funktion public gemacht werden Warning 215 Der Ausdruck expression has no effect meint meistens dass in der 389 8 Scripting Zeile ein Vergleich nur mit einem Gleichheitszeichen angestellt wurde statt Warning 217 Die Meldung loose indentation sollte bei konsequenter Anwendung von Klammern nicht mehr auftreten Man kann aber auch auf Klammern ver zichten und Tabulatoren nutzen Daf r m ssen dann aber auch die Einr ckungen komplett stimmen Auf Grund der besseren bersicht und der geringeren Fehler tr chtigkeit sind aber Klammern zu empfehlen Warning 219 Wenn die Meldung local variable identifier shadows a symbol at a pre ceding level erscheint versucht man eine Variable zu definieren die bereits global genutzt wird Meistens wurde sie in einer der Includes definiert und ist daher nicht gleich ersichtlich Es sollte ausreichen den Variablennamen zu ndern Der Compiler kann aber auch ganz unvermutet abst rzen Dies kann in den folgenden F llen auftreten e Doppelt definierte globale Variablen e Irt mlich doppelt d
92. nur MySQL Version mysql_dbtable plugins lt string gt Diese Variable legt fest in welcher MySQL Tabelle die Pluginpfade zu finden sind Ist kein Admin Mod MySQL installiert wird die Variable ignoriert anderenfalls wird eine Definition von admin plugin file bergangen Beispiel mysql_dbtable plugins am_plugins Admin Mod erwartet die Daten zu den Pluginpfaden in der Tabelle am plugins Siehe auch admin plugin file mysql database mysql_dbtable_ips mysql_dbtable_ models mysql_dbtable_tags mysql_dbtable_users mysql_dbtable_words mysql_host mysql_pass mysql_ preload mysql_tags sql mysql_user mysql_users_ sql 4 1 53 mysql_dbtable_tags nur MySQL Version mysql_dbtable_tags lt string gt Diese Variable legt fest in welcher MySQL Tabelle die reservierten Clantags zu finden sind Dies ist notwendig da Regex ein sehr ineffizienter Befehl bei MySQL ist und nicht auf gro e users Tabellen angewendet werden sollte Beispiel mysql_dbtable tags am_tags Admin Mod erwartet die Daten zu den reservierten Clantags in der Tabelle am _ tags Siehe auch mysql_ database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_plugins mysql_dbtable_ users mysql_dbtable_words mysql_ host mysql_ pass mysql_ preload mysql_tags_ sql mysql user mysql_users_sql 42 4 1 Admin Mod einrichten adminmod cfg 4 1 54 mysql_dbtable_users nur MySQL Version mysql_dbtable_users lt string gt Diese
93. pgsql_dbtable_words nur PostgreSQL Version 51 4 1 71 pgsql_host nur PostgreSQL Version 51 4 1 72 pgsql pass nur PostgreSQL Version 52 4 1 73 pgsql_port nur PostgreSQL Version 52 4 1 74 pgsql preload nur PostgreSQL Version 53 4 1 75 pgsql_tags_sql nur PostgreSQL Version 53 4 1 76 pgsql user nur PostgreSQL Version 54 4 1 77 pesql_users_sql nur PostgreSQL Version 54 ALTS prety BAY a oe ae we eA ee Dr ek Wo hi 55 4178 pulblic slots We siensa 2 aiana a eah a et 55 ALSO reserve slots o ee goceng ct Dre Be a 56 ALSI Teserve_ slots ise 2444454444 ha ia take 56 Bl reseve type io pp si p ea edna eee Re ee A 57 4 1 83 script fle veraltet 4 aoaaa es Rea eS Baus 57 AA Wee regex o aori eoi ee ee ee eee pee ee ee PE 58 4 1 85 Users fle son cra mior ee ee ea 58 ALO wote MA ee ee ee Pw e ech gk we AR A 59 LSO words Hle ess esa ie A A BS ees 59 Plugins installieren plugin ini o o 60 Plugins kompilieren asa ata aa a a aa 61 Administratoren einrichten users ini o ooo o 63 4 4 1 Serverseitige Einstellungen 63 14411 Player Pasword Rigrhis sos cis tas 63 4412 Player Password Rights lt lt e lt es resos a rosne soe 64 44 1 3 Player Pesword Rohe 2 646 446444284 4044 65 4 4 1 4 Serverseitige Einstellungen adminmod cfg 65 4 4 2 Clientseitige Einstellun
94. plugin info plugin init S nttp www adminmod de plugins php plugin plugin_blatt_map 304 8 10 Funktionsreferenz 8 10 127 plugin_connect plugin_connect HLUserName HLIP UserIndex HLUserName Typ HLString 30 HLIP Typ HLIP 22 UserIndex Typ Integer 0 32 Bei der Funktion plugin _ connect handelt es sich um ein Event mit dem man Informa tionen zum den Server beitretenden Spieler erhalten Name IP Slot kann Leider ist der Event in der Regel zu fr h so dass weder Spielername noch seine IP zur ckgegeben werden Nur der Slot UserIndex l sst sich zuverl ssig nutzen Mehr Informationen sind dem Tutorial zu entnehmen Beispiel aus plugin message Funktion plugin _ connect public plugin_connect HLUserName HLIP UserIndex set_timer say_hello 45 0 return PLUGIN_CONTINUE I Beim Beitreten eines Spielers wird ein 45 Sekunden Timer auf die Funktion say_ hello ausgel st Geh rt zu admin inc Siehe auch plugin command plugin disconnect plugin_ info plugin init 305 8 Scripting 8 10 1238 plugin_disconnect plugin_disconnect HLUserName UserIndex HLUserName Typ HLString 30 UserIndex Typ Integer 0 32 Bei der Funktion plugin_ disconnect handelt es sich um ein Event mit dem man Infor mationen zum den Server verlassenden Spieler erhalten Name Slot kann Beispiel aus plugin_bk_hltvannounce Funktion plugin disconnect public plugin_disconnect
95. say nextmap admin_slap say timeleft admin_ slay 1 admin startvote admin_slayteam admin vote kick admin t admin_vote_map 256 admin ban admin_vote_ restart admin_banip say mapvote admin_unban say rockthevote 512 admin_autokick say vote admin_autoteambalance 2 admin_cancelvote admin_buytime admin_denymap admin_c4timer admin_fraglimit admin_cfg admin_map admin_chattime admin_ restart admin_consistency admin restartround admin fadetoblack admin startvote admin_ flashlight admin timelimit admin_ footsteps say cancelvote admin_forcecamera say denymap admin_forcechasecam 4 admin_ reload admin freezetime 8 admin pause admin_ ghostfrequency admin_prematch admin hostname admin _unpause admin_hpenalty 16 admin_nopass admin_kickpercent admin_ pass admin limitteams 32 admin balance admin mapvoteratio admin_ friendlyfire admin_ gravity admin_ restrict admin restrictmenu admin_teamplay admin unrestrict admin maxrounds admin __playerid admin roundtime admin_servercfg admin_startmoney admin tkpunish admin_weaponscheck admin winlimit 4 4 Administratoren einrichten users ini 69 4 Konfiguration Tabelle 4 2 Rechtelevel f r Befehle der Standardplugins Teil 2 Level Befehle 1024 normalerweise nicht genutzt 2048 admin_ gag admin _ungag 4096 Admin Immunit t 8192 admin blue admin bury admin disco admin fun admin_ glow admin _godmode admin green admin _listspawn admin llama admin _movespawn
96. sich nicht um Namen handelt und wendet RegEx nicht an 4 5 Benutzbare Maps einstellen maps ini Die maps ini schr nkt die Benutzung von Maps mittels admin_map oder Mapvotes ein Ausschlie lich Maps die in dieser Datei stehen d rfen dann benutzt werden Anderen falls bekommt man bei admin _ map o die R ckmeldung bad mapname Die Verwendung einer solchen Datei ist jedoch OPTIONAL Um die Funktion abzu schalten setzt man maps_file 0 Will man hingegen die Verwendung bestimmter Maps einschr nken schreibt man maps file addons adminmod config maps ini Wahlweise kann man nat rlich auch einen anderen Pfad oder Dateinamen w hlen Die Maps werden genau wie in der mapcycle txt Datei aufgef hrt z B de _dust de_inferno de_dust2 cs_office 76 4 6 IPs f r reservierte Slots festlegen ips ini Daraus ergibt sich nat rlich auch eine nette M glichkeit die benutzbaren Maps auf die im Mapcycle zu beschr nken Man muss lediglich den aktuellen Mapcycle als maps ini definieren maps_file mapcycle txt Das Einbinden weiterer Dateien mittels Include Anweisung ist leider nicht m glich 4 6 IPs f r reservierte Slots festlegen ips ini Die ips ini beinhaltet IP Adressen die stets Zugang zu reservierten Slots haben siehe auch reserve_type und reserve_ slots und ist OPTIONAL Uber die users ini lassen sich zwar einzelnen IPs reservierte Slots zuweisen allerdings ist es dort nicht m glich IP Bereiche festzul
97. slv_word2 wav slv_word7 wav slv_diel wav slv_word3 wav slv_word8 wav slv_ die2 wav slv_ word4 wav barnacle bcl_alert2 wav bcl_bite3 wav bcl chewl wav bcl chew2 wav bcl chew3 wav bcl diel wav bcl_die3 wav bel_tonguel wav barney __comma wav aimforhead wav aintgoin wav aintscared wav alreadyasked wav ambush wav ba_another wav ba_attackl wav ba_attack2 wav ba_bring wav ba_buttugly wav ba _ close wav ba _diel wav ba die2 wav ba die3 wav ba dontmake wav ba_dotoyou wav ba_duty wav ba_endline wav ba_firepl wav ba _friends wav ba_gotone wav ba_iwish wav ba_later wav 407 B Sonstiges 408 ba_painl wav ba_pain2 wav ba_pain3 wav ba_pissme wav ba__post wav ba_raincheck wav ba_seethat wav ba_somuch wav ba_stepoff wav ba_tomb wav ba__uwish wav ba__watchit wav ba_whatyou wav ba whoathere wav badarea wav badfeeling wav beertopside wav bequiet wav bigmess wav bigplace wav cla0 ba button wav cla0 ba _desk wav cla0_ ba headdown wav cla0_ ba hevno wav cla0_ba_hevyes wav cla0_ ba _late wav clal_ba_glad wav cla2_ba_2zomb wav cla2_ba_4zomb wav cla2_ba_bullsquid wav cla2_ba_climb wav cla2_ba_ goforit wav cla2_ba_slew wav cla2_ ba surface wav cla2_ba_top wav cla4 ba octol wav cla4 ba octo2 wav cla4 ba octo3 wav cla4 ba _octo4 wav cla4_ba_wisp wav c2a ba hubla wav c2a1_ba_again wav c2al_ ba hubla wav c2al_ ba hub2a wav c2a2 ba _launch wav c2
98. treffend ist Je nach Ausfallen der berpr fung wird entweder eine Meldung ber den Fehlschlag des Banns oder der Bann selbst abgesetzt Geh rt zu adminlib inc Siehe auch access auth check _auth 206 203 204 205 206 207 208 8 10 Funktionsreferenz 8 10 11 check _param check_param sParam sParam Typ String 100 Die Funktion berpr ft ob der String sParam gleich dem String on ist Bei on gibt die Funktion 1 anderenfalls 0 zur ck Beispiel aus plugin fun Funktion admin_ fun if check_param Data 1 execute_command User Command admin_fun_mode 1 else execute_command User Command admin_fun_mode 0 KillGlow Wenn der Befehl admin_ fun abgesetzt wurde wird berpr ft ob als Option on berge ben wurde Wenn dies der Fall ist wird der Fun Mode aktiviert anderenfalls deaktiviert und alle aktiven Glows abgeschaltet Geh rt zu adminlib inc 207 8 Scripting 8 10 12 check _user check_user sPlayerl sPlayer Typ String 33 berpr ft ob sich ein Spieler mit dem Namen auch Teil ID oder IP sPlayer auf dem Server befindet Ein positive berpr fung gibt eine 1 eine negative eine 0 zur ck Die Funktion wird gern f r die Bot oder HLTV Erkennung eingesetzt Beispiel aus plugin base Funktion admin ban 68 if check_user ban_user 1 69 get_username ban_user TargetName MAX_NAME_LENGTH Es wird berpr
99. wav bodydrop3 wav launch_upmenul wav wpn_denyselect wav bodydrop4 wav menul wav wpn_hudoff wav bodysplat wav menu2 wav wpn_hudon wav launch_deny1 wav menu3 wav wpn_moveselect wav launch_deny2 wav npc_stepl wav wpn_select wav launch_dnmenul wav npc_step2 wav launch_glowl wav npc_step3 wav B 4 11 controller con_ alertl wav con _alert2 wav con _alert3 wav con _attackl wav con _attack2 wav con attack3 wav con _diel wav con_ die2 wav con_idlel wav con_idle2 wav con_idle3 wav con_idle4 wav con _idle5 wav con_ painl wav con_ pain2 wav con_ pain3 wav B 4 12 debris beamstartl wav beamstart10 wav beamstart11 wav beamstart14 wav beamstart15 wav beamstart2 wav beamstart3 wav beamstart4 wav beamstart5 wav beamstart6 wav beamstart7 wav beamstart8 wav beamstart9 wav bustceiling wav bustconcretel wav bustconcrete2 wav bustcratel wav bustcrate2 wav bustcrate3 wav bustflesh1 wav bustflesh2 wav bustglass1 wav bustglass2 wav bustglass3 wav bustmetall wav bustmetal2 wav concretel wav concrete2 wav concrete3 wav flesh1 wav flesh3 wav flesh5 wav flesh6 wav flesh7 wav glass1 wav glass2 wav glass3 wav glass4 wav metall wav metal2 wav metal3 wav metal4 wav metal5 wav metal6 wav pushbox1 wav pushbox2 wav pushbox3 wav woodl wav wood2 wav wood3 wav wood4 wav zapl wav zap2 wav zZap3 wav zapo wav zap6 wav zap7 wav zap8 wav 410 B 4 13 doors B 4 HL Sounds
100. wav contamination wav control wav coolant wav coomer wav core wav correct wav corridor wav crew wav cross wav cryogenic wav d wav dadeda wav damage wav damaged wav danger wav day wav deactivated wav decompression wav decontamination wav deeoo wav defense wav degrees wav delta wav denied wav deploy wav deployed wav destroy wav destroyed wav detain wav detected wav detonation wav device wav did wav die wav dimensional wav dirt wav disengaged wav dish wav disposal wav distance wav distortion wav do wav doctor wav doop wav door wav down wav dual wav duct wav e wav east wav echo wav ed wav effect wav egress wav eight wav 423 B Sonstiges 424 eighteen wav eighty wav electric wav electromagnetic wav elevator wav eleven wav eliminate wav emergency wav energy wav engage wav engaged wav engine wav enter wav entry wav environment wav error wav escape wav evacuate wav exchange wav exit wav expect wav experiment wav experimental wav explode wav explosion wav exposure wav exterminate wav extinguish wav extinguisher wav extreme wav f wav facility wav fahrenheit wav failed wav failure wav farthest wav fast wav feet wav field wav fifteen wav fifth wav fifty wav final wav fine wav fire wav first wav five wav flooding wav floor wav fool wav for wav forbidden wav force wav forms wav found wav four wav fourteen wav f
101. wav force wav force wav formation wav formation wav fortymeters wav four wav four wav foxtrot wav foxtrot wav freeman wav freeman wav get wav go wav go wav god wav god wav going wav going wav got wav got wav er_alertl wav gr_diel wav gr_die2 wav gr _die3 wav gr_idlel wav gr_idle2 wav gr_idle3 wav er_loadtalk wav er_mgunl wav egr_mgun2 wav gr_mgun3 wav gr_painl wav r_pain2 wav gr_pain3 wav er pain4 wav Ser_ pain5 wav er_reloadl wav gr_stepl wav gr_step2 wav gr_step3 wav er_step4 wav grenade wav guard wav guard wav have wav have wav he wav heavy wav heavy wav hell wav hell wav here wav here wav hg_civvies wav hg_ sucks wav hold wav hold wav hole wav hole wav hostiles wav hostiles wav hot wav hot wav B 4 HL Sounds hundredmeters wav il wav 1 wav in wav in wav is wav is wav kick wav lay wav left wav left wav lets wav lets wav level wav level wav lookout wav lookout wav maintain wav maintain wav mission wav mission wav mister wav mister wav mother wav movel wav move wav movement wav movement wav moves wav moves wav my wav my wav need wav negative wav negative wav neutralize wav neutralized wav niner wav niner wav no wav no wav north wav north wav nothing wav nothing wav objective wav objective wav of wav of wav oh wav ok wav ok wav one wav one wav onefiftymeters wav orders wav or
102. wav industrial2 wav industrial3 wav industrial4 wav jetflyby1 wav labdronel wav labdrone2 wav labgear wav labmoan wav littlemachine wav loader_hydral wav loader_step1 wav mechwhine wav mgun_burstl wav mgun_ burst2 wav mgun_ burst3 wav mgun_ burst4 wav particle_suck1 wav particle_suck2 wav port_suckinl wav port_suckoutl wav pounder wav pulsemachine wav pumper wav quaill wav riflel wav rifle2 wav rocket_groanl wav rocket_ groan2 wav rocket_ groan3 wav rocket_ groan4 wav rocket _steaml wav rocketflamel wav rocketrumblel wav rotormachine wav sandfalll wav sandfall2 wav 406 B 4 3 B 4 4 B 4 5 B 4 6 B 4 HL Sounds screammachine wav signalgearl wav signalgear2 wav siren wav sparks wav squeeks1 wav squeeks2 wav squirm2 wav squitch wav squitch2 wav steamburst1 wav steamjetl wav tankdriveinl wav tankdrivein2 wav tankidlel wav tankidle2 wav techamb2 wav the _horrorl wav the horror2 wav the horror3 wav the horror4 wav truck1 wav truck2 wav turretrotl wav turretrot2 wav warnl wav warn2 wav warn3 wav waterfalll wav waterfall2 wav waterfall3 wav windl wav wind2 wav wrenl wav xtal_downl wav zapmachine wav zipmachine wav apache ap_rotorl wav ap_rotor2 wav ap_rotor3 wav ap_rotor4 wav ap_whinel wav aslave slv_alertl wav slv_painl wav slv_word5 wav slv_alert3 wav slv_wordl wav slv_word6 wav slv_alert4 wav
103. weiteren IPs vergl plugin_ini nderungen an der ips ini werden erst bei einem Serverneustart einem Mapwechsel oder vorzugsweise beim Ausf hren des Befehls admin reload bernommen 4 7 Models reservieren models ini Die models ini ist eine OPTIONALE Datei Sie kann bestimmte Models mittels Passwort vor der Benutzung durch andere Spieler sch tzen Sie wird mittels der Variablen models_ file gesetzt z B models_file addons adminmod config models ini Der relative Pfad sowie der Dateiname k nnen frei gew hlt werden Um den Modelschutz abzuschalten schreibt man hingegen models_file 0 Eintr ge in die models ini werden nach folgendem Muster durchgef hrt model passwort Das Passwort ist das gleiche das auch in der users ini beim entsprechenden Spieler vermerkt ist Bei Verwendung von verschl sselten Passw rtern in der users ini m ssen diese in der models ini ebenfalls verschl sselt angegeben werden Beispiele sas meinampasswort Limitiert die Benutzung des CT Models sas aus Counter Strike auf Spieler mit dem Passwort meinampasswort in der users ini hostagel gsddkakfla hostage2 gsddkakfla hostage3 gsddkakf la Verhindert das Benutzen von Hostage Models zum Cheaten in CS Das Passwort muss ir gendetwas nicht zu Erratenes sein Vermutlich besteht die Cheat M glichkeit inzwischen nicht mehr Der Nutzen dieser Datei ist einschr nkt Sollen Spieler mit unterschiedlichen Passw rtern in der users ini da
104. xed euler ir a ne dee en GS 233 Hedi facul ge ee ede de a Bde we Bee 234 xed Im z rece ec e ee E edp ieo e ea oo 234 Axed SOON asr ma ee pos a ERE PRR SEES 235 DI A ee ERE a i Kehren 236 XI Inhaltsverzeichnis 8 10 50 fixed f max oc sa ee eh i 237 8 10 51 Mxedf min oo oo onen 237 8 10 52 el Di sorsi N duosi g eae d a e ern ee 238 ES Axed OE seis a AG AL See eRe a 238 8 10 54 fixed f puwere e o sse sda ca edo po doas aor d roh 239 MUA Dred PAR ec Soson ec ee ce 239 8 10 56 Axed E SIM sa dra re a G ae 240 S 10 57 xed t SmE ve et ee eo a ee ee ee a iS 240 8 10 58 SBOE SE bai de bb a Sho Oe eRe SEEDED ELSA 241 3 10 99 fixed f Ian saas e kerd penra e EO See EA 241 3 10 60 fixed ft talla a si ee ww ei ME SD A ee a 242 3 10 61 fixed on sasoin ema e Sa bb er len 242 8 10 62 fixed ract sor s u we a ew See ee we a 243 8 10 93 Med Axed cw ce e a Sa a ee Bae me ES 243 8 10 64 fixed fixedstr o c a Co Como 244 S106095 Ted mul u au ar ds et ee dain Bg ach Gee See ee ee 245 8 10 66 ExedistrioO 2 s a ewe ee Soe ew a 246 COO alos ia ee a eG ee OE o Se Soe de eS 247 8 10 68 format command s 224 2 2 444 0224 44 224 a 4 8 248 8 10 69 Mound au pi a a a N 249 8 10 70 MCI u ok u ee Boe em ee ee 250 8 10 71 get setverinfo sce s e sios a ee PO re an ES 251 8 10 72 Pet MEF cod as E a eRe EE 252 8 10 73 get_userArmor ee u a a 253 8 10 74 get ELEND yc Ww Si a ea ra eS 254 BIOTI ESE Welten s roak ae E en A 255 2 10 16 get mse
105. zwar die Plugins selbstst ndig bei jedem Mapwechsel Plugins Das kostet aber wiederum bei jedem Mapwechsel ein wenig Rechenzeit Als verantwortungsbewusster Administrator sollte man daher die Plugins vorab konver tieren Die entsprechenden Konverter gibt es auf adminmod org und adminmod de Ausgef hrt werden die Kommandozeilen Versionen CMD folgenderma en amxconvert plugin _xxx amx bzw f r Windows amxconvert exe plugin _xxx amx F r Windows gibt es aber auch eine Version mit einer graphischen Oberfl che GUI Inttp www adminmod org index php go downloads tools http forum adminmod de info php go tools html 62 4 4 Administratoren einrichten users ini 4 4 Administratoren einrichten users ini 4 4 1 Serverseitige Einstellungen Administratoren m ssen ber die users ini eingerichtet werden denn zun chst wei der Server nicht wer Admin ist Au erdem m ssen auch die Rechte festgelegt werden Die users ini ist in addons adminmod config zu finden In die users ini muss entweder ein Spielername eine ID oder eine IP sowie das dazugeh rige Passwort und die Rechte des Admins eingetragen werden Typische Eintr ge in der users ini sehen in etwa so aus Bond JamesBond 007 131071 192 168 14 31 IloveNY 255 STEAM_0 0 12345 steamy 134 Mr Colon colonizeme 1492 Das Trennzeichen ftir die Eintrage ist der Doppelpunkt 4 4 1 1 Player Password Rights Der Eintrag vor dem ersten Doppelpunkt
106. 01 kick kick sPlayer sPlayer Typ String 33 Die Funktion wirft den Spieler sPlayer vom Server Beispiel aus plugin base Funktion admin kick if strlen Reason 0 snprintf Text MAX_TEXT_LENGTH You have been kicked because 4s Reason message real_user Text kick real_user Es wird berpr ft ob ein Grund f r den Kick angegeben wurde Wenn es der Fall ist wird dies dem Spieler mitgeteilt message Anschlie end wird der Spieler vom Server geworfen Geh rt zu admin inc Siehe auch ban 279 122 123 124 125 126 127 128 8 Scripting 8 10 102 kill_timer kill_timer iTimer iTimer Typ Integer 0 512 Mit dieser Funktion kann man einen laufenden Timer abbrechen Daf r wird der Timer Index iTimer ben tigt den man beim Ausf hren des Timers set_ timer zur ckgeliefert bekommt Es k nnen nur Timer abgebrochen werden die vom selben Plugin ausgef hrt wurden Beispiel aus plugin fun Funktion KillDisco for i 1 i lt iMaxPlayers i if playerinfo i Name MAX_NAME_LENGTH 1 glow Name 0 0 0 centersay Disco Is Dead 10 0 255 0 kill_timer iDiscoTimer Alle Pl tze des Servers werden berpr ft Falls ein Platz durch einen Spieler belegt wird wird ein eventuelles Gl hen abgestellt Eine zehnsek ndige Nachricht in Gr n verk n det dass Disco tot ist Anschlie end wird der Discotimer mit dem Index iDiscoTimer abgebrochen
107. 1 Admin Mod einrichten adminmod cfg 4 1 50 mysql_dbtable_ips nur MySQL Version mysql_dbtable_ips lt string gt Diese Variable legt fest in welcher MySQL Tabelle die IPs f r die Slotreservierung zu finden sind Ist kein Admin Mod MySQL installiert wird die Variable ignoriert ande renfalls wird ggf eine Definition von ips_ file bergangen Beispiel mysql_dbtable_ips am_ips 114 Admin Mod erwartet die Daten zur Slotreservierung f r IPs in der Tabelle am_ ips Siehe auch ips_ file mysql_ database mysql _dbtable_models mysql_dbtable_plugins mysql_dbtable_tags mysql_dbtable_ users mysql_dbtable_ words mysql host mysql_pass mysql_ preload mysql_tags_sql mysql_user mysql_users_ sql 4 1 51 mysql_dbtable_models nur MySQL Version mysql _dbtable_models lt string gt Diese Variable legt fest in welcher MySQL Tabelle die Modelreservierungen zu finden sind Ist kein Admin Mod MySQL installiert wird die Variable ignoriert anderenfalls wird eine Definition von models_ file bergangen Beispiel mysql_dbtable_models am models Admin Mod erwartet die Daten zur Modelreservierung in der Tabelle am models Siehe auch models file mysql_ database mysql_dbtable_ips mysql_dbtable_plugins mysql_dbtable_ tags mysql_dbtable_users mysql_dbtable_ words mysql host mysql_pass mysql_ preload mysql_tags sql mysql user mysql_users_ sql 41 4 Konfiguration 4 1 52 mysql_dbtable_plugins
108. 1513 get_userTeam UserName Team 1514 Team clamp Team 1 2 1 Zun chst wird das Team des Spielers ermittelt Anschlie end wird zur Vermeidung einer Feldadressierung au erhalb des g ltigen Bereichs 4 AMX_ERR_ BOUNDS die m g lichen Teams auf 1 und 2 begrenzt Zur weiteren Bearbeitung werden die Teamnummern dekrementiert Geh rt zu core inc Sieh auch f_max f min max min 210 186 187 188 189 190 191 8 10 Funktionsreferenz 8 10 15 consgreet consgreet sMessagel sMessage Typ String 256 Mit der consgreet Funktion kann man Nachrichten sMessage in der Konsole des Spielers anzeigen der sich gerade mit dem Server verbindet zum Lesen der Serverregeln etc Man kann mit der Funktion auch ein Textfile anzeigen lassen Dann muss sMessage den Pfad und die Textdatei mit Endung txt enthalten Inzwischen wird die Console beim Connect nicht mehr angezeigt Die Funktion ist daher als obsolet anzusehen Beispiel aus plugin_dale_consgreet Funktion plugin_ connect if fileexists consgreet txt 1 consgreet l 5 consgreet Server Stuff sD consgreet consgreet txt consgreet Zun chst wird berpr ft ob die Datei consgreet txt existiert Anschlie end wird eine berschrift generiert und der Inhalt der Datei consgreet txt in die Console geschrieben Eine Le
109. 177 8 8 3 Aul say ISSN r ne Ce ore T Ow HE HR er de 179 8 8 4 Spielerconnect abfangen a a 181 8 8 5 Timer verwenden 2 0 a a 182 8 8 6 Vote ausf hren oaoa ha 183 8 8 7 Vault File nutze isso A 185 8 8 8 Log D PENES oc ees ases ES ERS en 186 8 8 9 Menus MAZ ee EEE AA 189 A AI 193 8 9 1 SCHUNG lt a ee AS i a ES Be KG 194 8 9 2 A ibin gt e Y e E RE HOS Ore ww SS 195 8 9 3 a AA 195 8 9 4 COTEM o giene ra a ao Be a Mer 195 8 9 5 Oe ras ro A ES Ee es ee 196 8 9 6 a A 196 8 9 7 DUI IAS soe a a a a OR E a 196 8 9 8 SINE esos eRe eR REE KR EEE A AAA 197 amp 10 P nklionerelerene e e co ace bee ee a ne RR ES OR RS ee 198 SO ACCESS ee AG EG AGERE RED Ee RE 198 SII AU ee oe oe ae wm E Y ees Y Y Be He Se ee eee 199 SIOS Te oh a SA oe SES ee ee EAS REA RE ES 200 8 10 4 censor maras 201 SUIS CE ns ag ee ae et OE 44 eS ks 202 8 10 6 8 10 7 8 10 8 8 10 9 8 10 10 8 10 11 8 10 12 8 10 13 8 10 14 8 10 15 8 10 16 8 10 17 8 10 18 8 10 19 8 10 20 8 10 21 8 10 22 8 10 23 8 10 24 8 10 25 8 10 26 8 10 27 8 10 28 8 10 29 8 10 30 8 10 31 8 10 32 8 10 33 8 10 34 8 10 35 8 10 36 8 10 37 8 10 38 8 10 39 8 10 40 8 10 41 8 10 42 8 10 43 8 10 44 8 10 45 8 10 46 8 10 47 8 10 48 8 10 49 Inhaltsverzeichnis CONLEISAVER fog gk A eS ee we 203 changelevel un we kh wate hea ey oe ea ae 204 ChangeMap coins Se be be Bw ee eb wee Gd hee a de 204 check auch ers enw ade airada Bee a 205 check Terme
110. 2 vote_allowed 387 SM 21 QUESOS e soes A A A eS 388 8 11 Compiler Fehler und Warnungen 2 nn nn 389 8 12 Runtime Fehler 4 2 2 4 4 4 u a be ea Doe eS ae bee 390 8 13 LogD Events u u de Gee ba ae AA Won ara Pa aes 391 2 11 Properties im Stall s sa ke eh eee eda a 45 bE ne dG eh 393 Besondere Customplugins 394 Al Plugin sank pins eoste ae ae ase ee a ee a be Rae oes 394 ALI Fin 5 lt 4 4 44 4 6 4 odo a de be Ge HS 394 A12 Probleme a a a re Bw art Pe SH 395 2 pluen logd TO ss sema ee aa AE HR A RS AOE 396 A 2 1 Voraussetzungen u ou aus su ad aaa ee ee eo 397 A22 Einstellungen oo 0 ns an aa RRR na eS 397 XV Inhaltsverzeichnis ALO Probleme es cebras dect Bed oS 401 B Sonstiges 402 B 1 Was macht eigentlich Setinfo 2 2 o o 402 B 2 Interaktion zwischen HL Engine und GameDLL 403 B 3 Res Dateien oo nn 404 BA El SoUndsa a a ee Soh a he oe eon et 405 B 4 1 CUE 6 cn oa eee e ee o A 406 B 4 2 ainbience a u ae aa ea a a a Os ew oS G 406 Bakan a ce ee SE A o Ao o e NIEREN 407 B 4 4 ABOVE cerand ea Re ee ee ee 407 B 4 5 barnaele y Ge ale a dr dh oe wee lee 407 BAO E 407 BAr WN aaa ee a Te Ge He Se eS re 409 B 4 8 bullchicken s ara siroa ek ie a kee E a e a a a Sa 409 B 4 9 butbonse Dina ee ee Bok a te a lee ee 409 B410 common ee Ks u we ER ee anna 410 B411 controller r se aes we eee ananda are 410 BAI debis a ce vee ee St ve ek Se ee He BR a Ee
111. 4 1 30 amv_enable_beta amv_enable_ beta lt string gt Einige in Admin Mod eingebaute Funktionen haben nur Betastatus Daher sind sie zunachst deaktiviert Einige Plugins setzen solche Funktionen jedoch voraus oder man selbst will etwas damit experimentieren Momentan gibt es drei Betafunktionen Zur Aktivierung muss eine Zeichenfolge in Kom bination mit einer Zahl angegeben werden menul aktiviert die Men funktionen unter Admin Mod wird inzwischen von diversen Plugins ben tigt melog1 Es kommt immer wieder zu verlorenen Entities beim Laden einer Map fehlende Leiter fehlende Fenster Mit melog werden Verdachtsmomente in den Logs hinterlassen mefix1 Funktioniert wie melog nur dass statt eines Logeintrages versucht wird das Problem zu fixen Will man mehrere Eintr ge machen sind diese mit einem Doppelpunkt zu trennen z B melog1 mefix1 Ausschalten kann man die Funktionen durch 0 z B menu0 Bitte beachten dass es sich um Betafunktionen handelt es also theoretisch zu Problemen kommen kann Beispiel amv_enable_beta menul melog0 mefix0 Hiermit werden die Men s aktiviert und die Entity Funktionen deaktiviert Dies sollte so auch eingestellt werden Die Men s werden bereits vom plugin CS genutzt und die Entity Funktionen haben bislang nicht zum Erfolg gef hrt Siehe auch amv_hide_reserved_slots public_slots_ free reserve_slots reserve_type 30 4 1 Admin Mod einri
112. 4 while j gt 10 i 5 j Sek 13 6 7 8 return j 9 8 6 Direktiven Direktiven sind Anweisungen an den Compiler die nur zur Laufzeit des Compilers und nicht w hrend der Laufzeit des Plugins ber cksichtigt werden Es sollen an dieser Stelle nur die gebr uchlisten Direktiven in Admin Mod beschrieben werden 8 6 1 include include Include Datei oder lt Include Datei gt 174 CONDOR wam Hm 8 7 Funktionen und Events Mit der Include Direktive wird eine Include Datei mit seinen Funktionen in den Quellco de eingebunden Der Dateiname muss mit inc enden Diese Endung darf jedoch nicht in der Direktive auftauchen Ist der Dateiname in Klammern wird die Include Datei im Includes Verzeichnis gesucht w hrend sie ohne die Klammern im gleichen Verzeichnis wie die Quelldatei erwartet wird 8 6 2 define define KONSTANTENNAME Zahl Mit dieser Direktive werden wie bereits im Kapitel Datentypen Variablen und Kon stanten beschrieben Konstanten festgelegt 8 6 3 if elseif else und endif define TEST 1 if Test Small Code 1 elseif Test Small Code 2 else Small Code 3 endif Man kann damit tiber eine Konstante definieren welchen Code der Compiler fiir das Plugin nutzen soll Ich w rde das als Poor Man s Option bezeichnen F r den Enduser sollte man die Option blicherweise zur Laufzeit nderbar machen z B mit einem Admin Mod Befehl 8 7 Funktionen und Events Funktionen
113. 47 Die Funktion gibt die Position des angegebenen Spielers sPlayer auf der Map zur ck Die R ckgabe erfolgt in kartesischen Koordinaten x y z Beispiel aus plugin_ retribution Funktion admin _bury 507 get_userorigin TargetName x y 2 508 teleport TargetName x y z 25 Zun chst werden die Koordinaten des Spielers TargetName ermittelt Anschlie end wird er um 25 Einheiten tiefer gesetzt teleport Sofern sich der Spieler zu diesem Zeitpunkt nicht hoch in der Luft befindet wird er in den Boden versetzt so dass er sich nicht mehr bewegen kann Geh rt zu admin inc Siehe auch distance teleport 261 334 335 336 337 8 Scripting 8 10 82 get_userSessionID get_userSessionID sPlayer amp iSessionID sPlayer Typ String 33 amp iSessionID Typ Integer 0 2147483647 Liefert die Session ID des Spielers als Integerwert zur ck Die Session ID ist eindeutig und wird w hrend der gesamten Laufzeit des Servers nur einmal vergeben Die Nutzung der Session ID f r Plugins ist eher ungew hnlich da sie nur ber get_ username in einen Namen umgewandelt werden kann Beispiel aus plugin_spooge_AR Funktion HandleSay new SessionID get_userSessionID User SessionID numtostr SessionID CmdBuffer plugin_exec admin_slap CmdBuffer Die Session ID wird aus dem Spielernamen User ermittelt und anschlie end von einer Ganzzahl in einen String umgewandelt numtostr Abschlie
114. 55 plugin_registercmd menuselect menuselect ACCESS_ALL 57 return PLUGIN_CONTINUE 58 Es werden zwei Befehle registriert Zum einen ist das der Befehl admin_ test der die Men auswahl ffnet Damit nicht jeder ihn ausf hren kann wurde er nur demjenigen zugreifbar gemacht der Accesslevel 512 hat Zum anderen wird der Befehl menuselect registriert der f r alle Men auswahlen in Half Life verwendet wird Er darf nicht einge schr nkt werden ACCESS_ALL da ansonsten selbst das Team nicht ausw hlbar ist Beide Registrierungen verweisen auf entsprechende Funktionen test und menuselect 10 public test HLCommand HLData HLUsername UserIndex 11 new sUser MAX_NAME_LENGTH 12 convert_string HLUsername sUser MAX_NAME_LENGTH 13 new sMenu MAX_DATA_LENGTH sv_restart n1 10s n2 5s n3 2s n8 Close 14 giMenu UserIndex 1 15 menu sUser sMenu 135 16 return PLUGIN_HANDLED 17 Es wird der Username vom HL Format ins Small Format konvertiert Anschlie end wird der Men text mit einigen Umbr chen erstellt damit die Frage und die Optionen jeweils in einer eigenen Zeile stehen In Zeile 14 wird eine Zelle des globalen Feldes giMenu auf 1 gesetzt Der Zellenindex wird durch den Userindex definiert Auf diese Weise kann festgehalten werden ob sich der jeweilige Spieler gerade in einem Men befindet Das Feld giMenu wurde in Zeile 8 definiert und ist in allen Funktionen g ltig 8 new giMenu MAX_PL
115. 648128 Anhand des Bitmusters kann man die Funktionsweise von swapchars erkennen Geh rt zu core inc 8 10 200 systemtime systemtime Die Funktion liefert die Sekunden seit dem 1 1 1970 zur ck Beispiel aus plugin retribution Funktion admin_ gag if strlen strTime 0 new Time systemtime GagTime strtonum strTime 60 GagTime Time Wenn der String strTime nicht leer ist wird die aktuelle Sekundenzahl ermittelt An schlie end wird der String strTime in eine Zahl umgewandelt und mit 60 multipliziert Abschlie end wird die Sekundenzahl zur Variable GagTime addiert Geh rt zu admin inc Siehe auch servertime 377 8 Scripting 8 10 201 teleport teleport sPlayer iX iY iZ sPlayer Typ String 33 iX Typ Integer 2147483648 2147483647 iY Typ Integer 2147483648 2147483647 iZ Typ Integer 2147483648 2147483647 Diese Funktion teleportiert einen Spieler sPlayer zu den angegebenen Koordinaten iX iY iZ Wenn admin_ fx in der adminmod cfg aktiviert wurde gibt es zus tzliche Effekte Valide Koordinaten kann man ber die Funktion get_userorigin erhalten Beispiel aus plugin_ retribution Funktion admin _ bury 507 get_userorigin TargetName x y Z 508 teleport TargetName x y z 25 Zun chst werden die Koordinaten des Spielers TargetName ermittelt get__userorigin Anschlie end wird er um 25 Einheiten tiefer gesetzt Sofern sich der Sp
116. 7 Die Funktion gibt die WONID iWONID des Spielers sPlayer als Integerwert zu r ck Da das WON System von Valve inzwischen durch Steam ersetzt wurde ist die Funktion nutzlos geworden Statt dessen sollte get_ user AuthID genutzt werden Beispiel aus plugin_sdal_look Funktion ann_ timer get_userWONID Player iWon if iWon 0 numtostr iWon strWON Auf Basis des Spielernamens Player wird seine WONID iWon ermittelt Falls die WONID nicht 0 ist wird sie in einen String umgewandelt Geh rt zu admin inc Siehe auch get _userAuthID playerinfo Uhttp www valvesoftware com Bnttp store steampowered com about http www adminmod de plugins php plugin plugin_sdal_look 264 8 10 Funktionsreferenz 8 10 85 get_vaultdata get_vaultdata sKey sData iMaxLength sKey Typ String 100 sDatal Typ String 200 iMaxLength Typ Integer 0 200 Die Funktion liest die Daten die unter dem Schl ssel sKey stehen als String sData aus der vault ini aus Die Daten bleiben ber einen Mapchange bzw einen Serverneu start erhalten Das Schl ssel Daten Paar wird mit set_ vaultdata oder set vaultnumdata angelegt Die Funktion ist ideal um pluginspezifische Einstellungen zu speichern Wei man bereits dass die ausgelesenen Daten als Ganzzahl vorliegen sollte man der Funktion get_ vaultnumdata den Vorzug geben Beispiel aus plugin retribution Funktion AddUserFlag if ge
117. 7 38 39 40 41 42 43 44 45 46 47 48 49 50 5l 52 53 54 55 56 57 58 52 8 Scripting new sUser MAX_NAME_LENGTH convert_string HLUsername sUser MAX_NAME_LENGTH new sMenu MAX_DATA_LENGTH sv_restart nl 10s n2 5s n3 2s n8 Close giMenu UserIndex 1 menu sUser sMenu 135 return PLUGIN_HANDLED public menuselect HLCommand HLData HLUserName UserIndex 4 new sOption MAX_DATA_LENGTH new iOption if giMenu UserIndex convert_string HLData sOption MAX_DATA_LENGTH iOption strtonum sOption switch i0ption case 1 setstrvar sv_restart 10 case 2 setstrvar sv_restart 5 case 3 setstrvar sv_restart 2 giMenu UserIndex 0 return PLUGIN_HANDLED return PLUGIN_CONTINUE public plugin_disconnect HLUserName UserIndex giMenu UserIndex 0 return PLUGIN_CONTINUE public plugin_connect HLUserName HLIP UserIndex giMenu UserIndex 0 return PLUGIN_CONTINUE public plugin_init plugin_registerinfo Test Testplugin 1 0 plugin_registercmd admin_test test ACCESS_CONFIG Ein Menue plugin_registercmd menuselect menuselect ACCESS_ALL return PLUGIN_CONTINUE Zun chst soll wieder mit der plugin init begonnen werden public plugin_init 190 8 8 Tutorial 53 plugin_registerinfo Test Testplugin 1 0 54 plugin_registercmd admin_test test ACCESS_CONFIG Ein Menue
118. 8 7 1 Beispiele f r Events von Admin Mod Zun chst startet Metamod Admin Mod Admin Mod l dt seine Plugins in der Reihen folge wie sie in der plugin ini stehen und f hrt jeweils die plugin init Funktion aus Die plugin _ init sollte so programmiert sein dass Pluginname Beschreibung Version und ggf zu registrierende Befehle an Admin Mod zur ckgegeben werden Admin Mod wei nun welche Befehle es an das Plugin weiterleiten soll Kommt ein Spieler auf den Server ruft Admin Mod die Funktion plugin connect auf sofern im Plugin definiert und f hrt die angegebenen Aktionen durch Wird ein im Plugin definierter Befehl aufgerufen wird die zugeh rige Funktion auf gerufen die sofern der Accesslevel des Spielers ausreicht ausgef hrt wird Das Plu gin meldet zur ck ob Admin Mod noch andere Plugins abfragen soll return PLU GIN_CONTINUE oder ob Admin Mod die weiteren Plugins bergehen soll return PLUGIN_ HANDLED 8 8 Tutorial In diesem Tutorial wird auf das Grundger st aufgebaut und die wichtigsten Funktionen und Events sowie deren Anwendung vorgestellt 8 8 1 Basis Small bzw Admin Mod erwarten ein gewisses Grundger st damit sie das compilierte Plugin akzeptieren 176 oosoauvrwumHm Ae 0N A 7 8 8 Tutorial tinclude lt core gt include lt string gt include lt admin gt include lt adminlib gt public plugin_init plugin_registerinfo Testplugin Ein Testplugin 1 0 return PLUGIN_CON
119. A 2 plugin_logd_ffmon Das Plugin_logd_ffmon reagiert auf Teamkills TK und Teamattacken TD die bei Counter Strike unerw nscht sind Es zeichnet sich durch einen gro en Umfang und eine reichhaltige Funktionspalette aus e Reaktion auf Teamkills TK und Teamattacken TD e Gibt dem Opfer eines TK mehrere M glichkeiten auf den TK zu reagieren oder zu vergeben auch mittels Men bedienbar Ab einer bestimmten TK Anzahl wird der TKer vom Server gebannt Ab einer bestimmten TD Anzahl wird dieser als unvergebener TK gewertet e Verscharfte Bestrafung kurz nach dem Rundenstart e Speichert TK ber einen langen Zeitraum e Bei unterschiedlich starken Teams besteht M glichkeit zum Mapwechsel nach fest gelegter Rundenzahl e Admin Immunit t m glich e Spielstandsanzeige am Rundenende e Mapvote nach einer bestimmten Rundenanzahl m glich Das Script ist aus der Konsole heraus voll konfigurierbar Es greift dabei auf die Datei vault ini zur ck Aufgrund seines Umfanges und seiner Flexibilit t ist es jedoch oftmals falsch konfiguriert und funktioniert dann nicht wunschgem Dem Opfer eines TKs steht je nach Einstellung entweder ein Men zum Bestrafen bzw Vergeben zur Verf gung oder er gibt ein entsprechendes Wort in den Chat ein forgive bury slap slay kick ban oder chicken Reagiert das Opfer nicht so gilt der TK als unvergeben Besteht die M glichkeit ei nes Banns so kann dieser im Falle der Ungerechtfertigt
120. AX_NAME_LENGTH get_userinfo hltvname hdelay hltvdelay MAX_NAME_LENGTH get_userIP hltvname hltvip MAX_IP_LENGTH iPort Das erste get__userinfo ruft die belegten Slots des HLTV Servers das zweite die maximale Slotzahl und das dritte den eingestellten Delay in Sekunden ab Die Variablennamen der Schl sselnamen stimmen mit ihrem Inhalt berein hspecs z B hat den Inhalt hspecs Anschlie end wird noch die IP Adresse des HLTVs ermittelt get_userIP Geh rt zu admin inc Mhttp www adminmod de plugins php plugin plugin_bk_hltvannounce 258 8 10 Funktionsreferenz 8 10 79 get_userlP get_userIP sPlayer sIP iMaxLength amp iPort 0 sPlayer Typ String 33 sIp Typ String 22 iMaxLength Typ Integer 0 22 amp iPort 0 Typ Integer 0 65535 Diese Funktion liefert die IP des Spielers als String sIP auf Basis des Namens sPlayer Neben der IP wird auch der genutzte Port iPort ausgegeben Beispiel aus plugin_bk_hltvannounce Funktion hltvconnect 205 get_userIP hltvname hltvip MAX_IP_LENGTH iPort 206 get_userinfo hltvname hslots hltvinfo MAX_NAME_LENGTH 207 ihltv strtonum hltvinfo 208 get_userinfo hltvname hspecs hltvinfo MAX_NAME_LENGTH 209 ihltv strtonum hltvinfo Zun chst wird die IP des HLTV Servers ermittelt Anschlie end werden die genutzte und die maximale Slotzahl ermittelt Aus der Subtraktion ergibt sich die Anzahl der freien Pl tze auf dem HL
121. AYERS Schlussendlich wird nun beim aufrufenden Spieler ein Men mit dem angegebenen Text ausgegeben Zeile 15 menu Es wird dabei auch festgelegt welche Men auswahlen erlaubt sind Bei den Optionen 1 2 3 und 8 ergibt sich git gl 2951 91 2 149542198 135 Genaueres dar ber ist der Funktionsbeschreibung von menu zu entnehmen Andere Aus wahlm glichkeiten sind geblockt w hrend das Men ge ffnet ist Um die Men auswahl auszuwerten wird die Funktion menuselect ben tigt 19 public menuselect HLCommand HLData HLUserName UserIndex 20 new sOption MAX_DATA_LENGTH 21 new iOption 22 if giMenu UserIndex 23 convert_string HLData sOption MAX_DATA_LENGTH 24 i0ption strtonum sOption 25 switch i0ption 26 case 1 191 8 Scripting 27 setstrvar sv_restart 10 28 29 case 2 30 setstrvar sv_restart 5 31 32 case 3 33 setstrvar sv_restart 2 34 35 36 giMenu UserIndex 0 37 return PLUGIN_HANDLED 38 39 return PLUGIN_CONTINUE 40 gt Wichtig zu beachten ist dass diese Funktion durch alle Auswahlen ausgef hrt wird Daher sollte der Code minimiert werden der ausgef hrt wird wenn das eigene Plugin nicht gemeint ist Daher wird zun chst berpr ft ob die die Zelle des Feldes giMenu auf 1 gesetzt ist Zeile 22 der Spieler sich also im eigenen Men befindet Anderenfalls wird der menuselect Befehl durchgelassen Hier ist auch das PLUGIN_CONT
122. Abbildung 4 1 Dabei ist zu beachten dass solange der connec tende Admin nicht ins Spiel eingestiegen ist er den Slot f r weitere Admins blockiert Diese Einstellung hat den gro en Charme dass man als Admin stets auf den Server kann allerdings steht dauerhaft ein Slot weniger f r alle Spieler zur Verf gung Dies ist die beliebteste Einstellung 4 4 4 3 reserve_type 2 Unter Annahme des Beispiels aus reserve_type 0 w rde ein Admin bei der Einstellung 2 vorzugsweise einen reservierten Platz einnehmen Sind 3 Admins auf dem Server alle 14 Pl tze sind belegt und ein Admin der einen reservierten Slot hatte geht vom Server bekommt der Admin auf dem ffentlichen Platz den reservierten zugewiesen Es ist dann also wieder ein ffentlicher Platz frei s a Abbildung 4 1 Die Einstellung 2 hat den Vorteil dass sofern nicht der Server voll ist immer Admins auf den Server kommen k nnen Allerdings kann man die volle Slotanzahl auf dem Server nur nutzen wenn auch mindestens soviele Admins wie reservierte Pl tze spielen Ist der Server voll kann auch kein Admin mehr connecten Die Einstellung lohnt sich wenn wenige Admins h ufig spielen 12 Legende Admin auf dem Server reserv oder ffentl Slot oder au erhalb des Servers Normaler Spieler auf dem Server ffentlicher Slot oder au erhalb des Servers L Freier ffentlicher Serverslot U Freier reservierter Serverslot N here Beschreibung der Be
123. Admin Mod Kompendium Falko Hartmann aka WING Black Knight 10 03 2012 Inhaltsverzeichnis 1 Einleitung 1 1 Vorwort 1 2 Wasist Admin Mod es a spieda rog ardia pedo a eS 13 Warum nicht ein anderes Plugin nutzen aoaaa 2 Historie 3 Installation 34 VOLANTE Cisco Bk pee Bh eee ee eee AAA oe Installation Windows cecs eck ea drama ed 3 3 Installation Linux FreeBSD u ae ada a grs a HA ah 34 MySQL PostgreSQL Installation s co eune eeeeedhoe e ewe es 3 5 Verzeichnisstruktii oir un GAR RG RG HES a A Gard we oc Admin Mod mit BOS ar een eRe a e REP ee he er 4 Konfiguration 4 1 Admin Mod einrichten adminmod cfg 4 1 1 admin balance teams css rca oe SY 4 152 admin Dot Probeekian 2 lt 4 4 oa a da en a BOSS 4 1 3 admin connect msg a o orao er nee 4 1 4 admin_cs_restrict su cem rka k g io aee p a k eE 4 1 5 admin debug s e s a e re a ne HE a A ED 4 1 6 admin devel ssas i wu ak Burma e bare 4 1 7 admin fum mode sse s esta so a a a Ang a 4 1 8 IdM E oore e ae et e 20 Gs an cee Ge pe a ee GO 4 1 9 Admin gag DAME scsi rr hed be bad he eS 4 1 10 admin gag sayteam s coc ed AA 4 1 11 admin highlander u soss circa fans 4 1 12 admin ignore mm cia oe oe ee e ee ALi admin plugin Mle ee ees ee dc nee 4 1 14 admin_reconnect_timeout 0 a 41145 admin reject TSE lt lt ek a a wre 4 1 16 admin repeat_freqg aooaa 4 1 17 admin repeat _ msg er Bu era AA 4 1 18 admin gui
124. Data wird m glicher Anf hrungszeichen befreit und ausgegeben Anschlie end wird der Text inklusive Admin und dem genutzten Befehl in die Logdateien geschrieben Geh rt zu adminlib inc Siehe auch format_ command log say_ command 284 17 8 10 Funktionsreferenz 8 10 107 look_in_dir look_in_dir sDirectory sMatch sFilename iNumber sDirectory Typ String 100 sMatch Typ String 100 sFilename Typ String 100 iNumber Typ Integer 0 2147483647 Diese Funktion ist nur unter dem Betriebssystem Windows m glich Unter Angabe des Verzeichnisses sDirectory wird berpr ft ob eine Datei unter Angabe eines Musters sMatch existiert Wenn dies der Fall ist wird der Dateiname an einen String sFileNa me bergeben Es ist auch m glich als Joker im Muster zu verwenden Die Ausgabe des x ten Eintrags kann ber iNumber eingestellt werden Beispiel aus plugin rules Funktion showrules new i 0 rulefound look_in_dir rules cfg strRule i while rulefound 1 amp amp i lt 100 len strlen strRule 3 strncpy strRule strRule len len selfmessage strRule i rulefound look_in_dir rules cfg strRule i Es wird im Verzeichnis rules nach allen Konfigurationsdateien cfg gesucht Dabei wird das erste Vorkommen i in strRule zur ckgegeben In einer While Schleife werden weitere Dateien ermittelt Dabei wird vor der Ausga
125. ENGTH 12 13 if streq sCommand userlist 1 14 userlist sData 15 return PLUGIN_HANDLED 16 17 18 return PLUGIN_CONTINUE 19 gt Da der Befehl immer say oder say _team lautet muss man erst sData trennen um an den eigentlichen Befehl heranzukommen 11 strsep sData sCommand MAX_COMMAND_LENGTH sData MAX_DATA_LENGTH 180 8 8 Tutorial Mit strsep wird der String sData am ersten Leerzeichen in sCommand und sData getrennt sData wird dabei berschrieben Man muss jeweils auch die maximale Lange des Strings angeben Anschlie end wird der Befehl in sCommand berpr ft ob er mit userlist identisch ist streq Wenn dies der Fall ist wird die Spielerliste ausgegeben und nicht weitergesucht PLUGIN_HANDLED Das bedeutet auch dass die Nachricht nicht im Chat ankommt Admin Mod gibt die Nachricht nicht an den Server weiter Ist sCommand nicht mit userlist identisch gibt Admin Mod die Nachricht an das n chste Plugin oder an den Server weiter Sofern also kein anderes Plugin die Weiterleitung blockiert landet sie beim Serverchat 8 8 4 Spielerconnect abfangen Es k nnte von Interesse sein eine Aktion durchzuf hren wenn ein Spieler den Server betritt Im folgenden Plugin soll in den Logfiles gespeichert werden welcher Slot beim Connect besetzt wird 1 include lt core gt 2 include lt string gt 3 include lt admin gt 4 include lt adminlib gt 5 6 publ
126. Fehlermeldung an den Admin aus gegeben Anderenfalls wird die Person get tet Wenn die Aktion erfolgreich war wird dar ber hinaus ber eine pluginspezifische Funktion PlaySoundToAll eine Sounddatei bei allen Spielern abgespielt Geh rt zu admin inc Siehe auch slap teleport 337 3641 3642 3643 3644 3645 3646 3647 3648 8 Scripting 8 10 160 snprintf snprintf sDest iLength sFormat sDest Typ String 200 iLength Typ Integer 0 200 sFormat Typ String 200 variable Anzahl an Argumenten kommagetrennt Mit dieser Funktion k nnen auf einfache Weise Variablen unterschiedlicher Datentypen in einen String sDest mit L nge iLength eingebettet werden ber einen weite ren String sFormat wird festgelegt wie die Variablen eingebunden werden sollen Die Reihenfolge der Platzhalter im Format String muss der Reihenfolger der Argumente im Anschluss an selbigen entsprechen Folgende Platzhalter stehen zur Verf gung c Einzelnes Zeichen d Ganzzahl man sieht oft i was aber nicht korrekt ist aber trotzdem funktioniert q Festkommazahl s Zeichenkette String Beispiel aus plugin blatt_map Funktion DebugHeap DebugHeap context 4 if g_DebugLevel gt 2 new heapsize MAX_TEXT_LENGTH snprintf heapsize MAX_TEXT_LENGTH s i free bytes context heapspace plugin_message heapsize return 0 Wenn der in der globalen Variable g_DebugLevel
127. Funktion keine Zufallszahlen erwarten die wissenschaftlichen Anspr chen gen gen Aber daf r ist sie bei Admin Mod auch nicht gedacht Beispiel aus plugin fun Funktion DiscoInferno for i 1 i lt iMaxPlayers i if playerinfo i Name MAX_NAME_LENGTH 1 Red random 256 Green random 256 Blue random 256 glow Name Red Green Blue Mittels For Schleife und der Funktion playerinfo werden alle Serverslots auf existierende Spieler berpr ft Ist ein Spieler gefunden worden werden f r jeden Farbanteil eine Zufallszahl fiir den Bereich 0 bis 255 erzeugt Der Spieler gliiht dann in der Farbe die sich aus den Zufallszahlen ergab glow Geh rt zu core inc 317 8 Scripting 8 10 141 readfile readfile sFilename sLine iLineNum iMaxLength sFilename Typ String 200 sLine Typ String 200 iLineNum Typ Integer 0 2147483647 iMaxLength Typ Integer 0 200 Mit dieser Funktion kann eine Zeile iLineNum aus einer Datei sFilename ausgelesen werden Die Zeile darf nicht l nger als 200 Zeichen sein iMaxLength Die R ckgabe wird in der Variable sLine gespeichert Die Funktion ist sehr zeitintensiv da gewartet werden muss bis der Festplattenzugriff erfolgt ist L dt man mehrere Zeilen mit einer For Schleife wird bei jeder Zeile die Datei neu ge ffnet was weitere Verz gerungen verursacht Man sollte sich daher genau ber legen ob man diese Funktion nutzen m cht
128. G meta interface version mismatch Erweiterungen 71 LogDaemon bee Lis sic RARER aaa ERE EEE OES Li Installation es A A re ee Ae a SE 7 1 2 Variablen A we edhe we eh Ge we De ee Pe EE ee Ca logd debea es cae ae ee ed ee dee Sd Pe TL22 logd NET ea aaa en PR ah 1 18 Befehle sa reon k 2 aha Pilal logd plock s vun s pora BESS ie a e PRESS TL32 logd TRE ao he ee AAA 113 logd reginio lt a era AE 1134 logd stat s we se Ae eRe A ERE GE MOE HER IX Inhaltsverzeichnis 14 Performance und Plattenplatz 166 T 2 StatsMe e co ko cona a eaaa ee ae es es 167 Tal Installation und Konfiguration 0 167 1 2 2 Performance und Platienplatz gt 222 2 eee eee es 167 Geos HLEA 222 be BS eee Ke eRe RD OE A 168 TA Metamod Pies s i erge hee ee BR eee Ree eee ee eR 168 8 Scripting 169 en Sr ee Se ee ee OO ee 169 8 2 Datentypen Variablen und Konstanten 0 0 4 170 AE 4 4 44 44 a OSES 171 CA NIEREN eo ee eee ee aE Dee lehren eg 172 a OO gt rara a en BG ES 173 So III bce nn ee a ae e a a Ge HAY A a 174 8 6 1 CWS en Gee ee g a ee 174 8 6 2 eat ee Ro ee Oe Ar a 175 8 6 3 if elseif else und endif 0 2 0 0 0 0 083 175 8 7 Funktionen und Events ss aoso ssa gda reo oo A 175 8 7 1 Beispiele f r Events von Admin Mod 176 SS Tutorial s a HR o e ee CRO OH OSE RSS 176 8 8 1 Basis ague OE a a aa E 176 8 8 2 Befehle registrieren oaao none
129. Ganze auch mit den Tags weitertreiben und diese an bestimmte Gruppen binden etc Betreibt man eine Community k nnte man auch auf Passw rter verzichten wollen Dann muss man aber m hsam die Abfrage des Usernamens unterbinden SELECT AS pass u2 pf_user_amaccess AS access FROM s AS ul phpbb_profile fields_data AS u2 WHERE ul user_id u2 user_id AND s s AND u2 user_steamid s Es ist aber auch weiterhin zumindest bei der bertragung das Passwort in einen MD5 Hash umzuwandeln u2 pf_user_password AS pass MD5 u2 pf_user_password AS pass Dann muss aber auch encrypt_password 2 eingestellt werden 4 12 2 Nutzung von Views Je komplexer die Abfrage ist desto schwieriger wird es die von Admin Mod aufgezwunge Syntax einzuhalten Seit MySQL 5 0 1 ist es m glich sogenannte Views zu erstellen die die komplexe Abfrage aufnehmen und somit Admin Mod nur noch mit der Standardab frage genutzt werden muss Zun chst das Beispiel f r die Einrichtung eines Views mit Passwortabfrage und aus schlie licher Steam ID Nutzung CREATE VIEW am_users AS SELECT u2 pf_user_steamid AS nick u2 pf_user_password AS pass u2 pf_user_amaccess AS access FROM phpbb_users AS ul phpbb_profile_fields_data AS u2 WHERE 88 4 12 Beispiel Admin Mod in phpBB integrieren MySQL ul user_id u2 user_id oder in diesem Fall ohne Passwortabfrage CREATE VIEW am_users AS SELECT u2 pf_user_steamid AS nick AS pass u2 pf_user_amacces
130. HLUserName UserIndex if hltvid UserIndex hltvid 0 hltvteam 0 if LANG typesay Der HLTV ist jetzt offline 3 181 40 44 else typesay The HLTV is offline 3 181 40 44 endif return PLUGIN_CONTINUE Falls es sich beim bergebenen Userindex UserIndex um den des HLTV Servers hltvid handelt wird Verlassen des HLTV Servers mit typesay bekannt gegeben Die Sprache wird beim Compilieren des Plugins durch die Direktive LANG eingestellt Geh rt zu admin inc Siehe auch plugin command plugin connect plugin_info plugin_ init 32http www adminmod de plugins php plugin plugin_bk_hltvannounce 306 628 629 630 631 8 10 Funktionsreferenz 8 10 129 plugin_exec plugin_exec sCommand sArguments sCommand Typ String 30 sArguments Typ String 200 Um zu verhindern dass man mit der Funktion exec plugin bergreifend das Rechtesystem untergrabt wurde plugin_ exec eingef hrt Diese Funktion berpr ft ob der ausf hrende Spieler auch die Rechte f r den Befehl des anderen Admin Mod Plugins hat Beispiel aus plugin_cw__creator Funktion warmup _ end if plugin_checkcommand cwc_addon_start iAccess gt 0 plugin_exec cwc_addon_start iAccess 0 In diesem Beispiel wird ausgewertet ob mindestens ein Plugin den Admin Mod Befehl cwc_ addon start registriert hat Falls mindestens ein Plugin gefunden wurde wird der Befehl mit plugin_exec ausgef hrt Der B
131. ID eine IP oder ein Name angegeben werden Beim Namen gen gt auch ein eindeutiger Teil des Namens Beispiele admin _execlient Need Coffee cd eject admin _execlient Big cd eject admin _execlient STEAM_0 123456 cd eject admin_execlient 23 156 43 12 cd eject Im ersten Beispiel f hrt die Lade des CD DVD Laufwerks des Spielers Need Coffee aus sofern dieser nicht immun dagegen ist Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 65536 Geh rt zu plugin_retribution Siehe auch admin_execall admin_execteam allow__client_ exec 5 10 4 admin_execteam admin execteam lt Teamnummer gt lt Befehl gt Der Befehl admin_execteam f hrt bei allen Spielern eines Teams den gew nschten Be fehl aus Um den Befehl berhaupt ausf hren zu k nnen muss auch allow_client_ exec aktiviert bzw bei etwaigen Bots admin_bot_ protection deaktiviert worden sein Befeh le werden zudem nicht an einen HLTV weitergeleitet Voraussetzung ist nat rlich dass es bei der Modifikation berhaupt Teams gibt Die Ausf hrung einiger Client Befehle wird von Admin Mod selber unterbunden um Spieler vor Amok laufenden Admins zu sch tzen Beispiel admin _execteam 1 cd eject 149 5 Standardplugins und Befehle Dies f hrt bei allen nicht
132. INUE am Ende der Funktion wichtig Ein PLUGIN_HANDLED w rde die weitere Ausf hrung des menuselect Befehls unterbinden Nachdem die berpr fung positiv verlaufen ist wird die bergebene Option HLData in sOption konvertiert und anschlie end in eine Ganzzahl umgewandelt Die Switch Verzweigung verweist auf setstrvar Funktionen mit unterschiedlichen Werten f r die Servervariable sv_restart wie sie im Men text angegeben waren Wenn diese gesetzt werden erfolgt ein Restart nach der angegeben Anzahl an Sekunden Entspricht iOp tion keiner Option wird daf r kein Code ausgef hrt Das Men wird aber nach jedem menuselect automatisch geschlossen Die Angabe von der Option 8 schlie t also nur das Men Dem Feld giMenu muss noch mitgeteilt werden dass der Spieler das Men verlassen hat Daher wird die dem Spieler zugewiesene Zelle auf 0 gesetzt Zeile 36 Die weitere Ausf hrung von menuselect wird mit PLUGIN_HANDLED unterbunden da das Men abgearbeitet wurde Es gibt F lle wo der Spieler das Spiel bei offenem Men beendet Es verbleibt eine 1 im Feld die derjenige erbt der in den gleichen Slot kommt public plugin_disconnect HLUserName UserIndex giMenu UserIndex 0 return PLUGIN_CONTINUE public plugin_connect HLUserName HLIP UserIndex giMenu UserIndex 0 return PLUGIN_CONTINUE 192 8 9 Includes Aus diesem Grunde ist es notwendig plugin disconnect zu definieren damit bei jedem Disconnect die Z
133. IP den Namen oder einen eindeutigen Namensteil erkannt werden Damit der Befehl funktioniert muss allow client exec aktiviert worden sein Beispiele admin_ct Ich bin kein Terrorist admin_ct Big admin_ct STEAM_0 123456 admin_ct 23 156 43 12 Im ersten Beispiel wird der Spieler mit dem Namen Ich bin kein Terrorist zu den Counter Terroristen verschoben Im n chsten Beispiel wird der Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt zu den Counter Terroristen verschoben Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 128 Geh rt zu plugin_ CS Siehe auch allow _client _exec admin_t 125 5 Standardplugins und Befehle 5 6 8 admin_fadetoblack admin fadetoblack 0 1 Dieser Befehl setzt die Servervariable mp_ fadetoblack Stirbt man wird der Bildschirm schwarz so dass man das Spielgeschehen nicht mehr verfolgen kann In einigen wenigen Ligen ist die Aktivierung 1 Pflicht Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin fadetoblack 1 admin _fadetoblack 0 admin fadetoblack Im ersten Beispiel wird das Schwarzwerden des Bildschirms beim Ableben aktiviert im zweiten deaktiviert Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 5 6 9 admin_flashlight admin
134. Integer 0 2147483647 Die Funktion liefert eine 1 zur ck wenn die Person die diese Funktion aufgerufen hat den Accesslevel iAuthlevel besitzt andernfalls eine 0 Mit der Funktion access k nnen auch die Rechte anderer ermittelt werden Beispiel aus plugin base Funktion admin_rcon if check_auth ACCESS_RCON 0 selfmessage Laf Silly bear return PLUGIN_HANDLED Um zu verhindern dass jemand auf die Idee kommt aus der Serverconsole den Befehl admin rcon aufzurufen was m glich aber unsinnig ist wurde eine Abfangroutine imple mentiert Nur wenn der User den Access Level 65536 ACCESS_RCON besitzt wird der RCon Befehl ber Admin Mod abgesetzt Anderenfalls wird man etwas unh flich auf das unsinnige Ansinnen hingewiesen Geh rt zu adminlib inc Siehe auch access auth check_immunity 205 8 Scripting 8 10 10 check _immunity check immunity sTarget sTarget Typ String 33 Die Funktion berpr ft ob der Spieler sTarget den Rechtelevel f r Immunit t 4096 besitzt Dieses und andere Rechtelevel lassen sich auch mit der Funktion access ber pr fen Beispiel aus plugin base Funktion admin ban if check_immunity ban_user 1 snprintf Text MAX_TEXT_LENGTH Laf You can t ban s TargetName messageex User Text print_chat else ban ban_user BanTime iBanType Zun chst wird berpr ft ob der zu bannende Spieler immun gegen Aktionen ihn be
135. Integer 0 255 iGreenEnd Typ Integer 0 255 iBlueEnd Typ Integer 0 255 Mit dieser Funktion kann man eine Nachricht sText mit Farbverlauf in der Mitte des Bildschirmes produzieren Das Argument iTime legt die Anzeigezeit in Sekunden fest Die Start und die Endfarbe werden in RGB vorgegeben iRedStart iGreenStart iBlueStart bzw iRedEnd iGreenEnd iBlueEnd Es ist kein Zeilenumbruch mit n m glich 315 155 156 157 158 159 160 161 162 163 164 165 8 Scripting Beispiel aus plugin _budfroggy_rainbow Funktion admin_rsay if ici 1 amp amp ic2 1 rainbow Text 10 iRedS iGreenS iBlueS iRedE iGreenE iBlueE Jelset iRedS 255 iGreenS 10 iBlueS 10 iRedE 10 iGreenE 10 iBlueE 255 rainbow Data 10 iRedS iGreenS iBlueS iRedE iGreenE iBlueE Falls Farben definiert wurden icl und ic2 m ssen 1 sein wird die Nachricht f r zehn Sekunden mit diesem Farbverlauf dargestellt Anderenfalls wird ein Verlauf von Rot nach Blau durchgef hrt Geh rt zu admin inc Siehe auch centersay typesay 38http www adminmod de plugins php plugin plugin_budfroggy_rainbow 316 8 10 Funktionsreferenz 8 10 140 random random max max 937 938 939 940 941 942 943 944 Typ Integer 1 bis 2147483647 Die Funktion gibt eine Pseudo Zufallszahl zur ck Der Bereich der Zufallszahlen ist zum einen durch 0 und zum anderen durch max 1 begrenzt Man darf von dieser
136. Interaktion mit Admin Mod bem hten wurden mit Clanmod und AMXMod eigenst ndige Metamodplugins entwickelt die eine hnlich Funktionalit t auf wiesen wie Admin Mod Hierbei wurde aber auch schon tiefgreifend ins Spielgeschehen eingegriffen was hingegen bei der Admin Mod Entwicklung bewusst vermieden und unterbunden wurde Im August 2004 wurde die bislang letzte Admin Mod Version ver ffentlicht Einige Wiederbelebungsversuche z B die Portierung auf die Source Engine oder eine eigenes Eventsystem verliefen im Sande so dass die Entwicklung sich auf den Scriptingbereich beschr nkte Nachdem AMXMod und AMXModX inzwischen Admin Mod den Rang abgelaufen haben sind im Wesentlichen nur noch zwei Personen im Support von Admin Mod brig geblieben Sir Drink a lot und ich Admin Mod wird zwar heute 2009 nicht mehr oft benutzt ist aber weiterhin voll funktionst chtig Resourcenschonung und die eingeschr nkten Eingriffsm glichkeiten in die Spielphysik sind ein wesentliches Plus das oft bersehen wird 3 Installation 3 1 Voraussetzungen 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 aus geschlossen werden dass Admin Mod f lschlicherweise f r etwaige bestehende Probleme verantwortlich gemacht wird Das erspart rger und pei
137. LogD braucht Statsme etwas Rechenleistung Da im Hintergrund deutlich mehr ver arbeitet 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 Psychostats 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 http www unitedadmins com index php p content amp content statsme Shttp www psychostats com 167 7 Erweiterungen Statistikprogramme verzichten will oder kann 7 3 HLStats Bei HLStats 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
138. Mit der damals neu aufgesetzten deutschen Webseite www adminmod de wollten wir den deutschen Nutzern eine verbesserte Dokumentation zukommen lassen Die gesamte Beschreibung der Installation und Konfiguration wurde auf unseren HTML Seiten dargestellt was letztlich zu stark reduzierten R ckfragen im Forum f hrte Vielfach kam der Wunsch auf dass wir doch das Ganze zum Download anbieten m chten Aber wer hat schon Lust die gesamte Dokumentation nochmal in ein anderes Format zu gie en Dokumentation schreiben ist n mlich das nervigste an der gesamten Program mierarbeit Ich experimentierte daher ein wenig mit LaTeX um mir durch automatische Konvertierung die Arbeit zu erleichtern ohne jedoch wesentliche Fortschritte zu machen So blieb das Projekt erst einmal liegen Irgendwann holt einen dann auch noch das echte Leben Real Life ein und man stellt fest dass man f r vieles was einem bisher wichtig erschien immer weniger Zeit aufwen den kann und will Dar ber hinaus schwindet allm hlich das Interesse der Community an Admin Mod Da aber immer noch viele Leute Interesse an Admin Mod haben w re es meiner Meinung nach schade wenn mein gesamtes Wissen einfach verschwinden w rde Vieles davon geht ber das hinaus was in den Anleitungen steht So haben z B bislang wenige Leute Admin Mod mit einem Webforum verkn pft Ich habe daher die Arbeit am Kompendium wieder aufgenommen Ich wollte die auf adminmod de gesammelten Informatione
139. P verwenden Dies bestimmt auch in welche Banliste der Eintrag eingef gt wird Entweder banned cfg oder listip cfg Der Spieler wird zus tzlich sofort vom Server gekickt Beispiel aus plugin base Funktion admin_ ban if check_immunity ban_user 1 snprintf Text MAX_TEXT_LENGTH You can t ban s TargetName messageex User Text print_chat 74 else ban ban_user BanTime iBanType Zun chst wird berpr ft ob der zu bannende Spieler evtl immun gegen Aktionen ihn betreffend ist Wenn dies der Fall ist weist eine mehr oder weniger freundliche Meldung den aufrufenden Spieler auf seine nutzlose Aktion hin Anderenfalls wird der Bann an hand der ID IP f r die angegebene Zeit ausgef hrt und der Spieler vom Server geworfen Geh rt zu admin inc 200 8 10 Funktionsreferenz 8 10 4 censor_words censor_words sStringl sStringl Typ String 100 Die zensierten W rter werden in der Datei angegeben die in der adminmod cfg mittels words_ file definiert wird Man kann mit censor_ words einen Text untersuchen ob sich darin ein zensiertes Wort befindet Ist eines vorhanden werden die Buchstaben durch E ersetzt Beispiel aus plugin retribution Funktion Handle __ say 643 if check_immunity User 0 644 messageex User Swearing not allowed on this server print_center 645 646 new SwearMsg MAX_TEXT_LENGTH 647 censor_words Data 648 new i 649 new c strlen Data
140. SQL Version pgsql_users_sql lt string gt Admin Mod lasst es dem Benutzer frei den SQL Befehl beim Zugriff auf die users Tabelle der PostgreSQL Datenbank nach eigenem Wunsch zu ver ndern z B zur Implementie rung in eine Forumssoftware Standard SELECT pass access FROM s where nick s or nick s Beispiel pgsql_users_sql SELECT password access FROM s WHERE username s OR username s Der Ausdruck muss stets drei s enthalten Diese werden in der Reihenfolge User Table pgsql_dbtable users Username und STEAM_ID gef llt pgsql_ preload muss auf 0 gesetzt sein um diese Variable zu nutzen Siehe auch pgsql_ database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pesql_dbtable_tags pegsql_dbtable_ users pgsql_dbtable_ words pgsql_ host pgsql_pass pgsql_port pgsql_preload pgsql_tags_sql pgsql user 54 4 1 Admin Mod einrichten adminmod cfg 4 1 78 pretty_say pretty_say lt gt Pretty say definiert wie ein Centersay dargestellt werden soll Steht dies auf 1 Stan dard so wird der Centersay farbig und mit Fade In und Out dargestellt bei 0 als simpler Text Standard 1 Beispiel pretty_say 1 Diese Einstellung bringt Farbe in Admin Mod aber dezent Siehe auch pgsql database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pgsql_dbtable_tags pgsql_dbtable_users pgsql_dbtable_ words pgsql_ host pgsql_ pass p
141. SetRestrictions if strncmp Data team 5 0 new sTeam 3 new sWhat MAX_DATA_LENGTH new iTeam strsep Data 5 sTeam 3 sWhat MAX_DATA_LENGTH Falls die ersten f nf Zeichen von Data unter Ber cksichtigung der Gro und Kleinschrei bung team entsprechen wird der String Data 5 ber ein Leerzeichen in sTeam und sWhat geteilt Geh rt zu string inc Siehe auch strcasecmp strcmp strmatch strncasecmp 361 8 Scripting 8 10 184 strncpy strncpy sDest sSource iNum iMaxLen sDest Typ String 200 sSource Typ String 200 iNum Typ Integer 0 200 iMaxLen Typ Integer 0 200 Kopiert einen String sSource ber einen anderen sDest mit der Lange iMaxLen wobei nur eine bestimmte Anzahl an Zeichen iNum kopiert werden Beispiel aus plugin_jack9 chime Funktion SpeakTime 93 if streq THour 12 1 94 strncpy words 1 twelve strlen twelve MAX_DATA_LENGTH 95 Wenn der String THour 12 entspricht werden nur die ersten 7 Zeichen von twelve in words 1 geschrieben Geh rt zu string inc Siehe auch strcpy 52nttp www adminmod de plugins php plugin plugin_jack9_chime 362 8 10 Funktionsreferenz 8 10 185 strpack strpack dest const sourcel dest Typ String 200 const source Typ String 200 Durch diese Funktion wird ein String source gepackt und in einen anderen dest geschrieben Der neue
142. Spielern auf einem HLTV nicht das Passwort zu pr sentieren wird das Passwort nur echten Spielern als Centersay gezeigt Vorab wurde das neue Passwort aus der vault ini geladen und bei den Spielern gesetzt Geh rt zu admin inc Siehe auch centersay messageex 3http www adminmod de plugins php plugin plugin_cw_creator3 203 8 Scripting 8 10 7 changelevel changelevel sMap iIntermissionPause 0 sMap Typ String 100 iIntermissionPause 0 Typ Integer 0 2147483647 Die Funktion l sst den Server zur angegebenen Map sMap wechseln ilntermissionPause ist ein Integerwert in Sekunden wie lange gewartet werden soll bis die Map gewechselt wird Beispiel aus plugin base Funktion admin map 307 if valid_map Data 1 308 say_command User Command Data 309 changelevel Data 4 Wenn es sich bei Data um eine g ltige Map handelt wird dies ffentlich gemacht und nach 4 Sekunden ein Mapwechsel durchgef hrt Geh rt zu admin inc Siehe auch ChangeMap 8 10 8 ChangeMap ChangeMap Timer Repeat HLUser HLParam Bei dieser Funktion handelt es sich ein Timer Event das fr her statt der direkten Ver wendung von changelevel genutzt wurde Inzwischen ist sie nur noch aus Kompatibili t tsgr nden vorhanden Geh rt zu adminlib inc Siehe auch changelevel 204 435 437 438 8 10 Funktionsreferenz 8 10 9 check _auth check_auth iAuthLevel iAuthLevel Typ
143. TINUE Zun chst werden die Includes eingebunden include lt core gt include lt string gt include lt admin gt include lt adminlib gt Man sollte nie zu sparsam bei den Includes sein Theoretisch kann man alle vorhandenen Includes einbinden da nur das vom Compiler ber cksichtigt wird was er auch ben tigt Das Plugin wird durch mehr Includes nicht gr er Damit das Plugin berhaupt etwas tut wird das Event plugin init eingebunden ber licherweise geschieht dies am Ende des Quellcodes public plugin_init plugin_registerinfo Testplugin Das Plugin macht noch nichts 1 0 return PLUGIN_CONTINUE Das Event plugin init wird nach dem HL Serverstart bzw nach jedem Mapwechsel von Admin Mod aufgerufen Damit Admin Mod erkennt dass das Plugin plugin init implementiert hat muss das Event mit public bekanntgegeben werden In Zeile 8 wird Admin Mod zur ckgemeldet dass die Abarbeitung des Events erfolgreich beendet ist In Zeile 7 wird Admin Mod mitgeteilt plugin_registerinfo wie das Plugin hei t was das Plugin macht und um welche Version des Plugins es sich handelt plugin_registerinfo Testplugin Das Plugin macht noch nichts 1 0 Die angebenen Informationen haben keine Funktion in Admin Mod sondern dienen nur zur sp teren Darstellung in der Console wenn man sich alle geladenen Plugins auflisten l sst Dieses Plugin registriert sich also lediglich bei Admin Mod Weitergehende Akti
144. TV Server Geh rt zu admin inc Mhttp www adminmod de plugins php plugin plugin_bk_hltvannounce 259 8 Scripting 8 10 80 get _username get_username sPlayer sName iMaxLength sPlayer Typ String 33 sName Typ String 33 iMaxLength Typ Integer 0 33 Mit dieser Funktion kann aus einem Teil des Spielernamens der gesamte Name ermittelt werden sofern der Teil des Namens eindeutig ist D h der Teil darf nicht gleichzeitig Teil des Namens eines anderen Spielers sein Statt des Teilnamens kann auch die IP Steam ID oder Session ID angegeben werden Beispiel aus plugin base Funktion admin_vote_kick 612 get_username Data real_user MAX_NAME_LENGTH 613 say_command User Command Data 614 if check_immunity real_user 0 Aus Data ob Teil Name IP oder ID wird der vollst ndige Spielername ermittelt Den Einstellungen admin_ quiet folgend wird die Ausf hrung des Befehls im Chat kommen tiert say_ command Anschlie end wird ber die Funktion check_immunity berpr ft ob einer Spieler dieses Namens Immunit tsrechte besitzt Geh rt zu admin inc Siehe auch playerinfo get__userSessionID 260 8 10 Funktionsreferenz 8 10 81 get_userorigin get_userorigin sPlayer amp iX amp iY amp iZ sPlayer Typ String 33 amp ix Typ Integer 2147483648 2147483647 amp iY Typ Integer 2147483648 2147483647 amp iz Typ Integer 2147483648 21474836
145. UI 1 Planted_The Bomb sAction 61 Team Action sTeam CT Target_ Saved CT 1 T 0 sAction CT iScoreCT T iScoreT 62 World Action sAction Round_ Start 63 Chat n t Normal Team n 7 Wer ist Admin iPlayerUI sText 64 Team Alliance sInvokerTeam Red Blue sReceiverTeam 65 Team Score Report sTeam TERRORIST 9 7 iScore iNumTeam Player 66 Private Chat ilnvokerUI 5 3 Wer ist Admin iReceiverUI sText 8 14 Properties in Small 8 14 Properties in Small Als Schl ssel kann entweder der Name oder der Wert der Property benutzt werden Properties sind Schl ssel Wert Paare die in der AMX Scriptengine gespeichert werden Jede Property hat eine Zeichenkette und eine Ganzzahl Welches davon der Schl ssel und welches der Wert ist kann der Scriptautor bestimmen indem er einen der beiden Parameter leer l sst Die ID der Property dient dazu dass verschiedene Scripte ihre Pro pertys auseinander halten k nnen Eine Property wird durch ihre ID und ihren Schl ssel eindeutig identifiziert Die Vorteile von Properties gegebn ber globalen Variablen sind dass der Speicherplatz dynamisch verwaltet wird und somit praktisch unbegrenzt Daten gespeichert werden k nnen Weiterhin bleiben die Daten auch ber einen Kartenwechsel hinaus erhalten Die Nachteile sind dass mit zunehmender Benutzung von Properties die Zugriffsge schwindigkeit abnimmt da diese als einfach verkettete Liste implementiert sind Aus serdem gibt es keine M glichkeit
146. UserName MAX_NAME_LENGTH 1628 g_UserMenuSelected UserIndex Menu 1629 menu UserName Menutext Keys 0 Es wird an den Men text Menutext die Option 0 Back angeh ngt Ein bitweises Oder wird auf Keys und 512 angesetzt und das Ergebnis in Keys geschrieben Hier h tte man auch einfach addieren k nnen Mittels playerinfo wird der Spielername ermit telt und die negative Nummer des Men s wird in das globale Feld eingetragen damit man wei in welchem Men der Spieler sich befindet Abschlie end wird das Men permanent bis zu einer Optionsauswahl bzw einem berschreibenden Men angezeigt Geh rt zu admin inc Siehe auch vote 290 272 273 274 275 276 8 10 Funktionsreferenz 8 10 113 message message sTarget sMessagel sTarget Typ String 33 sMessage Typ String 100 Die Funktion schreibt eine Nachricht sMessage in die Console der angegebenen Person sTarget Die Funktion messageex bietet einen gr eren Umfang Beispiel aus plugin base Funktion admin_ kick if strlen Reason 0 snprintf Text MAX_TEXT_LENGTH You have been kicked because 4s Reason message real_user Text kick real_user Es wird berpr ft ob ein Grund f r den Kick angegeben wurde Wenn dies der Fall ist wird dies dem Spieler in der Konsole mitgeteilt Anschlie end wird der Spieler vom Server geworfen kick Geh rt zu admin inc Siehe auch centersayex directmess
147. Variable legt fest in welcher MySQL Tabelle die Admins ihre Passw rter und Accesslevels zu finden sind Ist kein Admin Mod MySQL installiert wird die Variable ignoriert anderenfalls wird eine Definition von users_ file bergangen Beispiel mysql_dbtable_users am_users Admin Mod erwartet die Daten zu den Admins in der Tabelle am__users Siehe auch users_ file mysql_database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_ plugins mysql_dbtable_tags mysql_dbtable_ words mysql_host mysql_pass mysql_ preload mysql_tags sql mysql_user mysql_users_ sql 4 1 55 mysql_dbtable_words nur MySQL Version mysql_dbtable_words lt string gt Diese Variable legt fest in welcher MySQL Tabelle die zu zensierenden W rter zu finden sind Ist kein Admin Mod MySQL installiert wird die Variable ignoriert anderenfalls wird eine Definition von words_ file bergangen Beispiel mysql_dbtable_words am_words Admin Mod erwartet die Daten zu den Admins in der Tabelle am words Siehe auch words_ file mysql_database mysql_dbtable_ips mysql_dbtable_models mysql_dbtable_ plugins mysql_dbtable_tags mysql_dbtable_ users mysql_host mysql_ pass mysql preload mysql_tags sql mysql user mysql_users_ sql 43 4 Konfiguration 4 1 56 mysql_host nur MySQL Version mysql_host lt string gt Hiermit wird festgelegt auf welchem Rechner Admin Mod MySQL die MySQL Daten bank findet z B localhost
148. YAngle ZAngle if iIdentity 0 snprintf Text MAX_TEXT_LENGTH Spawn created with ID i ildentity selfmessage Text say_command User Command Data else selfmessage Failed Es wird versucht ein Item an den genannten Koordinaten und in den gegebenen Winkeln zu erstellen Falls dies erfolgreich war wird eine Erfolgsmeldung an den Admin und alle anderen Spieler ausgegeben Anderenfalls wird nur der Admin ber den fehlgeschlagenen Versuch informiert Geh rt zu admin inc Siehe auch listspawn removespawn spawn 340 717 718 719 720 8 10 Funktionsreferenz 8 10 162 speakto speakto sTarget sSentence sTarget Typ String 33 sSentence Typ String 100 Mit dieser Funktion kann man bei einem Spieler sTarget die in Half Life integrierte Sprachausgabe nutzen Daftir muss der Soundtyp und der zu sprechende Satz definiert werden sSentence Ein berblick ber die zur Verf gung stehenden Soundtypen und der jeweiligen Sounds kann dem Anhang entnommen werden Beispiel aus plugin_sdal_ time manager Funktion speak _timeleft numtoword minutes Min MAX_NUMBER_LENGTH numtoword seconds Sec MAX_NUMBER_LENGTH snprintf Text MAX_DATA_LENGTH fvox s minutes s seconds remaining Min Sec speakto User Text Mit der userdefinierten Funktion numtoword werden die Minuten und Sekunden von Ganzzahlen in ausgeschriebene englischsprachige Strings umgewandelt z B
149. _min f min fixed fNum fixed fNum2 fixed fNum Typ Fixed 2147482 2147482 fixed fNum2 Typ Fixed 2147482 2147482 Die Funktion f min gibt aus zwei Festkommazahlen die kleinste aus F r Ganzzahlen kann man min nutzen Beispiel fMin f_min fNum1 fNum2 Der kleinste Wert aus fNum1 und fNum2 wird an fMin bergeben Geh rt zu math inc Siehe auch clamp f_max max min 237 8 Scripting 8 10 52 fixed f_pi f pit Die Funktion f_pi gibt die Zahl Pi 3 142 zur ck Beispiel fPi f_piQ In die Variable fPi wird die Zahl Pi geschrieben Geh rt zu math inc Siehe auch f_euler 8 10 53 fixed f_power f_power fixed fBasis fixed fExponent amp iError 0 fixed fBasis Typ Fixed 2147482 2147482 fixed fExponent Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f power exponiert fExponent den in fBasis gegebenen Wert Will man nur die Eulerzahl exponieren sollte man auf f_powere zur ckgreifen Beispiel fNum f_power fBasis fExponent iError matherror iError Die Basis fBasis wird mit fExponent exponiert und das Ergebnis in fNum geschrieben Eine m gliche Fehlermeldung wird mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_powere 238 8 10 Funktionsreferenz 8 10 54 fixed f_powere f_powere fixed fExponent amp iError 0 fixed fExponent Typ Fixed 2147482 2147482 iError 0
150. _tags_ sql pgsql user pgsql_users_sql 4 1 71 pgsql_host nur PostgreSQL Version pgsql_host lt string gt Hiermit wird festgelegt auf welchem Rechner Admin Mod PostgreSQL die PostgreSQL Datenbank findet z B localhost Wird PostgreSQL nicht verwendet wird diese Va riable ignoriert Beispiel pgsql_host localhost Hier erwartet Admin Mod auf dem gleichen Rechner die PostgreSQL Datenbank Siehe auch pgsql_database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pgsql_dbtable_tags pgsql_dbtable_users pgsql_dbtable_ words pgsql pass pgsql_port pgsql preload pgsql_tags_sql pgsql user pgsql_users_sql 5l 4 Konfiguration 4 1 72 pgsql_pass nur PostgreSQL Version pgsql_pass lt string gt Mit dieser Variablen wird das Passwort fiir den Zugang zum PostgreSQL Datenbank festgelegt Standard Beispiel pgsql_pass geheim Das Passwort f r den Zugriff auf die PostgreSQL Datenbank ist auf geheim gesetzt Bitte ein besseres Passwort benutzen Siehe auch pgsql_ database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pesql_dbtable_tags pegsql_dbtable_ users pgsql_dbtable_ words pgsql_ host pgsql_port pgsql_ preload pgsql_tags_sql pgsql user pegsql_users_sql 4 1 73 pgsql_port nur PostgreSQL Version pgsql_port lt string gt Hiermit setzt man den Port mit dem auf die PostgreSQL Datenbank zugegriffen werden soll Default 5432 Beis
151. a wav absolutely wav absolutelynot wav administrator wav afellowsci wav ahfreeman wav alienappeal wav alientrick wav allnominal wav alright wav analysis wav announcer wav areyouthink wav asexpected wav beenaburden wav beverage wav bloodsample wav cla0_sci_bigday wav cla0_sci_catscream wav cla0_sci_critla wav cla0_sci_crit2a wav cla0_sci_crit3a wav cla0_sci_ctrlla wav cla0_sci_ctrl2a wav cla0_sci_ctrl3a wav cla0_sci_ctrl4a wav cla0 sci disl0a wav cla0 sci dislla wav cla0_sci_disl2a wav cla0_sci_disl3a wav cla0 sci disl4a wav cla0_sci_disl5a wav cla0_sci_disl6a wav cla0_sci_disl7a wav cla0 sci disla wav cla0 sci _dislb wav cla0_sci_dislc wav cla0 sci disld wav cla0 sci dis2a wav cla0_sci_dis3a wav cla0 sci _dis4a wav cla0 sci dis5a wav cla0_sci_dis6a wav cla0_sci_dis7a wav cla0_sci_dis8a wav cla0 sci dis9a wav cla0 sci disa wav cla0_sci_getaway wav cla0_sci_gm wav cla0_sci_gml wav cla0_sci_itsyou wav cla0_sci_lockla wav cla0_sci_lock2a wav cla0_sci_lock3a wav cla0_sci_lock4a wav cla0_sci_lock5a wav cla0_sci_lock6a wav cla0_sci_lock7a wav cla0_sci_lock8a wav cla0_sci_mumble wav cla0_sci_samp wav cla0_sci_scanrpt wav cla0_sci_stall wav cla0_sci_stayback wav clal_sci_1scan wav clal_sci_2scan wav clal_sci_3scan wav clal_sci_4scan wav clal_sci_5scan wav cla2_sci_1zomb wav cla2_sci_3zomb wav cla2_sci_5zomb wav cla2_sci_6zomb wav cla2_sci_dangling wav cla2_sci_darkroom wav cla2_sci_elevator wav cla2_sci_l
152. a3 ba assn wav c2a4 ba ltau wav c2a4 ba 3tau wav c2a4 ba 5tau wav c2a4 ba alive wav c2a4_ba_argla wav c2a4_ba_arg3a wav c2a4_ba_arg5a wav c2a4_ba_longnite wav c2a4 ba _steril wav c2a4 ba teach wav c2a5_ba_helpme wav c2a5_ba__letout wav c2a5_ba_rpg wav c2a5_ba_sniped wav c3al_ba_lsat wav c3al_ba_3sat wav c3al_ba_5sat wav c3a2_ba 2surv wav c3a2_ba 4surv wav c3a2 ba bsurv wav c3a2 ba 8surv wav c3a2_ba_stay wav cantfigure wav checkwounds wav coldone wav crewdied wav diebloodsucker wav dobettertogether wav dontaskme wav dontbet wav dontbuyit wav dontfigure wav dontguess wav donthurtem wav dontreckon wav getanyworse wav gettingcloser wav gladof38 wav gladtolendhand wav guyresponsible wav hardtosay wav haybuddy wav hayfella wav hearsomething wav hearsomething2 wav hellonicesuit wav helpothers wav heybuddy wav heyfella wav hitbad wav howdy wav howyoudoing wav icanhear wav iguess wav illwait wav imdead wav imhit wav imwithyou wav ireckon wav iwaithere wav justdontknow wav leavealone wav letsgo wav letsmoveit wav luckwillturn wav maybe wav missingleg wav mrfreeman wav nodrill wav nope wav nosir wav notelling wav noway wav openfire wav realbadwound wav rightway wav seeya wav slowingyoudown wav somethingdied wav somethingmoves wav somethingstinky wav soundsbad wav soundsright wav standback wav standguard wav stench wav stopl wav stop2 wav stophere wav B 4 HL Sounds whatgood wa
153. abei zwei M glichkeiten dieses dem Server zu bergeben admin login lt Passwort gt Mit diesem Befehl wird dem Server via Console das eigene Admin Mod Passwort ber geben Die Methode funktioniert nicht bei Namensreservierung und f r die Slotreservie rung da man vor der M glichkeit der Eingabe des Befehls bereits vom Server geworfen wird setinfo lt password_field gt lt Passwort gt Die setinfo Variante ist die elegantere Methode zum Anmelden bei Admin Mod und die einzige bei Namens und Slotreservierung Man definiert eine Variable beim Client in der das Passwort hinterlegt wird Mehr zu dem Thema setinfo ist aus der FAQ zu entnehmen Ein typischer Eintrag lautet daher setinfo _pw home xxx wobei xxx f r das in der users ini definierte Passwort steht Falls man in der admin mod cfg die Variable password_field ver ndert hat muss man _pw home nat rlich entsprechend ab ndern Merke Auch bei verschl sselten Passw rtern in der users ini muss beim Client IMMER das Passwort im Klartext angegeben werden 66 4 4 Administratoren einrichten users ini Wo trage ich das ein Viele Wege f hren nach Rom 1 Verkn pfung Man erstellt eine Verkn pfung ausschlie lich zum connecten auf den eigenen Server Beispiel X Steam Steam exe applaunch 10 exec adminpass cfg connect 213 239 218 84 27015 wobei in adminpass cfg im Modverzeichnis bsp hier cstrike die setinfo Zeile fiir das Passwort steht
154. admin_vsay lt Frage gt Mit diesem Befehl kann man eine beliebige Frage die mit Ja oder Nein beantwortet werden kann an die Spieler stellen Das Ergebnis wird im Chat dargestellt hat aber keine automatische Aktion zur Folge Einen Zeilenumbruch in der Frage bekommt man durch Eingabe von n Beispiel admin _vsay Seid Ihr fertig Zum Start eine Clanwars k nnte man fragen ob alle Beteiligten fertig sind W hlen alle Spieler Ja aus kann der Admin den Clanwar starten Access Level 64 Geh rt zu plugin_ base Siehe auch admin chat admin _csay admin dmesg admin _psay admin _say admin_ssay admin _tsay vote_freq 5 4 plugin_chat Das Chat Plugin beinhaltet nicht sehr viele Funktionen Allen Befehlen ist aber gemein sam dass sie nicht in die Console sondern im Chat eingegeben werden oder die Eingabe von Befehlsoptionen im Chat erlauben 115 5 Standardplugins und Befehle 5 4 1 admin _messagemode admin messagemode lt Befehl gt Dieser Befehl erlaubt es die Optionen eines Befehls im Chat einzugeben Dabei ist es unerheblich ob es sich um einen origin ren Clientbefehl oder einen Admin Mod Befehl handelt Will man einen origin ren Serverbefehl absetzen so ist rcon dem Befehl voran zu stellen Das richtige RCon Passwort muss daher beim ausf hrenden Spieler gesetzt sein Dies verhindert dass Spieler ber admin _messagemode RCon Rechte erhalten k n nen Admin Mod Befehle berpr f
155. age messageex 291 8 Scripting 8 10 114 messageex messageex sTarget sMessage print_type iMessageType sTarget Typ String 33 sMessage Typ String 100 print_type iMessageType 413 414 415 416 417 418 Typ Enum 0 print_ console print_ center print_chat print_tty print_ pretty Die Funktion schreibt eine Nachricht sMessage an die angegebene Person sTarget Die Art wie sie dem Spieler angezeigt werden soll wird mit print_ type definiert Es gibt 5 Darstellungen print_console Anzeige in der Konsole print_center Anzeige in normaler Schrift in der Mitte des Bildschirmes print_chat Anzeige im Chat print_tty Anzeige in gelb am linken unteren Bildschirmrand print_pretty Anzeige in gr n in der Mitte des Bildschirmes Beispiel aus plugin base Funktion admin psay snprintf Text MAX_TEXT_LENGTH Private Msg From s s User Msg if iMsgToAdnin 1 log Text else messageex TargetName Text print_chat Stellt einen Pr fix mit dem Absender User vor die eigentliche Nachricht Msg Wenn die Nachricht an einen Admin in der Serverconsole gehen soll wird der Text in die Logdateien geschrieben Anderenfalls wird dem Empf nger TargetName die Nachricht im Chat pr sentiert Geh rt zu admin inc Siehe auch centersayex directmessage message say selfmessage 292 270 271 272 273 8 10 Funktionsreferenz 8 10 115 min min a b a Typ Int
156. als Centersay auf den Bild schirm Allerdings erscheint Admin Mod in der zweiten Zeile da n ein Zeilenumbruch ist Siehe auch admin connect _msg admin_repeat_ freq 23 4 Konfiguration 4 1 18 admin __quiet admin quiet lt gt Hiermit wird festgelegt ob und wie Admin Mod zur ckmelden soll dass ein Befehl aus gef hrt wurde 0 bedeutet dass folgende Nachricht erscheint ADMIN Command lt Player gt used lt command gt Bei 1 erscheint nur der Befehl und 2 unterdr ckt jegliche Ausgabe Einige Befehle ber gehen aber selbst admin quiet 2 z B admin _godmode Voreinstellung ist 0 Beispiel admin quiet 2 Die meisten Serveradmins werden diese Einstellung bevorzugen bei der nur die Cheat M glichkeiten offengelegt werden Siehe auch admin connect _msg admin_repeat_ freq 4 1 19 admin_vault_file admin _vault_file lt string gt Das Vaultfile speichert Einstellungen von Customplugins sollte also definiert werden Der Wert addons adminmod config vault ini ist in der Regel nicht zu ver ndern Beispiel admin vault_file vault ini In diesem Fall wird die vault ini im Mod Verzeichnis erwartet Mehr zu dieser Datei im Kapitel Pluginspezifische Einstellungen vault ini Siehe auch admin plugin file ips file maps_ file models file users_ file words_ file 24 4 1 Admin Mod einrichten adminmod cfg 4 1 20 admin_mod__ version admin _mod_version lt string gt Set
157. alue Typ Integer 2147482 2147482 Die Funktion fixed wandelt eine Ganzzahl in eine Festkommazahl um Beispiel aus math inc Funktion f_faculty iValue fround fValue fValue 1 000 for new i 2 i lt iValue i fValue fmul fValue fixed i Zun chst wird zur Ermittlung der Fakult t der Wert auf eine Ganzzahl gerundet Der Ausgangswert wird auf 1 gesetzt Die Fakult t wird durch eine For Schleife durch Mul tiplikation ermittelt Dabei muss das aktuelle Inkrement bei jedem Durchlauf in eine Festkommazahl mittels der Funktion fixed umgewandelt werden Geh rt zu fixed inc 243 8 Scripting 8 10 64 fixed fixedstr fixed fixedstr const stringl string Typ String 20 Die Funktion fixedstr wandelt einen String in eine Festkommazahl um Dabei geht aber ein m gliches Vorzeichen verloren Das Ergebnis ist immer positiv Daher wird empfohlen statt fixedstr die Funktion strtofix zu verwenden die auch das Vorzeichen ber cksichtigt Beispiel aus math inc Funktion strtofix 49 if strtrim sNumber 0 gt 0 50 fNumber fmul fixedstr sNumber 1 000 51 52 else 53 fNumber fixedstr sNumber 54 Wenn ein negatives Vorzeichen existiert wird die aus dem String umgewandelte Zahl negiert Anderenfalls wird nur der String in eine Festkommazahl umgewandelt Geh rt zu fixed inc Siehe auch strtofix 244 320 321 322 323 324 325 8 10 Funktionsreferenz 8 10 65 fixed fm
158. am schreibsch tzen oder wahlweise den dll Startparameter verwenden 5 Wenn der Server gar nicht startet sollte berpr ft werden ob in server cfg bzw listenserver cfg der Eintrag exec addons adminmod config adminmod cfg ge setzt ist 6 Gleiches kann auch passieren wenn das password_ field ohne Unterstrich am Anfang geschrieben wurde z B pw home statt richtig pw home 7 Wichtig ist au erdem dass die Gro und Kleinschreibung unter Linux beachtet wird Es macht einen deutlichen Unterschied ob man admin MM _ i386 so oder 159 6 FAQ admin _mm_ i386 so in der plugins ini von Metamod schreibt 6 3 Wo bekomme ich weitere Plugins her Um die F higkeiten Admin Mods ber die der Standardplugins zu erweitern muss man sich sogenannte Custom Plugins besorgen Eine Vielzahl von Plugins ist auf diversen Seiten im Netz zu finden e Deutsche Admin Mod Webseite Englische Admin Mod Webseite e Deutsches Admin Mod Forum e Webseite von Ravenous Bugblatter 6 4 Admin Mod Befehle funktionieren nicht z B in HLSW Eine kurze Beschreibung des Unterschieds zwischen Client Console und Server Console kann an dieser Stelle weiterhelfen Wenn man online auf einem Server spielt und in die Console geht befindet man sich in der Client Console Admin Mod Befehle werden hier so eingegeben wie das bekannt ist also beispielsweise admin_help Serverbefehle m ssen stets mit rcon vorweg ge schrieben we
159. ame lines Ist die unter filename angegebene Datei nicht existent wird eine Fehlermeldung in den Logdateien ausgegeben und die weitere Ausf hrung des Befehls abgebrochen Wird die Datei hingegen gefunden wird die Anzahl der Zeilen ausgelesen und in die Variable sizeofhile geschrieben Geh rt zu admin inc Siehe auch deletefile fileexists readfile resetfile writefile Shttp www adminmod de plugins php plugin plugin_bk_cron 225 8 Scripting 8 10 30 fixed f_abs f_abs fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_abs gibt den Absolutwert einer Festkommazahl aus Beispiel aus math inc Funktion f_sqrt 296 if f_abs fNum fNum 297 iError 1 298 return 1 000 299 Hier wird die Funktion f_abs benutzt um zu berpr fen ob der Wert fNum negativ ist Ist er negativ wird die Funktion abgebrochen und 1 zur ckgegeben um zu verhindern dass die Wurzel aus einer negativen Zahl gezogen wird Geh rt zu math inc 8 10 31 fixed f_arccos f_arccos fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_arccos gibt den Arkuskosinus Wert als eine Festkommazahl zurtick Dartiber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zu riickgegeben Beispiel fNum f_arccos fNum iError matherror iError Aus fNum wird der Arkuskosinus gebildet und anschlie end
160. an a eR HES a AAA 288 8 10111 ep area rt 289 SANTI Wem 2 rr READE he ESSERE ESR ni 290 SU EI MESAS Pee e EE RA 291 8 10 114 messageex III 292 A ee a ee eee ee a ee ee 293 610 116 WH mis Dis we Se me a ee ee we eee ee a 294 SLU movespaWii ee peke k pe pre ee be ee BAe 295 BIS EMO nen EA AAA He 296 SIT RT secs nee ee a ee a Bred da a 297 SANT ee N a boes ae a ea ea at eat 298 AE 2 e ea oe a a aa ee a le T aa 299 BUNT Blasen were een eR RS ASE EY BESS 300 8 10 123 PONES lt es 6 en SRE A A GG 301 LEWIS Pineal ee eee aa Ok ee Dk ee a 302 610 125 plugin checkcommand gt o ssd eewer ra can be Bae GS 303 5 10 1265 plugin command s seee s pure e a ea h kae e ERD 304 2 111 127 Vlei COSES a ne e PRE AA Woni 305 8 10 1256 plugin disconnect sos errta ipp ke Pee Sere eie G 306 8 10 1299 PIE Pica ati 307 SID IA DIO inio s eee A A re rt 308 5 10 131 PUB init disse ae a a AAA 309 5 10 1932 plugin mesare se ee a ai A A 310 8 10 133 plugin registeremd 2 22 44 464444 a ua aa na 311 3 10 1954 plugin tregisterhelp i 2 au p wie aa a a Ben a We 312 8 10 135 pl gin registerinio cisnes nn a pu RA 313 SLO EI PONLO p r ah a a adaa l ee ER Ae Ee Re R 314 SLO T PEDE sui a a r E R eA a Ehre 314 XIII Inhaltsverzeichnis 810 139 PE a A Ads N 315 8 10 139 rainbow 315 8 10 140 random 2 Cm m men 317 8 10 141 resdNle oc ee ee e 282 ara ars areas 318 8 10 1422 reject__message an a a a a a a 319 8 10 1283 reload u ze ser ara er ee Se
161. as RCon Passwort an andere Leute weitergeben die dies teilweise schamlos ausnutzten Inspirieren lie er sich durch ein Admin Plugin f r die Quake2 Engine BW Admin Mit der einf hrenden Hilfe von Jeffrey botman Broome begann er mit der HL SDK den ersten Code im Februar 2000 f r Admin Mod zu schreiben Das Projekt nahm schnell Fahrt auf Auf Grund der h ufigen Updates wurde Alfred sogar als Release a Day Man bezeichnet Im M rz 2000 wurde das Projekt auf Sourceforge umgezogen und mit der Version 0 72 das erste offizielle Release freigegeben Im gleichen Monat wurde bereits durch einen User der Code f r den MySQL Zugriff in Admin Mod aufgenommen Zu diesem Zeitpunkt gab es noch kein Metamod so dass Admin Mod stets an die sich laufend ndernden Mods angepasst werden musste Dies nahm sehr viel Zeit in Anspruch Anfang Mai 2000 wurde mit der Version 0 84 der Release der Version 1 0 eingeleitet die dann noch weitere Mods unterst tzen sollte Im Juli 2000 war es soweit dass die Version 1 0 ver ffentlicht wurde Gleichzeitig mit der Ver ffentlichungsphase der Version 1 wurde bereits mit den Arbei ten an Version 2 begonnen und wenige Tage nach Version 1 ver ffentlicht Die gro e Neuerung war der Scripting Support Small der sich jedoch auf ein einzelnes gro es File beschr nkte Diese Version wurde noch bis Anfang Dezember 2000 weiterentwickelt Einige Mods kamen hinzu und es wurde an den Scripting Funktionen gefeilt W
162. ass ein Passwort ausgelassen werden kann Es ist deshalb auch nicht notwendig eine admin pass cfg anzulegen Der Einloggvorgang erfolgt automatisch Der users ini Eintrag lautet dann 127 0 0 1 131071 Dem Er ffner sollten nat rlich s mtliche Rechte 131071 gegeben werden Letztlich k nnte er auch admin_cmd vor die Admin Mod Befehle setzen Eine Einschr nkung w re daher unn tz 4 4 1 2 Player Password Rights Der mittlere Eintrag beinhaltet das Passwort des Spielers Das Passwort in der users ini kann aber auch leergelassen werden so dass beim Client kei ne Einstellungen vorgenommen werden m ssen Diese Methode sollte nur bei absoluten DAUs D mmste Anzunehmende User verwendet werden die mit den Clienteinstel lungen nicht zurecht kommen Aber eigentlich sollten solche Leute schon deshalb keine Adminrechte bekommen Man kann aber zumindest bei der Verwendung der Steam ID recht sicher sein dass niemand sie bernehmen kann 100 ig sicher sollte man sich aber nicht sein Bei allen anderen Spielereintr gen wie IP oder Name ist das Weglassen des Passwortes in jedem Fall fahrl ssig Beispiel f r das Weglassen des Passworts STEAM_0 1 9174 131071 Umgekehrt kann man die Sicherheit auch erh hen indem man verschl sselte Passw rter verwendet Dies ist besonders anzuraten wenn man seinen Gameserver auf einem Rechner hat der noch von anderen Personen genutzt wird Es wird verhindert dass diese die Admin Mod Passw rter a
163. ault kick Bestrafung bei Sofortsch ssen am Rundenanfang admin_ffmon ssbantime lt Wert gt Default 5 Bannzeit in Minuten bei Sofortsch ssen und der Bestrafung Bann Einstellungen zum Teambalancing admin _ffmon skunk on off Default on berwachung der Teams bez glich eines Winlimits admin _ffmon skunktype 0 1 Default 0 normale oder traditionelle Winlimit ber wachung traditionell das Verliererteam hat keine Runde gewonnen admin _ffmon skunklimit lt Wert gt Default 10 Unterschied gewonnener Runden zwi schen den Teams damit ein Mapwechsel vollzogen wird Einstellungen zur Admin Immunit t admin _ffmon immunity on off Default off Macht Admins immun gegen Bestra fungen des Plugins admin _ffmon immunitylevel lt Wert gt Default 65536 Rechtelevel den immune Ad mins haben m ssen 399 A Besondere Customplugins Abstimmungseinstellungen admin_ffmon startvote on off Default on Startet einen HLDS Vote bevor die in mp_winlimit angegebene Rundenzahl erreicht ist admin _ffmon startvoteround lt Wert gt Default 2 Rundenzahl bevor mp_ winlimit erreicht ist um einen HLDS Vote zu starten Sonstige Einstellungen admin _ffmon lt on off gt Schaltet den FFMon ein aus die Eingabe ohne Wert zeigt den Status admin _ffmon scores on off Default on Zeigt Teamscores am Ende jeder Runde admin _ffmon log on off Default on Erm glicht FFMon Eintr ge in die Logdateien admin_
164. av weapon wav yes wav violation wav west wav you wav voltage wav whiskey wav your wav vox_login wav white wav yourself wav walk wav wilco wav zero wav wall wav will wav zone wav want wav with wav zulu wav wanted wav without wav warm wav woop wav B 4 38 weapons 357_cockl wav 357 _reloadl wav 357 _shotl wav 357 _shot2 wav explode4 wav explode5 wav g bouncel wav g bounce2 wav pl_gun3 wav reload1 wav reload2 wav reload3 wav bullet hitl wav g bounce3 wav ricl wav bullet _hit2 wav g_bounce4 wav ric2 wav cbar_hitl wav g bounce5 wav ric3 wav cbar_hit2 wav gauss2 wav ric4 wav cbar_hitbodl wav glauncher wav ric5 wav cbar_hitbod2 wav cbar_hitbod3 wav cbar_missl wav dbarrell wav debris1 wav debris2 wav debris3 wav dryfirel wav egon_ offl wav egon_run3 wav egon_windup2 wav electro4 wav electro5 wav electro6 wav explode3 wav glauncher2 wav gren_cockl wav grenade_hitl wav grenade _hit2 wav grenade _hit3 wav hks1 wav hks2 wav hks3 wav mine _activate wav mine_charge wav mine_deploy wav mortar wav mortarhit wav pl_gunl wav pl_gun2 wav rocket 1 wav rocketfirel wav sbarrell wav scock1 wav sshelll wav sshell2 wav sshell3 wav xbow_ firel wav xbow_flyl wav xbow_hitl wav xbow _hit2 wav xbow _hitbodl1 wav xbow __hitbod2 wav xbow __reloadl wav 427 B Sonstiges B 4 39 x nih die2 wav x_laughl wav x_recharge2 wav x_attackl wav x_laugh2 wav x_recharge3 wav
165. aySoundToAll sSound new i new iMaxPlayers maxplayercount new Name MAX_NAME_LENGTH if getvar admin_fx 0 for i 1 i lt iMaxPlayers it if playerinfo i Name MAX_NAME_LENGTH 0 playsound Name sSound Das Abspielen der Sounddatei sSound wird nur durchgef hrt wenn admin fx ange schaltet ist Anschlie end werden mit einer For Schleife alle Serverslots nach Spielern durchsucht Wenn ein Spieler gefunden wurde wird bei im die Sounddatei sofern auf seinem Rechner vorhanden abgespielt Geh rt zu admin inc Siehe auch speakto 302 628 629 630 631 8 10 Funktionsreferenz 8 10 125 plugin_checkcommand plugin_checkcommand sCommand amp iAccess 0 sCommand Typ String 30 amp iAccess 0 Typ Integer 0 2147483647 Die Funktion gibt zurtick wieviele Plugins den Admin Mod Befehl sCommand regis triert haben Dar ber hinaus wird der daf r notwendige Access Level iAccess zur ck gegeben In Kombination mit plugin_ exec l sst sich ein Plugin Addon System aufbauen Beispiel aus plugin_cw_creator Funktion warmup _ end if plugin_checkcommand cwc_addon_start iAccess gt 0 plugin_exec cwc_addon_start iAccess 0 In diesem Fall wird ausgewertet ob mindestens ein Plugin den Admin Mod Befehl cwc_ addon start registriert hat Falls mindestens ein Plugin gefunden wurde wird der Befehl ausgef hrt Geh rt zu plugin inc 30nttp
166. bank n her beleuch tet 80 4 10 MySQL Installation einrichten 4 10 1 Datenbankeinrichtung Sofern noch keine Datenbank f r Admin Mod eingerichtet wurde sollte man dies tun mysql gt CREATE DATABASE adminmod Als Datenbanknamen kann man statt adminmod auch jeden anderen Namen angeben Admin Mod kann aber auch in jede bestehende Datenbank eingebaut werden Dabei sind allerdings eventuelle berschneidungen bei Tabellennamen zu ber cksichtigen und anzu passen Der Datenbankname ist unter mysql database in der adminmod cfg anzugeben 4 10 2 Users Tabelle Die Users Tabelle wird als Ersatz f r die users ini eingerichtet Sie besteht aus den Spalten nick pass und access quivalent zur Angabe in der users ini handelt es sich dabei um den Usernamen oder ID das zugeh rige Passwort und den Rechten des Users mysql gt CREATE TABLE users nick VARCHAR 31 PRIMARY KEY NOT NULL pass VARCHAR 64 NOT NULL access INTEGER UNSIGNED NOT NULL Der Tabellenname muss in der adminmod cfg unter mysql dbtable_users angegeben werden Es ist daher auch m glich einen anderen Namen f r die Users Tabelle zu w hlen 4 10 3 Tags Tabelle Wie bereits beschrieben ist die Verwendung von RegEx innerhalb gro er Datenbest nden ineffizient Daher sollten zu sch tzende Clantags in diese Extratabelle geschrieben wer den Diese sollte dadurch erheblich kleiner ausfallen Angelegt wird sie nat rlich genauso wie die Users Tab
167. be des Dateinamens dieser Suffix entfernt Geh rt zu admin inc nttp www adminmod de plugins php plugin plugin_rules 285 8 Scripting 8 10 108 maptime maptime iWhichtime iPrintToConsole 0 iWhichtime Typ Integer 0 1 iPrintToConsole 0 Typ Integer 0 1 Die Funktion kann die abgelaufene und die verbleibende Spielzeit in Sekunden auf der aktuellen Map angeben Es ist zu definieren iWhichtime ob die abgelaufene 0 oder die verbleibende 1 Zeit ausgegeben werden soll Man kann auch optional angeben ob die Zeit in die Console geschrieben werden soll Die Funktion erkennt nicht den Restart einer Map in Counter Strike In diesem Fall sollte auf timeleft oder LogD basierte Berechnungen zur ckgegriffen werden Beispiel aus plugin_wm_ chat Funktion wmtl_check 99 public wmtl_check 100 new iTmp maptime 1 0 101 switch iTmp 102 case 1200 wm_timeleft 1 103 case 600 wm_timeleft 1 104 case 300 wm_timeleft 1 105 case 150 wm_timeleft 1 106 case 60 wm_timeleft 1 107 case 5 fexecall speak five 108 case 4 execall speak four 109 case 3 execall speak three 110 case 2 execall speak two 111 case 1 112 execall speak one 113 kill_timer TV 0 114 kill_timer TV 1 115 116 117 gt Im Beispiel wird die verbleibende Mapzeit ermittelt ohne sie in die Console zu schreiben ber eine Switch Verzweigung wird eine
168. ben vor dem Suffix z B a exe dann gibt man exe an RegEx nutzt ebenfalls Steuerzeichen Allerdings sind das deutlich mehr und andere bzw sie haben eine andere Bedeutung 74 4 4 Administratoren einrichten users ini Der Punkt ist im RegEx vergleichbar mit dem beim Globbing hingegen be deutet dass beliebig viele oder aber auch keine Zeichen gefunden werden Dies entspricht dem Asterisk beim Globbing Will man wie im oberen Globbing Beispiel nach Dateien mit der Endung exe suchen so h tte man das Problem dass der Punkt ja jedes beliebige Zeichen bedeuten kann Man muss also kenntlich machen dass es sich beim Punkt diesmal nicht um ein Steuerzeichen handelt Dazu muss man den Punkt escapen Dies wird mit einem vorangestellten Backslash erreicht Ein m glicher RegEx lautet demnach exe Weitere interessante Steuerzeichen w ren und bedeutet dass der nachfolgende RegEx am Anfang der durchsuchten Zeichenkette stehen muss Admi wird in Admin Mod gefunden od jedoch nicht da od nicht am Anfang der Zeichenkette steht hingegen macht das Gleiche f r das Ende der Zeichenkette Admi wird nicht in Admin Mod gefunden od jedoch sehr wohl da es am Zeichenkettenende steht Die eckigen Klammer und geben eine Optionsmenge an Aa bedeutet dass entweder ein gro es oder ein kleine
169. bereich im Script in dem dynamische Daten abgelegt werden z B Funktionsparameter lokale Variablen Die Gr e dieses Speicherbereiches kann durch die Pr prozessordi rektive pragma dynamic n ver ndert werden wobei n die Gr e in Zellen ist Die Standardgr e ist 2048 Zellen Beispiel aus plugin blatt_map Funktion DebugHeap 3641 DebugHeap context 4 3642 if g DebugLevel gt 2 3643 new heapsize MAX_TEXT_LENGTH 3644 snprintf heapsize MAX_TEXT_LENGTH s i free bytes context heapspace 3645 plugin_message heapsize 3646 3647 return 0 3648 Wenn der in der globalen Variable g_DebugLevel Debuglevel gr er oder gleich zwei ist wird der noch verbleibende Heap Speicher ermittelt und mittels plugin_ message in der Console Spieler oder Serverconsole ausgegeben Geh rt zu core inc 23http www adminmod de plugins php plugin plugin_blatt_map 276 8 10 Funktionsreferenz 8 10 99 help help sKeyword sKeyword Typ String 100 Diese Funktion ist veraltet und wird nicht mehr in Scripts verwendet Wenn fr her in der adminmod cfg ein help_ file gesetzt wurde konnte man z B per Script help vote ausf hren um sich alle Beschreibungen zu vote in der Konsole anzeigen zu lassen Wenn kein Schl sselwort sKeyword angegeben wurde wurden alle Funktionen angezeigt Die Funktionalit t wurde durch den direkten Admin Mod Befehl admin help und die Funktionen plug
170. c Siehe auch f_arccos f_arccot f_arcsin 8 10 37 fixed f_arctan_help f arctan_help fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_arctan_help ist lediglich eine Unterfunktion von f_arctan und ist f r eine Verwendung in einem Plugin nicht sinnvoll Geh rt zu math inc Siehe auch f_ arctan 229 8 Scripting 8 10 38 fixed f_arsinh f arsinh fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_arsinh gibt den Areasinus Hyperbolicus Wert als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zur ckgegeben Beispiel fNum f_arsinh fNum iError matherror iError Aus fNum wird der Areasinus Hyperbolicus gebildet und anschlie end eine m gliche Fehlermeldung mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_arcosh f_arcoth f_artanh 8 10 39 fixed f_artanh f_artanh fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_artanh gibt den Areatangens Hyperbolicus Wert als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zur ckgegeben Beispiel fNum f_artanh fNum iError matherror iError Aus fNum wird der Areatangens Hyperbolicus gebildet und anschlie end eine m gliche Fehlermel
171. ce version mismatch requested 5 9 ours 5 8 09 58 53 LOGD WARNING metamod version is newer than expected consider finding a newer version of this plugin 09 58 53 META dll Note Plugin interface version didn t match expected 5 9 found 5 8 09 58 53 META dll Note plugin is not using the latest interface version there may be an updated version of the plugin 09 58 53 LOGD LogDaemon v1 00 5 2002 09 17 09 58 53 LOGD by Will Day Tim Thelin Pieter de Zwart David Mart 09 58 53 LOGD compiled Sep 17 2002 22 59 31 PST optimized Es handelt sich dabei nur um eine Warnung In diesem Fall ist LogD aber immer noch kompatibel auch wenn es nicht mit der neusten Metamod SDK compiliert wurde Die Meldung kann daher ignoriert werden 161 7 Erweiterungen 7 1 LogDaemon LogD Einige Plugins ben tigen zus tzlich noch LogD LogDaemon das auf der LogD Seite bzw die 64bit Version auf Adminmod de 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
172. cfg stellt werden die nderungen beim Mapwechsel bernommen Alternativ kann man nach einer nderung auch einfach exec addons adminmod config adminmod cfg in der Serverconsole eingeben 4 1 1 admin_balance_teams admin balance teams lt gt Diese Variable wird vom TFC Plugin verwendet Bei einer zahlenm igen berlegenheit des gegnerischen Teams wird diese automatisch ausgeglichen indem einige Spieler ins gegnerische Team verschoben werden Die Zahl hinter der CVar gibt den Uberhang an Spielern an ab der das Plugin aktiv wird Die Standardeinstellung ist 0 deaktiviert F r CS hat diese Variable auf Grund der bereits integrierten L sung keine Bedeutung Beispiel admin _balance_teams 3 Sobald ein Team 3 Spieler mehr hat als das andere werden die Teams ausgeglichen 15 4 Konfiguration 4 1 2 admin_bot_protection admin_bot_protection lt gt Hat man Bots auf seinem Server so sollte man ggf die Variable auf 1 setzen Einige Bots vertragen keine Serverbefehle wie beispielweise kick Diese Einstellung verhindert dass ein solcher Befehl auf den Bot ausgef hrt werden kann Man l uft also Gefahr einen Servercrash zu erleiden Einfach ausprobieren ob der Bot stabil mit der eigenen Admin Mod Installation l uft Standardm ig ist die 0 voreingestellt deaktiviert Beispiel admin _bot_protection 1 Die Botprotection ist mit dieser Einstellung aktiviert 4 1 3 admin_connect_msg admin _con
173. ch noch der Hinweis F r Counter Strike und Team Fortress Classic gibt es spe zielle Standardplugins die zun chst erst aktiviert werden m ssen Entfernen der Raute Gerade bei Counter Strike kommen oftmals Fragen warum denn die Befehle ad min restartround oder admin ct nicht funktionieren Diese Befehle gibt es erst wenn man plugin_ CS auch aktiviert Es gibt dar ber hinaus auch die M glichkeit alle Dateien aus einem entsprechenden Verzeichnis zu laden Die ungew nschten Plugins m ssen dann nat rlich entfernt oder umbenannt werden z B amx in amx noload Des Weiteren muss die Variable admin plugin file das Verzeichnis der Scripts und nicht die plugin ini beinhalten Damit kann die plugin ini entfallen man kann dann aber die Ladereihenfolge nur noch ber den Dateinamen beeinflussen was manchmal unerw nscht ist 4 3 Plugins kompilieren Es taucht immer wieder die Frage auf wie man aus einer sma eine amx Datei macht Man nennt das Kompilieren Dabei ist sma der Quellcode und amx das fertige Plugin Jeder sollte grunds tzlich seine Plugins selber compilieren Das ist nicht wirklich schwie rig und verringert das Risiko dass einem ein b sartiges Plugin untergeschoben wird Man braucht zun chst einen Compiler Dieser liegt der jeweils aktuellen Admin Mod Version bei Nach dem Entpacken wechselt man in das Verzeichnis scripting myscripts Dies ist das Verzeichnis f r die Quellcod
174. chen Befehl ausgef hrt hat Geh rt zu adminlib inc Siehe auch exec setstrvar 222 8 10 Funktionsreferenz 8 10 27 existproperty existproperty id 0 const name value cellmin id 0 Typ Integer 2147483648 2147483647 const name Typ String variabel value cellmin Typ Integer 2147483648 2147483647 Mit dieser Funktion kann die Existenz einer so genannten Property bei gegebenem Schl ssel berpr ft werden Es handelt sich dabei um eine Funktion deren Benutzung unter Admin Mod vermieden werden sollte Stattdessen wird empfohlen z B die Funk tionen get_ vaultdata oder set_ vaultdata zur ckzugreifen Mehr Informationen zum Thema sind im Abschnitt 8 14 nachzulesen Beispiel bBoolean existproperty 2 test_prop bBoolean existproperty 3 15 Das erste Beispiel berpr ft ob die in ID 2 befindliche Property test __prop existiert w hrend das zweite Beispiel berpr ft ob die in ID 3 befindliche Property 15 gesetzt wurde Geh rt zu core inc Siehe auch deleteproperty getproperty setproperty 223 870 871 872 873 874 875 876 8 Scripting 8 10 28 fileexists fileexists sFilename sFilename Typ String 100 berpr ft unter Angabe von sFilename ob die Datei vorhanden ist Dazu muss die Variable file access _ read auf 1 in der adminmod cfg gesetzt sein Als R ckgabewert erh lt man eine 1 wenn die Datei vorhanden anderenfalls bekommt
175. chen Slots durchsuchen In dieser For Schleife wird bei allen Spielern das Gl hen abgeschaltet Geh rt zu admin inc Siehe auch playercount 289 8 Scripting 8 10 112 menu menu username text keys time 0 username Typ String 33 text Typ String 512 keys Typ Integer 0 1024 time 0 Typ Integer 0 2147483647 Unter Angabe des Spielers username kann man eine Nachricht text in Form eines Meniis anzeigen lassen Mit dem der Variable keys wird definiert welche Ziffertasten als Eingabe Optionen verwendet werden sollen Die Zahl errechnet sich aus der Summe der Zweierpotenzen von 2 Die Zahl n steht f r die jeweilige Ziffertaste Die Ziffer 0 ist f r die Variable keys eine 10 21 512 Der Wert 1024 sperrt alle Ziffertasten Sollen z B nur die Tasten 0 bis 3 ausw hlbar sein ergibt sich keys 21071 2171 4910519 1 2 4 519 Mit der Variable time definiert man die Dauer der Bildschirmausgabe Wird der Wert nicht angegeben oder wird eine 0 bergeben bleibt das Men offen bis etwas ausgew hlt wurde oder das Men von einem anderen berschrieben wurde Es gibt keine berpr fungsm glichkeit ob beim Spieler bereits ein Men ge ffnet ist Die Auswertung erfolgt ber den registrierten HL Befehl menuselect Tutorial Beispiel aus plugin CS Funktion DrawSubMenu 1625 strcat Menutext n n wO Back 512 1626 Keys 512 1627 playerinfo UserIndex
176. chen gesetzt werden Beispiel aus plugin_bk_cron Funktion admin _cron_add if strcount task lt 6 1 selfmessage Task not valid selfmessage cron_tnv selfmessage Usage admin_cron_add lt min gt lt h gt lt d gt lt mo gt lt wd gt lt cv gt lt cmd gt selfmessage cron_adduse return PLUGIN_HANDLED Die Anzahl der Leerzeichen wird im String task gesucht Falls die Anzahl kleiner als 6 ist wird eine zweizeilige Fehlermeldung in der Console des Admins ausgegeben Geh rt zu string inc 49nttp www adminmod de plugins php plugin plugin_bk_cron 349 8 Scripting 8 10 171 strcpy strcpy sDest sSource iMaxLen sDest Typ String 200 sSource Typ String 200 iMaxLen Typ Integer 0 200 Kopiert einen String sSource ber einen anderen sDest mit der Lange iMaxLen Beispiel aus plugin base Funktion admin_ pass 338 if streq Command admin_nopass 1 339 strcpy Data MAX_DATA_LENGTH Wenn der ausgef hrte Befehl admin_nopass lautet werden keine Parameter erwartet Um der Servervariable sv_ password sp ter auf einen leeren Wert zu setzen wird Data auf zwei Anf hrungszeichen gesetzt Geh rt zu string inc Siehe auch strncpy 390 8 10 Funktionsreferenz 8 10 172 strcspn strcspn sSource sSearch sSource Typ String 200 sSearch Typ String 200 Die Funktion sucht Zeichen aus ein
177. cht beschneiden und r umt Ihnen den selben Accesslevel ein Dann wird es mit der Highl ndervergabe problematisch Eine einfache L sung bietet sich mit dem nichtgenutzten Accesslevel 131072 an Dieses addiert man zum Accesslevel des Haupt admins hinzu Anschlie end ist der Hauptadmin immer Highlander die Rechte 65336 stehen aber auch den Unteradmins zur Verf gung w hrend der Hauptadmin offline ist Default 0 Beispiel admin highlander 1 Mit dieser Einstellung wird derjenige alleiniger Admin der den h chsten Accesslevel besitzt Siehe auch admin ignore immunity admin _reject_msg amv_private_server default_ access 20 4 1 Admin Mod einrichten adminmod cfg 4 1 12 admin_ignore_immunity admin _ignore immunity lt gt Eure Admins laufen hin und wieder Amok Ihr habt Ihnen in der users ini aber leider Immunit t verliehen Das kann man auch allgemein ausschalten in dem man diesen Wert auf 1 setzt Die Rache ist Euer aber Vorsicht Ihr habt auch keine Immunit t mehr Die Standardeinstellung ist 0 und sollte das auch bleiben Beispiel admin _ignore immunity 1 Dies setzt die Admin Immunit t au er Kraft Siehe auch admin highlander admin_reject_msg amv_ private_ server default_ access 4 1 13 admin_plugin_file admin_plugin_file lt string gt Der Vorgabewert sollte nur ver ndert werden wenn die Datei an einer v llig ande ren Stelle als vorgesehen installiert ist Die meisten Serveradmins soll
178. chten adminmod cfg 4 1 31 amv_hide_reserved_slots amv_hide_reserved_slots lt gt Wenn aktiviert werden die reservierten Slots versteckt 1 Bei 0 werden auch diese nach au en angezeigt Standard 1 Es ist zu beachten dass viele Spieler bei Abschaltung der Funktion irrt mlich davon ausgehen dass noch Platz auf dem Server ist obwohl dies nicht der Fall ist Ein ordentlicher Serverbrowser kann das trotz Aktivierung aber erkennen Dazu geh rt leider nicht der Steam Browser Beispiel amv_hide_reserved_slots 0 Damit werden auch alle reservierten Slots von au en sichtbar Notwendig wenn der Connect nur ber den Steam Browser erfolgt Nicht zu empfehlen Besser eine Desktop verkn pfung f r den Server erstellen siehe auch Kapitel zur users ini Siehe auch ami_sv_maxplayers public_slots_ free reserve_slots reserve_type 4 1 32 amv_log_passwords amv_log passwords lt gt Ist admin_ debug aktiviert und dieser Wert nicht 0 so werden die Admin Mod Passw r ter in die Logs geschrieben Man kann damit die Passw rter in den Logfiles mitlesen Dies sollte nur dann aktiviert werden wenn man beim Connect ein Authentifizierungsproblem hat und berpr fen m chte ob das Passwort richtig bertragen wird Beispiel amv_log_passwords 1 Dies aktiviert dass die Passw rter im Klartext in den Logs stehen Nicht empfehlens wert Siehe auch admin debug 31 4 Konfiguration 4 1 33 amv_private_s
179. ck2 wav he_attack3 wav he_diel wav he_ die2 wav hc_headbite wav he_idlel wav he_idle2 wav he_idle3 wav he_idle4 wav he_idle5 wav hc_painl wav hc_pain2 wav hc_pain3 wav B 4 21 hgrunt al wav a wav _period wav _comma wav alert wav am wav alert wav am wav alien wav anything wav alien wav are wav aff rmative wav affirmative wav alll wav all wav are wav area wav 413 B Sonstiges 414 area wav ass wav ass wav at wav away wav backup wav backup wav bag wav bastard wav stard wav blow wav bogies wav bogies wav bravo wav bravo wav c2a2_hg chatla wav c2a2_hg chat2a wav c2a2_hg chat3a wav c2a2_hg chat4a wav c2a2_hg chat5a wav c2a3_ambush_fx wav c2a3_ambush_vox wav c2a3_hg 1drag wav c2a3_hg 2drag wav c2a3_hg 3drag wav c2a3_hg 4drag wav c2a3_hg 5drag wav c2a3_hg laugh wav c2a5_hg abandon wav c2a5_hg lebuz wav call wav casualties wav charlie wav charlie wav check wav check wav checking wav checking wav clear wav clear wav clik wav command wav command wav continuel wav continue wav control wav control wav cover wav creeps wav creeps wav damn wav damn wav delta wav delta wav down wav down wav east wav east wav echo wav echo wav eightymeters wav eliminate wav everything wav fall wav fiftymeters wav fight wav fight wav fire wav fire wav five wav five wav fivemeters
180. d lt gt GameDLL Das hat aber den Nachteil dass Metamod und damit seine Plugins keinen Einfluss mehr auf die BotDLL haben Frage Wie soll jetzt Metamod eine zweite GameDLL laden wenn a nur eine GameDLL existieren kann die BotDLL sieht ftir Metamod aus wie eine GameDLL und b diese 403 B Sonstiges in die Reihe passen muss aber Metamod nur die Position rechts von sich beeinflussen kann Faktenlage B Um Metamod mitzuteilen dass es eine andere GameDLL laden soll als die die es normalerweise aussuchen w rde setzt man ein Schl ssel Wert Paar die in der Liste namens localinfo Als Schl ssel nimmt man daf r mm__gamedll und der Wert enth lt den Pfad zur GameDLL z B podbot podbot dll Danach hat man folgende Liste mm_gamedll podbot podbot d11 Metamod schaut nach ob es einen Eintrag unter dem Schl ssel mm_gamedll gibt und verwendet diesen um die dort angegebene Game DLL zu laden Die Kommandozeile localinfo mm_gamedll podbot podbot d1l legt dieses Paar unter diesem Schl ssel mit diesem Wert in der Engine an Was passiert wenn dieser Schl ssel zweimal mit einem Wert belegt wird localinfo mm_gamedll podbot podbot d1l localinfo mm_gamed11 dummbot dumm d11 Da ein Schl ssel in nur genau einem Schl ssel Wert Paar vorkommen kann sonst w re er ja nicht eindeutig resultiert daraus logischerweise folgende Liste mm_gamed11 dummbot dumm d11 Die erste Paarbelegung wird
181. dem Kapitel 3 5 zu ent nehmen 3 3 Installation Linux FreeBSD Wie bereits erw hnt ist die Distributionsstruktur nicht identisch mit der Installationss truktur 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 http www hlsw de Shttp www counter strike net 3 Installation Erstelle addons adminmod config Erstelle addons adminmod dlls Erstelle addons adminmod scripts Aus der entpackten Admin Mod Distribution k nnen alle Dateien aus dem Verzeich nis 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 a
182. den muss damit dieser durchgef hrt wird Default 80 Beispiel map_ratio 40 Stimmen mindestens 4 von den 10 auf dem Server befindlichen Spielern fiir den Map change so wird dieser ausgef hrt 80 als Standardwert sind vielleicht etwas hoch ge w hlt Siehe auch admin vote _autostart admin _vote _echo admin_vote_freq admin_vote_maxextend admin __vote_ratio amv_vote_duration kick ratio vote_freq 38 4 1 Admin Mod einrichten adminmod cfg 4 1 46 maps_file maps_file lt string gt Mit dieser Variablen wird definiert wo die Datei f r die benutzbaren Maps zu finden ist In der Regel ist dies addons adminmod config maps ini Nur die in dieser Datei genannten Maps sind von Admin Mod Plugins nutzbar Standard Sollen alle Maps votebar sein so ist die Datei zu deaktivieren indem die Variable auf gesetzt wird Beispiel maps_file addons adminmod config maps ini Admin Mod l sst Mapvotes etc nur zu wenn die entsprechende Map auch in der maps ini steht Ist diese leer kann gar keine Map ausgew hlt werden Siehe auch admin plugin file admin_vault_ file ips_ file models_ file users_file words_ file 4 1 47 models_file models_file lt string gt Definiert wo sich die Datei f r die Modelreservierung befindet Diese Datei wird nur sehr selten verwendet und ist bei Bedarf unter addons adminmod config models ini anzulegen und entsprechend in die Variable zu schreiben Brauch
183. ders wav our wav out wav out wav over wav over wav patrol wav patrol wav people wav people wav position wav position wav post wav post wav private wav private wav quiet wav quiet wav radio wav radio wav recon wav recon wav request wav right wav right wav roger wav roger wav sector wav sector wav secure wav secure wav seventymeters wav shit wav shit wav shot wav shot wav sign wav sign wav signs wav signs wav silence wav silence wav sir wav sir wav six wav six wav sixtymeters wav some wav some wav something wav something wav south wav south wav squad wav squad wav stay wav stay wav suppressing wav sweep wav sweep wav take wav tango wav tango wav target wav target wav team wav team wav tenmeters wav that wav that wav the wav the wav there wav there wav these wav these wav thirtymeters wav this wav this wav 415 B Sonstiges those wav wel wav those wav we wav three wav weapons wav three wav weapons wav tight wav weird wav tight wav weird wav twentymeters wav west wav two wav west wav two wav we ve wav twohundredmeters wav we ve wav uhh wav will wav under wav yeahl wav up wav yeah wav up wav yes wav yes wav yessir wav yessir wav you wav your wav your wav zero wav zero wav zone wav zone wav zulu wav zulu wav B 4 22 holo tr_ba_lightson wav tr ba unuse wav tr_ba__us
184. des Plugins wieder damit sie den nachfolgenden Funktionen bekannt sind Zahlen k nnen auch in bis zu zweidimensionalen Feldern verwendet werden new aFeld 2 2 aFeld 1 0 5 aFeld 1 1 3 Eine einmal festgelegte Feldgr e kann w hrend der Laufzeit nicht ge ndert werden Man sollte vorausschauend programmieren und die Feldgr e ausreichend dimensionieren Die 1 und die 0 sieht Small neben den blichen Rechnungen insbesondere in Vergleichen auch als Boolean Wert Wahr bzw Falsch an Konstanten werden stets am Kopf des Plugins definiert Die Definition sieht etwa fol genderma en aus define MAX_TEST_LENGTH 100 170 8 3 Operatoren Dies ist eine compilerspezifische Anweisung und muss damit nicht mit einem Semikolon abgeschlossen werden Der Compiler ersetzt im Beispiel alle MAX_TEST_LENGTH beim Compilieren durch 100 Eine Feldvariable kann also auch so definiert werden new Variable MAX_TEST_LENGTH Das mag auf den ersten Blick etwas umstandlich erscheinen Hat man jedoch mehrere dieser Felder kann man die Gr e aller bequem ber die Konstantendefinition ndern Dar ber hinaus erh ht es die Lesbarkeit des Programmcodes Alternativ kann man Konstanten auch mit einem vorangestellten const definieren const cVariable 1 Strings werden in Feldern abgespeichert wobei jeder Buchstabe eine Zahl in einer Zelle des Arrays ist Das Feld zum zugeh rigen Text muss immer um eine Zelle gr e
185. die Map neu gestartet werden soll include lt core gt include lt string gt include lt admin gt include lt adminlib gt public test HLCommand HLData HLUserName UserIndex if vote_allowed 1 selfmessage Vote noch nicht erlaubt return PLUGIN_HANDLED vote Restart Ja Nein HandleVsay return PLUGIN_HANDLED public HandleVsay WinningOption HLData VoteCount UserCount if WinningOption 1 say Mehrheit wollte Restart setstrvar sv_restart 1 183 7 8 9 0 1 8 Scripting else say Mehrheit wollte keinen Restart public plugin_init plugin_registerinfo Testplugin Ein Testplugin 1 0 plugin_registercmd admin_test test ACCESS_ALL Restartvote return PLUGIN_CONTINUE Um den Vote ausf hren zu k nnen braucht man ein Event Es wurde zu diesem Zweck ein Befehl eingef gt Zeile 28 der auf die test Funktion verweist Nat rlich l sst sich der Vote auch mit anderen Events koppeln Zun chst muss berpr ft werden ob ein Vote berhaupt erlaubt ist if vote_allowed 1 selfmessage Vote noch nicht erlaubt return PLUGIN_HANDLED Die Funktion vote_ allowed tiberpriift ob die in der Variablen vote_ freq festgelegte Zeit seit dem letzten Vote bzw des Mapchanges abgelaufen ist Ist dies nicht der Fall wird dem Aufrufenden ein Nachricht in die Console gesendet selfmessage und anschlie end die Ausf hrung mi
186. dminmod 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 plug ins 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 Ein stellungen 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 dl1s admin_MM i386 so F r die 64 bit Linuxversion lautet die Zeile folgenderma en http www metamod or
187. dminmod config adminmod cfg um die Grundein stellung beim Mapwechsel zur ckzuerlangen admin_cmd admin ffmon rs 10 Dazu muss gew hrleistet werden dass die server cfg bei jedem Mapwechsel ausgef hrt wird Dies erreicht man mit dem folgenden Eintrag mapchangecfgfile server cfg A 2 3 Probleme FFMon funktioniert aber nicht Es ist mittels Consoleneingabe zu berpr fen ob LogD korrekt installiert ist rcon meta list Die R ckgabe m sste dann Folgendes enthalten x LogDaemon RUN logd_mm_i386 so v1 0 0 6 ini ANY Pause Des Weiteren ist zu berpr fen ob mp_logdetail 3 in der server cfg eingestellt ist TKs werden nicht ber 24 Stunden behalten Es ist zu berpr fen ob file _access_ read und file access write in der adminmod cfg jeweils auf 1 eingestellt ist Anderenfalls kann das Plugin die TKs nicht lesen und oder speichern Beim TK Opfer erscheint kein Menu Es ist in die adminmod cfg zu berpr fen ob der Eintrag amv_enable_beta menul eingetragen ist Weiterhin sollte berpr ft werden ob admin _ffmon tkmenu on einge stellt ist Trotz forgive wird der T ter am Rundenanfang get tet Dieser Effekt kann auftreten wenn in der server cfg die Variable mp_tkpunish nicht auf 0 gesetzt wurde Quelle Stillsetzhut 401 B Sonstiges B 1 Was macht eigentlich Setinfo Jeder kennt sicherlich Servervariablen Beispiel mp_timelimit Diese Variablen sind fest in der Serversoftware verdrahtet Man kann nur
188. dung mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_arcosh f_arcoth f_arsinh 230 8 10 Funktionsreferenz 8 10 40 fixed f_cos f_cos fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_cos gibt den Kosinus Wert als eine Festkommazahl zur ck Beispiel aus math inc Funktion f_tan 398 stock fixed f_tan fixed fNum 399 return fdiv f_sin fNum f_cos fNum 400 7 Der Tangens wird aus der Berechnung tan z sinz gebildet Geh rt zu math inc Siehe auch f_cot f_sin f_tan 8 10 41 fixed f_cosh f_cosh fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_cosh gibt den Kosinus Hyperbolicus Wert als eine Festkommazahl zu r ck Beispiel aus math inc Funktion f_tanh 493 stock fixed f_tanh fixed fNum 494 return fdiv f_sinh fNum f_cosh fNum 495 Der Tangens Hyperbolicus wird aus der Berechnung tanh x sinhe gebildet Geh rt zu math inc Siehe auch f_coth f_sinh f_tanh 231 8 Scripting 8 10 42 fixed f_cot f_cot fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_cot gibt den Kotangens Wert als eine Festkommazahl zur ck Beispiel fNum f_cot fNun Aus fNum wird der Kotangens gebildet Geh rt zu math inc Siehe auch f_cos f_sin f_tan 8 10 43 fixed f_coth f_coth fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482
189. durch ein erneutes Zuweisen berschrieben Der letzte Ein trag gilt Genauso wie wenn in der server cfg die selbe Cvar mehrfach belegt wird es gilt nur die letzte Zuweisung Schlussfolgerung Es ist technisch und logisch nicht m glich zwei GameDLL zu laden und es ist ebenso nicht m glich zwei Paare unter demselben Schl ssel anzulegen Autor Da Rope B 3 Res Dateien Resourcendateien oder kurz RES Dateien sind Textdateien welche sich im Maps Ver zeichnis des Mods befinden Der Dateiname entspricht dem Mapnamen wie zum Beispiel de_dust res Man ben tigt derartige Dateien um Sounds Texte oder Teile von Maps vom Server zum Client zu bertragen Wie bereits erw hnt sind RES Dateien einfache Textdateien und k nnen somit ber jeden Editor wie beispielsweise Notepad erstellt oder ver ndert werden Da die RES Dateien zum bertragen von Dateien vom Server zum Client benutzt wer den m ssen die zu bertragenden Dateien auf dem Server vorhanden sein In der RES 404 B 4 HL Sounds Datei wird nun der Dateiname und der zugeh rige Pfad relativ zum Mod Pfad angegeben Beispiel Angenommen es befindet sich eine Datei namens woohoo wav im Verzeichnis cstri ke sound misc des Servers Diese soll zum Client bertragen wenn zur Map de_dust gewechselt wird Dazu muss eine Datei namens de_ dust res im Ordner maps des Servers erstellt werden und die folgende Zeile hineingeschrieben werden sound misc woohoo wav
190. e Beim Auslesen w hrend des Serverstarts ist dies noch akzeptabel ein Auslesen w hrend der Spielzeit kann bei einer For Schleife durchaus zu Aussetzern im Spiel f hren Lag Wenn m glich sollte man seine Einstel lungen ber die vault ini lesen und schreiben Beispiel aus plugin_bk_res Funktion add_res_ data 155 iLines filesize sMap lines 156 for i 1 i lt iLines i 157 readfile sMap sLine i MAX_DATA_LENGTH 158 writefile sMap2 sLine 1 159 Es wird die Anzahl der Zeilen der Datei sMap ausgelesen Anschlie end werden die Daten ber eine For Schleife zeilenweise von einer Datei sMap in eine andere sMap2 kopiert Die Zeilen bernehmen nicht unbedingt die Zeilennummer der Ursprungsdatei Die Zeilen werden beim Schreiben nur angeh ngt 1 Geh rt zu admin inc Siehe auch deletefile filesize resetfile writefile 39nttp www adminmod de plugins php plugin plugin_bk_res 318 443 444 445 446 8 10 Funktionsreferenz 8 10 142 reject _message reject_message iPublic 0 iPublic 0 Typ Integer 0 1 Die Funktion gibt eine Fehlermeldung an den Spieler aus You do not have access to this command wenn ein Spieler ohne die notwendigen Rechte versucht einen Befehl auszuf hren Diese Funktion greift auf die in admin_reject_msg definierte Nachricht zur ck Ist diese dort nicht definiert wird dem Spieler You do not have access to this command in der Konsole angezeigt Verw
191. e Dateien sma Zwei Dateien sind bereits vorhanden Unter Linux sind das compile und compile_ all sowie unter Windows compile bat und compile_all bat 61 4 Konfiguration Um einzelne Plugins zu compilieren muss man eine Shell bzw Eingabeaufforderung ffnen und im myscripts Verzeichnis schreiben compile plugin _xxx sma bzw f r Windows compile bat plugin_xxx sma Wobei plugin_xxx sma nat rlich f r jedes x beliebige Plugin steht Das ist etwas unbequem Weil der Compiliervorgang meist recht kurz ist kann man auch alle Plugins auf einmal kompilieren compile_all bzw fir Windows compile _all bat Sofern keine Fehlermeldungen ERROR aufgetreten sind muss man nun nur noch ins Verzeichnis scripting mybinaries gehen und die fertigen Plugins abholen Der Unterschied zwischen ERROR und WARNING ist zu beachten Plugins mit WAR NINGs funktionieren meist ohne Probleme Es ist zwar unsch n wenn man diese be kommt aber es ist kein Weltuntergang In der Regel passiert das gern wenn man ltere Plugins compilieren m chte Der Compiler wurde von Version zu Version versch rft Da sind Warnings dann nicht auszuschlie en Es darf weiterhin nicht bersehen werden dass amx Dateien nicht gleich amx Dateien sind Sie wurden f r das jeweilige Betriebssystem kompiliert auf dem der Compiler lief Viele kompilieren unter Windows haben aber einen Linuxserver Seit Version 2 50 56 konvertiert Admin Mod
192. e Waffen und Equipment die sich bereits im Besitz der Spieler befinden werden nicht erkannt und verschwinden erst aus dem Spiel wenn sie nach Rundenende nicht mehr am Mann sind Gibt man keine Option an werden die aktuellen Restriktionen angezeigt Diese Funktion steht allen Spielern zur Verf gung Recht 0 F r tempor re Einstellungen braucht man das Recht 32 zum Speichern und L schen von Einstellungen wird jedoch das Recht 512 ben tigt Die Einstellungen k nnen ber den Befehl admin unrestrict r ckg ngig gemacht wer den Dar ber hinaus steht ein Men ber den Befehl admin _ restrictmenu zur Verf gung Optionen lt on off gt Schaltet die Restriktionen ein oder aus save default map Speichert die aktuellen Restriktionen allgemein oder nur fiir die aktuelle Map delete default map L scht die aktuellen allgemeinen oder mapspezifischen Restriktionen 133 5 Standardplugins und Befehle restore Stellt die allgemeinen und mapspezifischen Restriktionen wieder her Die folgenden Optionen erm glichen neben dem serverweiten Verbot auch optional die Beschr nkung eines Teams oder eines bestimmten Spielers player lt Name gt team lt ct t gt all Verbietet jeglichen Einkauf player lt Name gt team lt ct t gt weapons Verbietet den Kauf aller Waffen player lt Name gt team lt ct t gt menu Men name nummer Verbietet ein bestimmtes Kaufmen ber die Men nummer player lt Name gt team
193. e durchgef hrt wird Einstellung 0 Ersteres lohnt sich bei wenigen Spielern und oder nur wenigen nderungen in der Datenbank Letzteres ist die flexiblere L sung da nderungen in der Datenbank sofort beim n chsten Connect aktiv sind H ufige Da tenbankabfragen m ssen jedoch in Kauf genommen werden was ggf f r Verz gerungen im Spielverlauf Lags sorgen kann Dies ist aber eine sehr hypothetische Einschr nkung so dass man stets den Preload abschalten sollte Sollte es Probleme geben kann man immer noch wechseln Schaltet man den Preload der Daten ab er ffnet sich einem die M glichkeit auch nicht standardkonforme SQL Abfragen durchzuf hren Dies geschieht mittels der Variablen mysql users _sql mysql_tags_ sql Die Verwendung der Variablen ist nicht trivial so dass nur Profis und Frustrations tolerante sich daran versuchen sollten Wer den Preload weiterhin verwenden m chte oder sich nicht so mit der von Admin Mod erwarteten Syntax auskennt der kann sich ggf mit MySQL Views Version 5 0 1 oder neuer notwendig behelfen Auf die einzelnen M glichkeiten soll im Abschnitt 4 12 am Beispiel der Einbindung Admin Mods in die beliebte Forumsoftware phpBB eingegangen werden 4 11 PostgreSQL Installation einrichten Es wird davon ausgegangen dass Admin Mod bereits in einer Fallback Konfiguration Benutzung von Dateien l uft Eine Anleitung ist in Kapitel 3 4 zu finden In Admin Mod PostgreSQL k nnen die Dateien users
194. e ep eS we 98 Dead admin Schau 4 2 dee Me he BA wee ie db wd foe we he we 98 5 3 6 admin csay sc eys Bw hd r pa nde ee murag ade Ree ae E E 99 ee Ale Almen eo sen Ba ran anne 99 5 3 8 Admin Wee ss s e aoa pa PRR we ee a Be 100 5 3 9 aca ea ae AAP eA ee Dew 100 Sal admin BE as apra ae oes ae YD aoe BD Ke 101 5 311 admin hostmame s s s saa tse ss da 40 45 80 045 2 44 101 53 12 admin Kek ee messua p u ee e 102 53 13 admin Snaps ee gae a e awe oeni 103 ll admin MAP s aes sda OG BRE SYK EER Be ee er 103 53 15 admin Motd u 8 r una ke Mom a 104 5 3 16 admin MECA 2 2 2 9 AA me da ee 104 malt o AA 105 53 18 admin PASS ceca ara 105 9 3 10 admin AMS sce ee ee ee a eh Di rd Ward 106 53 20 Alam DS ni a AAA 106 9321 admin CON s Aa se et Geko we to is re ee Ge 107 5 3 22 admin reload 2 lt 4446 44444 2444 443 bade be BS 108 53 29 Admin Sk he er Re ek eh we ee ee eee de 108 5 3 24 admin _servercfg 4 acne eh Re DR EE RR ee 109 53 29 NA eee a A pe a ee 109 5 3 26 admin _ teamplay ces Herrn in A 110 5 3 27 admin timeleft lt a pesi i ee ad eds a we 110 5 3 28 admin timelimit osa valve a wa a m Be ee 111 53 29 Admin TR e ee we Eaa A Bleed a Be we ea 111 D330 admin Unban ea s saca a ara he ve ae Se ee ae a 112 53 31 admin WANES es a wee eee we a AA A ee 112 5 3 92 admin userlist lt e cs crosa ae a aa 113 5 333 admin yote kick s pea 0 rehemp dhe a 113 DIL Admi yote Maps se ri eg re a ee wd 114 Homo dmim ysy o ccs sd eetk me p
195. e in der adminmod cfg anzugeben 4 11 2 Users Tabelle Die Users Tabelle wird als Ersatz f r die users ini eingerichtet Sie besteht aus den Spalten nick pass und access quivalent zur Angabe in der users ini handelt es sich dabei um den Usernamen oder ID das zugeh rige Passwort und den Rechten des Users adminmod gt CREATE TABLE users nick VARCHAR 31 PRIMARY KEY NOT NULL pass VARCHAR 64 NOT NULL access INTEGER UNSIGNED NOT NULL Der Tabellenname muss in der adminmod cfg unter pgsql_dbtable_users angegeben werden Es ist daher auch m glich einen anderen Namen f r die Users Tabelle zu w hlen 4 11 3 Tags Tabelle Wie bereits beschrieben ist die Verwendung von RegEx innerhalb gro er Datenbest nden ineffizient Daher sollten zu sch tzende Clantags in diese Extratabelle geschrieben wer den Diese sollte dadurch erheblich kleiner ausfallen Angelegt wird sie nat rlich genauso wie die Users Tabelle adminmod gt CREATE TABLE tags tag VARCHAR 30 PRIMARY KEY NOT NULL pass VARCHAR 64 NOT NULL access INTEGER UNSIGNED NOT NULL Der Tabellenname muss in der adminmod cfg unter pesql_dbtable_tags angegeben wer den Es ist daher auch m glich einen anderen Namen f r die Tags Tabelle zu w hlen 84 4 11 PostgreSQL Installation einrichten 4 11 4 Models Tabelle Die Models Tabelle wird als Ersatz f r models ini eingerichtet Sie besteht aus den Spal ten nick und pass quivalent zur
196. e phpwcns index php regex_dt_tb 75 4 Konfiguration die users ini einzutragen Als LETZTEN Eintrag schreibt man den Clantag mit einem x beliebigen Passwort und dem Recht 16384 zum Reservieren dieses Namens Das Passwort sollte auf jeden Fall von niemanden zu erraten sein Es wird auch von keinem Admin gebraucht Jeder Admin in der users ini der Clanmitglied ist muss mit dem Recht 16384 Na mensreservierung ausgestattet sein Anderenfalls wird er bei Verwendung des Clantags gekickt Admin Mod scannt die users ini nach der Adminerkennung weiter Der Clantag Eintrag muss der letzte Eintrag sein Sollten weitere Clanmitglieder in der users ini folgen w rden sie bereits von der Clantagerkennung gekickt werden bevor sie sich als Admin authentifizieren k nnen Clantags bestehen meist aus diversen Sonderzeichen die der RegEx Algorithmus als Steuerzeichen ansieht d h es kommt zu einer kompletten Missinterpretation Daher muss jedes Sonderzeichen escaped werden Dies geschieht ber einen Backslash Im Falle des Clans WING sind die eckigen Klammern ein Problem Daher m sste man zum sch tzen des Clantags z B schreiben WING sdjgfsjg 16384 Escaped werden m ssen folgende Zeichen I Verwendet man zus tzlich weitere Namen in der users ini m ssen auch die dort verwen deten Sonderzeichen escaped werden Dies gilt nicht f r IDs oder IPs Hier erkennt Admin Mod dass es
197. e wav seven wav seventeen wav seventy wav severe wav sewage wav sewer wav shield wav shipment wav shock wav shoot wav shower wav shut wav side wav sierra wav sight wav silo wav six wav sixteen wav sixty wav slime wav slow wav soldier wav some wav someone wav something wav son wav SOrry wav south wav squad wav square wav stairway wav status wav sterile wav sterilization wav storage wav sub wav subsurface wav sudden wav suit wav superconducting wav supercooled wav supply wav surface wav surrender wav surround wav surrounded wav switch wav system wav systems wav tactical wav take wav talk wav tango wav tank wav target wav team wav temperature wav temporal wav ten wav terminal wav terminated wav termination wav test wav that wav the wav then wav there wav third wav thirteen wav thirty wav this wav those wav thousand wav threat wav three wav through wav time wav to wav top wav topside wav touch wav towards wav track wav train wav transportation wav truck wav tunnel wav turn wav turret wav twelve wav twenty wav two wav unauthorized wav under wav uniform wav unlocked wav until wav up wav upper wav uranium wav us wav usa wav use wav used wav user wav vacate wav B 4 HL Sounds valid wav warn wav xeno wav vapor wav warning wav yankee wav vent wav waste wav yards wav ventillation wav water wav year wav victor wav we wav yellow wav violated w
198. e wav tr_holo_3jumps wav tr_holo_breakbox wav tr_holo breath wav tr_holo button wav tr_holo_charger wav tr_holo_commencing wav tr_holo_congrats wav tr_ holo done wav tr_holo drown wav tr_holo duck wav tr_holo fallshort wav tr_holo fantastic wav tr_holo_flashlight wav tr_holo_greatwork wav tr_holo_grenade wav tr_holo_hitall wav tr_holo_injury wav tr_holo intro wav tr_holo_jduck wav tr_holo_jump wav tr_holo_jumpdown wav tr_holo_jumpgap wav tr_holo_keeptrying wav tr_holo_ladder wav tr_holo_leadguard wav tr_holo_lightoff wav tr_holo_longjump wav tr_holo medkit wav tr_holo move wav tr_holo_nicejob wav tr_holo_pipeduck wav tr_holo_pullbox wav tr_holo_pushbox wav tr_holo radiation wav tr_holo_retry wav tr_holo runstart wav tr_holo_spinbridge wav tr_holo_startlift wav tr_holo_steam wav tr_holo_target wav tr_holo_tryagain wav tr_holo_usetrain wav tr_sci_goodwork wav tr_sci_hardlynoticed wav tr_sci_nextstation wav tr _sci_unuse wav tr_sci_use wav B 4 23 hornet 416 ag buzzl wav ag buzz2 wav ag buzz3 wav ag hornethitl wav ag hornethit2 wav ag hornethit3 wav B 4 24 houndeye B 4 25 ichy ichy_alert1 wav ichy_diel wav ichy_idle4 wav ichy_alert2 wav ichy_die2 wav ichy_painl wav ichy_alert3 wav ichy_die3 wav ichy_ pain2 wav ichy_attackl wav ichy_die4 wav ichy_pain3 wav ichy_attack2 wav ichy_idlel wav ichy_pain5 wav ichy _bitel wav ichy__idle2 wav ichy_bite2 wav ichy_
199. e_duration lt gt Gibt die Lange eines Votes in Sekunden an Normalerweise sind es 30 Sekunden Minimal sind 2 maximal 1800 Sekunden m glich Es ist zu beachtetn dass die Ver nderung dieses Wertes keinen Einfluss auf die Lange eines gerade laufenden Votes hat Erst beim Start des nachsten Votes werden die Einstellungen aktiv Beispiel amv_vote_duration 60 Damit ist der n chste Vote f r 60 Sekunden aktiv Siehe auch admin _vote_autostart admin _vote _echo admin_vote_freq admin_vote_maxextend admin vote _ratio kick ratio map_ratio vote_freq 4 1 38 default _access default_access lt gt Mit dieser Variablen wird definiert welche Rechte die Spieler erhalten die NICHT in der users ini stehen Berechnet wird dieser Wert genauso wie bei einem normalen Benutzer bliche Werte sind jedoch entweder 0 oder 1 da dar ber hinausgehende Rechte f r Nichtadmins keinen Sinn machen Default 1 Beispiel default_access 0 Die meisten Admins werden den default _ access wie gezeigt auf 0 stellen wollen Einige Rechte aus dem Accesslevel 1 sind meist unerw nscht Siehe auch admin ignore immunity admin_highlander admin_reject_msg amv_private_server 34 4 1 Admin Mod einrichten adminmod cfg 4 1 39 encrypt_password encrypt_password lt gt Admin Mod Passw rter k nnen lokal auf dem Server verschl sselt werden Dies verhin dert dass Dritte bei Zugriff auf den Gameserver das Passwort aussp hen k nnen E
200. eben Wenn der Schl ssel vorhanden und iBots kleiner gleich der Spieleranzahl ist wird die Ausf hrung der Funktion addbot gestoppt und somit kein weiterer Bot hinzugef gt Geh rt zu admin inc Siehe auch get_vaultdata set _vaultdata set _vaultnumdata 20nttp www adminmod de plugins php plugin plugin_bk_botmanager 266 8 10 Funktionsreferenz 8 10 87 getarg getarg arg index 0 arg Typ Integer Wertebreich 0 2147483647 index 0 Typ Integer 0 2147483647 Diese Funktion wird nur Fallen gebraucht wenn man die Argumente einer Funktion mit variabler Argumentanzahl auslesen m chte Dabei gibt arg die Position des Arguments beginnend mit 0 an Das Argument index wird nur ben tigt wenn arg ein Feld z B ein String ist Es gibt die auszulesende Zelle des Feldes an Beispiel sum new result 0 for new i 0 i lt numargs i result getarg i return result Eine Funktion sum mit variabler Argumentanzahl wird definiert Eine For Schleife fragt die einzelnen Argumente ab und addiert sie Die Summe wird zur ckgegeben Die Anzahl der bergebenen Argumente wird mit numargs ermittelt Geh rt zu core inc Siehe auch numargs setarg 8 10 88 getchar getchar echo true echo true Typ Integer 0 1 Diese Funktion liest die Tastatureingabe eines Zeichens aus und schreibt es bei der Option 1 in die Befehlszeile zur ck Mangels einer so
201. eben werden Beim Namen gen gt auch ein eindeutiger Teil des Namens Man kann die Aktion auch auf ein ganzes Team anwenden in dem man den Befehl admin slayteam verwendet Beispiel admin _slay Killme admin _slay Big admin _slay STEAM_0 123456 admin _slay 23 156 43 12 Im ersten Beispiel segnet der Spieler Killme das Zeitliche Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 128 Geh rt zu plugin_retribution Siehe auch admin_slayteam 152 5 10 plugin retribution 5 10 9 admin_slayteam admin_slayteam lt Teamnummer gt Mit diesem Befehl l sst man alle Spieler des angegebenen Teams das Zeitliche segnen Vorausgesetzt admin fx ist in der adminmod cfg aktiviert wird der Befehl mit einem Sound untermalt Man kann die Aktion auch auf einen einzelnen Spieler anwenden in dem man den Befehl admin slay verwendet Beispiel admin_slayteam 2 Dies l sst alle nicht gesch tzten Spieler des Teams das Zeitliche segnen Bei Counter Strike w rde dies das CT Team bei TFC das rote Team betreffen Access Level 128 Geh rt zu plugin_retribution Siehe auch admin_ slay 5 10 10 admin_unbury admin_unbury lt Spielername gt Mit diesem Befehl kann man einen urspriinglich im Boden versenkten Spieler wied
202. ee 410 Bawls COS a sa Cae AE Me E be ee Owe Oe a 411 BAI fans vence e ee 411 BAUS NO aia aa ed Gt dd a 411 BATO BIT ne ce AE Ore A REE A et 412 BAIT gman ca ro rd a a a ele 413 DAA gonarch see ciri gi ewr e we Ae EY a bX 413 B 4 19 hassault e socso onen 413 B420 hesderab ocres see AA e 413 Sak Bee a OR Se eB 413 Bag COLON y oe sha CAE Me E be ee Owe Oe a 416 B4 23 Orel a a u sone bee dee e ee b Ae de a 416 BA24 DOUDAEYS 2 424 444 644446464 4444446246 22 a E 417 Ba WY ere pa a ere U a re UL See Se 417 BA20 MEMES dara ei de sd ae a u a dee e 417 B427 leeching s di ek bee ee di as Ze 417 B428 nihilanth ss scs ew ack a a Ew eh a GE ed 417 BAZO De ao obo eo ee nee 418 SA PINO ssa RS A Oe Se e E 418 Baal SO ee ta Pe eo em ee ee ee 419 BA3Z scientist r re a a bu a b ai i a a Ued 419 BASS squeek oi ee ed bbe bE ee a SES EE RES 422 BA 34 tentacle s e oe darn Y a es HE ee a ee 422 PDAs Mide an ee as ee oe se ck Ge ces Ge a ec eee et 422 BASSO SHUTTER oscar he eR a N 422 BAST NOs ae ack ee ED se de tenon th BEM a be i eo 422 XVI Inhaltsverzeichnis B439 WEAPON oo s si r Be ee Be ee eS RR a 427 BASG eae eae ee ee eh On ee ee eee ee ee 428 DAAD Bombe ssc kk ob a e A we a a 428 C Changelog 429 XVII 1 Einleitung 1 1 Vorwort Nat rlich gibt es das englische Handbuch in dem eine nicht unbetr chtliche Menge an In formation bereits vorhanden ist Richtig zufrieden war ich aber mit dieser Dokumentation nicht wirklich
203. efehl erwartet keine Argumente so dass sie leer gelassen wurden Geh rt zu admin inc Siehe auch exec 33http www adminmod de plugins php plugin plugin_cw_creator3 307 8 Scripting 8 10 130 plugin_info plugin_info HLOldName HLNewName UserIndex HLOldName Typ HLString 33 HLNewName Typ HLString 33 UserIndex Typ Integer 0 32 Bei der Funktion plugin info handelt es sich um ein Event mit dem man den Namens wechsel eines Spielers auswerten kann Das Event wird auch beim Connect mehrfach ausgef hrt so dass es hin und wieder als Ersatz f r plugin_ connect herangezogen wird Da der Event nicht immer mit einem echten Namenswechsel verbunden ist sollte man ihn mit Weitsicht verwenden Beispiel aus plugin_ retribution Funktion plugin_ info 683 public plugin _info HLOldName HLNewName UserIndex 684 new ilgnoreGag 0 685 new GagTime 686 new Command MAX_TEXT_LENGTH 687 new NewName MAX_NAME_LENGTH 688 new OldName MAX_NAME_LENGTH 689 690 convert_string HLNewName NewName MAX_NAME_LENGTH 691 convert_string HLOldName OldName MAX_NAME_LENGTH 692 693 Only bother if the name has changed 694 if streq OldName NewName 0 Der alte und der neue Spielername HLNewName und HLOldName werden in Small Strings konvertiert convert_string Die weitere Auswertung erfolt nur wenn der alte nicht dem neuen Namen entspricht streq Geh rt zu admin inc Siehe auc
204. efinierte Variablen Eine Variable darf maximal 31 Zeichen lang sein Ist sie l nger als 31 Zeichen wird sie abgeschnitten Sind dann zwei Variablen in den ersten 31 Zeichen gleich f hrt das zum Absturz e Wenn bei gro en Plugins in einer der ersten Zeilen ein abschlie endes Anf hrungs zeichen vergessen wurde kann dies zum Absturz f hren 8 12 Runtime Fehler Neben den Fehlern beim Compilieren k nnen auch Fehler w hrend der Laufzeit des Plugins auftreten Die Meldungen k nnen dann den Logdateien entnommen werden 3 AMX_ERR_STACKERR Dem Plugin ist der Speicher f r lokale Variablen aus gegangen Standard 8 kB Mittels der Definition pragma dynamic 4096 kann man den Speicher auf 16 kB 4096 Cells erh hen Dies erfordert in jedem Fall ein Neucompilieren des Plugins 4 AMX_ERR_BOUNDS Es wurde versucht auf eine Zelle eines Feldes zuzugreifen das nicht existiert Meistens ist eine For Schleife einen Schritt zu lang gew hlt worden 10 AMX_ERR_NATIVE Einer Admin Mod Funktion wurden ung ltige Argumente z B au erhalb des G ltigkeitbereichs bergeben Dies kann auch passieren wenn man eine Zeile aus einer Datei liest readfile die l nger als die maximal definierte Stringl nge ist 11 AMX_ERR_DIVIDE Bei einer Berechnung wurde versucht durch Null zu teilen 17 AMX_ERR_FORMAT Beim Plugin handelt es sich nicht um ein g ltiges Als 390 8 13 LogD Events Gr nde kommen in Frage dass man die SMA Datei hochg
205. eg 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 Freignis 62 allgemeine Freignisse die Nachricht Run denstart 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 ckge setzt 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 164 Kill Kill Kill Injury Injury Player Action Player Action Team Acti
206. egen Interessant d rfte eine solche Datei f r Internetcafes sein die in ihrem Netz einen Ga meserver mit Internetanschluss betreiben Den eigenen Rechnern m chte man nat rlich Vorrang geben ohne gleich Adminrechte zu vergeben Genauso k nnte man auch einen HLTV den Zugang zu einem vollem Server erm glichen F r die meisten Spieler im Internet ist die IP jedoch nicht n tzlich da sie dynamisch bei jeder Einwahl vergeben wird man also stets eine neue IP erh lt Die ips ini wird ber ips_file definiert in der Regel schreibt man das folgenderma en ips_file addons adminmod config ips ini Es ist nat rlich auch jeder andere relative Pfad oder Dateiname m glich Will man die Datei nicht benutzen so schreibt man ips_file O Einzelne IPs tr gt man folgenderma en in die Datei ein 129 49 231 126 131 112 1 12 71 17 235 3 172 54 512 7 Nutzt man Subnets so kann man auch das ber cksichtigen lassen 129 49 231 126 255 255 255 0 Um beispielsweise die IPs von 168 23 21 0 bis 168 23 21 255 f r die reservierten Slots zu erlauben schreibt man den Bereich mit einer O am Ende 163 23 21 0 255 255 255 0 Das kann man nat rlich auch auf gr ere Netzwerke ausweiten 168 23 0 0 255 255 0 0 T 4 Konfiguration Weitere Dateien lassen sich mit der Include Anweisung einbinden z B include ipadmins ini Steht dieser Eintrag in der ips ini sucht Admin Mod auch noch in der ipadmins ini im gleichen Verzeichnis nach
207. eger 2147483648 2147483647 b Typ Integer 2147483648 2147483647 Die Funktion liefert den Minimalwert zweier Ganzzahlen Warum nicht auf die nativen Funktionen zur ckgegriffen wird core inc entzieht sich der Kenntnis des Autors Eine vergleichbare Funktion f_min gibt es auch f r Festkommazahlen Beispiel aus plugin_bk_botmanager Funktion admin_bot_ set if strcasecmp sBotCvar bots 0 iValue min max strtonum sValue 0 maxplayercount if get_vaultnumdata BK_BM_BOTS iBots amp amp iBots lt iValue set_vaultnumdata BK_BM_BOTS iValue Wenn die Option die bergeben wurde gleich bots ist wird die bergebene Botanzahl zun chst durch eine Max Auswahl mit 0 nach unten und anschlie end durch eine Min Auswahl gegen die maximale Spielerzahl maxplayercount begrenzt Dies hatte man auch ber die Funktion clamp l sen k nnen Anschlie end wird berpr ft ob der Eintrag BK_BM_ BOTS in der vault ini existiert und ob die bisherige dort abgelegte Botanzahl kleiner als der neue Wert ist Der neue Wert wird anschlie end in BK_BM_ BOTS geschrieben Geh rt zu adminlib inc Siehe auch clamp f_max f_min max 28http www adminmod de plugins php plugin plugin_bk_botmanager 293 8 Scripting 8 10 116 motd motd sTarget sMessagel 810 811 812 813 814 815 816 817 818 819 820 821 sTarget Typ String 33 sMessage Typ String 1536
208. eh rt zu math inc Siehe auch f_In f_logab 235 8 Scripting 8 10 49 fixed f_logab f logl0 fixed fBase fixed fValue amp iError 0 fixed fBase Typ Fixed 2147482 2147482 fixed fValue Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_logab ermittelt den Logarithmus einer Zahl auf einer beliebigen Basis und gibt diesen als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlge schlagenen Berechnung ein Fehlerwert iError zur ckgegeben Ben tigt man den nat r lichen oder den Zehnerlogarithmus sollte man auf die Funktionen f ln und f log10 zur ckgreifen Beispiel fNum f_logab fBasis fNum iError matherror iError Aus fNum wird der Logarithmus auf der Basis fBasis gebildet und anschlie end eine m gliche Fehlermeldung mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_In f log10 236 8 10 Funktionsreferenz 8 10 50 fixed f_max f max fixed fNum fixed fNum2 fixed fNum Typ Fixed 2147482 2147482 fixed fNum2 Typ Fixed 2147482 2147482 Die Funktion f max gibt aus zwei Festkommazahlen die gr te aus F r Ganzzahlen kann man max nutzen Beispiel aus math inc Funktion f_arctan 424 fRange f_max fNum 0 000 Es wird sichergestellt dass keine negativen Werte auftreten k nnen Negative Werte werden auf 0 gesetzt Geh rt zu math inc Siehe auch clamp f_min max min 8 10 51 fixed f
209. ehl gt Mit admin _rcon k nnen beliebige Serverbefehle ausgef hrt bzw Servervariablen gesetzt werden Ausgenommen davon ist das ndern des RCon Passworts rcon password damit Admins die das Passwort nicht kennen aber Zugriff auf diesen Befehl haben sich auf diesem Weg direkten RCon Zugriff verschaffen Es soll an dieser Stelle betont werden dass dieser Befehl nur in die H nde sehr ausge w hlter Admins gegeben werden sollte In der Regel stellt Admin Mod schon ausreichend Befehle zur Verf gung so dass man auf admin _rcon verzichten kann Beispiele admin _rcon changelevel de_dust admin _rcon sv_gravity 600 Im ersten Beispiel wird ein Mapwechsel auf de_dust durchgef hrt Dies entspricht dem Admin Mod Befehl admin _map de_dust Beim zweiten Beispiel wird die Schwerkraft auf 600 gesetzt was dem Admin Mod Befehl admin _gravity 600 entspricht Access Level 65536 Geh rt zu plugin_ base 107 5 Standardplugins und Befehle 5 3 22 admin_reload admin reload nderungen an den Admin Mod Konfigurationsdateien werden normalerweise nur beim Serverstart bzw beim Mapwechsel neu eingelesen W hrend die adminmod cfg noch mit admin _rcon exec addons adminmod config adminmod cfg neu geladen werden kann erfordern die anderen Dateien eine andere Behandlung Durch das Ausf hren von admin reload werden diese Dateien neu eingelesen z B auch die users ini Besonders wichtig ist der Befehl wenn die vault ini manuell editiert w
210. ehl reagiert muss der Befehl test_ damages bei Admin Mod registriert werden Der Access Level ACCESS_CONSOLE wurde be wusst ber die blichen Access Level gesetzt Zeile 6 da kein User diesen Befehl manuell ausf hren k nnen darf Aus dem gleichen Grund wurde auch der Hilfetext weggelassen Zusammengefasst wird auf diese Art beim Zuf gen von Schaden automatisch die Funk tion damages ausgef hrt Zwei Besonderheiten sind noch in diesem Plugin zu finden define ACCESS_CONSOLE 131072 7 define MNL 33 Es wird wie beschrieben ein neuer Access Level definiert Alle Befehle die von der Serverconsole ausgef hrt werden z B ber RCon oder anderen Plugins haben alle theoretischen Rechte Normalerweise hat kein User den Access Level 131072 Damit wird sichergestellt dass kein User einen Pseudoevent absetzen kann Allerdings ist ein solcher Access Level nicht in der admin inc definiert so dass man dies selbst durchf hren muss Der zweite Eintrag ist ein Alias f r MAX NAME LENGTH der wegen Darstellungs gr nden f r dieses Tutorial eingesetzt werden musste Anderenfalls w re die Zeile 17 zu lang geraten Das ist also normalerweise nicht notwendig Die Funktion damages nimmt letztlich den von LogD gelieferten String auseinander und setzt ihn neu zusammen public damages HLCommand HLData HLUserName UserIndex new sData MAX_DATA_LENGTH new sA MNL new sV MNL new sW MNL new sD MNL convert_
211. eiben ber einen Mapchange bzw einen Serverneustart erhal ten Das Schl ssel Daten Paar wird mit get_vaultdata oder get_ vaultnumdata ausgele sen Die Funktion ist ideal um pluginspezifische Einstellungen zu speichern Ist im Schl ssel ein String hinterlegt darf man die Funktion nicht anwenden Statt dessen ist set vaultdata zu verwenden Beispiel aus plugin_bk_botmanager Funktion plugin init 346 if get_vaultnumdata BK_BM_BOTS iBots 347 set_vaultnumdata BK_BM_BOTS 0 348 if getvar admin_debug gt 0 349 log BK_BM Basic setting missing in vault ini Creating new 350 351 Es wird berpr ft ob der Schl ssel BK_BM_ BOTS existiert Wenn dies nicht der Fall ist wird der Schl ssel angelegt und eine 0 hineingeschrieben Falls admin_ debug gr er als 0 ist wird dies auch in den Logdateien dokumentiert Geh rt zu admin inc Siehe auch get_vaultdata get _vaultnumdata set _vaultdata nttp www adminmod de plugins php plugin plugin_bk_botmanager 332 8 10 Funktionsreferenz 8 10 155 setarg setarg arg index 0 value arg Typ Integer 0 2147483647 index 0 Typ Integer 0 2147483647 value Typ Integer 2147483648 2147483647 Diese Funktion wird nur Fallen gebraucht wenn man die Argumente einer Funktion mit variabler Argumentanzahl ver ndern m chte Dabei gibt arg die Position des Ar guments beginnend mit 0 an Das Argument index wird nur ben ti
212. eichnis 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 plug ins 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 Shttp www counter strike net Shttp www metamod org 3 3 Installation Linux FreeBSD werden Somit werden beim Server
213. eil und iBlue der Blauanteil in der Nachricht Die Funktion messageex erm glicht die gleiche Funktionalit t jedoch ohne Farbwahl f r einzelne Spieler Beispiel aus plugin base Funktion admin_tsay 549 if streq Color red 1 550 typesay Message 10 250 10 10 Wenn der Text Color gleich red ist wird die Nachricht in Message f r 10 Sekunden in einen hellem Rot dargestellt Es ist zu beachten dass eine Zeile maximal 80 Zeichen lang sein darf Mit Zeilenumbr chen sind bis zu 500 Zeichen m glich Geh rt zu admin inc Siehe auch centersay centersayex messageex 381 8 Scripting 8 10 206 unban unban sWONID sWONID Typ String 39 Die Funktion entbannt den Spieler unter Angabe der Steam ID oder IP sWONID Beispiel aus plugin base Funktion admin_unban 572 public admin_unban HLCommand HLData HLUserName UserIndex 573 new Command MAX_COMMAND_LENGTH 574 new Data MAX_DATA_LENGTH 575 new User MAX_NAME_LENGTH 576 577 convert_string HLCommand Command MAX_COMMAND_LENGTH 578 convert_string HLData Data MAX_DATA_LENGTH 579 convert_string HLUserName User MAX_NAME_LENGTH 580 unban Data 581 log_command User Command Data 982 return PLUGIN_HANDLED 583 Alle HL Strings werden in Small Strings umgewandelt In der Variable Data wird die Steam ID oder die IP erwartet Abschlie end wird die Aktion basierend auf admin _ quiet in die Logdateien geschrieben
214. el kann man den Namen der Teammitglieder und den der Gegner beim Zielen lesen w hrend dies im zweiten Fall auf die Teammitglieder beschr nkt wird Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 5 6 21 admin_restart admin restart lt Sekunden gt Dieser Befehl erm glicht es die Servervariable mp_restartround zu ver ndern Man aktiviert damit einen Countdown der einen Mapreset durchf hrt z B bei Clanwars Ein synonymer Befehl ist admin_restartround Beispiel admin _restart 5 Nach Eingabe startet die Map nach 5 Sekunden neu Access Level 2 Geh rt zu plugin _CS Siehe auch admin restartround admin_vote_ restart 132 5 6 plugin CS 5 6 22 admin_restartround admin _restartround lt Sekunden gt Dieser Befehl erm glicht es die Servervariable mp restartround zu ver ndern Man aktiviert damit einen Countdown der einen Mapreset durchf hrt z B bei Clanwars Ein synonymer Befehl ist admin_ restart Beispiel admin _restartround 5 Nach Eingabe startet die Map nach 5 Sekunden neu Access Level 2 Geh rt zu plugin_ CS Siehe auch admin restart admin _vote_restart 5 6 23 admin_restrict admin restrict Option Der Befehl admin restrict erm glicht es Waffen und oder Equipment auf dem Server zu verbieten Dabei hilft eine Vielzahl an Optionen die Einschr nkungen bis ins kleinste Detail einzustellen Aufgesammelt
215. eladen hat ein fehler haftes Plugin oder aber auch ein AMXMod X Plugin versucht zu laden 19 AMX_ERR_NOTFOUND Ein Befehl wurde in Admin Mod definiert und auf eine ffentliche Funktion verwiesen die von Admin Mod aber nicht gefunden wur de M gliche Gr nde daf r k nnen eine fehlende public Deklaration oder ein Tippfehler beim Funktionsnamen sein 122 AMX_ERR_INIT Ein interner Admin Mod Fehler ist aufgetreten Einziger be kannter Grund ist der Inkrementierungsversuch bei einer Feldzelle mittels was auf Grund eines Compilerbugs fehlschl gt Oft st rzt der Server aber auch einfach sang und klanglos ohne Fehlermeldung ab Zum Komplettabsturz des Servers k nnen auch Endlosschleifen f hren Auch sollte man vermeiden Variablen direkt in Schleifen zu definieren 1 for new i 1 i lt 10 i say Test bo 3 Die Variablen werden dann nicht immer im Speicher freigegeben Inbesondere in Kom bination mit einer break Anweisung kann es zu einem Absturz kommen Man sollte daher stets die Variablen vor der Schleife definieren 8 13 LogD Events Wie im Tutorial gezeigt kann man die in Admin Mod vorhandenen Events durch LogD erweitern Jeder LogD Event hat eine bestimmte Nummer und eine dafiir festgelegte R ckgabesyntax die als Gesamtstring zur ckgegeben wird Der String muss im Plugin an den Leerzeichen getrennt und ggf in Integer umgewandelt werden Im Folgenden sollen die zur Verf gung ste
216. eler hat wenn er tot ist Bei 0 kann er alle Einblicke verwenden Bei 1 ist er auf sein eigenes Team und bei 2 nur auch das eigene Team in der Chasecam beschr nkt Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _forcecamera 0 admin forcecamera admin forcecamera 2 admin forcecamera Pp In den ersten drei Beispielen werden die Kameraeinblickm glichkeiten beschr nkt Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS Siehe auch admin forcechasecam 127 5 Standardplugins und Befehle 5 6 12 admin_forcechasecam admin forcechasecam 0 1 2 Dieser Befehl setzt die Servervariable mp forcechasecam Man kann damit einstellen welche Blickwinkel der Spieler nach seinem Ableben hat Bei 0 kann man sich frei bewegen bei 1 ist man auf Spieler beschr nkt und bei 2 kann man dem Spieler nur in der Egoperspektive folgen Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _forcechasecam 0 admin forcechasecam admin forcechasecam 2 admin forcechasecam Pp In den ersten drei Beispielen werden die Kamerablickwinkel beschr nkt Im letzten Bei spiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin_ CS Siehe auch admin forcecamera 5 6 13 adm
217. elle mysql gt CREATE TABLE tags tag VARCHAR 30 PRIMARY KEY NOT NULL pass VARCHAR 64 NOT NULL access INTEGER UNSIGNED NOT NULL Der Tabellenname muss in der adminmod cfg unter mysql_dbtable_ tags angegeben wer den Es ist daher auch m glich einen anderen Namen f r die Tags Tabelle zu w hlen 4 10 4 Models Tabelle Die Models Tabelle wird als Ersatz f r models ini eingerichtet Sie besteht aus den Spal ten nick und pass quivalent zur Angabe in der models ini handelt es sich dabei bei nick um den Modelnamen und bei pass um das Passwort mysql gt CREATE TABLE models nick VARCHAR 20 PRIMARY KEY NOT NULL pass VARCHAR 64 NOT NULL 81 4 Konfiguration Der Tabellenname muss in der adminmod cfg unter mysql_dbtable_ models angegeben werden Es ist daher auch m glich einen anderen Namen f r die Models Tabelle zu w hlen 4 10 5 Ips Tabelle Die Ips Tabelle wird als Ersatz f r ips ini eingerichtet Sie besteht nur aus der Spalte ip Eintr ge in diese Tabelle sind identisch zur ips ini mysql gt CREATE TABLE ips ip VARCHAR 22 NOT NULL Der Tabellenname muss in der adminmod cfg unter mysql_dbtable_ips angegeben wer den Es ist daher auch m glich einen anderen Namen f r die Ips Tabelle zu w hlen 4 10 6 Words Tabelle Die Words Tabelle wird als Ersatz f r wordlist txt eingerichtet Sie besteht nur aus der Spalte word Eintr ge in diese Tabelle sind identisch zur wo
218. elle auf 0 gesetzt wird Zur Sicherheit wird dies auch berlicherweise f r plugin _ connect wiederholt Damit erh lt man ein funktionsf higes Men Es l sst sich das Prinzip aber auch beliebig verkomplizieren Untermen s zweite Seiten Eingaben im Chat als Optionsparameter sind nur einige wenige Beispiele wie das Men prinzip schnell gro e Ausma e annimmt Men s sind aber ein i T pfelchen auf jedem Plugin das viel Spielerbeteiligung ben tigt 8 9 Includes Die Includes beinhalten alle von Admin Mod zur Verf gung gestellten Funktion aber auch solche die erst aus anderen Funktion gebildet werden z B in adminlib inc oder math inc Die Includes befinden sich im Verzeichnis scripting include Man kann sie wie auch schon den Quellcode der Admin Mod Plugins mit jedem handels blichen Editor ffnen Um Includes zu nutzen m ssen sie mit der include Direktive in das Plugin eingebunden werden Eine kurze Beschreibung zu den einzelnen Funktionen eines Includes kann manchmal auch als Kommentar dem Quellcode der Includes selber entnommen werden Die Be schreibung ist jedoch relativ kurz Im Weiteren werden die einzelnen Includes kurz vorgestellt und die zugeh rigen Funk tionen aufgelistet Die Beschreibung und Beispiele zu einzelnen Funktionen sind der Funktionsreferenz zu entnehmen 193 8 Scripting 8 9 1 admin inc Die admin inc ist das Basis Include welches f r alle Plugins ben tigt wird Dies liegt schon alle
219. ellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 5 6 19 admin _mapvoteratio admin mapvoteratio Anteil Dieser Befehl setzt die Servervariable mp mapvoteratio Man stellt damit ein wie viele Spieler prozentual f r eine Map voten m ssen damit zu dieser gewechselt wird Dies geschieht ber votemap lt Mapname gt in der Console Leider ist die Anwendung dieser Funktion f r die meisten Spieler ein Buch mit sieben Siegeln Es handelt sich bei votemap um keine Admin Mod Funktionalit t Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin mapvoteratio 1 admin _mapvoteratio 0 4 admin _mapvoteratio Im ersten Beispiel m ssten alle Spieler f r eine bestimmte Map votieren w hrend im zweiten nur 40 ben tigt w rden Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 131 5 Standardplugins und Befehle 5 6 20 admin_playerid admin _playerid Rundenzahl Dieser Befehl erm glicht es die Servervariable mp__playerid zu ver ndern Es wird eingestellt ob man den Namen jedes Spielers im Fadenkreuz zu sehen bekommt 0 nur den der Teammitglieder 1 oder von niemanden 2 Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin playerid 0 admin _playerid 1 admin _playerid Im ersten Beispi
220. eload pesql tags sql pgsql user pgsql_users_sql 4 1 69 pgsql_dbtable_users nur PostgreSQL Version pgsql_dbtable_users lt string gt Diese Variable legt fest in welcher PostgreSQL Tabelle die Admins ihre Passw rter und Accesslevels zu finden sind Ist kein Admin Mod PostgreSQL installiert wird die Variable ignoriert anderenfalls wird eine Definition von users_ file bergangen Beispiel pgsql_dbtable_users am_users Admin Mod erwartet die Daten zu den Admins in der Tabelle am__users Siehe auch users_ file pgsql_database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pesql_dbtable_tags pgsql_dbtable_words pgsql_ host pgsql_pass pgsql_port pgsql_ preload pgsql_tags_sql pgsql user pgsql__users_sql 50 4 1 Admin Mod einrichten adminmod cfg 4 1 70 pgsql_dbtable_words nur PostgreSQL Version pgsql_dbtable_words lt string gt Diese Variable legt fest in welcher PostgreSQL Tabelle die zu zensierenden W rter zu finden sind Ist kein Admin Mod PostgreSQL installiert wird die Variable ignoriert anderenfalls wird eine Definition von words_ file bergangen Beispiel pgsql_dbtable_words am _words Admin Mod erwartet die Daten zu den Admins in der Tabelle am words Siehe auch words_ file pgsql_database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pgsql_dbtable_tags pgsql_dbtable _users pgsql_host pgsql_ pass pgsql_port pgsql_ preload pgsql
221. em String sSearch in einem anderen String sSour ce Sie gibt die Lange des Teilstrings zurtick der von links beginnend kein Zeichen aus sSearch besitzt Da Strings Felder sind ist die Lange gleichzeitig die Position des ersten in sSearch vorhandenen Zeichens Beispiel new sTest MAX_TEXT_LENGTH Test123Test new iTest strcspn sTest 1234567890 Im Beispiel wird im String sTest nach Zahlen gesucht werden Da die erste Zahl an der Position 4 liegt wird als Lange 4 ausgegeben Geh rt zu string inc Siehe auch strspn 351 8 Scripting 8 10 173 streq streq strOne strTwo strOne Typ String 200 strTwo Typ String 200 Die Funktion berpr ft unter Ber cksichtigung der Gro und Kleinschreibung ob zwei Strings strOne und strTwo identisch sind Sind sie identisch wird eine 0 wenn nicht wird eine 1 zur ckgegeben Beispiel aus plugin base Funktion admin_csay 136 if streq Color red 1 137 centersay Message 10 250 10 10 Wenn der Text Color gleich red ist wird die Nachricht in Message f r 10 Sekunden in einen hellem Rot dargestellt Geh rt zu adminlib inc Siehe auch strcasecmp strmatch 302 8 10 Funktionsreferenz 8 10 174 strgsep strgsep sSource sDelimiters sGrouping sSourcel Typ String 200 sDelimiters Typ String 200 sGrouping Typ String 200 variable Anzahl an Argumenten und Stringlangen kommagetrennt
222. en Preload abschalten sollte Sollte es Probleme geben kann man immer noch wechseln Schaltet man den Preload der Daten ab er ffnet sich einem die M glichkeit auch nicht standardkonforme SQL Abfragen durchzuf hren Dies geschieht mittels der Variablen pgsql_users_ sql pgsql tags sql Die Verwendung der Variablen ist nicht trivial so dass nur Profis und Frustrationstole rante sich daran versuchen sollten Wer den Preload weiterhin verwenden m chte oder sich nicht so mit der von Admin Mod erwarteten Syntax auskennt der kann sich ggf mit PostgreSQL Views behelfen 4 12 Beispiel Admin Mod in phpBB integrieren MySQL In diesem Abschnitt soll die Einbindung Admin Mods in ein bestehendes Content Mana gement System CMS oder Webforum mit MySQL Backend am Beispiel des popul ren Shttp www mysql com 86 4 12 Beispiel Admin Mod in phpBB integrieren MySQL Forums phpBB beschrieben werden Dies hat den Charme dass man die Userverwaltung bequem aus der Forumssoftware heraus durchf hren kann Die vorgestellten Methoden haben nicht den Anspruch perfekt zu sein Ich bin weder gelernter Informatiker noch kenne ich mich besonders gut in MySQL aus Vielmehr soll ein Einstieg gegeben werden der zu Ideen und Optimierung anregen soll 4 12 1 Admin Mod einrichten Wie in Abschnitt Users Tabelle gezeigt erwartet Admin Mod standardm ig eine Spalte f r den Namen ID nick das Passwort pass und den Accesslevel access
223. en Vote aus Dabei muss eine Frage gestellt werden sVote String Anschlie end folgen kommagetrennt die m glichen Anworten max 10 Die letzten zwei Argumente beinhalten die nach dem Vote aufzurufende Funktion und die an diese Funktion zu bergebenen Parameter Mehr zur Verwendung dieser Funktion ist dem Tutorial zu entnehmen Beispiel aus plugin base Funktion admin _vsay if vote_allowed 1 selfmessage Vote not allowed at this time return PLUGIN_HANDLED log_command User Command Data vote Data Yes No HandleVsay Data return PLUGIN_HANDLED Zun chst wird berpr ft ob berhaupt ein Vote erlaubt ist vote_ allowed Wenn dies nicht der Fall ist wird dem Admin eine Fehlermeldung ausgegeben Anderenfalls wird der Befehl in die Logdateien geschrieben und ein Vote mit der in Data stehenden Frage und den Antwortm glichkeiten Yes und No ausgef hrt Die aufzurufende Funktion lautet dabei HandleVsay und die Frage wird als Parameter an diese Funktion bertragen Geh rt zu admin inc Siehe auch vote_ allowed 386 765 766 767 768 770 771 772 8 10 Funktionsreferenz 8 10 212 vote_allowed vote_allowed Diese Funktion berpr ft ob ein Vote ausgef hrt werden darf Sie gibt 1 zur ck wenn ein Vote erlaubt ist Anderenfalls gibt sie 0 zurtick Beispiel aus plugin base Funktion admin_vsay if vote_allowed 1 selfmessage Vote not allowed at t
224. en die Rechte des Spielers automatisch Zun chst mag es seltsam erscheinen warum nur Optionen im Chat eingegeben werden k nnen Die dahinterliegende Idee basiert jedoch darauf dass man sich Bindings auf Tasten legen kann Dadurch muss man z B nicht in die Console wechseln wenn man beispielsweise jemanden kicken m chte Man sollte aber aufpassen Sobald man admin_messagemode aktiviert werden alle fol genden Chat Eingaben als Befehlsoptionen aufgefasst Das kann dann beispielsweise zu Fehlaktionen f hren Nach durchgef hrter Aktion sollte daher die Funktion wieder ab geschaltet werden Dies kann durch das Leerstehen des Befehls durch say als Befehl oder durch admin_nomessagemode erreicht werden Beispiele admin _messagemode admin _kick admin _messagemode rcon admin _messagemode buy admin _messagemode admin _messagemode say Im ersten Beispiel wird der Befehl admin_kick eingespeichert Jede Chatnachricht wird nun als Spielername interpretiert bis der Messagemode wieder aufgehoben wird Im zweiten Beispiel k nnen Serverbefehle im Chat abgesetzt werden sofern der Spieler das RCon Passwort bereits eingegeben hat Das dritte Beispiel zeigt wie man im Chat einkaufen kann hegren in den Chat einge geben kauft in Counter Strike beispielsweise eine Handgranate Die letzten beiden Beispiele schalten den Messagemode ab Wie bereits erw hnt lohnt sich der Messagemode nur wenn man ihn in Bindings nutzt Access Level 0
225. en sollte Stattdessen wird empfohlen z B die Funktionen get_ vaultdata oder set_ vaultdata zur ckzugreifen Mehr Informationen zum Thema sind im Abschnitt 8 14 nachzulesen Beispiel deleteproperty 2 test_prop deleteproperty 3 15 Das erste Beispiel l scht die in ID 2 befindliche Property test_ prop w hrend das zweite Beispiel die in ID 3 befindliche Property 15 l scht Geh rt zu core inc Siehe auch existproperty getproperty setproperty 216 8 10 Funktionsreferenz 8 10 21 directmessage directmessage sMessage iUserID 1 uid tUidType uid uid_SessionID sMessage Typ String 100 iUserID 1 Typ Integer 1 2147483647 uid tUidType uid uid_SessionID Typ Enum 0 uid_none uid_invalid uid_index uid_SessionID uid_wonID Die Nachricht sMessage kann direkt an den Spieler mit dem angegebenen Userindex bzw der Session ID geschickt werden Ob es sich um den Userindex oder um die Session ID handelt muss mit uid_index bzw uid _SessionID angegeben werden Die weiteren Optionen uid_none uid_ invalid uid_wonID werden nicht mehr genutzt Beispiel aus plugin base Funktion admin _dmsg 179 switch sType 0 gt 4 180 case i 181 tType uid_index 182 case s 183 tType uid_SessionID 184 case w 185 tType uid_wonID 186 default 187 tType uid_invalid 188 y switch 189 190 191 strstripquotes sMessage
226. en zu finden ist Das Scriptfile wird schon seit Jahren nicht mehr gepflegt und sollte auch nicht mehr genutzt werden Der Vollst ndigkeithalber sollte es aber erw hnt werden Siehe auch script_ file 4 1 43 ips_file ips_file lt string gt Mittels der Datei ips ini k nnen festgelegte IPs IP Ranges oder Subnets Zugriff auf die reservierten Slots erhalten Bei dieser Variablen wird angegeben wo sich die Datei ips ini befindet z B addons adminmod config ips ini Standardm ig ist die Funktion ab geschaltet 0 Beispiel ips_file addons adminmod config ips ini Admin Mod sucht mit dieser Einstellung im angegebenen Verzeichnis nach der Datei ips ini Siehe auch admin plugin file admin_vault_file maps_ file models_ file mysql_dbtable_ips pgsql_dbtable_ips users_ file words_ file 37 4 Konfiguration 4 1 44 kick_ratio kick_ratio lt gt Legt die Prozentzahl fest die bei einem Kickvote f r den Kick erreicht werden muss damit dieser durchgef hrt wird Standardeinstellung ist 60 Beispiel kick_ratio 50 Stimmen 5 von den 10 auf dem Server befindlichen Spielern f r den Kick so wird der jenige auch gekickt Siehe auch admin vote _autostart admin _vote _echo admin_vote_freq admin_vote_maxextend admin vote ratio amv_vote_duration map_ratio vote_freq 4 1 45 map_ratio map_ratio lt gt Legt die Prozentzahl fest die bei einem Mapvote fiir einen Mapwechsel erreicht wer
227. endet man iPublic 1 wird die Nachricht serverweit im Chat ausgegeben Beispiel aus plugin base Funktion admin_rcon if strstr Data rcon_password gt 0 reject_message return PLUGIN_HANDLED Hierbei handelt es sich um eine Absicherung dass kein Admin der Zugriff zu admin_rcon hat sich unberechtigt Zugriff zu RCon verschafft indem er das Passwort ndert Falls der String Data die Servervariable rcon_ password beinhaltet wird die Meldung You do not have access to this command angezeigt und die weitere Abarbeitung abgebrochen Geh rt zu adminlib inc 319 452 453 454 455 8 Scripting 8 10 143 reload reload Die Funktion l dt alle Ini Dateien von Admin Mod neu wenn diese in der adminmod cfg definiert wurden e admin vault_ file e ips file e models file e users file e words file Dies kann sinnvoll sein wenn man mit dem Plugin Anderungen an den Dateien vorge nommen hat und diese aktivieren m chte Beispiel aus plugin_base Funktion admin _ reload public admin_reload HLCommand HLData HLUserName UserIndex reload return PLUGIN_HANDLED Hier werden auf Befehl einfach die Dateien neu geladen Dies ist z B interessant wenn man nderungen an der users_ ini vorgenommen hat und diese ohne Serverneustart oder Mapchange bernehmen m chte Geh rt zu admin inc 320 168 169 170 171 172 173 8 10 Funktionsreferenz 8 10 144 removespawn removespaw
228. equiv REFRESH content 0 url www google de gt lt head gt lt body gt lt body gt lt html gt In diesem Beispiel verweisen wir den Spieler SucheClan durch einen HTML Refresh auf Google damit er dort weitersucht Access Level 64 Geh rt zu plugin_ base 5 3 16 admin_nextmap admin _nextmap Mit diesem Befehl kann man nachsehen was die n chste Map sein wird Dies setzt voraus dass durch eine Mapvote nicht eine andere Map gew hlt wurde Au erdem gibt es eine Einschr nkung beim Start des Servers Erst wenn der erste regul re Mapwechsel Half Life wechselt die Map nicht Admin Mod stattgefunden hat wird die n chste Map korrekt angezeigt Alternativ sollte man die letzte Map im Mapcycle gleich der Startmap setzen Dann ist auch dieses Problem gel st Beispiel admin _nextmap Zeigt die n chste Map an die nach dem n chsten regul ren Mapwechsel kommen sollte Access Level 0 Geh rt zu plugin_base Siehe auch say nextmap 104 5 3 plugin base 5 3 17 admin_nopass admin_nopass Dieser Befehl entfernt das Serverpasswort Er macht das Gleiche wie admin _pass Exkurs Genau genommen wird die Servervariable sv_password einfach geleert Beispiel admin _nopass Entfernt das Serverpasswort Access Level 16 Geh rt zu plugin_base Siehe auch admin pass 5 3 18 admin_pass admin pass Passwort Der Befehl admin_ pass kann sowohl das Serverpasswort setzen entfernen als auch an
229. er Text wird zur ckgegeben wenn man ohne Berechtigung versucht Befehle auszu f hren Beispiel admin _reject_msg Was wird das Das darfst Du nicht Siehe auch admin ignore immunity admin_highlander amv_private_server default_ access amv_prvt_kick message models kick msg nicks kick msg reserve_slots_msg 22 4 1 Admin Mod einrichten adminmod cfg 4 1 16 admin_repeat_freq admin _repeat_freq lt gt Der Wert f r admin_repeat_freq gibt in Sekunden an in welchem Abstand der Text in admin repeat_msg ausgegeben wird Bei einem Wert kleiner als 15 startet der Timer beim Mapstart nicht Eine nderung des Werts wird erst nach einem Mapchange aktiv wird plugin message Default 600 Beispiel admin _repeat_freq 600 Die unter admin_repeat_msg hinterlegte Nachricht wird alle 10 Minuten 600 Sekun den wiederholt Siehe auch admin connect _msg admin_repeat_msg 4 1 17 admin_repeat_msg admin _repeat_msg lt string gt Gibt den Text an der als Centersay wiederholt werden soll Der zeitliche Abstand wird in admin repeat_ freq festgelegt Setzt man den Wert auf 0 wird keine Nachricht aus gegeben Solange admin_repeat_ freq beim Mapstart nicht kleiner als 15 ist kann die Nachricht jederzeit wieder aktiviert werden plugin message Default This server is using Admin Mod Beispiel admin _repeat_msg This server is using nAdmin Mod Dies bringt die Meldung This server is using Admin Mod
230. er von seinem Leiden befreien Der Spielername muss exakt eingegeben werden Beispiel admin_unbury Klappstuhl admin_unbury Big admin_unbury STEAM_0 123456 admin_unbury 23 156 43 12 Im ersten Beispiel wird der Spieler Klappstuhl wieder ausgegraben Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 8192 Geh rt zu plugin _retribution Siehe auch admin bury 153 5 Standardplugins und Befehle 5 10 11 admin _ungag admin ungag lt ID IP Name gt Mit diesem Befehl kann man einen urspr nglich geknebelten Spieler wieder von seinem Leiden befreien und damit den Chat wieder zu benutzen Es kann sowohl die Steam ID eine IP oder ein Name angegeben werden Beim Namen gen gt auch ein eindeutiger Teil des Namens Beispiel admin _ungag Kindergeburtstag admin _ungag Big admin ungag STEAM_0 123456 admin ungag 23 156 43 12 Im ersten Beispiel wird dem Spieler Kindergeburtstag wieder erlaubt den Chat zu verwenden Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 2048 Geh rt zu plugin_retribution
231. eren Anzeige beim Opfer ausgelesen Geh rt zu admin inc Siehe auch get_userFrags get _userHealth Unttp www adminmod de plugins php plugin plugin_sdal_logd_hp50 253 8 Scripting 8 10 74 get_userAuthID get_userAuthID sPlayer sAuthid iMaxLength MAX_AUTHID_LENGTH sPlayer Typ String 33 sAuthid Typ String 39 iMaxLength MAX_AUTHID_LENGTH Typ Integer 0 39 Die Funktion liefert die Steam ID des angegebenen Spielers sPlayer und speichert diese als String sAuthid Sollte es sich um einen Bot handeln dann wird BOT als AuthID zur ckgeliefert Die Lange des Strings muss nicht angegeben werden bzw sollte stets gleich MAX_AUTHID_LENGTH 39 sein Beispiel aus plugin base ince Funktion admin vote_ kick 625 get_userAuthID real_user sAuthID 626 if vote Text Yes No HandleKickVote sAuthID 627 g_VoteInProgress 1 628 g_AbortVote 0 629 Es wird die AuthID i d R die Steam ID eines Spielers real_user ermittelt Ein Vote zum Kicken des Spielers wird angesto en wobei der sp teren Voteauswertung die Au thID mitgeliefert wird Des Weiteren werden 2 globale Variablen gesetzt wenn der Vote erfolgreich abgesetzt wurde Geh rt zu admin inc Siehe auch get _userWONID playerinfo 254 8 10 Funktionsreferenz 8 10 75 get_userFrags get_userFrags sPlayer amp frags sPlayer Typ String 33 amp frags Typ Integer 0 2147483647 Die Funkti
232. ernamen mit Leerzeichen zu verwenden Alternativ wird auch ein eindeutiger Teil des Namens akzeptiert admin restrict team ct menu 1 admin _restrict team ct menu pistols Beide Schreibweisen verbieten dem CT Team den Kauf von Pistolen admin restrict player Will kaufen admin restrict team t Das erste Beispiel zeigt die aktuellen Restriktionen f r den Spieler Will kaufen das zweite hingegen die aktuellen Restriktionen des Terror Teams admin _restrict Magnum Sniper Rifle admin _restrict awp admin _restrict 4 6 Alle drei Beispiele verbieten die AWP Letzteres ber die Men nummer und die Aus wahlnummer Access Level 0 32 512 Geh rt zu plugin_ CS Siehe auch admin_restrictmenu admin __unrestrict 135 5 Standardplugins und Befehle 5 6 24 admin_restrictmenu admin restrictmenu Der Befehl admin_restrictmenu ffnet ein Men mit dem man bequem Waffen und oder Equipment auf dem Server verbieten kann Es ist dadurch prinzipbedingt einfacher zu bedienen als admin restrict oder admin unrestrict F r die Verwendung muss amv_enable_beta menu1 in der adminmod cfg gesetzt sein Aufgesammelte Waffen und Equipment die sich bereits im Besitz der Spieler befinden werden nicht erkannt und verschwinden erst aus dem Spiel wenn sie nach Rundenende nicht mehr am Mann sind Gibt man keine Option an werden die aktuellen Restriktionen angezeigt Diese Funktion steht allen Spielern zur Verf gung Recht 0
233. erschwunden Die gesamten Einstellungen werden n mlich von Admin Mod beim Mapstart in den Speicher geladen und stets am St ck zur ckgeschrieben D h bei manueller nderung gelangt diese nicht sofort in den Speicher Dies kann man nur ber einen Mapchange oder admin reload erreichen 4 10 MySQL Installation einrichten Es wird davon ausgegangen dass Admin Mod bereits in einer Fallback Konfiguration Benutzung von Dateien l uft Eine Anleitung ist in Kapitel 3 4 zu finden In Admin Mod MySQL k nnen die Dateien users ini models ini ips ini wordlist txt und plugin ini durch Tabellen ersetzt werden Es kann aber auch eine Mischinstallation durchgef hrt werden In der Regel wird nur die users und tags Tabelle ben tigt Beson deres Augenmerk sollte man auf die users ini haben Diese wird aufgeteilt in eine users und eine tags Tabelle Admin Mod bietet die M glichkeit ber RegEx den eigenen Clan tag zu sch tzen Da Regex unter SQL ein sehr rechenintensiver Befehl ist wenn er auf gro e Datenbest nde losgelassen wird empfiehlt es sich die Benutzung auf eine kleine berschaubare Tabelle zu limitieren die nur die zu sch tzenden Clantags beinhaltet Auch wenn Tabellen genutzt werden ist es immer gut auch eine einfache funktionierende Konfiguration basierend auf Dateien zu besitzen da Admin Mod bei Verbindungsverlust zum MySQL Server dann auf diese zur ckgreifen kann Im Weiteren wird die Einrichtung der Tabellen in der MySQL Daten
234. erver amv_private_server lt gt Hiermit kann man einstellen dass ausschlie lich Spieler die in der users ini eingetragen wurden auf dem Server spielen d rfen Es ist also vergleichbar mit einem Passwort nur dass das Passwort nicht weitergegeben werden kann der Zugang also wirklich exklusiv ist 1 aktiviert den privaten Server Standard 0 Beispiel amv_private_server 1 Aktiviert dass der Server nur f r Spieler mit einem Eintrag in der users ini nutzbar ist Siehe auch admin ignore immunity admin_ highlander admin reject_msg default_ access amv_prvt_kick_ message 4 1 34 amv_prvt_kick_message amv_prvt_kick_message lt string gt Legt fest mit welcher Begr ndung der Spieler von einem mit amv_ private_ server fest gelegten Server gekickt wird wenn er nicht in der users ini steht Standardm ig ist kein Text hinterlegt Beispiel amv_prvt_kick_message Server nur fuer Mitglieder http reg xxx xxx Dem Spieler wird beim Connect mitgeteilt dass er sich registrieren m ge Siehe auch admin _ reject_msg amv_ private_ server models_kick_msg nicks_kick_msg reserve_slots_msg 32 4 1 Admin Mod einrichten adminmod cfg 4 1 35 amv_reconnect_time amv_reconnect_time lt gt Wenn ein Admin beispielsweise beim Mapwechsel in einen anderen Serverslot rutscht verliert er die Adminrechte Mit dieser Variablen kann eingestellt werden wie lange nach dem Mapwechsel der Admin trotz anderen Slo
235. erzeile schlie t den Code ab Geh rt zu admin inc Siehe auch messageex selfmessage http www adminmod de plugins php plugin plugin_dale_consgreet 211 8 Scripting 8 10 16 convert_string convert_string HLString sSmallString iMaxLength iHLString Typ String variabel theoretisch 2147483647 sSmallString Typ String iMaxLength iMaxLength Typ Integer variabel theoretisch 1 2147483647 Admin Mod erhalt von der Engine den HLString der nicht direkt nutzbar ist Daher muss der Inhalt mit convert_ string in einen SmallString umgewandelt werden Beispiel aus plugin_base Funktion admin_ban public admin_ban HLCommand HLData HLUserName UserIndex new ban_user MAX_DATA_LENGTH new BanTime 0 new iBanType bBanByID new Command MAX_COMMAND_LENGTH new Data MAX_DATA_LENGTH new strTime MAX_NUMBER_LENGTH new strType MAX_NAME_LENGTH new Text MAX_TEXT_LENGTH new TargetName MAX_NAME_LENGTH new User MAX_NAME_LENGTH convert_string HLCommand Command MAX_COMMAND_LENGTH convert_string HLData Data MAX_DATA_LENGTH convert_string HLUserName User MAX_NAME_LENGTH Nach einigen Variablendeklaration werden die bergebenen HL Strings HLCommand HLData HLUserName zur weiteren Bearbeitung in einen Small String umgewandelt Dabei wird auf die maximale Stringlange aus den Deklarationen R cksicht genommen Geh rt zu admin inc 212 8 10 Funktionsrefe
236. es die Serverdatei zu definieren die beim Serverstart geladen werden soll Standard server cfg Die Servervariable lautet servercfgfile Er funktioniert zwar noch ist aber inzwischen relativ nutzlos geworden Die ge nderte Einstellung wird nicht in die autoexec cfg geschrieben und steht somit beim Serverstart nicht zur Verf gung Vormals wurde die angegebene Datei auch immer beim Mapwechsel geladen Inzwischen wird dies ber die Variable mapchangecfgfile festgelegt Beispiel admin _servercfg server2 cfg Statt der server cfg wird standardm ig die server2 cfg geladen was aber nicht mehr relevant ist da die Einstellung nur beim Serverstart genutzt wird Access Level 512 Geh rt zu plugin_ base 5 3 25 admin_ssay admin _ssay lt Nachricht gt Mit diesem Befehl kann eine Nachricht an alle Spieler auf dem Server geschrieben werden Es wird explizit vermerkt dass die Nachricht von einem Admin kommt Im Gegensatz zu admin say wird der Name des Admins nicht angegeben Beispiel admin _ssay Dieser Server geht offline Dies weist die Spieler im Chat darauf hin dass der Server gleich nicht mehr zur Verf gung steht Die Meldung s he z B folgenderma en aus Dieser Server geht offline Access Level 64 Geh rt zu plugin_ base Siehe auch admin chat admin _csay admin dmesg admin _psay admin _say admin_ tsay admin _vsay 109 5 Standardplugins und Befehle 5 3 26 admin_teamplay admin teamplay lt 0 1 gt
237. es Angreifers und des Opfers sowie deren Teamzugeh rigkeit werden ber playerinfo ermittelt Nicht ben tigte Variablen werden durch Unterstriche von der Verarbeitung ausgeklammert Diese Methode sollte nur auf Admin Mod 2 60 42 und neuer angewendet werden da es schon einmal Probleme mit Memory Leaks gegeben hat Anschlie end werden die verbleibenden Lebens und R stungspunkte des Angreifers zur sp teren Anzeige beim Opfer ausgelesen Geh rt zu admin inc Siehe auch get _userArmor get_userFrags Shttp www adminmod de plugins php plugin plugin_sdal_logd_hp50 256 8 10 Funktionsreferenz 8 10 77 get_userindex get_userindex sPlayer amp iIndex sPlayer Typ String 33 amp iIndex Typ Integer 0 32 Die Funktion liefert auf Basis des Spielernamens seinen UserIndex Server Slot als In tegerwert Beispiel aus plugin retribution Funktion admin _bury 499 get_userindex Data nIndex 500 playerinfo nIndex TargetName MAX_NAME_LENGTH _ _ _ nDead Der Status eines Spielers lebend oder tot l sst sich mit Admin Mod nur mit der Funk tion playerinfo ermitteln Da sie den Userindex ben tigt muss zun chst aus dem Namen Data der Userindex nIndex ermittelt werden Anschlie end kann der Status abge fragt werden TargetName ist eigentlich nicht notwendig ist jedoch eine Pflichtr ckgabe Auf die weiteren Variablen kann verzichtet werden Als Auslassungszeichen wird der Un terstrich verwendet
238. esem Befehl kann man einem Spieler einen Schlag versetzen der ihn 5 Lebens punkte kostet und ihn ein wenig aus der Bahn wirft F hrt man den Befehl mehrmals kurz hintereinander aus kann es passieren dass der Spieler durch die halbe Map fliegt Er verliert nat rlich bei jedem Schlag weitere 5 Lebenspunkte Mit admin_slap wird die Lebenspunktzahl jedoch nie niedriger als einen Lebenspunkt Ein Spieler kann also nicht direkt durch ein Slap sterben Das passiert h chstens wenn er z B mit sehr wenigen Lebenspunkten durch den Schubser zu tief f llt Es kann sowohl die Steam ID eine IP oder ein Name angegeben werden Beim Namen gen gt auch ein eindeutiger Teil des Namens 151 5 Standardplugins und Befehle Beispiel admin _slap SM admin _slap Big admin_slap STEAM_0 123456 admin _slap 23 156 43 12 Im ersten Beispiel steckt der Spieler SM ein wenig Pr gel ein Im n chsten Beispiel wird dies beim Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ausgef hrt Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 128 Geh rt zu plugin_retribution 5 10 8 admin_slay admin_slay lt ID IP Name gt Mit diesem Befehl l sst man einen Spieler das Zeitliche segnen Vorausgesetzt admin_fx ist in der adminmod cfg aktiviert wird der Befehl mit einem Sound untermalt Es kann sowohl die Steam ID eine IP oder ein Name angeg
239. ess Level 64 Geh rt zu plugin_ base Siehe auch admin chat admin _dmesg admin _psay admin _say admin _ssay admin _tsay admin _vsay 5 3 7 admin_dmesg admin_dmesg lt ID Typ gt lt ID gt lt Text gt Dieser Befehl ist etwas ungew hnlich da der angeredete Spieler nicht ber seinen Na men sondern einer seiner IDs adressiert Beim ID Typ stehen 3 Optionen zur Auswahl Bei i wird der Userindex Slotnummer bei s seine Session ID und bei w seine WONID Steam ID erwartet Bequemer ist in jedem Fall admin_psay da au er der Steam ID die IDs meist unbekannt sind In der Vor Steam Zeit konnte man damit Nachrichten an einen Spieler senden der gerade dem Server beitrat Beispiele admin _dmesg i 3 Benimm Dich admin _dmesg s 449 Benimm Dich admin _dmesg w STEAM_0 1 234567 Benimm Dich In allen drei F llen wird der Spieler mit dem Userindex 3 der Session ID 449 oder der Steam ID STEAM __0 1 234567 auf sein schlechtes Verhalten hingewiesen Access Level 512 Geh rt zu plugin_ base Siehe auch admin chat admin _csay admin _psay admin say admin_ssay admin tsay admin _vsay 99 5 Standardplugins und Befehle 5 3 8 admin_fraglimit admin fraglimit lt Wert gt Mit diesem Eintrag kann man den Wert der Servervariablen mp fraglimit ver ndern Exkurs Diese Variable sorgt f r einen Mapwechsel wenn der beste Spieler die angege bene Frag Zahl Kills erreicht hat 0 schalte
240. et sso ame eR eA a ie eu wW Nehe 15 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 III Inhaltsverzeichnis 4 1 19 admin vault file ss soes creea argos dalar ntuk 24 4 1 20 admin mod version 25 4 1 21 admin vote autostart eses ise piri si g 25 4 1 22 admin _vote_echo 26 4123 admin vote freg s seteia ta paia ba an ar 26 4 1 24 admin vote maxextend a a a a 0G 27 4 1 25 admin vote ratio i s ceri esa sagad ro miau rrua 27 4 1 26 allow_client_exec o sacco Coon 28 4127 ami er Maple coda ra 28 2 1 28 amv anti cheat Options onde ae 29 4 1 29 amv default config dit s sei as con dee dd tre dd as 29 4 130 amy enable beta oo Pe Ra ds 30 4 1 31 amv_hide_reserved_slots ooa nn 31 Alaz amv log passworda s j nilo s a poene ee a ae ade 31 4 1 33 amv_private_server e a e eee eee 32 lad amy pryt kick message ss asy ss awdis aies Ge y 32 4 1 35 amv_reconnect_time saoo 33 alo amy register IGS a sacci GK omy Se a E 33 A131 amy vote duration 4 224 ca aeoea aee a be aa 34 4 1 38 default access 00000 a a 34 4 1 39 encrypt password lt o a os sacose scoe wee ae eR es 35 4 1 40 fille_access_read a a 36 4 1 41 file access Write 36 4 1 42 help file veraltet ci Sa au 4 db eae aha ep 37 A le Lao at ce Ee aa e ae A ee 37 4 144 kick ratio cos es ana ea Bae es E d a ae 38 ATLAS map Was a a A So ee een
241. festzustellen ob im Propertybereich einer ID bereits Werte liegen Zuletzt obliegt es dem Script Autor die angelegten Properties wieder zu l schen da ansonsten der Speicherverbrauch immer weiter anw chst Properties sollten in Adminmod daher z Z nicht verwendet werden Es wird empfohlen stattdessen auf die Befehle zur Vault Datei vault ini zur ckzugreifen z B get_vaultdata Wer dennoch die Properties nutzen m chte kann die Funktionen deleteproperty existproperty getproperty und setproperty verwenden 393 A Besondere Customplugins A 1 Plugin_sank_sounds Das Plugin sank sounds reagiert auf vorher definierte Chateingaben mit der Ausgabe eines zugeordneten Sounds Au erdem reagiert es auf das Connecten eines Spielers auf den Server sowie auf einen den Server verlassenden Spieler A 1 1 Konfiguration Folgende Einstellungen sind in der adminmod cfg vorzunehmen damit das Plugin funk tioniert file_access_read 1 file_access_write 1 Um korrekt zu funktionieren m ssen die Sounds Wav Dateien auf dem Server im richtigen Verzeichnis bereit gestellt werden z B cstrike sound misc Weiterhin muss gew hrleistet sein dass ein Clientrechner sich diese Sounddateien beim Connecten her unterladen kann Das erreicht man durch die Erstellung von Resolve Res Dateien Plugin_sank_sound besitzt eine Konfigurationsdatei in der definiert wird auf welche Chateingaben das Plugin mit welchem Sound reagieren soll Diese Datei hei
242. ffmon consgreet on off Default on Konsolenbegr ung seit CS 1 6 nicht mehr relevant admin _ffmon blockattack on off Default on Unterdr ckt Eintr ge von Besch digungen in die Logdateien Entlastet den Server Wer allerdings ausf hrliche Stats w nscht schaltet blockattack ab admin ffmon allowpunish kick ban slap bury chicken overrideban all Default alles au er chicken Bestrafungsart bei TKs admin _ffmon userslapcount lt Wert gt Default 1 Zahl der Schl ge wenn Slap als TK Bestrafung genutzt wird admin_ffmon overridelevel lt Wert gt Default 0 erforderlicher Rechtelevel um einen Bann aufzuheben admin_ffmon buryglowtime lt Wert gt Default 30 Leuchtzeit in Sekunden bei der TK Bestrafung bury admin ffmon_purge L st eine Bereinigung der TK Dateien aus admin ffmon_reload L dt die Einstellungen aus der vault ini neu z B wenn diese manuell editiert wurde Tipps f r die Praxis F r Funmaps z B fy_iceworld sind die Einstellungen des FFMon meistens zu streng Man kann die Einstellungen jedoch f r spezielle Maps entsch rfen indem man mit maps pezifischen Konfigurationsdateien arbeitet Eingetragen wird dort z B Folgendes admin cmd admin ffmon rs 4 Damit wird der Wert der Rundenstartzeit f r diese Map auf 4 Sekunden herabgesetzt 400 A 2 plugin logd ffmon Da dieser Wert auf allen Maps erhalten bleibt muss man einen Eintrag in die server cfg eintragen hinter exec addons a
243. finden ist Ist dies der Fall wird anstelle des Doppelpunktes ein 0 in die Zelle des Strings geschrieben was den String an dieser Stelle beendet Auf diese Weise wird der bergebene Port abgetrennt Geh rt zu string inc Siehe auch index rindex strchr 53http www adminmod de plugins php plugin plugin_rindy_chasecam 364 679 680 681 682 683 8 10 Funktionsreferenz 8 10 187 strsep strsep sSource sDelimiters sSourcel Typ String 200 sDelimiters Typ String 200 variable Anzahl an Argumenten und Stringlangen kommagetrennt Diese Funktion trennt einen String sSource an im String sDelimitiers angegebenen Zeichen Werden nicht ausreichend Argumente fiir die Aufnahme der Teilstrings angegeben wird der Rest ungetrennt im letzten Argument tibergeben Die Funktion gibt zur ck wieviele Teilstrings gefunden wurden bzw 1 wenn kein Teil string gefunden wurde Beispiel aus plugin CS Funktion SetRestrictions if strncmp Data team 5 0 new sTeam 3 new sWhat MAX_DATA_LENGTH new iTeam strsep Data 5 sTeam 3 sWhat MAX_DATA_LENGTH 114 Falls die ersten f nf Zeichen von Data team unter Ber cksichtigung der Gro und Kleinschreibung entsprechen wird der String Data 5 ber ein Leerzeichen in sTeam und sWhat geteilt Geh rt zu string inc Siehe auch strgsep strgsplit strgtok strgtokrest strsplit strtok strtokrest 365 8 Scripting
244. ft ob ein entsprechender Spieler auf dem Server existiert In dem Fall wird ber die Funktion get_username aus der ID oder IP ein Name gemacht oder zu einem Namen erg nzt Geh rt zu admin inc 208 726 727 728 729 8 10 Funktionsreferenz 8 10 13 check _words check words sData l sDatal Typ String 100 Die zensierten W rter werden in der Datei angegeben die in der adminmod cfg mittels words_ file definiert wird Man kann mit check words einen Text untersuchen ob sich darin ein zensiertes Wort befindet Ist eines vorhanden wird eine 0 zur ckgegeben Beispiel aus plugin retribution Funktion Handle_ say if check_words NewName 0 execclient OldName name OldName return PLUGIN_HANDLED Wenn der neue Spielername ein verbotenes Wort enth lt wird veranlasst dass er seinen Namen wieder zur cksetzt Geh rt zu admin inc Siehe auch censor_ words 209 8 Scripting 8 10 14 clamp clamp value min cellmin max cellmax value Typ Integer 2147483648 2147483647 min cellmin Typ Integer 2147483648 2147483647 max cellmax Typ Integer 2147483648 2147483647 Manchmal ist es gew nscht dass sich ein Zahl value innerhalb eines bestimmten Be reichs befindet Liegt sie oberhalb des Bereichs wird sie durch die obere Bereichsgrenze max bzw unterhalb durch die untere Bereichsgrenze min ersetzt Beispiel aus plugin_CS Funktion menuselect 1512 new Tean
245. fx 1 Diese Einstellung muss vorgenommen werden damit die Nachricht des Admins stilvoll unterstrichen wird 4 1 9 admin_gag_name admin_gag name lt gt De aktiviert die M glichkeit zur Ver nderung des eigenen Namens wenn man geknebelt gag wurde Einige Spieler versuchen ber die nderung des Namens trotz Knebelung weiter zu kommunizieren indem sie ihre Nachrichten in ihren Namen schreiben plu gin_ retribution Voreinstellung 0 Beispiel admin_gag name 1 Diese Einstellung verhindert dass ein geknebelter Spieler ber seinen Namen weiter kommunizieren kann Siehe auch admin_gag_sayteam 19 4 Konfiguration 4 1 10 admin_gag_sayteam admin _gag_sayteam lt gt Wenn auf 1 gesetzt verhindert diese Variable dass geknebelte Spieler den Teamchat benutzen k nnen plugin retribution Die Voreinstellung ist 0 Beispiel admin _gag_sayteam 1 Ein geknebelter Spieler kann neben dem allgemeinen Chat auch den Teamchat nicht mehr benutzen Siehe auch admin gag_name 4 1 11 admin_highlander admin highlander lt gt Es kann nur einen geben Ja richtig es gibt bei 1 immer nur EINEN Admin auf dem Server und zwar den mit den mit der h chsten Rechtesumme Ein kleinerer Admin f llt auf das in default _ access festgelegte Level ab sobald ein h herer Admin auf den Server kommt Der Hauptadmin soll nat rlich ber allen stehen Trotzdem m chte man die Rechte ei niger Admins ni
246. g 10 3 4 MySQL PostgreSQL Installation 1in64 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 d1lls 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 lib list gam beim Serverupdate d11 addons metamod dl1s metamod_i386 so bzw dll addons metamod dl1s metamod_amd64 so Damit ist die Installation abgeschlossen und ein Serverrestart notwendig Ob alles funk tioniert 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 Pro blemen 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 si
247. gegeben Beispiel ilD funcidx admin_ban Im Beispiel wird die interne ID der Funktion admin_ban aus dem Base Plugin ausgege ben Geh rt zu core inc 250 8 10 Funktionsreferenz 8 10 71 get_serverinfo get_serverinfo sKey sValue iMaxLength sKey Typ String 100 sValue Typ String 200 iMaxLength Typ Integer 0 200 Die Funktion liest die Daten sValue die mit dem Schl ssel sKey hinterlegt wurden aus Der Schl ssel und die Daten werden mit set_serverinfo gesetzt Die Daten werden beim Mapwechsel nicht gel scht Der Speicher ist jedoch nur sehr gering bemessen so dass die Verwendung dieser Funktion vermieden werden sollte Beispiel aus plugin_bk_cron Funktion lag_ check 463 get_serverinfo last_cron slastcheck 3 464 lastcheck strtonum slastcheck Der Inhalt des Schl ssels last_ cron wird ausgelesen und mit einer maximalen L nge von 3 in die Variable slastcheck geschrieben Der String wird anschlie end in eine Ganz zahl umgewandelt Auf diese Art und Weise kann insbesondere berpr ft werden wie lang der letzte Durchlauf vor dem Mapwechsel her ist Beim Serverstart ist die Variable noch nicht gesetzt so dass 0 zur ckgegeben wird Die Nutzung der vault ini verbie tet sich da der Wert beim Beenden bzw Absturz des Servers nicht automatisch auf 0 zur ckgesetzt wird Geh rt zu admin inc Siehe auch set _serverinfo Mnttp www adminmod de plugins php pl
248. gen 22a 66 4 4 3 Rechteleyel E 68 4 4 4 Serverpl tze reservieren o 71 4 4 4 1 Teserve DIN 2 en a rs eh YH A 71 444 2 reserve_typel 2 2 onen 72 AAAS Teer PEZ co erode redors neh are 72 4 4 5 Namen reservieren nenn 74 4 4 6 RegEx Clantags reservieren etc o 74 LADA EAS s s sa es EA A A 74 4 4 6 2 Clantag reservieren 75 Benutzbare Maps einstellen maps ini o 76 Inhaltsverzeichnis 5 VI 4 6 IPs f r reservierte Slots festlegen ipsini 11 4 7 Models reservieren models ini ooa 78 48 Chat zensieren wordlistaxt 624454 40484 eR 8a eee HEH 79 4 9 Pluginspezifische Einstellungen vault ini 80 4 10 MySQL Installation einrichten s s c ss s scion s somborce s e Oe EN 80 41 Deienbankeinricktung ses se ese sd 22 8 ea se 81 4 10 2 Users Tabelle o 81 Ali Tags Tabelle oras e as Sow ee ran Ses 81 4 10 4 Models Tabelle lt lt oso iii crisis ban 81 4105 Wes labels i sio zu saei A we Re ee Be RRS Oe ES 82 4 10 6 Worde Tabelle cc chee 48 eee Phe ae di 82 ATOT Plugins Tabelle os soe ke eee 000 0 eee DEE RS nat 82 4 10 8 Zugriff aut die Datenbank 24 2445 5 Hehe a ae 82 4 10 9 Au ergew hnliche Einstellungen 83 4 11 PostgreSQL Installation einrichten e se bee era 83 4 11 1 Datenbankeinrichtung gt e cc ce aca atauga
249. gespielt wird Das funktioniert allerdings nicht bei allen Modifikationen zuverl ssig Gerade bei Coun ter Strike z hlt nur der Client die Restzeit nicht aber der Server Die R ckgabe der Restzeit in Counter Strike ist damit ungenau Einige Custom Plugins nehmen sich dieses Umstands an Alternativ kann auch der Befehl admin timeleft verwendet werden Beispiel say timeleft Zeigt die verbleibende Zeit auf der derzeitigen Map an Access Level 0 Geh rt zu plugin_ chat Siehe auch admin timeleft 118 5 5 plugin cheat 5 5 plugin_cheat Das plugin cheat erweitert die F higkeiten des Admins auf ein Ma das beim Spielen als Cheaten bezeichnet werden muss Die Befehle haben meist zwar auch ganz sinnvolle Funktionen die aber nat rlich auch in b ser Absicht verwendet werden k nnen Bei den besonders ins Spiel eingreifenden Befehlen gibt es eine Meldung an alle Spieler auf dem Server Diese wird unabh ngig von der Einstellung admin_ quiet abgesetzt Letztendlich wurde bereits dar ber nachgedacht die Funktionen hinter admin _godmode und admin _noclip zu entfernen Bis dato sind sie aber noch vorhanden 5 5 1 admin_godmode admin _godmode lt Spielername gt lt on oder off gt Der Befehl admin_godmode erlaubt dem Admin einem Spieler die F higkeit zu geben keinen Schaden zu nehmen Eine serverweite Meldung wird automatisch abgesetzt so bald der Befehl ausgef hrt wird Diese wird unabh ngig von der Ein
250. gins im Verzeichnis addons adminmod scripts Admin Mod l dt aber nicht alle Dateien aus diesem Ver zeichnis In der plugin ini Bitte nicht mit der plugins ini von Metamod verwechseln werden die Dateien festgelegt die geladen werden sollen und wo sie relativ zum Mod verzeichnis zu finden sind Standardm ig sollte nach einer normalen Installation die plugin ini folgenderma en aussehen addons adminmod scripts plugin antiflood amx addons adminmod scripts plugin_base amx addons adminmod scripts plugin_chat amx addons adminmod scripts plugin_cheat amx addons adminmod scripts plugin_CS amx addons adminmod scripts plugin_TFC amx addons adminmod scripts plugin_hldsld_mapvote amx addons adminmod scripts plugin_message amx addons adminmod scripts plugin_retribution amx addons adminmod scripts plugin_fun amx Hier liegt folgendes Prinzip vor addons adminmod scripts ist der Ordner in dem in der Regel die Plugins liegen Aber es ist auch jedes andere Verzeichnis relativ zum Modverzeichnis m glich auch au er halb mit Es schlie t sich der Name des Plugins an Wie immer gilt unter Linux die Gro und Kleinschreibung zu beachten Soll ein bestimmtes Plugin nicht geladen werden ist eine Raute der Zeile voranzustellen und somit auszukommentieren s plugin CS Alternativ kann die entsprechende Zeile auch einfach gel scht werden WICHTIG Um nderungen an der plugin ini dem Server bekannt zu geben
251. gkeit der Berechnungen ist ausreichend genau bis mindestens zur zweiten Nachkommastelle je nach Funktion Wenn mit Festkommazahlen gerechnet werden soll ist dieses Include wahrscheinlich notwendig Dann muss aber auch das fixed Include eingebunden werden distance fixed f abs fixed f arccos fixed f arccot fixed f arcosh fixed f arcoth fixed f arcsin fixed f arctan fixed f_arctan_help fixed f arsinh fixed f artanh fixed f cos fixed f cosh fixed f cot fixed f coth fixed f_degtorad fixed f euler fixed f_ faculty fixed f In fixed f_log10 fixed f_logab fixed f max fixed f min fixed f_ pi fixed f_ power fixed f powere fixed f_radtodeg fixed f sin fixed f sinh fixed f_ sqrt fixed f tan fixed f tanh fixed strtofix fixtostr matherror 8 9 7 plugin inc Das Include plugin hat nur zwei selten verwendete Funktionen In der Regel muss dieses Include nicht eingebunden werden 196 plugin_checkcommand plugin message 8 9 8 string inc 8 9 Includes Das string Include besch ftigt sich mit Stringauswertungen und manipulationen Be sonders Funktionen wie snprintf machen das Include fast unentbehrlich Es ist sinnvoll dieses Include standardm ig in das eigene Plugin aufzunehmen index rindex snprintf strcasecmp strcasestr strcasestrx strcat strchr stremp strcount strcpy strespn strgsep strgsplit strgtok strgtokrest strstrx strncasecmp strsubst
252. greifen 1 Name Crash Cheat interessant nur bis HL1108 inzwischen von Valve gefixt Der Wert besteht stets aus einer Zeichenfolge hier nc und einer Zahl nc0 bedeutet dass Admin Mod nichts unternimmt Default nc1 kickt den Spieler vom Server nc2 kickt den Spieler vom Server und bannt ihn f r 24h 2 Spectator Cheat vermutlich auch nicht mehr aktuell sp0 bedeutet dass Admin Mod nichts unternimmt Default sp1 bannt den Spieler vom Server Will man beide Optionen gleichzeitig nutzen so ist als Trennzeichen der Doppelpunkt zu verwenden z B ncl sp1 Beispiel amv_anti_cheat_options nc0 spl Dies aktiviert die Spectator Cheat Erkennung deaktiviert jedoch die Name Crash Cheat Erkennung Siehe auch amv_hide_ reserved_ slots public_slots_free reserve_ slots reserve_type 4 1 29 amv_default_config_dir amv_default_config dir lt string gt Beinhaltet den Standardpfad der Admin Mod Installation Dieser Wert ist zu ndern falls nicht der Standardpfad benutzt wird Standard ist addons adminmod config Diese Einstellung ist f r einige Custom Plugins relevant Beispiel amv_default_config dir addons adminmodtest config In diesem Beispiel wird erwartet dass sich die Konfigurationsdateien un blicherweise im Unterverzeichnis adminmodtest befinden Siehe auch amv_hide reserved_ slots public_slots_free reserve_ slots reserve_type 29 4 Konfiguration
253. gsql_port pgsql_ preload pgsql_tags_sql pgsql user 4 1 79 public_slots_free public_slots_free lt gt Diese Variable zeigt die noch freien Pl tze auf dem Server an Ein manuelles Setzen ist nutzlos und hat au er einer Fehldarstellung keine Auswirkungen Rein informative Variable f r Serverbrowser Siehe auch ami_sv_maxplayers amv_hide_reserved__slots reserve_slots reserve_type 59 4 Konfiguration 4 1 80 reserve_slots reserve slots lt gt Man legt hier fest wieviele Pl tze Slots f r Administratoren reserviert werden Bitte auch reserve_ type beachten Reservierte Slots k nnen nur von Admins mit dem Recht 32768 genutzt werden Die reservierten Slots sind standardm ig abgeschaltet Default 0 Beispiel reserve slots 1 Diese Einstellung macht einen Serverslot nur f r die Admins nutzbar Mehr zu dem Thema ist dem Kapitel 4 4 4 Serverpl tze reservieren zu entnehmen Siehe auch ami_sv_maxplayers amv_hide_reserved_slots public_slots_ free reserve_slots_msg reserve_type 4 1 81 reserve_slots_msg reserve _slots_msg lt string gt Legt fest welche Nachricht angezeigt wird wenn nur noch reservierte Slots vorhanden sind und ein normaler Spieler versucht auf den Server zu connecten Standardm ig bekommt der Spieler folgendes zu lesen There are no reserved slots available on the server Beispiel reserve_slots_msg Alle freien Plaetze sind schon besetzt Sorry Ein freundliche
254. gszeichen gesetzt werden Beispiel aus plugin CS Funktion strtolower strtolower String new i for i 0 Stringlil i 4 String i tolower Stringli Diese Funktion wandelt ber ein For Schleife alle Zeichen des Strings String in Klein buchstaben um Geh rt zu core inc Siehe auch toupper 8 10 204 toupper toupper c Typ Integer 0 256 Wenn es sich bei einem Zeichen c um einen Kleinbuchstaben handelt wandelt die Funktion dieses in einen Gro buchstaben um Um nicht den ASCII Code verwenden zu m ssen kann vereinfacht auch das entsprechende Zeichen in einfache Anf hrungszeichen gesetzt werden Beispiel aus plugin_CS Funktion ShowClass Message 0 toupper Message 0 1344 selfmessage Message Diese Funktion wandelt den ersten Buchstaben des Strings Message in einen Gro buch staben um ihn dann auf der Console des Admins auszugeben Geh rt zu core inc Siehe auch tolower 380 8 10 Funktionsreferenz 8 10 205 typesay typesay sMessage iTime iRed iGreen iBlue sText Typ String 500 max Zeilenl nge 80 iTime Typ Integer 0 2147483647 iRed Typ Integer 0 255 iGreen Typ Integer 0 255 iBlue Typ Integer 0 255 Mit dieser Funktion kann man eine bunte Nachricht sText f r alle Spieler in der linken unteren Ecke des Bildschirms produzieren iTime ist die Einblendzeit in Sekunden iRed ist der Rotanteil iGreen der Gr nant
255. gt wenn arg ein Feld z B ein String ist Es gibt die zu schreibende Zelle des Feldes an Das Argument value ist der neue Wert der zur ckzuschreiben ist Beispiel sum new result 0 for new i 0 i lt numargs i result getarg i setarg 0 result return 1 Eine Funktion sum mit variabler Argumentanzahl wird definiert Eine For Schleife fragt die einzelnen Argumente ab und addiert sie Die Summe wird ber das erste Argu ment der Funktion sum zur ckgegeben Die direkte R ckgabe ist immer 1 Die Anzahl der bergebenen Argumente wird mit numargs ermittelt Geh rt zu core inc Siehe auch getarg numargs 333 8 Scripting 8 10 156 setproperty setproperty id 0 const name value cellmin const string id 0 Typ Integer 2147483648 2147483647 const name Typ String variabel value cellmin Typ Integer 2147483648 2147483647 const string Typ String variabel Mit dieser Funktion kann eine so genannte Property bei gegebenem Schltissel name oder value erstellt werden Die Property wird als String im Speicher abgelegt Es handelt sich um eine Funktion deren Benutzung unter Admin Mod vermieden werden sollte Stattdessen wird empfohlen z B die Funktionen get_vaultdata oder set_ vaultdata zu r ckzugreifen Mehr Informationen zum Thema sind im Abschnitt 8 14 nachzulesen Beispiel setproperty 2 test_prop sString setproper
256. h plugin command plugin connect plugin disconnect plugin_ init 308 217 218 219 220 221 222 8 10 Funktionsreferenz 8 10 131 plugin_init plugin init Bei der Funktion plugin_init handelt es sich um ein Event das nur beim Plugin Start ausgef hrt Es entspricht der main Funktion in der Sprache C Jedes Plugin muss diese Funktion besitzen siehe auch im Tutorial Beispiel aus plugin _antiflood Funktion plugin init public plugin_init plugin_registerinfo Admin Anti Flood Plugin Auto kicks flooders VERSION return PLUGIN_CONTINUE Dieses Beispiel zeigt die simpelste Form von plugin_init Es wird lediglich das Plugin bei Admin Mod registriert plugin_registerinfo Es k nnen au erdem Befehle registriert aber auch beliebiger Code ausgef hrt werden Die Funktion plugin exec funktioniert allerdings zu diesem Zeitpunkt prinzipbedingt noch nicht Geh rt zu admin inc Siehe auch plugin command plugin connect plugin disconnect plugin info 309 8 Scripting 8 10 132 plugin _message plugin_message sMessagel 937 938 939 940 941 942 943 sMessage Typ String 100 Die Funktion schreibt eine Nachricht sMessage in Console des aufrufenden Spielers Im Gegensatz zur Funktion selfmessage wird auch das Plugin genannt das die Nachricht ausgibt Beispiel aus plugin CS Funktion LoadDefaultRestrictions if get_vaultdata strName strKey MAX_ITEMS 1 plugin_message Map
257. h wav stimulating wav stopl wav stop2 wav stop3 wav stop4 wav stopasking wav stopattacking wav survival wav thatsodd wav theoretically wav thiswillhelp wav tunedtoday wav tunnelcalc wav uselessphd wav ushouldsee wav waithere wav weartie wav whatissound wav whatnext wav whatyoudoing wav whoareyou wav whocansay wav whoresponsible wav whyaskme wav whyleavehere wav yees wav yes wav yes2 wav yes3 wav yesihope wav yesletsgo wav yesok wav youinsane wav youlookbad wav youlookbad2 wav youneedmedic wav youwounded wav 421 B Sonstiges B 4 33 squeek sqk_ blastl wav sqk_ deploy1 wav sqk_ diel wav sqk_huntl wav sqk_ hunt2 wav sqk_hunt3 wav B 4 34 tentacle B 4 35 tride te_alertl wav te_alert2 wav te_death2 wav te_fliesl wav te movel wav te move2 wav te _roarl wav te _roar2 wav te _searchl wav te _search2 wav te_singl wav te_sing2 wav te_squirm2 wav te_strikel wav te_strike2 wav te_swingl wav te_swing2 wav c0a0_tr_arrive wav c0a0_tr__dest wav c0a0_tr_emerg wav c0a0_tr_exit wav c0a0_tr_gmorn wav c0a0_tr_haz wav c0a0_tr_jobs wav c0a0_tr_noeat wav B 4 36 turret B 4 37 vox 422 tu_active wav tu_active2 wav tu_alert wav tu_deploy wav tu_die2 wav tu_die3 wav tu_firel wav tu_ping wav tu_search wav tu_spindown wav tu_spinup wav c0a0_tr_time wav c0a0_ tr tourn wav tu_die wav tu_retract wav
258. h wieder aus Discomodus bedeutet dass alle Spieler in unterschiedlichen Farben gl hen und hin und wieder einige Centersays eingeblendet werden Daf r muss der Fun Mode aktiviert sein admin_ fun mode Das probiert man einmal aus und dann bleibt die Funktion zumeist ungenutzt Beispiel admin disco L uft der Discomodus nicht wird er damit aktiviert Ist der Discomodus jedoch aktiviert gewesen ist er nun abgeschaltet Access Level 8192 Geh rt zu plugin_fun Siehe auch admin fun mode 5 7 2 admin_fun admin fun on Der Befehl schaltet die Glow und Discofunktion an oder aus Es wird dabei die Varia ble admin_ fun mode gesetzt und ggf laufende Glows abgeschaltet Die Einstellungen bleiben bis zum n chsten Aufruf der adminmod cfg aktiv Je nach Einstellung map changecfgfile kann das beim Mapwechsel oder beim n chsten Serverrestart sein Alles was nicht on entspricht wird als off interpretiert Beispiele admin fun on admin fun off admin fun Das erste Beispiel schaltet den Fun Mode an Die anderen Beispiele schalten den Fun Mode und damit ggf laufende Glows bis auf Weiteres ab Access Level 8192 Geh rt zu plugin_fun Siehe auch admin fun mode 141 5 Standardplugins und Befehle 5 7 3 admin_glow admin glow lt Farbe off gt Mit diesem Befehl kann man sich selbst in einer festgelegten Farben gl hen lassen oder den Effekt abschalten Daf r muss der Fun Mode aktiviert sein admi
259. heit durch die Chateingabe overrideban aufgehoben werden Der letzte Befehl wirkt aber nicht wenn eine TK Begrenzung berschritten wurde Falls es der Admin nicht abgestellt hat kann sich jeder Spieler durch die Chateingabe score den aktuellen Spielstand anzeigen lassen In diesem Abschnitt soll eine einfache Einf hrung und einige Hilfen gegeben werden die bei der Installation und Konfiguration dieses Plugins unterst tzen sollen 396 A 2 plugin logd ffmon A 2 1 Voraussetzungen Es wird ein lauff higes LogD vorausgesetzt Dar ber hinaus sind noch Einstellungen bei Server und bei Admin Mod durchzuf hren Server server cfg mp_logdetail 3 mp_tkpunish 0 Admin Mod adminmod cfg file_access_read 1 file_access_write 1 allow_client_exec 1 amv_ enable beta menul Auf dem Server selbst muss ein Verzeichnis mit dem Namen ffmon im cstrike Verzeichnis erstellt werden also cstrike ffmon Will man die Chicken Option nutzen ist das Chicken Metamodplugin zu installieren A 2 2 Einstellungen Zum Ver ndern der Einstellungen des FFMons ben tigt der Admin den Rechtelevel Ban 256 Das Ver ndern der Einstellungen sollte mit Vorsicht vorgenommen werden da es mitunter dazu kommen kann dass auch andere Variablen ver ndert werden Die Eingaben erfolgen alle in der Console Oft genutzte Einstellungen Zum Einschalten der TK berwachung nutzt man die Konsoleneingabe admin ffmon TK on Ausschalten der se
260. henden Events mit ihrer R ckgabesyntax aufgelistet werden Tabelle 8 1 Die Variablen werden in der angegebenen Reihenfolge mit Leerzeichen als Trennzeichen im R ckgabestring zur ckgegeben Die Bezeichnung der Variablen ist in diesem Fall willk rlich Das s deutet an dass der Wert als String in Admin Mod ausgewertet werden soll Entsprechend steht das i f r einen Zahlenwert Der eigentliche Name der Variablen soll den Zweck andeuten UI steht dabei verk rzt f r den Userindex Um Leerzeichen z B beim Chat darstellen zu k nnen ohne dass diese beim Trennen Arger bereiten werden diese durch ersetzt Optionen im String werden von ihrem Wert mit einem abgesetzt 391 8 Scripting 392 Tabelle 8 1 LogD Events Event Name Variablen Beispiel 5 Servername sHostname Mein Server 50 Connect iPlayerUI 12 1 2 3 4 12345 iPlayerIP 51 Enter Game iPlayerUI 16 52 Disconnect iPlayerUI 11 53 Suicide iPlayerUl 9 grenade sWaffe 54 Team Select iPlayerUI 5 TERRORIST sTeam 55 Role Select iPlayerUI 2 Medic sRole 56 Change Name iPlayerUI 6 Me Admin sNewName 57 Kill iKillerUI 6 4 p228 iVictimUI sWaffe 58 Damage iAttackerUI 3 1 p228 damage 28 iVictimUI damage_armor 0 damage iDamage health 72 armor 0 damage_armor iDA health iHealth armor iArmor 59 PvP Action invokerUI 5 10 Medic_ Heal iReceiverUI sAction 60 Player Action iPlayer
261. hgef hrt Anschlie end wird berpr ft ob eine Spieler dieses Namens existiert Wenn nicht wird eine vierzeilige Fehlermeldung in der Console ausgegeben Geh rt zu string inc Siehe auch strgsplit strgtok strgtokrest strsep strsplit strtok strtokrest 393 72 73 75 8 Scripting 8 10 175 strgsplit strgsplit sSource sDelimiters sGroupingl sSourcel Typ String 200 sDelimiters Typ String 200 sGrouping Typ String 200 variable Anzahl an Argumenten und Stringlangen kommagetrennt Diese Funktion trennt einen String sSource an im String sDelimitiers angegebenen Zeichen Die Trennung wird dort nicht ausgef hrt wo die Zeichenkette von den im String sGrouping angegebenen Zeichen umschlossen wird Werden nicht ausreichend Argumente f r die Aufnahme der Teilstrings angegeben wird der Rest verworfen Die Funktion gibt zur ck wieviele Teilstrings gefunden wurden bzw 1 wenn kein Teil string gefunden wurde Beispiel aus plugin_gnc_filtersay Funktion readcfg for new i 0 i lt MAX_WORDS amp amp readfile filename sData i 1 MAX_DATA_LENGTH i strgsplit sData BadWord i MAX_PL GoodWord i MAX_PL Wenn der Dateiname existiert fileexists wird die gesamte Datei zeilenweise ausgelesen Jede Zeile wird an den Leerzeichen getrennt wobei in Begriffe in doppelten Anf hrungs zeichen nicht getrennt werden Ist ein zweites Leerzeichen au e
262. his time return PLUGIN_HANDLED log_command User Command Data vote Data Yes No HandleVsay Data return PLUGIN_HANDLED Zun chst wird berpr ft ob berhaupt ein Vote erlaubt ist vote_allowed Wenn dies nicht der Fall ist wird dem Admin eine Fehlermeldung ausgegeben Anderenfalls wird der Befehl in die Logdateien geschrieben und ein Vote mit der in Data stehenden Frage und den Antwortm glichkeiten Yes und No ausgef hrt Geh rt zu admin inc Siehe auch vote 387 8 Scripting 8 10 213 writefile writefile sFilename sLine iLineNum 1 sFilename Typ String 200 sLine Typ String 200 iLineNum Typ Integer 0 2147483647 Die Funktion schreibt einen Text sLine in eine Zeile iLineNum einer Datei sFilena me Wird iLineNum nicht oder als 1 angegeben wird der Text als neue Zeile an die Datei angeh ngt Die Funktion ist sehr zeitintensiv da gewartet werden muss bis der Festplattenzugriff erfolgt ist Schreibt man mehrere Zeilen mit einer For Schleife wird bei jeder Zeile die Datei neu ge ffnet was weitere Verz gerungen verursacht Man sollte sich daher genau berlegen ob man diese Funktion nutzen m chte Beim Schreiben w hrend des Server starts bzw beim vereinzelten Anh ngen von Text ist dies noch akzeptabel ein Schreiben w hrend der Spielzeit kann bei einer For Schleife durchaus zu Aussetzern im Spiel f h ren Lag Wenn m glich sollte ma
263. hostats com 166 7 2 StatsMe 7 2 StatsMe Einige Admin Mod Plugins ben tigen ber Admin Mod selber hinaus auch Statsme 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 d1l 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 wer den 7 2 2 Performance und Plattenplatz Wie
264. hostname ge ndert Exkurs Die Variable hostname bestimmt wie der Server hei t und wie er beispiels weise im Steam Browser dargestellt wird Beispiele admin _hostname Mein toller HL Server In diesem Beispiel ndert man den Servernamen in Mein toller HL Server Access Level 512 Geh rt zu plugin_ base 101 5 Standardplugins und Befehle 5 3 12 admin_kick admin kick lt ID Namensteil IP gt Grund Mit diesem Befehl wird der Spieler entweder ber seine ID IP oder den Namen vom Server geworfen Kick Dar ber hinaus kann dem Spieler auch ein Grund f r den Kick gegeben werden Er sieht dies nach dem Muster You have been kicked because Statt der kann man den Grund eintragen Beispiele admin kick Idiot admin kick Ich bin ein Idiot you are afk Im ersten Beispiel wird ein Spieler mit dem Namen Idiot ohne Gr nde zu nennen vom Server geworfen Es kann sich auch um einen Teil des Namens handeln z B Ich bin ein Idiot Solange der Name mit Idiot eindeutig zuzuordnen ist wird der Spieler gekickt Sind beispielsweise zwei Spieler Ich bin ein Idiot und Ich war ein Idiot kommt es zu keinem Kick da Admin Mod den Kick nicht eindeutig zuordnen kann Im zweiten Beispiel wird der Spieler mit dem Namen Ich bin ein Idiot vom Server geworfen weil er nicht am Rechner sitzt und mitspielt afk away from keyboard Der Spieler bekommt dann die Meldung You ha
265. hrend dieser Zeit im Oktober 2000 wurde auch die deutsche Web Dependence adminmod de er ffnet Au erdem wuchs das Team um Alfred zunehmend wobei es sich eigentlich mehr um Interessierte handelte als ein richtiges Team Ende M rz 2001 wurde dann die Version 2 50 ver ffentlicht die den letzten gro en Mei lenstein in der Admin Mod Entwicklung darstellt Admin Mod ist seit diesem Zeitpunkt ein Metamod Plugin Neu eingef hrt wurde das Pluginsystem das weg von der gro en Inttp www valvesoftware com http bw admin sourceforge net 3http botman planethalflife gamespy com about_me shtml 2 Historie schwierig zu erweiternden Scripting Datei hin zu einem einfachen modularen System f hrte Trotz der damals unbekannten Sprache Small entwickelte sich eine gro e Com munity rund um das Thema Scripting die wesentlich zum Erfolg Admin Mods beitrug Die Entwicklung Admin Mods zielte im Weiteren auf die Erweiterung der Funktionen des Scriptingsystems Abrunden der bestehenden Funktionalit t und Bugfixes In 2002 kam es zu einem gr eren Umbruch bei Admin Mod Valve konnte Alfred als Mitarbeiter gewinnen was seine Zeit f r Admin Mod jedoch stark einschr nkte So bernahm Da Rope von diesem Zeitpunkt an immer mehr die Funktion des Projektmanagers Mit der erweiterbaren Funktionalit t wuchs auch das Interesse an weitgehenderen Ein griffen ins Spiel W hrend sich zun chst LogDaemon und dann StatsMe als Event Erkennung noch um
266. ht im Chat auftauchen sollen Idiot Nap Naps Aktiviert wird die Funktion ber die adminmod cfg beispielsweise folgenderma en words file addons adminmod config wordlist txt Deaktiviert wird die Zensur wie folgt words_file 0 Die Liste wird case insensitive also ohne Unterschied zwischen Gro und Kleinschrei bung berpr ft nderungen werden erst nach einem Serverrestart einem Mapwechsel oder nach dem Aufruf von admin reload aktiv Allerdings k nnen bereits kleinste nderungen die Liste umgehen N aps Dies ist immer noch lesbar aber wird nach obiger Liste auf Grund des zus tzlichen Punktes nicht als Beschimpfung erkannt 79 4 Konfiguration 4 9 Pluginspezifische Einstellungen vault ini Die vault ini dient der Speicherung von Plugineinstellungen Insbesondere Customplug ins machen oftmals Gebrauch davon Grunds tzlich sollte ein guter Pluginauthor dem User ber Befehle im Plugin die Ein stellungen ohne direkten Zugriff erm glichen Manchmal muss man aber auch manuell Hand anlegen Aktiviert wird die vault ini in der adminmod cfg admin vault_file addons adminmod config vault ini Zum Abschalten der vault ini tr gt man ein admin _vault_file 0 Das ist allerdings auf Grund der oftmaligen Nutzung nicht zu empfehlen Manuelle nderungen sollten nicht w hrend des Serverbetriebes vorgenommen werden Sollte kurz nach der nderung ein Plugin in die vault ini schreiben so sind die n derungen v
267. htigt Zugriff zu RCon verschafft indem er das Passwort ndert Falls der String Data die Servervariable rcon_ password beinhaltet wird die Meldung You do not have access to this command angezeigt und die weitere Abarbeitung abgebrochen Geh rt zu string inc Siehe auch strcasestr strcasestrx strstrx 368 8 10 Funktionsreferenz 8 10 191 strstripquotes strstripquotes str str Typ String 200 Die Funktion l scht eventuell vorhandene Anf hrungszeichen am Anfang und am Ende eines Strings Es ist zwingend notwendig bei der Abarbeitung von Chatnachrichten say 179 180 181 182 183 184 185 186 187 188 189 190 191 192 say_ team diese Funktion auszuf hren Der Text ist immer in Anf hrungszeichen F r beliebige Zeichen am Stringanfang und Ende kann auch strtrim verwendet werden Beispiel aus plugin base Funktion admin _dmsg switch sType 0 case ij tType uid_index case s tType uid_SessionID case w tType uid_wonID default tType uid_invalid y switch strstripquotes sMessage directmessage sMessage iUid tType Abh ngig vom Buchstaben der sich in der ersten Zelle von sType befindet wird der UID Typ festgelegt Die um Anf hrungszeichen befreite Nachricht Zeile 191 strstripquotes wird der ID Session ID oder Userindex geschickt Geh rt zu adminlib inc Siehe auch strtrim 369 677 678 679 680 681 8 Script
268. ia a a Ge 355 8 10 177 str tokrest e cc 24 ars a Eue ERS 356 SIOS ern erario EE ERS ES 356 8 10 179 stilen x s siise maia ok e de et we BAR a 357 SU EN Brent a ne a ORE RE EES 358 o e AA 309 XIV Inhaltsverzeichnis NT SICAL ragen E une 360 5 10 1S9 o an ack a ee Oe u Ki de Bahn 361 AU IIA 362 UNI Sis be ea ee E eR RS ASS ee E s 363 SUCIA SIE ong oe oS ER SRE ES Oe Ee Swe GRR eS 364 A 6 BASS ea See had eee Eee eee 365 SOLES Strsplit 24 64 445446 ara a A ES 366 810 159 STSP lt x a A A ee PES 367 SIN IIS sa aa ERA 368 A ke Soe a RS Be eig 369 GLIO SU ana ae A BA ee Oe ER ew eK ee Be 370 A es od eaa ee ee ee Er Bo GBH 371 PIO SMG et wae oe ea eR RS AS A E 372 A ses ies KR OER ERS HO mE Ge Swe EHR OES 373 S10 190 LEON Sek eS lek GS Ee RRA See A 374 STUNT SU e aea eee RR ee dee bo OR RE 375 SITE GIN nw Se ee a ee a ee Se ee A Dark 376 8 10 10 o gt lt e ce kee eve bbe eh ee ee See ee EEG 377 510 200 Sy sven a RS O AR A 377 8 10 209 teleport cosas 2 5 pa a a a u kan au de 378 8 10 202 timeleft so a wu eona wen nen ae og Ba eae ab 379 po IAEA AI 380 SITZ TORE s ees iras na da de ei 380 310 205 LIPDESaN ense edie ha Eh en 381 S00 200 UNDAN s o bd BAe a a a aa 382 810207 Meee ee ew See hd a a e A A ee Walt 383 2 10 2028 valid Map e sur ea ES a dahin 384 8 10 209 valid map lt o o so cee ea dere an ea Bann 385 SU ZI VErSIOT lt i sos eR BARE Raa EER de EE ehe 385 SU yE 2 ers ama er aaa ads as Bo BS 386 8 10 21
269. ic plugin_connect HLUserName HLIP UserIndex 7 new sText MAX_TEXT_LENGTH 8 9 snprintf sText MAX_TEXT_LENGTH Slot d ist besetzt UserIndex 10 log sText 12 return PLUGIN_CONTINUE 13 15 public plugin_init 16 plugin_registerinfo Testplugin Ein Testplugin 1 0 17 return PLUGIN_CONTINUE 18 5 Der Event plugin connect muss wie alle Events mit public ffentlich gemacht wer den 6 public plugin_connect HLUserName HLIP UserIndex 4 Wie beim Serverbefehl Event gibt es auch f r den Spielerbeitritt festgelegte Variablen die ausgewertet werden k nnen Leider ist der Event in der Regel zu fr h so dass weder Spielername noch seine IP zur ckgegeben werden Nur der Slot UserIndex l sst sich zuverl ssig nutzen Aus dem UserIndex soll ein ausagekr fter Text f r die Logdateien gemacht werden 181 10 oonsoauvuruwumm 12 8 Scripting snprintf sText MAX_TEXT_LENGTH Slot d ist besetzt UserIndex log sText Mit der Funktion snprintf lassen sich einfach Strings und Zahlen in einen bestehenden String implementieren Neben dem String in den der Text gespeichert werden soll muss auch die maximale L nge des Strings angegeben werden Der folgende String beinhaltet neben dem eigentlichen Text auch einen Platzhalter f r den Slot d steht f r eine Zahl s steht f r einen String Abschlie end m ssen in der Reihenfolge des Auftauchens im Text die Variablen angegeben werde
270. idle3 wav B 4 26 items he_alertl wav he_alert2 wav he_alert3 wav he_attackl wav he _attack2 wav he _attack3 wav he blastl wav he blast2 wav he blast3 wav he diel wav he die2 wav he die3 wav he huntl wav he _hunt2 wav he hunt3 wav he _hunt4 wav he idlel wav he_idle2 wav he_idle3 wav he_idle4 wav he_painl wav he_pain2 wav he_pain3 wav he_pain4 wav he_pain5 wav B 4 HL Sounds Immclipl wav 9mmclip2 wav airtankl wav ammopickupl wav ammopickup2 wav clipinsert1 wav clipreleasel wav flashlight1 wav guncockl wav gunpickupl wav gunpickup2 wav gunpickup3 wav gunpickup4 wav medcharge4 wav medshot4 wav medshot5 wav medshotnol wav smallmedkit1 wav smallmedkit2 wav suitchargel wav suitchargenol wav suitchargeok1 wav weapondropl wav B 4 27 leec h leech_alertl wav leech__alert2 wav leech_ bitel wav leech_ bite2 wav leech_ bite3 wav B 4 28 nihilanth nil alone wav nil comes wav nil deceive wav nil _die wav nil done wav nil freeman wav nil_last wav nil man notman wav nil now_die wav 417 B Sonstiges nil_ slaves wav nil_thelast wav nil_ thetruth wav nil_ thieves wav nil win wav B 4 29 plats bigmovel wav bigmove2 wav bigstopl wav bigstop2 wav elevbelll wav elevmovel wav elevmove2 wav elevmove3 wav freightmovel wav freightmove2 wav freightstopl wav heavymo
271. ieler zu diesem Zeitpunkt nicht hoch in der Luft befindet wird er in den Boden versetzt so dass er sich nicht mehr bewegen kann Geh rt zu admin inc Siehe auch get __userorigin 378 8 10 Funktionsreferenz 8 10 202 timeleft timeleft iPrintToConsole 1 iPrintToConsole 1 Typ Integer 0 1 Die Funktion ermittelt die verbleibenden Sekunden bis zum Mapwechsel Uber das Ar gument iPrintToConsole wird eingestellt ob die Restzeit in Minuten und Sekunden auch in der Console angezeigt wird wobei 0 keine Anzeige bedeutet Beispiel aus plugin chat Funktion SayTimeleft SayTimeleft new Text MAX_TEXT_LENGTH new Seconds timeleft 0 Seconds 60 snprintf Text MAX_TEXT_LENGTH Time remaining on map i minutes Seconds 67 say Text Die Anzahl der bis zum Mapende verbleibenden Sekunden wird ermittelt und in die Variable Seconds geschrieben Diese wird durch 60 geteilt um Minuten zu erhalten Die Minutenzahl wird in den String Text eingebettet der abschlie end im Chat ausgegeben wird Geh rt zu admin inc Siehe auch maptime 379 1566 1567 1568 1569 1570 1571 1343 8 Scripting 8 10 203 tolower tolower c c Typ Integer 0 256 Wenn es sich bei einem Zeichen c um einen Gro buchstaben handelt wandelt die Funktion dieses in einen Kleinbuchstaben um Um nicht den ASCII Code verwenden zu m ssen kann vereinfacht auch das entsprechende Zeichen in einfache Anf hrun
272. iere 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_1 MySQL Kopiere AdminSQL libpg so 3 hlds_1 PostgreSQL Anschlie end muss noch die plugins ini von Metamod ge ndert werden Nach dem Neu start sollte der Gameserver genau so laufen wie vorher Es wird nur noch nicht auf den Bnttp www phpmyadmin net l4http phppgadmin sourceforge net Uhttps sourceforge net project showfiles php group_id 3570 amp package_id 3991 12 3 5 Verzeichnisstruktur 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 Konfigurati onsanweisung f r MySQL und PostgreSQL hervor 3 5 Verzeichnisstruktur 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 minima
273. igen Zusatzinformationen in der Console ausgegeben Ist z B admin test a eingegeben worden ist sData a Es werden dann alle Spieler ausgegeben deren Name ein a enth lt Die Funktion wird nicht wie bei der plugin_ init durch PLUGIN_ CONTINUE beendet return PLUGIN_HANDLED Admin Mod geht der Reihe nach durch die Plugins und berpr ft ob der gesuchte Befehl einem Plugin geh rt Erst wenn es kein passendes Plugin findet gibt es den Befehl an den Server weiter W rde man hier PLUGIN_CONTINUE angeben so w rde Admin Mod in den nachfolgenden Plugins weitersuchen und den Befehl anschlie end an den Server weitergeben Der Server kennt den Befehl aber nicht und w rde mit Unknown command antworten obwohl die Admin Mod Aktion durchgef hrt wurde Mit PLUGIN_ HANDLED verhindert man dass Admin Mod weitersucht bzw den Be fehl an den Server weitergibt 8 8 3 Auf say reagieren Die gleiche Funktionalit t kann man auch ber den Chat erreichen wenngleich die Aus gabe weiterhin in der Console stattfindet Es soll also bei der Eingabe von userlist im Chat die Spielerliste in der Console ausgegeben werden include lt core gt include lt string gt include lt admin gt include lt adminlib gt public test HLCommand HLData HLUserName UserIndex new sData MAX_DATA_LENGTH new sCommand MAX_COMMAND_LENGTH 179 8 Scripting 10 convert_string HLData sData MAX_DATA_LENGTH 11 strse
274. in daran dass sie das Event plugin_ init zur Verf gung stellt Aber auch andere essentielle Events und Funktionen werden hier definiert Weiterhin sind diverse Konstanten an dieser Stelle definiert z B Access Level Auch augew hlte Enums sind dort zu finden Es ist daher notwendig das Include in das eigene Plugin einzubinden Eine Liste der zur Verf gung gestellten Events und Funktionen ist der anschlie enden Tabelle zu entneh men 194 access get_vaultnumdata plugin_registerinfo auth getstrvar pointto ban gettarget rainbow censor words getteamcount readfile centersay getvar reload centersayex glow removespawn changelevel godmode resetfile check_ user help say check _words kick selfmessage consgreet kill_ timer servertime convert_ string list__maps set _serverinfo currentmap listspawn set_ timer cvar__exists log set_ vaultdata deletefile look in dir set_ vaultnumdata directmessage maptime setstrvar exec maxplayercount slap execclient menu slay fileexists message spawn filesize messageex speakto get_serverinfo motd strtonum get_ timer movespawn systemtime get_userArmor nextmap teleport get_userAuthID noclip timeleft get__userFrags playercount typesay get_userHealth playerinfo unban get__userindex playsound userlist get__userinfo plugin _ command valid_map get__userIP plugin_ connect valid_mapex get_ username plugin _disconnect version get __userorigin plugin _exec vote get_userSessionID plugin _i
275. in_freezetime admin freezetime Sekunden Dieser Befehl ver ndert die Servervariable mp freezetime Hiermit kann eingestellt werden wie lange sich Spieler nach Rundenbeginn nicht bewegen k nnen blicherweise sind das 5 oder 6 Sekunden Diese Zeit ist in der Regel ausreichend um einzukaufen Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _freezetime 5 admin _freezetime 0 admin freezetime Im ersten Beispiel wird die Bewegungslosigkeit am Anfang der Runde auf 5 Sekunden gestellt Im zweiten ist die Funktion abgeschaltet Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin_ CS 128 5 6 plugin CS 5 6 14 admin_ghostfrequency admin _ghostfrequency Sekunden Dieser Befehl setzt die Servervariable mp__ghostfrequency Es wird damit eingestellt wie h ufig Geister z B Spectator oder Tote eine Aktualisierung bekommen Die Standardeinstellung ist 0 1 Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _ghostfrequency 0 1 admin _ghostfrequency 1 admin _ghostfrequency Im ersten Beispiel wird die Aktualsierung auf 100 ms gestellt Im zweiten Fall bekom men die Geister nur jede Sekunde ein Update Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu
276. in_registercmd und plugin_registerhelp ersetzt Geh rt zu admin inc Siehe auch plugin _registeremd plugin_registerhelp 277 8 Scripting 8 10 100 index index sSource iChar sSourcel Typ String 200 iChar Typ Integer 0 256 Die Funktion ermittelt die Position des ersten Vorkommens des Zeichens iChar im String sSource von links beginnend F r das Zeichen muss die ASCII Nummer angege ben werden Vereinfacht kann auch das entsprechende Zeichen in einfache Anf hrungs zeichen gesetzt werden Die Funktion liefert 1 zur ck falls das Zeichen nicht gefunden wurde Die Funktion ist ein Alias f r strchr Beispiel aus plugin_blatt_map 4 Funktion ReadMapLine 3004 pos index Line 3005 if pos gt 0 3006 Line pos NULL_CHAR 3007 3008 Es wird das erste Leerzeichen von links in Line gesucht Wurde ein Leerzeichen gefun den wird es durch ein String Endzeichen NULL_CHAR ersetzt Alle Funktionen die den String von links zu lesen beginnen werden an dieser Stelle beendet Beginnt man von rechts werden die Zeichen hinter dem String Endzeichen zuerst gelesen Man sollte daher genau wissen was man tut wenn man ein String Endzeichen manuell setzt Die Verwendung von strsep ware eine Alternative Geh rt zu string inc Siehe auch rindex strchr strrchr 4nttp www adminmod de plugins php plugin plugin_blatt_map 278 272 273 274 275 276 8 10 Funktionsreferenz 8 10 1
277. ing 8 10 192 strstrx strstrx sSource sSearch sSource Typ String 200 sSearch Typ String 200 Die Funktion sucht einen String sSearch in einem anderen String sSource Gro und Kleinschreibung wird beachtet Wird der Suchstring gefunden gibt die Funktion eine Zahl gr er als 0 zur ck Wenn der String nicht gefunden wurde oder leer ist gibt die Funktion eine 1 zuriick Ist der Suchstring gleich dem anderen String wird eine 0 zuruckgegeben Beispiel aus plugin_sdal_allowsounds Funktion plugin init new sValue MAX_TEXT_LENGTH getstrvar amv_enable_beta sValue MAX_TEXT_LENGTH if strstrx sValue menui 1 g_menuenabled 1 Der Inhalt der Servervariablen amv_ enable beta wird ausgelesen Wenn der menul in sValue gefunden wurde wird g menuenabled auf 1 gesetzt Geh rt zu string inc Siehe auch strstr strcasestr strcasestrx S6nttp www adminmod de plugins php plugin plugin_sdal_allowsounds 370 179 180 181 182 183 184 8 10 Funktionsreferenz 8 10 193 strsubst strsubst sString sSubst sWith iMaxLen sStringl Typ String 200 sSubst Typ String 200 sWith Typ String 200 iMaxLen Typ String 1 200 Die Funktion erkennt wo sich in einem String sString mit der Lange iMaxLen ein anderer String sSubst befindet Alle Vorkommen von sSubst werden durch den String sWith ersetzt Beispiel aus plugin retribution F
278. ini models ini ips ini wordlist txt und plugin ini durch Tabellen ersetzt werden Es kann aber auch eine Mischinstallation durchgef hrt werden In der Regel wird nur die users und tags Tabelle ben tigt Beson deres Augenmerk sollte man auf die users ini haben Diese wird aufgeteilt in eine users und eine tags Tabelle Admin Mod bietet die M glichkeit ber RegEx den eigenen Clan tag zu sch tzen Da Regex unter SQL ein sehr rechenaufwendiger Befehl ist wenn er auf gro e Datenbest nde losgelassen wird empfiehlt es sich die Benutzung auf eine kleine berschaubare Tabelle zu limitieren die nur die zu sch tzenden Clantags beinhaltet Auch wenn Tabellen genutzt werden ist es immer gut auch eine einfache funktionierende Konfiguration basierend auf Dateien zu besitzen da Admin Mod bei Verbindungsverlust Shttp www phpBB com 83 4 Konfiguration zum PostgreSQL Server auf diese dann zur ckgreifen kann Im Weiteren wird die Einrichtung der Tabellen in der PostgreSQL Datenbank n her beleuchtet 4 11 1 Datenbankeinrichtung Sofern noch keine Datenbank f r Admin Mod eingerichtet wurde sollte man dies tun createdb adminmod Als Datenbanknamen kann man statt adminmod auch jeden anderen Namen angeben Admin Mod kann aber auch in jede bestehende Datenbank eingebaut werden Dabei sind allerdings eventuelle berschneidungen bei Tabellennamen zu ber cksichtigen und anzu passen Der Datenbankname ist unter pgsql databas
279. ion schreibtDaten sData mit dem Schl ssel sKey in die vault ini Die Daten bleiben ber einen Mapchange bzw einen Serverneustart erhalten Das Schl ssel Daten Paar kann mit set_vaultdata oder get_ vaultnumdata ausgelesen werden Die Funktion ist ideal um pluginspezifische Einstellungen zu speichern Wei man bereits dass die zu schreibenden Daten als Ganzzahl vorliegen sollte man der Funktion set_vaultnumdata den Vorzug geben Mit set_ vaultdata kann auch ein Schl ssel gel scht werden Dazu muss ein leerer Da tenstring bergeben werden Beispiel aus plugin retribution Funktion AddUserFlag if get_vaultdata sAuthID VaultData MAX_DATA_LENGTH 0 if strcasestr VaultData llama 1 strcat VaultData llama MAX_DATA_LENGTH set_vaultdata sAuthID VaultData Es wird versucht den Schl ssel mit der Steam ID des Spielers zu finden Ist dies der Fall wird das Ergebnis in VaultData zwischengespeichert Falls das Ergebnis nicht bereits den Teilstring llama beinhaltet wird dies dem Ergebis angeh ngt strcat und zur ck in die vault ini geschrieben Geh rt zu admin inc Siehe auch get_vaultdata get_vaultnumdata set _vaultnumdata 331 8 Scripting 8 10 154 set_vaultnumdata set_vaultnumdata sKey iData sKey Typ String 100 iData Typ Integer 0 2147483647 Die Funktion schreibt Daten sData mit dem Schl ssel sKey als Ganzzahl iData in die vault ini Die Daten bl
280. ip admin banip lt ID Namensteil IP gt Minuten Mit diesem Befehl wird der Spieler entweder ber seine ID IP oder den Namen f r eine bestimmte Anzahl an Minuten gebannt Allerdings wird nur seine IP gebannt Die Minutenzahl ist optional Standardm ig wird 0 angenommen was ein permanenter Ban ist Der Befehl admin_ ban deckt die Funktionalit t von admin _banip ab Man ist dort aber dann gezwungen eine Minutenzahl anzugeben um eine IP zu bannen Beim Bannen einer IP muss der Spieler nicht auf dem Server sein Beispiele admin _banip Idiot admin _banip STEAM_0 1 234567 60 admin_ban 81 56 23 12 60 Im ersten Beispiel wird ein Spieler mit dem Namen Idiot permanent mit seiner IP gebannt Es kann sich auch um einen Teil des Namens handeln z B Ich bin ein Idiot Solange der Name mit Idiot eindeutig zuzuordnen ist wird der Spieler gebannt Sind beispielsweise zwei Spieler Ich bin ein Idiot und Ich war ein Idiot kommt es zu keinem Bann da Admin Mod den Bann nicht eindeutig zuordnen kann Im zweiten Beispiel wird der Spieler mit der Steam ID STEAM __0 1 234567 f r 60 Minuten ber seine IP gebannt Das letzte Beispiel basiert auf der IP des Spielers Access Level 256 Geh rt zu plugin_ base Siehe auch admin _ban admin _unban 97 5 Standardplugins und Befehle 5 3 4 admin_cfg admin _cfg lt Dateiname gt Der Befehl erm glicht das Ausf hren der angegebenen Konfigurationsdatei
281. ipter kann mit den geloggten Ausgaben meist schnell erkennen wo der Bug im Plugin liegt Standard 0 Siehe auch amv_log passwords admin_ devel 17 4 Konfiguration 4 1 6 admin _devel admin devel lt gt Diese Variable gibt einige zumeist grundlegende Informationen zum Spielerconnect in den Logs aus Au er f r Programmierer an der Admin Mod Bibliothek ist diese Variable uninteressant und sollte auf der Standardeinstellung 0 belassen werden M gliche Werte sind 0 bis 3 wie bei admin debug je gr er die Zahl desto mehr Information Beispiel admin_devel 3 Gibt alle Informationen zum Spielerconnect aus Siehe auch admin_ debug 4 1 7 admin_fun_mode admin fun mode lt gt Man kann mit dieser Variable erlauben den Glow bzw Disco Modus zu verwenden Wird f r das Fun Plugin ben tigt Die Variable kann man auch tempor r mit dem Befehl admin fun verstellen Die Glow Funktion m chten die meisten Serverbetreiber nicht missen daher sollte diese Einstellung auf 1 gestellt werden Standard 0 Beispiel admin fun mode 1 Der Gloweffekt wird mit dieser Einstellung freigeschaltet Siehe auch admin fun 18 4 1 Admin Mod einrichten adminmod cfg 4 1 8 admin_fx admin_fx lt gt Habt Ihr Euch schon immer gefragt warum auf anderen Servern geslayte Spieler mit einem Donnerschlag explodieren Setzt mal diese Variable auf 1 Dann tun sie das auch auf Eurem Server Standard 0 Beispiel admin
282. ird entweder der Kick abgebrochen weil ein Admin ihn aufgehalten hat oder nach 10 Sekunden der entsprechende Spieler vom Server geworfen Falls ein Admin den Vote aufgehalten hat wird dies allen Spielern im Chat mitgeteilt Zeile 651 Geh rt zu admin inc Siehe auch centersay typesay messageex 324 8 10 Funktionsreferenz 8 10 148 say _command say_command sUser sCommand sData iOverride 0 sUser Typ String 33 sCommand Typ String 19 sData Typ String 200 iOverride 0 Typ Integer 0 1 Die Funktion schreibt einen formatierten Text in den Chat Dazu muss der ausftihrende Admin sUser der ausgef hrte Befehl sCommand und die Parameter sData ange geben werden Die Ausgabe kann durch die Einstellung von admin_quiet beeinflusst werden Optional kann diese Einstellung auch ignoriert werden iOverride 1 Beispiel aus plugin base Funktion admin map 307 if valid_map Data 1 308 say_command User Command Data 309 changelevel Data 4 Wenn es sich bei Data um eine g ltige Map handelt wird basierend auf der Einstel lung von admin_quiet im Chat mit Adminnamen und Befehl ausgegeben und nach 4 Sekunden ein Mapwechsel durchgef hrt Geh rt zu adminlib inc Siehe auch format _command log_ command 325 435 437 438 8 Scripting 8 10 149 selfmessage selfmessage sMessage sMessage Typ String 100 Die Funktion schreibt dem Spieler
283. ispiele in den Kapiteln 4 4 4 1 reserve_type 0 4 4 4 2 reserve_type 1 4 4 4 3 reserve_ type 2 4 4 Administratoren einrichten users ini reserve_type 0 Au en MM Server LETT ETT IT IT Au en E Sever LT TTT TTT TTT W Au en Server Server II III U Il H reserve_ type 1 Au en Kick Server Server ETTETELEN TA reserve_type 2 Augen MI seve AAA Au en Server Au en Server Server ITITI T T T MS Abbildung 4 1 Beispiele fiir reserve_type 0 1 und 2 73 4 Konfiguration 4 4 5 Namen reservieren Es hindert niemanden auf dem Server den Namen eines Admins anzunehmen Auch wenn er dadurch keine Rechte auf dem Server bekommt k nnte der entsprechende Spieler mit der Identit t des Admins durch auff lliges Verhalten dessen Ruf verschlechtern Daf r bietet Admin Mod die M glichkeit den eigenen Namen zu reservieren Folgender Eintrag in der users ini verhindert dass jemand den eigenen Namen verwendet STEAM_0 1 9174 meinpasswort 94207 WING Black Knight zufalligespasswort 16384 Der erste Eintrag ist der bliche Eintrag mit einer Steam ID Der zweite Eintrag re serviert mit dem Recht 16384 den Namen WING Black Knight mit einem zuf llig ausgesuchten Passwort Das Passwort kann man w hlen wie man will Wichtig ist dass es keiner erraten kann Jeder der den Namen annehmen will wird vom Server gekic
284. it Admin Mod auch eine Aktion ausf hren kann wenn das Event admin _test ausgef hrt wird muss auch die Funktion test definiert werden public test HLCommand HLData HLUserName UserIndex new sData MAX_DATA_LENGTH convert_string HLData sData MAX_DATA_LENGTH userlist sData return PLUGIN_HANDLED eee oo oNDHOovco 1 Damit Admin Mod die Funktion auch aufrufen kann muss ein public vorangestellt werden Die bergebenen Variablen bei einem Befehlsevent sind vorgegeben HLCom mand bringt den die Funktion aufrufenden Befehl hier admin _test Es k nnen aber 178 10 13 OONDOKRWNEH 8 8 Tutorial auch verschiedene Befehle die gleiche Funktion aufrufen Dann kann man mit Verzwei gungen unterschiedlichen Code ausf hren lassen In HLData stehen die Befehlsoptio nen und in HLUserName der Spielername der den Befehl aufgerufen hat UserIndex wiederum gibt an in welchem Slot der aufrufenden Spieler auf dem Server ist Die HL Variablen m ssen sofern sie genutzt werden sollen erst in Small Strings kon vertiert werden Nur der UserIndex liegt bereits als Zahl vor convert_string HLData sData MAX_DATA_LENGTH Nach Ausf hrung der convert_ string Funktion liegt alles was nach admin test ein gegeben wurde in der Variable sData vor Nun wird die Funktion userlist ausgef hrt userlist sData Ist sData leer werden alle Spieler auf dem Server mit ein
285. it etc sind in der adminmod cfg einstellbar Beispiel say mapvote In diesem Beispiel wird ein Mapvote gestartet Access Level 1 Geh rt zu plugin_hldsld_ mapvote Siehe auch say rockthevote admin_startvote admin _vote_autostart admin _ vote _echo admin_vote_ freq admin vote _maxextend admin _vote_ratio amv_vote_duration 5 8 7 say rockthevote say rockthevote Dieser Befehl startet einen Mapvote Die gleiche Funktion l sst sich auch ber say map vote oder die Console admin startvote ausf hren Einige Einstellungen z B zur Dauer des Votes der H ufigkeit etc sind in der adminmod cfg einstellbar Beispiel say rockthevote In diesem Beispiel wird ein Mapvote gestartet Access Level 1 Geh rt zu plugin_hldsld_ mapvote Siehe auch say mapvote admin_startvote admin_vote_autostart admin_vote_echo admin_ vote_ freq admin _vote_maxextend admin __vote_ratio amv_vote_duration 146 5 9 plugin message 5 8 8 say vote say vote lt Map gt Mit diesem Befehl kann man sich w hrend eines laufenden Mapvotes f r eine Map ent scheiden Sofern sich gen gend Personen f r eine Map finden wird zu dieser gewechselt Beispiel say vote cs_office In diesem Beispiel wird ein Vote f r die Map cs_ office abgegeben Finden sich gen gend Mitstreiter daf r wird zu ihr gewechselt Bekommt keine Map die Mehrheit wird der Mapcycle aktiv Access Level 1 Geh rt zu plugin_hldsld_ mapvote 5 9 plugin
286. kennt In der Regel setzt man diese Variable aber nicht 7 1 2 2 logd_version logd_version lt gt 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 lt gt Mit diesem Befehl kann man verhindern dass bestimmte Freignisse in die Logdateien geschrieben werden Damit kann man die Gr e der Logdateien teilweise massiv reduzie ren Dies kann insbesondere bei der Auswertung von Treffern sinnvoll sein mp_logdetail gt 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 163 7 Erweiterungen 7 1 3 2 logd_reg logd_reg lt gt lt Befehl gt 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_r
287. kt Man beachte aber dass der zugeh rige Accesslevel im ersten Eintrag das Recht 16384 beinhalten muss Sollte dies nicht der Fall sein sucht Admin Mod nach der erfolgreichen Erkennung als Admin weiter und wirft den Admin anschlie end vom Server da er das zuf llige Passwort nicht gesetzt hat und auch nicht setzen kann Das Ganze kann man f r alle Clanmitglieder wiederholen was aber sehr arbeitsintensiv sein sein kann Eleganter erreicht man das indem man mittels RegEx gleich den Clantag reserviert Abschnitt 4 4 6 4 4 6 RegEx Clantags reservieren etc 4 4 6 1 Einf hrung Was sind Regular Expressions RegEx Der deutsche Begriff regul re Ausdr cke ist zun chst ebenfalls nicht weiterf hrend Mit regul ren Ausdr cken kann man nach Mustern in einer Zeichenkette String suchen Der RegEx ist dabei das Muster Das Muster muss dabei nicht aus einer Zeichenabfolge bestehen sondern kann auch sogenannte Steuerzeichen beinhalten Diese Steuerzeichen sind ganz normale Zeichen die RegEx aber als Befehl interpretiert Vom Betriebssystem kennt man das Globbing Dieses besitzt zwei Steuerzeichen Zum einen ist das der Asterisk f r eine Zeichenkette beliebiger L nge und das Fragezeichen 2 f r eine beliebige Zeichenkette der Lange 1 Sucht man beispielsweise nach einer Datei mit der Endung exe gibt man in der Suche exe ein Sucht man hingegen alle Dateien mit der Endung exe und nur einem Buchsta
288. l des Namens handeln z B Ich bin ein Idiot Solange der Name mit Idiot eindeutig zuzuordnen ist wird die Nachricht an den Spieler bermittelt Sind beispielsweise zwei Spieler Ich bin ein Idiot und Ich war ein Idiot wird die Nachricht nicht bermittelt da Admin Mod den Empf nger nicht eindeutig zuordnen kann Ein Besonderheit stellt der Empf nger admin dar Durch diesen kann man sich mit einem Admin unterhalten der sich gerade die Logs auf den Rechner zieht z B mit HLSW Dieser kann im brigen auch mit admin_psay ber RCon antworten hnlich funktioniert admin dmesg es ist aber deutlich schwieriger zu bedienen Beispiele admin _psay Kleinkind Benimm Dich admin _psay 81 56 23 12 Benimm Dich admin _psay STEAM_0 1 234567 Benimm Dich admin _psay admin Ich bin nicht w rdig ich bin Staub Thttp www hlsw de 106 5 3 plugin base Im ersten Beispiel wird der Spieler Kleinkind oder derjenige dessen Spielername Kleinkind beinhaltet angehalten sein Verhalten zu berdenken Das Gleiche wird f r die IP bzw Steam ID im Beispiel zwei und drei gemacht Das letzte Beispiel zeigt eine W rdigung der Arbeit des Admins der sich die Logs an ein Tool auf seinem Rechner bertragen l sst Access Level 64 Geh rt zu plugin_ base Siehe auch admin chat admin _csay admin dmesg admin _say admin _ssay admin_tsay admin _vsay 5 3 21 admin_rcon admin rcon lt Bef
289. l 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 3 6 Admin Mod mit Bots Einige Bots sind nicht als Metamodplugin erh ltlich so dass sich eine parallele Instal lation 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_gamed11 addons meinbot meinbot dl1 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 Konfigurations datei 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 ver zichtet werden Je nach Bot muss man ausprobieren ob man admin_bot_ protection in der Konfigurati onsdatei 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 13 3 Installation 14 cstrike addons adminmod config H admi
290. lbigen erfolgt mit admin ffmon TK off Um das Chicken in die Bestrafungsliste aufzunehmen gibt man ein admin _ffmon allowpunish chicken Das Herausnehmen selbiger erfolgt mit admin _ffmon allowpunish chicken Allgemein zug ngliche Befehle admin ffmon status Anzeige der Einstellungen f r alle Variablen des FFMons Ihttp djeyl net chickenmod php lang en 397 A Besondere Customplugins admin ffmon showtk Anzeige aller TKs f r alle Spieler admin ffmon showtd Anzeige aller TDs f r alle Spieler TK Einstellungen admin ffmon TK lt on off gt TK Bestrafung ein aus admin _ffmon tklimit lt Wert gt Default 3 Limit unvergebener TKs ab dem gebannt wird admin ffmon tkbantime lt Wert gt Default 30 Bannzeit in Minuten admin_ffmon tkmenu lt on off gt Default off Das TKMenu wird ein ausgeschaltet admin _ffmon tkreset lt on off gt Default off Setzt das TK Konto der Spieler bei Mapende auf 0 admin_ffmon tksave lt on off gt Default on Bestimmt ob TKs tiber einen langeren Zeitraum gespeichert werden admin_ffmon tksavetime lt Wert gt Default 24 Zeitraum des Speicherns von TKs in Stunden admin_ffmon tksavelimit lt Wert gt Default 6 Limit unvergebener TKs innerhalb der Savetime admin_ffmon tksavebantime lt Wert gt Default 1440 Bannzeit in Minuten bei Uber schreitung des TKSavelimits admin ffmon tksavepurgetime lt Wert gt Default 24 Zeitraum in Stunden in
291. lchen Befehlszeile ist die Funktion in Admin Mod nutzlos Geh rt zu console inc Siehe auch getstring getvalue 267 8 Scripting 8 10 89 getproperty getproperty id 0 const name value cellmin string id 0 Typ Integer 2147483648 2147483647 const name Typ String variabel value cellmin Typ Integer 2147483648 2147483647 const string Typ String variabel Mit dieser Funktion kann eine sogenannte Property bei gegebenem Schl ssel name oder value ausgelesen werden Die Property wird als String im Speicher abgelegt Es handelt sich um eine Funktion deren Benutzung unter Admin Mod vermieden werden sollte Stattdessen wird empfohlen z B auf die Funktionen get_ vaultdata oder set_ vaultdata zur ckzugreifen Mehr Informationen zum Thema sind im Abschnitt 8 14 nachzulesen Beispiel getproperty 2 test_prop sString getproperty 3 15 sString Das erste Beispiel liest die in ID 2 befindliche Property test _prop in die Variable sString aus w hrend das zweite Beispiel die in ID 3 befindliche Property 15 ausliest Geh rt zu core inc Siehe auch existproperty deleteproperty setproperty 268 8 10 Funktionsreferenz 8 10 90 getstring getstring stringl size sizeof string bool pack false string Typ String 200 size sizeof string Typ Integer 0 200 bool pack false Typ Integer 0 1 Diese Funktion liest die Tastatureingabe komplett al
292. le kopiert werden Diese Anleitung erkl rt welche Dateien aus welchen Verzeichnissen der Distribution in Inttp store steampowered com about 2http forum adminmod de 3http sourceforge net project showfiles php group_id 3570 package_id 3527 http sourceforge net project showfiles php group_id 24195 amp package_id 119653 3 Installation 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 Verzeich nis 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 Verz
293. lle 60 Sekunden die Funktion say_ stuff auszuf hren Diese Funktion muss wiederum ffentlich public gemacht werden 6 public say_stuff Timer Repeat HLName HLParam 7 centersay Admin Mod 10 255 0 0 8 OONDOKRWNEHE Da es sich um eine Funktion handelt die von einem Timer aufgerufen wurde gibt es wieder festgelegte Variable Zun chst wird die Nummer des Timers zur ckgegeben Diese erh lt man auch als R ckgabe von set_ timer Weiterhin wird bergeben um die wie vielte Wiederholung es sich handelt HLName gibt den Spieler zur ck der den Timer ausgel st hat Hier ist der Timer automatisch ausgel st worden es wird kein Name zu r ckgegeben Wird der Timer aus einem Serverbefehlevent ausgef hrt wird der Spieler zur ckgegeben der den Befehl aufgerufen hat Zuletzt wird ein beliebiger String HLPa ram bergeben der in set_ timer festgelegt wurde Im Beispiel wurde nichts angegeben HLName und HLParam m ssen mit convert_ string konvertiert werden Die centersay Funktion sorgt f r die eigentlich Darstellung des Texts Admin Mod Dieser muss nat rlich angegeben werden Weiterhin ben tigt die Funktion die Dauer der Darstellung 10 Sekunden und die Farbe in RGB Farben jede Farbe 0 bis 255 8 8 6 Vote ausf hren Das n chste Beispiel soll zeigen wie man einen Vote mit Admin Mod durchf hrt In diesem Plugin soll die Mehrheit der Spieler entscheiden ob in einem Counter Strike Spiel
294. llte mein Wissen jedoch ausreichen Laien das Admin Mod Scripting n her zu bringen F r das Schreiben von Plugins oder Skripts unter Admin Mod empfiehlt es sich be reits Grundkenntnisse in einer Programmiersprache zu besitzen Dabei gen gen bereits Kenntnisse in Basic oder PHP C Kenntnisse w ren ideal Das Wissen wie ein HL Server funktioniert ist jedoch die wichtigste Voraussetzung Die verwendete Skriptsprache hei t Small inzwischen Pawn genannt und bietet ge gen ber C nur eingeschr nkte M glichkeiten der Programmierung Gerade deshalb wurde sie gew hlt da der Anwender maximal in der Lage ist den HL Server abst rzen zu lassen nicht aber das gesamte Betriebssystem Zun chst sollen die Konventionen und der Syntax von Small vorgestellt werden C Anh nger werden sich vermutlich wie zu Hause f hlen 8 1 Syntax Die Syntax Smalls l sst sich am Besten anhand eines Hallo Welt Codes erkl ren include lt core gt include lt string gt include lt admin gt include lt adminlib gt new VERSION 1 0 public plugin_init plugin_registerinfo Hallo Welt Plugin Hallo Welt VERSION say Hallo Welt return PLUGIN_CONTINUE lhttp www compuphase com pawn pawn htm 169 8 Scripting Die Funktion plugin init wird beim Starten des Plugins ausgef hrt entspricht der main Funktion von C Die Funktion muss ffentlich bekannt sein public und sollte PLUGIN_ CONTINUE zur
295. llung gezeigt Access Level 0 512 Geh rt zu plugin CS 5 6 17 admin_limitteams admin limitteams Anzahl Dieser Befehl ver ndert die Servervariable mp_limitteams Hiermit wird definiert wie gro der Uberhang in der Spielerzahl zwischen den Teams maximal sein darf 0 schaltet die Funktion ab Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin limitteams 2 admin limitteams 0 admin limitteams Im ersten Beispiel darf ein Team maximal zwei Spieler mehr als das andere haben w hrend im zweiten keine Einschr nkung vorhanden ist Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS Siehe auch admin autoteambalance 130 5 6 plugin CS 5 6 18 admin_maxrounds admin maxrounds Rundenzahl Dieser Befehl erm glicht es die Servervariable mp _maxrounds zu ver ndern Man stellt ein nach wievielen Runden sp testens ein Rundenwechsel stattfindet Abschalten l sst sich die Funktion in dem man 0 eingibt Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _maxrounds 30 admin maxrounds 0 admin maxrounds Im ersten Beispiel wird sp testens nach 30 Runden die Map gewechselt w hrend im zweiten die Map nicht auf Basis der Rundenzahl gewechselt wird Im letzten Beispiel wird die aktuelle Einst
296. log_command sUser sCommand sData new sText MAX_TEXT_LENGTH format_command sUser sCommand sData sText log sText Username sUser der aufgerufende Befehl sCommand und die zugeh rigen Parameter sData werden an format_ command bergeben der formatierte Text sText geloggt Geh rt zu adminlib inc Siehe auch log_ command say _command 248 8 10 Funktionsreferenz 8 10 69 fround fround fixed value fround_method method fround_round fixed value Typ Fixed 2147482 2147482 fround_method method fround_round Typ Enum 0 fround_ round fround_ floor fround_ceil Diese Funktion rundet eine Festkommazahl Sie wird als Integer ausgegeben Es gibt drei verschiedene Methoden zum Runden Die Methode fround_ round rundet ab 0 5 auf und darunter ab bei fround_ floor wird grunds tzlich abgerundet bei fround_ceil wird aufgerundet Beispiel aus math inc Funktion fixtostr if fNumber lt 0 000 1 iNumber fround fNumber fround_ceil else iNumber fround fNumber fround_floor Wenn die Zahl fNumber negativ ist wird aufgerundet wenn sie positiv ist wird abge rundet Geh rt zu fixed inc 249 8 Scripting 8 10 70 funcidx funcidx const name const name Typ String 20 Die Funktion liefert den interen Index einer ffentlichen Funktion Wird die angegebene Funktion nicht gefunden gibt funcidx 1 zur ck Ein sinnvoller Einsatz unter Admin Mod ist nicht
297. lor red 1 137 centersay Message 10 250 10 10 Wenn der Text Color gleich red ist wird die Nachricht in Message f r 10 Sekunden in einen hellem Rot dargestellt Es ist zu beachten dass eine Zeile maximal 80 Zeichen lang sein darf Mit Zeilenumbr chen sind bis zu 500 Zeichen m glich Geh rt zu admin inc Siehe auch centersayex messageex rainbow typesay 202 256 257 258 259 260 261 8 10 Funktionsreferenz 8 10 6 centersayex centersayex sUser sText iTime iRed iGreen iBlue sUser Typ String 33 sText Typ String 500 max Zeilenl nge 80 iTime Typ Integer 0 2147483647 iRed Typ Integer 0 255 iGreen Typ Integer 0 255 iBlue Typ Integer 0 255 Mit dieser Funktion kann man eine bunte Nachricht sText f r einzelne Spieler in der Mitte des Bildschirms produzieren iTime ist die Einblendzeit in Sekunden iRed ist der Rotanteil iGreen der Gr nanteil und iBlue der Blauanteil in der Nachricht Die Funktion centersay erm glicht die gleiche Funktionalit t f r alle Spieler Beispiel aus plugin_cw_creator3 Funktion kickplayers if Team TEAM_PROXY get_vaultdata CWC_PASS Text MAX_TEXT_LENGTH snprintf Text MAX_TEXT_LENGTH password s Text execclient Target Text centersayex Target sMessage 10 68 255 125 Der Auszug stammt aus einer For Schleife ber alle Spieler Der Server soll f r einen Clanwar geschlossen werden Um
298. lt Befehl gt Normalerweise werden die Admin Mod Befehle nur in der Client Console eingeben Es ist aber auch m glich alle Admin Mod Befehle direkt in der Serverconsole z B via RCon einzugeben Dazu muss ein admin _cmd oder ein admin _ command dem eigentli chen Befehl vorangestellt werden Ein solch eingegebener Befehl hat immer ausreichende Rechte Beispiel admin_cmd admin_csay Dies ist ein Test Dies schreibt Dies ist ein Test in die Mitte des Bildschirms aller Spieler auf dem Server admin csay Access Level Serverconsole Geh rt zu kein Plugin Siehe auch admin command 5 1 3 admin_command admin command lt Befehl gt Dieser Befehl ist identisch mit admin_cmd welcher aus Gr nden der K rze empfohlen wird Access Level Serverconsole Geh rt zu kein Plugin Siehe auch admin cmd 91 5 Standardplugins und Befehle 5 1 4 admin_help admin help lt Text gt Zeigt alle Befehle der Adminmod Plugins alphabetisch in Zehnergruppen an die man entsprechend seinem Rechtelevel ausf hren darf Man kann entweder eine Zahl x ange ben die den x ten Eintrag und die folgenden 9 Eintr ge zur ckgibt oder einen Text bei dem alle Befehle aufgelistet werden die den Text im Befehl oder im Hilfetext enthalten Es ist zu beachten dass nur Befehle angezeigt werden auf die man auch Zugriff hat Beispiele admin _help 11 admin _help maps Der erste Befehl zeigt die Eintr ge 11 20 in der Console an
299. lue base 10 end r base Typ Integer 2 32 end Typ String 1 Diese Funktion liest die Tastatureingabe als Ganzzahl aus Dabei kann die Basis base definiert werden sowie Abschlusszeichen f r die Eingabe Mangels einer Befehlszeile f r diese Tastatureingabe ist die Funktion in Admin Mod nutzlos Geh rt zu console inc 22http www adminmod de plugins php plugin plugin_bk_botmanager 272 648 649 650 651 652 653 654 8 10 Funktionsreferenz 8 10 95 getvar getvar sVarname sVarname Typ String 100 Mit der Funktion kann man eine Servervariable sVarname als Ganzzahl auslesen Beispiel aus plugin CS Funktion HandleKickVote new Ratio getvar kick_ratio if VoteCount gt Ratio UserCount 100 if g_AbortVote say Kick vote was aborted by an admin else set_timer KickUser 10 1 VoteUser Die Servervariable kick ratio wird als Ganzzahl in Ratio ausgelesen Falls gen gend Stimmen f r den Kick zusammengekommen sind wird entweder der Kick abgebrochen weil ein Admin ihn aufgehalten hat oder nach 10 Sekunden der entsprechende Spieler vom Server geworfen Geh rt zu admin inc Siehe auch getstrvar 273 8 Scripting 8 10 96 glow glow sTarget iRed 0 iGreen 0 iBlue 0 sTarget Typ String 33 iRed 0 Typ Integer 0 255 iGreen 0 Typ Integer 0 255 iBlue 0 Typ Integer 0 255 Die Funktion
300. lugins Bei der Installation von Adminmod werden in der Regel die Standard Plugins mitin stalliert In den folgenden Abschnitten soll ein berblick ber die in diesen Plugins zur Verf gung gestellten Befehle gegeben werden Dabei wird gezeigt welche Befehle im welchen Plugin stehen und welchen Rechtelevel man f r diese braucht Parameter von Befehlen die in eckigen Klammern stehen sind optional und m ssen nicht angegeben werden Parameter von Befehlen die in lt gt stehen sind Pflicht 5 1 Befehle unabh ngig von Plugins Wenngleich die meisten Admin Mod Befehle in Plugins definiert werden gibt es auch einige wenige die direkt in Admin Mod implementiert sind 5 1 1 admin_adm admin_adm lt Option gt Mit diesem Befehl k nnen einige administrative Befehle die direkt in Admin Mod veran kert sind aufgerufen werden Derzeit steht nur die Option mefix zur Verf gung mit der Adminmod versucht verloren gegangene Entities auf einer Map wieder zu reparieren z B nicht sichtbare Leitern verschwundene Fenster Dieser Befehl agiert unabh n gig von der Adminmod Cvar amv_enable_ beta lt mefix1 gt Genau wie bei der Cvar ist bislang kein positiver Effekt bemerkbar gewesen Beispiel admin cmd admin adm mefix Versucht verloren gegangene Entities zu reparieren Access Level 0 Geh rt zu kein Plugin Siehe auch amv enable beta 90 5 1 Befehle unabh ngig von Plugins 5 1 2 admin_cmd admin _cmd
301. m Feld Maps Geh rt zu adminlib inc 306 272 273 274 275 276 8 10 Funktionsreferenz 8 10 179 strlen strlen const stringl const string Typ String 200 Die Funktion gibt die Lange der in einem String string abgelegten Zeichenkette aus Sie kann auch mit gepackten Strings umgehen siehe dazu strpack Beispiel aus plugin base Funktion admin kick if strlen Reason 0 snprintf Text MAX_TEXT_LENGTH You have been kicked because 4s Reason message real_user Text kick real_user ber die L nge des Strings Reason wird berpr ft ob ein Grund f r den Kick angegeben wurde Wenn es der Fall ist wird dies dem Spieler mitgeteilt message Anschlie end wird der Spieler vom Server geworfen Geh rt zu core inc 357 242 243 244 245 246 247 248 8 Scripting 8 10 180 strmatch strmatch sOne sTwo iLength strOne Typ String 200 strTwo Typ String 200 iLength Typ Integer 1 200 Die Funktion berpr ft unter Ber cksichtigung der Gro und Kleinschreibung ob zwei Strings strOne und strTwo f r die ersten x Zeichen iLength identisch sind Sind sie identisch wird eine 1 wenn nicht wird eine 0 zur ckgegeben Beispiel aus plugin fun Funktion HandleSay convert_string HLCommand Command MAX_COMMAND_LENGTH convert_string HLData Data MAX_DATA_LENGTH convert_string HLUserName User MAX_NAME_LENGTH strstripquotes Data
302. maps ini handelt wird abh ngig von der Einstellung admin quiet eine Nachricht in den Chat geschrieben und nach vier Sekunden ein Wechsel auf die Map initiiert Geh rt zu admin inc Siehe auch valid_ mapex 384 8 10 Funktionsreferenz 8 10 209 valid_mapex valid _mapex sMap sMap Typ String 100 Die Funktion berpr ft ob sich eine angegebene Map sMap auf dem Server befindet Ein zus tzlicher Check ob die Map auch in der maps ini steht kann mit valid_map durchgef hrt werden Beispiel if valid_mapex Data 1 say_command User Command Data changelevel Data 4 Falls es sich bei Data um eine g ltige Map unter Ausschluss der maps ini handelt wird abh ngig von der Einstellung admin quiet eine Nachricht in den Chat geschrieben und nach vier Sekunden ein Wechsel auf die Map initiiert Geh rt zu admin inc Siehe auch valid_map 8 10 210 version version Diese Funktion gibt die aktuelle Admin Mod Version in der Spielerconsole aus Beispiel public admin_ver HLCommand HLData HLUserName UserIndex version return PLUGIN_HANDLED Es wird die Versionsnummer Admin Mods beim aufrufenden Admin in der Console ausgegeben Geh rt zu admin inc 385 8 Scripting 8 10 211 vote vote sVoteStringl sVoteStringl Typ String 500 variable Anzahl max 12 an Argumenten kommagetrennt 765 766 767 768 769 770 771 772 Diese Funktion f hrt ein
303. message Das kleinste der Standardplugins beinhaltet keine Befehle Hier wird lediglich die Will kommensmeldung admin_connect_ msg und die sich wiederholende mittig positionier te Meldung admin repeat_freq und admin _repeat_ msg angezeigt 5 10 plugin_retribution Ich habe bereits an anderer Stelle in diesem Kompendium angemerkt dass der Admin durchaus M glichkeiten besitzt einen St rer auf dem Server angemessen zu bestrafen Dazu muss man niemandem die Konfiguration zerst ren Das Retribution Plugin beinhaltet diverse Befehle um einen Spieler zu schlagen zu t ten einzugraben oder einfach mundtot zu machen Auch kann man den Spieler Cli entbefehle ausf hren lassen 147 5 Standardplugins und Befehle 5 10 1 admin_bury admin _bury lt Spielername gt Mit diesem Befehl kann man einen Spieler in den Boden versenken so dass er sich nicht mehr r hren kann Der Spielername muss exakt eingegeben werden Das funktioniert nur sicher wenn der Spieler beim Absetzen des Befehls sich nicht im Sprung befindet Es handelt sich um eine Teleport Funktion die den Spieler in den Boden versetzt Dar ber hinaus beh lt der Spieler seine Waffe so dass er nicht wehrlos ist Zudem ist zu beachten dass unter bestimmten Umst nden der Spieler dabei schlecht gesehen werden kann Auch kann sich der Spieler durch einen Selbst Kill aus der Lage befreien Vorausgesetzt admin_fx ist in der adminmod cfg aktiviert wird der Befehl mit einem
304. n Das Ergebnis sieht dann z B folgenderma en aus Slot 9 ist besetzt Als letztes wird der Text mittels der Funktion log in die Logdatei eingetragen Dies passiert bei jedem Spieler der auf den Server kommt 8 8 5 Timer verwenden Oftmals m chte man bestimmte Aktionen in regelm igen Abst nden wiederholen las sen Admin Mod bietet daf r Timer an die eine Aktion ein oder mehrmals durchf hren k nnen Es wird damit bei jedem Ausl sen des Timers ein Event erzeugt das mit einer vordefinierten Funktion wie bei einem Serverbefehl verarbeitet werden kann Das folgende Plugin zeigt in roter zentrierter Schrift alle 60 Sekunden den Begriff Ad min Mod an include lt core gt include lt string gt include lt admin gt include lt adminlib gt public say_stuff Timer Repeat HLName HLParam centersay Admin Mod 10 255 0 0 public plugin_init plugin_registerinfo Testplugin Ein Testplugin 1 0 set_timer say_stuff 60 99999 return PLUGIN_CONTINUE In plugin init wird zun chst mittels set_ timer ein Timer gestartet set_timer say_stuff 60 99999 Es muss angegeben werden welche Funktion say_stuff beim Ablauf des Timers aufgerufen werden soll wie lang der Timer jeweils laufen soll 60 Sekunden wie lang er wiederholt werden soll Die 99999 hat eine Sonderstellung und steht fiir unendlich 182 8 8 Tutorial viele Wiederholungen Admin Mod wird nun versuchen a
305. n ildentity ildentity Typ Integer 0 2147483647 Die Funktion l scht ein Item ildentity Die Funktionalit t steht mittlerweile nicht mehr zur Verf gung Beispiel aus plugin _ spawn Funktion admin _removespawn if removespawn ildentity 1 say_command User Command Data selfmessage Success else selfmessage Failed Es wird versucht ein Item zu l schen Falls dies erfolgreich war wird eine Erfolgsmeldung an den Admin und alle anderen Spieler ausgegeben Anderenfalls wird nur der Admin uber den fehlgeschlagenen Versuch informiert Geh rt zu admin inc Siehe auch listspawn movespawn spawn 321 8 Scripting 8 10 145 resetfile resetfile sFilename sFilename Typ String 100 Unter Angabe des Dateinamens l scht die Funktion den Inhalt komplett Die Datei bleibt jedoch im Gegensatz zu deletefile erhalten Beispiel aus plugin_cw_ creator3 Funktion create_mapcycle 338 resetfile sPath 339 get_vaultdata CWC_MAP1 Text MAX_DATA_LENGTH 340 writefile sPath Text 1 Die Datei sPath wird geleert Aus der vault ini wird ein Mapname in Text eingelesen und anschlie end in die leere Datei geschrieben Geh rt zu admin inc Siehe auch deletefile filesize readfile writefile 40nttp www adminmod de plugins php plugin plugin_cw_creator3 322 8 10 Funktionsreferenz 8 10 146 rindex rindex sSource iChar sSourcel Typ String 200
306. n in sSearch vorhandenen Zeichens Beispiel aus plugin_rindy_advretribution Funktion AdminSlapTeam if strlen Data 0 strlen Data strspn Data 1234 selfmessage Wrong syntax selfmessage You must enter the team number 1 4 Es wird berpr ft ob die Stringlange von Data 0 ist Weiterhin wird berpr ft wie lang der Teilstring von Data ist der nur die Zahlen von 1 bis 4 beinhalten Ist die L nge des Teilstrings ungleich der Gesamtl nge besteht der String nicht nur aus den Zahlen 1 bis 4 Es wird dann eine zweizeilige Fehlermeldung ausgegeben Geh rt zu string inc Siehe auch strespn http www adminmod de plugins php plugin plugin_rindy_advretribution 367 443 444 445 446 8 Scripting 8 10 190 strstr strstr sSource sSearch sSource Typ String 200 sSearch Typ String 200 Die Funktion sucht einen String sSearch in einem anderen String sSource Gro und Kleinschreibung wird beachtet Wird der Suchstring gefunden gibt die Funktion eine Zahl gr er als 0 zur ck Wenn der String nicht gefunden wurde gibt die Funktion eine 1 zur ck Ist der Suchstring gleich dem anderen String wird eine 0 zur ckgegeben Beispiel aus plugin base Funktion admin_rcon if strstr Data rcon_password gt 0 reject_message return PLUGIN_HANDLED Hierbei handelt es sich um eine Absicherung dass kein Admin der Zugriff zu admin_rcon hat sich unberec
307. n d rfen der Rechtelevel 32768 hinzugef gt wer den sofern nicht schon geschehen Des Weiteren m ssen sich entsprechende Admins mit der setinfo Zeile anmelden Und letztlich muss auch der Server f r die Nutzung der Slots konfiguriert werden Dabei sind die Anzahl der reservierten Slots reserve_ slots die von den ffentlich verf gbaren Slots abgezogen werden k nnen nicht von norma len Spielern genutzt werden und die Art der Reservierung reserve_type festzulegen Optional kann auch eingestellt werden welche Nachricht ein normaler Spieler erh lt wenn er versucht auf den Server zu kommen und nur reservierte Pl tze erh ltlich sind reserve_slots_ msg W hrend sich die Einstellungen reserve_ slots und reserve_slots_msg noch von selbst erschlie en ist die richtige Einstellung von reserve_type nicht so einfach ersichtlich Im weiteren sollen die drei vorhandenen Konzepte 0 1 und 2 n her erl utert werden 4 4 4 1 reserve_type 0 Dazu nehmen wir einen Server mit 14 Slots an und in Admin Mod wurden 2 Slots reserviert Es sind somit 12 Slots ffentlich f r alle Spieler verf gbar und 2 ausschlie lich f r Admins Au erdem befinden sich zun chst 11 normale Spieler auf dem Server die damit 11 der 12 ffentlichen Slots beanspruchen Bei der Einstellung 0 w rde sowohl ein zus tzlicher normaler Spieler als auch ein Admin 71 4 Konfiguration den letzten ffentlichen Platz einnehmen Sofern niemand vom Server geht k nne
308. n fun mode Erlaubte Farben red blue green white yellow purple Beispiele admin _glow green admin _glow red admin _glow off Das erste Beispiel l sst einen in gr n und das zweite in rot gl hen Das letzte Beispiel schaltet das Gl hen bei einem selbst ab Access Level 8192 Geh rt zu plugin_fun Siehe auch admin fun mode say glow 5 7 4 say glow say glow lt Farbe off gt Mit diesem Befehl kann man sich selbst in einer festgelegten Farben gl hen lassen oder den Effekt abschalten Daf r muss der Fun Mode aktiviert sein admin fun mode Erlaubte Farben red blue green white yellow purple Beispiele say glow green say glow red say glow off Das erste Beispiel l sst einen in gr n und das zweite in rot gl hen Das letzte Beispiel schaltet das Gl hen bei einem selbst ab Access Level 0 Geh rt zu plugin_fun Siehe auch admin fun mode admin glow 142 5 8 plugin _hldsld_mapvote 5 8 plugin _hldsId_mapvote Selbst in Zeiten vor Admin Mod gab es noch ein paar andere Administrationsprogram me f r den HLDS Dazu z hlte auch hlds_1d oder sp ter halfd Es basierte auf der Skriptsprache TCL und reagierte auf Logeintr ge Dieses bot ein f r damalige Verh lt nisse ausgefeiltes Mapvoting System das mit dem plugin hldsld_mapvote in Admin Mod nachempfunden wurde Inzwischen gibt es wesentlich ausgefeiltere Mapvoting Plugins f r Admin Mod die auch men basierte Auswahlm glichkei
309. n in einer Art Buch aufbe reiten Die Texte auf adminmod de waren inhaltlich sicherlich gut aber die Ansprache des Lesers und der Aufbau lie en sich nicht auf ein Kompendium bertragen Auch wa ren mir die Informationen nicht detailliert genug Letztlich habe ich den Gro teil neu geschrieben Einiges wiederum wird man von der Webseite kennen Ich habe auch dar ber nachgedacht das Kompendium in Englisch zu schreiben Aber hinsichtlich meiner begrenzten Zeit musste ich die Idee fallen lassen Inttp www adminmod de 2http www latex project org 1 Einleitung Ich hoffe dass der eine oder andere mit diesem Kompendium etwas anfangen kann oder sich eventuell auch inspirieren l sst Abschlie end muss ich mich auch bei sechs Personen bedanken da einige Ihrer Texte bernommen oder als Grundlage f r dieses Kompendium genommen wurden Dies sind e Sir Drink a lot e Rinde e Stillsetzhut e Da Rope e Biohazard e Kleen13 1 2 Was ist Admin Mod Admin Mod ist eines der bekanntesten Addons fiir den Half Life Server bzw dessen Modifikationen Es gibt Admin Mod nur fiir die HL1 Engine nicht jedoch ftir die neuere Source Engine Eine Portierung ist mangels Programmierer leider gescheitert Admin Mod ist ein Metamod Plugin das fast universell mit jeder HL Modifikation an wendbar ist welche auch von Metamod unterst tzt wird Admin Mod ist eine Open Source Software deren Quellen bei Sourceforge gehostet Warum eige
310. n nur noch Admins connecten Kommt ein weiterer Admin nimmt dieser einen der reservierten Slots in Anspruch Geht nun ein Spieler oder Admin aus den ffentlichen Slots rutscht der Admin im reservierten Slot in den freien ffentlichen Es sind somit wieder alle ffentlichen Slots besetzt und die 2 reservierten frei s a Abbildung 4 1 Die Einstellung 0 hat den Vorteil dass sofern nicht der Server voll ist immer Admins auf den Server kommen k nnen Falls nicht alle ffentlichen Pl tze belegt sind nehmen die Admins jedoch den normalen Spielern die Pl tze weg Im schlimmsten Fall belegen die Admins alle ffentlichen Pl tze so dass die volle Slotzahl nicht ausgenutzt werden kann Sind neben den ffentlichen auch alle reservierten Pl tze besetzt kann kein weiterer Admin auf den Server Vorzugsweise sollte man nur einen Slot reservieren da man an sonsten nur in seltenen F llen wirklich mit mehr Spielern als der Anzahl der ffentlichen Pl tze spielen kann 4 4 4 2 reserve_type 1 Einen Slot ausschlie lich zum Connecten der Admins zu verwenden ist von den meisten gew nscht Bei dieser Einstellung wird reserve_ slots ignoriert und nur ein Slot reser viert Der Platz bleibt immer frei steht also nicht zum Spielen zur Verf gung Er ist nur tempor r f r die Zeitdauer des Connectens f r die Admins nutzbar F r den Admin wird der Spieler mit dem h chsten Ping gekickt und er gelangt in den frei gewordenen ffentlichen Slot s a
311. n oder eine Verschl sse lung in Kombination mit Klartextpassw rter gleichzeitig in der users ini zu verwenden Man muss ich f r eine Variante entscheiden 4 4 1 3 Player Password Rights Der letzte Eintrag definiert die Rechte des Admins Diese k nnen ganz unterschiedlicher Art sein Nicht jeder Admin ben tigt schlie lich volle Zugangsrechte zum Server Adminmod hat daher mehrere Rechtelevel Jeder einzelne Level beinhaltet Befehle die der Admin dann ausf hren darf Die Level werden durch Zahlen symbolisiert Ein Rech televel der Stufe 2 beinhaltet z B die Befehle admin_map und admin_timelimit Ein Admin der diesen Rechtelevel besitzt darf also z B die Map wechseln oder das Zeitlimit ndern Die Rechtelevel werden ADDIERT und die Summe in die users ini eingetragen Mehr dazu im Kapitel 4 4 3 Rechtelevel WICHTIG nderungen an der users ini werden erst nach einem Serverre start Mapwechsel oder dem Befehl admin _reload bernommen Weitere Dateien lassen sich mit der Include Anweisung einbinden z B include admins ini Steht dieser Eintrag in der users ini sucht Admin Mod auch noch in der admins ini im gleichen Verzeichnis nach weiteren Usern vergl plugin ini 4 4 1 4 Serverseitige Einstellungen adminmod cfg Nun sollte noch einen Blick in die adminmod cfg addons adminmod config geworfen werden Hier sollte die Variable password_ field nach den eigenen Vorstellungen ver n dert werden Diesen
312. n seine Einstellungen ber die vault ini lesen und schreiben Beispiel aus plugin_bk_res Funktion add_res_data 155 iLines filesize sMap lines 156 for i 1 i lt iLines i 157 readfile sMap sLine i MAX_DATA_LENGTH 158 writefile sMap2 sLine 1 159 Es wird die Anzahl der Zeilen der Datei sMap ausgelesen Anschlie end werden die Daten ber eine For Schleife zeilenweise von einer Datei sMap in eine andere sMap2 kopiert Die Zeilen bernehmen nicht unbedingt die Zeilennummer der Ursprungsdatei Die Zeilen werden beim Schreiben nur angeh ngt 1 Geh rt zu admin inc Siehe auch deletefile filesize readfile resetfile SOnttp www adminmod de plugins php plugin plugin_bk_res 388 8 11 Compiler Fehler und Warnungen 8 11 Compiler Fehler und Warnungen Niemand arbeitet fehlerfrei Einige Tipp oder auch Denkfehler sorgen f r Compilerfehler oder warnungen U U kann man auch den Compiler zum Absturz bringen Oftmals sind die R ckmeldungen auf den ersten Blick nicht besonders verst ndlich Die Syntax der Fehlermeldungen l sst sich am besten an Hand eines Beispiels erkl ren plugin_test sma 13 Warning 217 loose indentation Zunachst wird angegeben in welchem Quellcode der Fehler auftritt In den runden Klam mern wird die Zeile angegeben in der der Fehler aufgefallen ist Meistens muss man sich die vorhergehende Zeile ansehen Insbesondere bei Klammersetzungsfehlern im Quellco de kann der
313. n tr gt ins gelbe Team verschoben Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 8192 Geh rt zu plugin TFC Siehe auch admin blue admin green admin_ red allow_ client_ exec 158 6 FAQ 6 1 admin_restartround admin_ct oder admin_t funktionieren nicht admin restartround admin ct und admin_t sind Befehle aus dem Standardplugin plu gin CS Dieses ist bei der Installation von Admin Mod nicht automatisch aktiv da Admin Mod auch fiir andere Mods neben Counter Strike eingesetzt werden kann Es muss die Raute vor dem Eintrag in der plugin ini entfernt werden Mehr dazu im Kapitel 4 2 6 2 Admin Mod funktioniert nicht Das liegt meistens an einer fehlerhaften Installation Im Weiteren ist ein Checkliste aufgef hrt mit der man Schritt f r Schritt die wesentlichen Fehlerquellen ausmerzen kann 1 Wurde die Installationsanleitung nochmal Schritt f r Schritt durchgegangen 2 Funktioniert Metamod Der Befehl meta version zeigt welche Metamod Version l uft Wird nichts angezeigt ist vermutlich die liblist gam nicht editiert oder der Server wurde nicht neu gestartet 3 Funktioniert Admin Mod Befehl meta list und admin cmd admin version geben in der Serverconsole dar ber Aufschluss 4 Wird ein Dedicated Server unter Steam nur die Version ber das Men Ga mes verwendet wird die liblist gam von Steam berschrieben daher liblist g
314. n wird dann wiederholt und am Ende der Rest ausgegeben Demnach ist sTokenl Test 12 sToken2 3 und sToken3 Test Geh rt zu string inc Siehe auch strgsep strgsplit strgtokrest strsep strsplit strtok strtokrest 399 8 Scripting 8 10 177 strgtokrest strgtokrest sRest iMaxLen sRest Typ String 200 iMaxLen Typ Integer 0 200 Die Funktion gibt den Reststring sRest mit der Lange iMaxLen nach Ausf hrung von strgtok aus Ist strgtok oder der Reststring leer wird 1 zur ckgegeben Beispiel new sTest MAX_TEXT_LENGTH Test 127 3 Test strgtok sTest sToken1 MAX_DATA_LENGTH strgtok sToken2 MAX_DATA_LENGTH strgtokrest sToken3 MAX_DATA_LENGTH Der String sTest soll getrennt an allen Slashes getrennt werden Dabei sind mit Frage zeichen umrahmte Zeichenketten ausgenommen Die Aktion wird dann wiederholt und am Ende der Rest ausgegeben Demnach ist sTokenl Test 12 sToken2 3 und sToken3 Test Geh rt zu string inc Siehe auch strgsep strgsplit strgtok strsep strsplit strtok strtokrest 8 10 178 strinit strinit sStringl sStringl Typ String 200 Die Funktion l scht den Inhalt des angegebenen Strings sString Beispiel aus plugin_hldsld_mapvote Funktion ResetVoteData 277 new i 278 for i 0 i lt MAX_MAPS it Y 279 strinit Maps i 280 Die For Schleife l scht alle Mapnamen aus de
315. nd HLData HLUserName UserIndex new sData MAX_DATA_LENGTH new sA MNL new sV MNL new sW MNL new sD MNL convert_string HLData sData MAX_DATA_LENGTH strsep sData sA MNL sV MNL sW MNL sD MNL sData MAX_DATA_LENGTH strsep sData sData MAX_DATA_LENGTH sD MNL playerinfo strtonum sA sA MNL playerinfo strtonum sV sV MNL snprintf sData MAX_DATA_LENGTH s traf s mit s s hp sA sV sW sD say sData return PLUGIN_HANDLED public plugin_init plugin_registerinfo Testplugin Ein Testplugin 1 0 plugin_registercmd test_damages damages ACCESS_CONSOLE exec logd_reg 58 admin_command test_damages 1 return PLUGIN_CONTINUE Das sieht im ersten Moment etwas komplexer aus Die eigentliche Funktionsweise lasst sich aber schon mittels der plugin init erkl ren public plugin_init plugin_registerinfo Testplugin Ein Testplugin 1 0 plugin_registercmd test_damages damages ACCESS_CONSOLE exec logd_reg 58 admin_command test_damages 1 return PLUGIN_CONTINUE In Zeile 33 wird ein Serverbefehl abgesetzt LogD wird mitgeteilt dass es bei Event 58 Damages den Befehl admin _ command test__ damages ausf hren soll Die 1 bei der exec sagt lediglich aus dass die Ausf hrung der Eventregistrierung mitgelogged wird Weitere LogD Events werden im Abschnitt 8 13 vorgestellt 187 6 8 Scripting Damit Admin Mod auch auf den Serverbef
316. nd Zeitformat Wa b d H M M Y d Tag im Monat 01 31 H Stunde im 24h Format 00 23 l Stunde im 12h Format 00 12 j Tag im Jahr 001 366 m Monat als Zahl 01 12 M Minute 00 59 p Vor und Nachmittagsperiode AM oder PM S Sekunden 00 61 U Kalenderwoche Woche beginnt am ersten Sonntag 00 53 w Wochentag als Zahl Sonntag 0 0 6 W Kalenderwoche Woche beginnt am ersten Montag 00 53 x Vorgefertigtes Datumsformat m d y X Vorgefertigtes Zeitformat H M M y Jahr letzten zwei Ziffern z B 09 Y Jahr alle Ziffern z B 2009 327 208 209 210 211 212 8 Scripting Z Zeitzone z B CET Beispiel aus plugin_dotw Funktion admin time servertime t_time MAX_DATA_LENGTH I M p servertime t_date MAX_DATA_LENGTH A B d Y snprintf Text MAX_TEXT_LENGTH s s t_time t_date selfmessage Text Es wird die Serverzeit t_time und das Datum t_date ermittelt Anschlie end wer den die beiden Zeitstrings mit einem Leerzeichen verkn pft und an den admin_ time ausf hrenden Spieler in der Console ausgegeben Dieser Code h tte auch mit nur einer servertime Abfrage und ohne snprintf geschrieben werden k nnen Geh rt zu admin inc Siehe auch systemtime Inttp www adminmod de plugins php plugin plugin_dotw 328 8 10 Funktionsreferenz 8 10 151 set_serverinfo set_serverinfo sKey sValuel sKey
317. nd 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 Bei spiel der Windows Installation zu entnehmen Abgesehen von der DLL Bezeichnung ist sie aber identisch mit der Linux Installation 3 4 MySQL PostgreSQL Installation Um gro e Usergruppen sinnvoll verwalten zu k nnen bietet Admin Mod eine MySQL und eine PostgreSQL Unterstiitzung an Es ist ebenso m glich Admin Mod in bestehen de 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 Un Mnttp www hlsw de Unttp www mysql com Pnttp www postgresql org 11 3 Installation terst 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 beide
318. ndere Votes gilt siehe dazu vote_ freq Standardwert 600 Beispiel admin_vote_ freq 300 Diese Einstellung erlaubt einen Mapvote alle 5 Minuten 300 Sekunden Siehe auch admin_vote_autostart admin_vote_echo admin_vote_maxextend admin_vote_ ratio amv_vote_duration kick_ratio map_ ratio vote_ freq 26 4 1 Admin Mod einrichten adminmod cfg 4 1 24 admin_vote_maxextend admin vote _maxextend lt gt Legt fest wie oft eine Map mittels Plugin hldsld_ mapvote um 30 Minuten verl ngert werden darf Standardm ig darf sie das nicht Einstellung 0 Beispiel admin vote maxextend 1 Dies bedeutet dass die Map einmal um 30 Minuten im Mapvote verl ngert werden darf Siehe auch admin vote _autostart admin_vote_echo admin _vote_freq admin __vote_ratio amv__vote_duration kick ratio map_ratio vote_ freq 4 1 25 admin_vote_ratio admin vote ratio lt gt Mit dieser Variablen wird festgelegt wieviel Prozent der Spieler fiir einen Mapwechsel stimmen m ssen damit dieser durchgef hrt wird Plugin hldsld_mapvote Standard wert 60 Beispiel admin _vote_ratio 50 Bei einem Wert von 50 und 10 Spielern auf dem Server m ssen 5 f r den Mapwechsel stimmen Siehe auch admin vote _autostart admin _vote _echo admin _vote_freq admin_vote_maxextend amv__vote_duration kick ratio map_ratio vote_freq 27 4 Konfiguration 4 1 26 allow_client_exec allow_client_exec lt gt Plugins k
319. ndeutigen Na mensteil erkannt werden Damit der Befehl funktioniert muss allow _client_exec aktiviert worden sein Beispiele admin_red Roter Klatschmohn admin_red Big admin_red STEAM_0 123456 admin_red 23 156 43 12 Im ersten Beispiel wird der Spieler mit dem Namen Roter Klatschmohn ins rote Team verschoben Im n chsten Beispiel wird der Spieler mit dem Namen Big oder Big im 157 5 Standardplugins und Befehle Namen sofern kein anderer Spieler Big im Namen tr gt ins rote Team verschoben Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 8192 Geh rt zu plugin TFC Siehe auch admin blue admin green admin yellow allow_client_ exec 5 12 6 admin _yellow admin yellow lt ID IP Name gt Man kann mit diesem Befehl einen Spieler ins gelbe Team verschieben Ist er nicht tot wird er bei dieser Aktion sterben Der Spieler kann entweder ber seine ID IP den Namen oder einen eindeutigen Na mensteil erkannt werden Damit der Befehl funktioniert muss allow _ client exec aktiviert worden sein Beispiele admin yellow Gelber Loewenzahn admin _yellow Big admin _yellow STEAM_0 123456 admin yellow 23 156 43 12 Im ersten Beispiel wird der Spieler mit dem Namen Gelber Loewenzahn ins gelbe Team verschoben Im n chsten Beispiel wird der Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Name
320. ndlegenden Befehle die f r die Administration mehr oder weniger wichtig sind insbesondere das Setzen von Servervariablen Die zur Verf gung stehenden Befehle beziehen sich auf die Basisfunktionen des HL Servers und sind damit unabh ngig von der eingesetzten Modifikation Als weitere Option bietet das Plugin an mapspezifische Einstellungen aus einer Kon figurationsdatei zu laden Man muss lediglich eine Datei mit dem Namen der Map ins Modverzeichnis erstellen z B de_dust cfg und die Sondereinstellungen hinterlegen In diesem Fall bitte sicherstellen dass mapchangecfgfile in der server cfg auf server cfg gesetzt wird ggf die Variable erg nzen Anderenfalls werden bei einer anderen Map die Einstellungen nicht mehr r ckg ngig gemacht 5 3 1 admin_abort_vote admin abort_vote Der Befehl bricht einen laufenden Mapvote admin _ vote _map oder aber auch einen Kickvote admin_vote_kick ab Beispiele admin_abort_vote Bricht den laufenden Vote ab oder gibt zuriick dass kein Vote lauft Access Level 2 Geh rt zu plugin_base Siehe auch admin_vote_kick admin_vote_map 95 5 Standardplugins und Befehle 5 3 2 admin_ban admin ban lt ID Namensteil IP gt Minuten IP Mit diesem Befehl wird der Spieler entweder ber seine ID IP oder den Namen f r eine bestimmte Anzahl an Minuten gebannt Sofern keine IP angegeben wurde kann man zudem angeben ob der Spieler statt mit seiner ID mit seiner IP gebannt wi
321. nect_msg lt string gt Diese Meldung wird dem jeweiligen Spieler nach dem Spieleinstieg auf den Server ange zeigt plugin message Mit admin_connect_msg 0 l sst sich die Nachricht komplett abschalten Beispiel admin _connect_msg Welcome to the pleasuredome 60 Sekunden nach dem Spieleinstieg wird in der Mitte des Bildschirms Welcome to the pleasuredome angezeigt Siehe auch admin repeat_msg admin_repeat_freq 16 4 1 Admin Mod einrichten adminmod cfg 4 1 4 admin_cs_restrict admin _cs_restrict lt gt Diese Variable wird vom CS Plugin verwendet Wenn auf 1 gesetzt ist es m glich den Kauf von bestimmten Waffen z B AWM oder Schild oder Equipment zu verbieten Es ist 0 voreingestellt Beispiel admin_cs_restrict 1 Das Verbieten von Waffen und Equipment ist damit aktiviert Siehe auch admin_repeat_msg admin_repeat_ freq 4 1 5 admin_debug admin_debug lt gt Eigentlich ist diese Variable nur f r Scripter interessant die ihre Plugins debuggen wol len F r den Normalbetrieb ist es nicht zu empfehlen daher sollte der Wert auf 0 belassen werden F r das Debuggen kann man den Wert von 1 bis 4 erh hen Damit erh ht sich auch die Informationstiefe und nicht unerheblich die Logfilegr e Mehr Informationen zum Spielerconnect erh lt man hingegen mit admin devel Beispiel admin _debug 4 Admin Mod l sst sich mit dieser Einstellung tief in die Karten schauen Der erfahrene Scr
322. nehmen Beispiel aus plugin_bk_alltalk Funktion plugin init 27 plugin_registerinfo Alltalk changer Switches sv_alltalk STRING_VERSION 28 plugin_registercmd admin_alltalk admin_alltalk A_KICK Switches sv_alltalk Zun chst wird das Plugin registriert Anschlie end wird der Befehl admin_alltalk mit der gleichnamigen Funktion registriert Der Spieler ben tigt Kickrechte Hier wurde aus Darstellungsgr nden A_ KICK geschrieben Richtig ist jedoch ACCESS _ KICK Einen berblick ber die Access Level und die zugeh rigen Direktiven ist der admin inc zu entnehmen Zu letzt wird ein Hilfetext f r die Anzeige in admin help festgelegt Geh rt zu admin inc Siehe auch plugin _registerhelp plugin_registerinfo 34http ww adminmod de plugins php plugin plugin_bk_alltalk 311 8 Scripting 8 10 134 plugin_registerhelp plugin_registerhelp Command RequiredAccess HelpMessage Command Typ String 30 RequiredAccess Typ Integer 0 2147483647 HelpMessage Typ String 150 Einen Hilfetext kann man bereits mit plugin_registercmd anlegen Es gibt jedoch auch F lle bei denen z B zwei Argumente bergeben werden m ssen Basierend auf dem ers ten Argument m ssen unterschiedliche zweite Argumente eingegeben werden Man kann dann f r alle ersten Argumente Hilfetexte anlegen Wichtig ist die Funktion auch beim Abfangen von say Nachrichten Da viele Plugins den Chat f r
323. nfo vote _ allowed get __user Team plugin _init writefile get_userWONID plugin_registercmd get_vaultdata plugin _registerhelp 8 9 Includes 8 9 2 adminlib inc Das adminlib Include beinhaltet Funktionen die nicht von Admin Mod selber zur Verf gung gestellt werden Vielmehr liegen diese Funktionen als Small Code vor der wieder um auf den Basisfunktionen und operatoren aufbaut Die Admin Mod Programmierer banden diese Funktionen ein da sie h ufig ben tigt wurden jedoch nicht nativ ber Ad min Mod zur Verf gung standen Sie sind im Laufe der Zeit auch nicht in Admin Mod bernommen worden Man wird dieses Include nicht immer ben tigen aber es ist zu empfehlen das Include stets einzubinden Funktionen wie numtostr oder max werden sehr h ufig verwendet check auth numtostr strmatch min reject _message strstripquotes max say_command check __param execute command strbreak check immunity format_command streq execclient_ all log command strinit ChangeMap 8 9 3 console inc Das Include console ist in Admin Mod mehr oder weniger nutzlos Die zugeh rigen Funk tionen interagieren mit Betriebsystemconsole Es werden Keyboard Eingaben gelesen und Text ausgegeben Unter Umst nden lassen sich diese Funktionen zu Debuggingzwe cken nutzen Es ist nicht n tig dieses Include einzubinden getchar getvalue printf getstring print 8 9 4 core inc Das core Include beinhalte
324. nliche 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 Ver zeichnis zu entpacken Im eigenen Interesse sollte aber nicht in die Serververzeichnisse entpackt werden Es handelt sich um eine Distribution die zun chst erst installiert wer den 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 funk tioniert 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 3 2 Installation Windows Wie bereits erw hnt ist die Distributionsstruktur nicht identisch mit der Installationss truktur auf dem Server Die Dateien m ssen erst an die richtige Stel
325. nmod cfg H ips ini maps ini H models ini plugin ini users ini vault ini wordlist txt H dlls admin MM dll amx admin dll scripts plugin_antiflood amx plugin base amx plugin _chat amx plugin cheat amx plugin CS amx plugin _ fun amx plugin _hldsld_ mapvote amx plugin _retribution amx plugin _spawn amx plugin _ TFC amx metamod dlls L metamod dll plugins ini m autoexec cfg liblist gam listenserver cfg server cfg yalve rc Abbildung 3 1 Verzeichnisstruktur einer Windows Installation 4 Konfiguration 4 1 Admin Mod einrichten adminmod cfg Dieser Abschnitt besch ftigt sich mit den Grundeinstellungen von Adminmod Diese findet man in der adminmod cfg addons adminmod config Sie sollte stets aus der server cfg heraus ausgef hrt werden exec addons adminmod config adminmod cfg Im Weiteren sollen die einzelnen Einstellungen CVars vorgestellt werden Variablen die nicht in der Standard adminmod cfg stehen k nnen einfach erg nzt werden nderungen an der adminmod cfg werden nicht automatisch ausgef hrt In der Grund einstellung des Half Life Servers wird die Datei nur beim Starten des Servers geladen da auch die server cfg nur zu diesem Zeitpunkt geladen wird Nur wenn man die Varia ble mapchangecfgfile auf server cfg oder addons adminmod config adminmod
326. nteger 0 200 Diese Funktion f gt einen String sSource mit der Lange iMaxLen an einen anderen sDest an Beispiel aus plugin CS Funktion LoadDefaultRestrictions 934 currentmap strMap 100 935 strcepy strName WeaponRestrictions_ 100 936 strcat strName strMap 100 Zun chst wird die aktuelle Map ermittelt und in strMap geschrieben Danach wird die Zeichenkette WeaponRestrictions_ in die Variable strName geschrieben Abschlie Bend wird der String strName durch den String strMap erweitert Ist die aktuelle Map de dust ist strName am Ende WeaponRestrictions _de dust Geh rt zu string inc Siehe auch strncat snprintf 346 8 10 168 strchr strchr sSource iChar sSource Typ String 200 iChar Typ Integer 0 256 8 10 Funktionsreferenz Die Funktion ermittelt die Position des ersten Vorkommens des Zeichens iChar im String sSource von links beginnend F r das Zeichen muss die ASCII Nummer angege ben werden Vereinfacht kann auch das entsprechende Zeichen in einfache Anf hrungs zeichen gesetzt werden Die Funktion liefert 1 zur ck falls das Zeichen nicht gefunden wurde Beispiel aus plugin blatt_map Funktion GetShortName 3022 new pos strchr fullname _ 3023 if pos gt 0 3024 pos pos 1 3025 3026 else 3027 pos 0 3028 Es wird das erste Vorkommen vom Unterstrich im String fullname gesucht Ist die Po sition gr er als 0 wi
327. ntlich ein Addon fiir den Half Life Server Letztlich bietet auch der Ser ver selber Administrationsm glichkeiten an rcon votemap etc nur sind diese recht eingeschrankt und schwierig zu bedienen Die Serverengine bietet jedoch viel mehr und bessere M glichkeiten an die nicht per RCon genutzt werden k nnen Au erdem kann man die Zugriffsrechte deutlich feiner abstimmen Um die Administration zu erleichtern wurde daher Admin Mod entwickelt was sich schnell zum beliebtesten Addon fiir HL Server entwickelte Wichtige Features e Userrechte lassen sich im Gegensatz zu RCon feiner abstufen Das Rcon Passwort muss also nicht mehr weitergegeben werden e Pluginsystem Das System l sst sich mittels Scripten geschrieben in Small leicht erweitern Shttp www adminmod org 4nttp store steampowered com about http www metamod org Shttp de wikipedia org wiki Open_Source http sourceforge net projects halflifeadmin 1 3 Warum nicht ein anderes Plugin nutzen e Uber 200 Plugins erh ltlich e Grafische Votesysteme e Einfache Ver nderung der Serverkonfiguration e Reserviert Slots f r Administratoren e Unruhestifter k nnen mit einer Vielzahl an M glichkeiten zum Schweigen gebracht werden e F ngt diverse Serverbugs ab U V M In Kombination mit LogD und StatsMe weiteren Metamod Plugins k nnen Scripte auch auf Serverevents wie Kills reagieren Admin Mod wird insbesondere wegen seiner Stabilit t und Reso
328. odels file pgsql_database pgsql_dbtable_ips pgsql_dbtable_plugins pgsql_dbtable_tags pesql_dbtable_ users pgsql_dbtable_words pgsql_host pgsql_pass pgsql_ port pgsql_ preload pgsql_tags_sql pgsql user pgsql_users_sql 4 1 67 pgsql_dbtable_plugins nur PostgreSQL Version pgsql_dbtable plugins lt string gt Diese Variable legt fest in welcher PostgreSQL Tabelle die Pluginpfade zu finden sind Ist kein Admin Mod PostgreSQL installiert wird die Variable ignoriert anderenfalls wird eine Definition von admin plugin file bergangen Beispiel pgsql_dbtable_plugins am plugins Admin Mod erwartet die Daten zu den Pluginpfaden in der Tabelle am plugins Siehe auch admin_plugin_file pgsql_database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_tags pgsql_dbtable_users pgsql_dbtable_words pgsql_ host pgsql_ pass pesql_port pgsql_ preload pgsql_tags_sql pgsql_user pgsql_users_ sql 49 4 Konfiguration 4 1 68 pgsql_dbtable_tags nur PostgreSQL Version pgsql_dbtable_tags lt string gt Diese Variable legt fest in welcher PostgreSQL Tabelle die reservierten Clantags zu finden sind Beispiel pgsql_dbtable_tags am_tags Admin Mod erwartet die Daten zu den reservierten Clantags in der Tabelle am_tags Siehe auch pgsql_ database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pesql_dbtable_ users pgsql_dbtable_words pgsql_host pgsql_pass pgsql_port pgsql_ pr
329. olange sie alle Funktionen bereith lt um erfolgreich geladen zu werden Da Metamod aber kein Spiel ist muss irgendwo noch die GameDLL herkommen Me tamod schaut also nach was die Engine f r ein Spiel laden wollte berpr ft in seiner internen Liste welche GameDLL dazu passt und l dt dann die GameDLL Die Engine denkt sie unterh lt sich mit der GameDLL die GameDLL denkt sie unterh lt sich mit der Engine Metamod sitzt dazwischen und alle sind gl cklich Engine lt gt Metamod lt gt GameDLL Alte Bots die keine Metamod Plugins sind verhalten sich exakt so wie es auch Metamod tut Engine lt gt BotDLL GameDLL Wenn man also Metamod und Bots gleichzeitig laden will dann m ssen sie hintereinan der geschaltet werden denn nach oben links denkt jeder er sieht die Engine und nach unten rechts denkt jeder er sieht die GameDLL Wenn Metamod also eine BotDLL l dt dann tritt diese f r Metamod als GameDLL auf genauso wie das die BotDLL f r die Engine tun w rde Man kann Metamod anweisen eine andere GameDLL zu benut zen als die die er normalerweise benutzen w rde In unserem Falle also eine BotDLL Die Engine l dt Metamod als GameDLL Metamod ist keine GameDLL und l dt daher die BotDLL als GameDLL Die BotDLL ist auch keine GameDLL und l dt daher die GameDLL in welcher jetzt tats chlich das Spiel steckt Engine lt gt Metamod lt gt BotDLL GameDLL Es geht auch andersherum Engine lt gt BotDLL Metamo
330. ommazahl zu r ck Beispiel fNum f_tanh fNum Aus fNum wird der Tangens Hyperbolicus gebildet Geh rt zu math inc Siehe auch f_cosh f_coth f_sinh 8 10 61 fixed fdiv fixed fdiv fixed dividend fixed divisor fixed dividend Typ Fixed 2147482 2147482 fixed divisor Typ Fixed 2147482 2147482 Die Funktion fdiv f hrt eine Divison zweier Zahlen durch Theoretisch steht auch als Operatorzeichen zur Verf gung Die Erkennung durch den Compiler ist leider nicht zuverl ssig so dass die Funktion fdiv empfohlen wird Beispiel aus math inc Funktion f_cos 394 stock fixed f_cos fixed fNum 395 return f_sin fNum fdiv f_pi 2 000 396 Hier wird der Kosinus durch die Berechnung cos x sin x 5 ermittelt Geh rt zu fixed inc Siehe auch fmul 242 8 10 Funktionsreferenz 8 10 62 fixed ffract fixed ffract fixed value fixed value Typ Fixed 2147482 2147482 Mit ffract werden die drei Nachkommastellen als Zahl ermittelt Dabei wird auch das Vorzeichen des Gesamtwertes bertragen 26 27 28 29 30 181 182 183 184 185 Beispiel aus math inc Funktion fixtorstr iFrac ffract fNumber if iFrac lt 0 iFrac 1 iSign 1 Im Beispiel werden die Nachkommastellen als Zahl ermittelt Ist die Zahl negativ wird sie negiert und das Vorzeichen in iSign gespeichert Geh rt zu fixed inc 8 10 63 fixed fixed fixed fixed value v
331. on Team Action World Action World Action 57 57 57 58 58 60 60 61 61 62 62 admin_command admin_command admin command admin command admin command admin command admin command admin command admin command admin command admin command 7 1 LogDaemon LogD logd_teamkill im_kill hp_kill im_injure hp_injure im_playeraction hp_paction im_teamaction hp_taction im_world 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 Freignisse registriert wurden und ob sie aus den Logdateien gefiltert werden Beispiel LogD parser status Event Name Cvar Log Map Rcon Server Name Server Chat Connect Enter Disconnect Suicide Team Selection Role Selection Name Kill Injury PvP Action Player Action Team Action Event Code Active Blocking No No No No No No No No No No No No No No Yes No Yes No Yes No Yes No No No No No Yes No Yes No No No Yes No Yes No 165 7 Erweiterungen 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
332. on liefert die Anzahl der Frags frags des Spieler sPlayer ber die gesamte Mapzeit als Integerwert Beispiel aus plugin_sdal_logd_hp50 Funktion best_ player 994 for j 1 j lt maxplayers j 995 if playerinfo j Player MAX_NAME_ LENGTH 4 996 get_userFrags Player PlayerPoints j 997 if PlayerPoints j gt mostfrags 998 mostfrags PlayerPoints j 999 1000 1001 Mittels einer For Schleife soll der Spieler mit den meisten Frags ermittelt werden Die For Schleife berpr ft alle Slots Nur Slots die mit Spielern best ckt sind werden aus gewertet Zeile 995 Wurde ein Spieler gefunden werden seine Frags get__userFrags ermittelt Falls die Anzahl seiner Frags gr er als der bisherige Bestwert sind wird die Anzahl seiner Frags zum neuen Bestwert Geh rt zu admin inc Siehe auch get _userArmor get_userHealth Pnttp www adminmod de plugins php plugin plugin_sdal_logd_hp50 259 441 442 443 444 445 8 Scripting 8 10 76 get_userHealth get_userHealth sPlayer amp health sPlayer Typ String 33 health Typ Integer 0 2147483647 Die Funktion liefert die momentanen Lebenspunkte des Spielers als Integerwert Beispiel aus plugin_sdal_logd_hp50 Funktion hp_ kill playerinfo iAID Attacker MAX_NAME_LENGTH _ _ iATeam playerinfo iVID Victim MAX_NAME_LENGTH _ _ iVTean get_userHealth Attacker iAHealth get_userArmor Attacker iAArmor Die Spielernamen d
333. onen werden nicht ausgef hrt 8 8 2 Befehle registrieren Meist m chte man dass Admin Mod auf einen bestimmten Befehl eine Aktion aus f hrt Daf r muss zun chst bei Admin Mod ein Befehl registriert werden blicherweise 177 8 Scripting macht man dies im Event plugin init Zum einfacheren Verst ndnis erweitern wir das Grundplugin 1 include lt core gt 2 include lt string gt 3 include lt admin gt 4 include lt adminlib gt 5 6 public test HLCommand HLData HLUserName UserIndex 7 new sData MAX_DATA_LENGTH 8 9 convert_string HLData sData MAX_DATA_LENGTH 10 userlist sData 11 12 return PLUGIN_HANDLED 13 gt 14 15 public plugin_init 16 plugin_registerinfo Testplugin Ein Testplugin 1 0 17 plugin_registercmd admin_test test ACCESS_ALL Userlist anzeigen 18 19 return PLUGIN_CONTINUE 20 gt Das Plugin wurde um einen Befehl plugin_registercmd erweitert der einen Befehl bei Admin Mod registriert 17 plugin_registercmd admin_test test ACCESS_ALL Userlist anzeigen Dabei ist admin_ test der Befehl auf den Admin Mod sp ter reagiert und die Funktion test ausf hrt die ebenfalls hinzugef gt wurde Zugriff auf den Befehl haben alle Spieler ACCESS_ ALL Die vordefinierten Accesslevel sind der admin inc zu entnehmen oder selbst zu definieren Zu letzt gibt man einen Hilfetext an der bei der Ausf hrung von admin_ help ausgegeben wird Dam
334. onen lassen sich mit admin _ version abrufen Beispiel aus plugin_bk_alltalk Funktion plugin_init 27 plugin_registerinfo Alltalk changer Switches sv_alltalk STRING_VERSION 28 plugin_registercmd admin_alltalk admin_alltalk A_KICK Switches sv_alltalk Zun chst wird das Plugin registriert Der Name ist Alltalk changer die Beschreibung lautet Switches sv_alltalk und die Versionsnummer entstammt einer globalen Variable STRING _ VERSION Anschlie end wird der Befehl admin_alltalk registriert Geh rt zu admin inc 36nttp www adminmod de plugins php plugin plugin_bk_alltalk 313 8 Scripting 8 10 136 pointto pointto iRange 2048 iRange 2048 Typ Integer 0 2147483647 Mit dieser Funktion kann man ermitteln auf welchen Spieler der den Befehl aufrufende Spieler zielt Die Funktion gibt die Session ID des anderen Spielers zur ck Die Session ID f r eine ung ltige Figur z B Geisel ist 1 Ist keine Figur im Blickfeld wird eine 0 zur ckgegeben Das Argument iRange definiert die Blickweite Um auch den Blick anderer Spieler zu untersuchen sollte man die Funktion gettarget nutzen Zudem erspart man sich die Umwandlung der Session ID Beispiel aus plugin_seeuser Funktion admin_seeuser targetnumber pointto numtostr targetnumber numstring 37 get_username numstring targetname MAX_NAME_LENGTH get_userindex targetname targetnumber Zun chst wird
335. orcas po RARA 206 check UEM susta ap ae ae Ae AS 207 check use 208 check Words a sic arte ds a ts SO a a a ek 209 CN 04 ia AAA ee OE Be BAS 210 CONSBTEEL cesen a RA ea da aoe Gad 211 COVA SNE eco AAA A 212 CUITENUMA 2 af hoc e ee a 213 CVO EKIS sa morro edo de oe Bg ee Gy ee 214 deletenlE os ada a eed ne ee ecg ee A 215 deleteproperty 2 2 4424 be eee eH ELE DRE ES 216 Renee coec kG ee ee eR ee eee Din eee DR SE 217 ISTAMCS 4 5 e ar ar AS A ELS en de A E 218 Be ee ote he ee ae ee ee A es Re ee Ree 219 execclient 2 2 4 4s bea Od heehee be he ad BG 220 execclient_all 221 execute command 0 0 0 0000 eee eee 222 o ce BRS eRe eee Re Es eee es ew 223 fileexists u ek a we we ee a a ews we 224 HITS ok i seei eS e cate te ade ok Ge aise Bh 225 Hedi ADS sors we iaa eo WA a SB eee 226 Hed f Arcos cs rear wa obese a Arad we a A es 226 WIECH SAECCOW ecs av at etna ee ete a ae ks da 227 fixed f arcosh sodard aurada aog na 227 Hedi arcot ce 2 42828 ee 228 REO arcsin 4 c ea s sopa KM nee Ge Ree GaSe ead 228 fixed t aretan esae e ea nen ee we ae 229 needs arctan helpe 2 ses 4 ss una ha tam ki ERS 229 fred T arsin cse n ptn a EA a T a ae a a de a A 230 Axed f artani ee swa cr a en GOR e Br das 230 TCO US E ae E te E E E ee te 0 231 xed T Cosh e 4 ne he de Bee a en 231 Hedi COE e tara ue ee rl as peg Dee 232 Axed i COD e ac cl o a ad EE a RO E a 232 MOG DEPTO etor p egeta e eee as EES OX 233
336. ots 0 iValue min max strtonum sValue 0 maxplayercount if get_vaultnumdata BK_BM_BOTS iBots amp amp iBots lt iValue set_vaultnumdata BK_BM_BOTS iValue Wenn die Option die bergeben wurde gleich bots ist wird die bergebene Botanzahl zun chst durch eine Max Auswahl mit 0 nach unten und anschlie end durch eine Min Auswahl gegen die maximale Spielerzahl maxplayercount begrenzt Dies hatte man auch ber die Funktion clamp l sen k nnen Anschlie end wird berpr ft ob der Eintrag BK_BM_ BOTS in der vault ini existiert und ob die bisherige dort abgelegte Botanzahl kleiner als der neue Wert ist Der neue Wert wird anschlie end in BK_BM_ BOTS geschrieben Geh rt zu adminlib inc Siehe auch clamp f_max f_min min http www adminmod de plugins php plugin plugin_bk_botmanager 288 105 106 107 108 109 110 111 112 113 114 115 8 10 Funktionsreferenz 8 10 111 maxplayercount maxplayercount Die Funktion ermittelt die maximale m gliche Spielerzahl auf dem Server Beispiel aus plugin_fun Funktion KillGlow KillGlow new i new iMaxPlayers maxplayercount new Name MAX_NAME_LENGTH for i 1 i lt iMaxPlayers i if playerinfo i Name MAX_NAME_LENGTH 1 glow Name 0 0 0 Die maximale Spielerzahl wird ermittelt und als Maximalwert f r die For Schleife ver wendet Auf diese Weise muss man nicht alle 32 theoretisch m gli
337. ounge wav cla2 sci_transm wav cla3_sci_1lman wav cla3_sci_atlast wav cla3_sci_rescued wav cla3_sci_silola wav cla3_sci_silo2a wav cla3_sci_team wav cla3_sci_thankgod wav cla4 sci_blind wav cla4_sci_gener wav cla4_sci_pwr wav cla4_sci_pwroff wav cla4_sci_rocket wav cla4_sci_tent wav cla4_sci_trainend wav cla4_sci_trust wav c2a3_sci_icky wav c2a3_sci_track wav c2a4 sci_2tau wav c2a4 sci_4tau wav c2a4_sci_alldie wav c2a4_sci_arg2a wav c2a4_sci_arg4a wav c2a4_sci_letout wav c2a4_sci_scanner wav c2a4_sci_sugicaloff wav c2a4_sci_surgury wav c2a5_sci_boobie wav c2a5_sci_lebuz wav c3al_sci_2sat wav c3al_sci_4sat wav c3al_sci_6sat wav c3al_sci_dome wav c3al_sci_done wav c3a2_sci_1glu wav c3a2_sci_lsurv wav c3a2_sci_2glu wav c3a2_sci_3glu wav c3a2_sci_ 3surv wav c3a2 sci_5surv wav c3a2_sci_7surv wav c3a2_sci_flood wav c3a2_sci_fool wav 419 B Sonstiges 420 c3a2_sci_forever wav c3a2_sci_linger wav c3a2_sci_ljump wav c3a2_sci_notyet wav c3a2_sci_portal wav c3a2_sci_ portopen wav c3a2_sci_ position wav c3a2_sci_shower wav c3a2_sci_straws wav c3a2_sci_uphere wav cantbeserious wav cantbeworse wav canttakemore wav cascade wav catchone wav chaostheory wav checkatten wav completelywrong wav containfail wav correcttheory wav cough wav delayagain wav didyouhear wav dinner wav dontconcur wav dontgothere wav dontknow wav dontwantdie wav donuteater wav doyousmell wav evergetout wav everseen wav e
338. ourclean wav runtest wav sci_ 1thou wav sci_ 2thou wav sci_ 3thou wav sci_ 4thou wav B 4 HL Sounds sci_5thou wav sci_ aftertest wav sci_alone wav sci_bother wav sci_busy wav sci_diel wav sci_die2 wav sci_die3 wav sci_die4 wav sci_dragoff wav sci_fearl wav sci_fearl0 wav sci_fearll wav sci_fearl2 wav sci_fearl3 wav sci_fearl4 wav sci_fearl5 wav sci_fear2 wav sci_fear3 wav sci_fear4 wav sci_feard wav sci_fear6 wav sci_fear7 wav sci_fear8 wav sci_fear9 wav sci_painl wav sci_pain10 wav sci_pain 2 wav sci_pain3 wav sci_pain4 wav sci_paind wav sci_pain6 wav sci_pain7 wav sci__pain8 wav sci_ pain9 wav sci_somewhere wav scream01 wav scream02 wav scream03 wav scream04 wav scream05 wav scream06 wav scream07 wav scream08 wav scream09 wav scream 1 wav scream 10 wav scream 11 wav scream 12 wav scream13 wav scream14 wav scream15 wav scream 16 wav scream17 wav scream 18 wav scream 19 wav scream2 wav scream20 wav scream21 wav scream22 wav scream23 wav scream24 wav scream25 wav scream3 wav scream4 wav screamd wav scream6 wav scream7 wav seeheadcrab wav seencup wav shakeunification wav shutdownchart wav shutup wav shutup2 wav simulation wav slowingyou wav smellburn wav sneeze wav softethics wav somethingfoul wav sorryimleaving wav startlel wav startle2 wav startle3 wav startle4 wav startle5 wav startle6 wav startle7 wav startle8 wav startle9 wav statusreport wav stenc
339. ourth wav fourty wav foxtrot wav freeman wav freezer wav from wav front wav fuel wav g wav get wav go wav going wav good wav goodbye wav gordon wav got wav government wav granted wav great wav green wav grenade wav guard wav gulf wav gun wav guthrie wav handling wav hangar wav has wav have wav hazard wav head wav health wav heat wav helicopter wav helium wav hello wav help wav here wav hide wav high wav highest wav hit wav hole wav hostile wav hot wav hotel wav hour wav hours wav hundred wav hydro wav i wav idiot wav illegal wav immediate wav immediately wav in wav inches wav india wav ing wav inoperative wav inside wav inspection wav inspector wav interchange wav intruder wav invallid wav invasion wav is wav it wav johnson wav juliet wav key wav kill wav kilo wav kit wav lab wav lambda wav laser wav last wav launch wav leak wav leave wav left wav legal wav level wav lever wav lie wav lieutenant wav life wav light wav lima wav liquid wav loading wav locate wav located wav location wav lock wav locked wav locker wav lockout wav lower wav lowest wav magnetic wav main wav maintenance wav malfunction wav man wav mass wav materials wav maximum wav may wav medical wav men wav mercy wav mesa wav message wav meter wav micro wav middle wav mike wav miles wav military wav milli wav million wav minefield wav minimum wav minu
340. p sData sCommand MAX_COMMAND_LENGTH sData MAX_DATA_LENGTH 12 13 if streq sCommand userlist 1 14 userlist sData 15 return PLUGIN_HANDLED 16 17 18 return PLUGIN_CONTINUE 19 gt 20 21 public plugin_init 22 plugin_registerinfo Testplugin Ein Testplugin 1 0 23 plugin_registercmd say test ACCESS_ALL 24 plugin_registercmd say_team test ACCESS_ALL 25 plugin_registerhelp say ACCESS_ALL userlist lt Muster gt Userlist anzeigen 26 27 return PLUGIN_CONTINUE 28 Es wurde admin_ test durch say freier Chat und say_team Teamchat ersetzt 23 plugin_registercmd say test ACCESS_ALL 24 plugin_registercmd say_team test ACCESS_ALL 25 plugin_registerhelp say ACCESS_ALL userlist lt Muster gt Userlist anzeigen Da auch andere Plugins say und say_team reagieren k nnen verzichtet man beim Registrieren auf einen Hilfetext Stattdessen legt man mit plugin_registerhelp einen Hilfetext fest Auf diese Weise k nnen auch Unteroptionen genauer beschrieben werden Eine Funktion muss nicht angegeben werden da der Befehl nur den Hilfetext festlegt Auch die Funktion test hat sich ver ndert public test HLCommand HLData HLUserName UserIndex 6 7 new sData MAX_DATA_LENGTH 8 new sCommand MAX_COMMAND_LENGTH 9 10 convert_string HLData sData MAX_DATA_LENGTH 11 strsep sData sCommand MAX_COMMAND_LENGTH sData MAX_DATA_L
341. php plugin plugin_bk_botmanager 375 8 Scripting 8 10 198 strunpack strunpack dest const sourcel dest Typ String 200 const source Typ String 200 Durch diese Funktion wird ein String source entpackt und in einen anderen dest geschrieben Die meisten Funktionen ben tigen ungepackte Strings Unter Umst nden kann man ein wenig Speicher sparen Es rentiert sich aber nur wenn nicht gleichzeitig der gleiche String ungepackt definiert wird Au erdem sollte man in Admin Mod seine Plugins auf Geschwindigkeit nicht Speicher optimieren Speicher ist eigentlich nie ein Problem Beispiel new spTest 7 char Test123 new sTest 7 strunpack sTest spTest Es wird ein gepackter String der Lange 7 definiert Es ist das Ausrufezeichen vor der Zeichenkette Test123 zu beachten das den Compiler anweist den Text als gepackt zu handhaben Zu Letzt wird der String spTest in sTest entpackt Geh rt zu core inc Siehe auch strpack 376 8 10 Funktionsreferenz 8 10 199 swapchars swapchars c c Typ Integer 2147483648 bis 2147483647 Die Funktion dreht die Bytes in einem Wert c um new iTest 33 iTest swapchars iTest Als zu drehender Wert wird 33 verwendet Es handelt sich dabei um das Bitmuster 207 208 209 210 211 0000000000000000000000000100001 Als Ergebnis wird wieder in Test das Bitmus ter 1000010000000000000000000000000 geliefert entspricht 553
342. php plugin plugin_dio_motm 359 8 Scripting 8 10 182 strncat strncat sDest sSource iNum iMaxLen sDest Typ String 200 sSearch Typ String 200 iNum Typ Integer 0 200 iMaxLen Typ Integer 0 200 Diese Funktion f gt einen String sSource mit der Lange iMaxLen an einen anderen sDest an Es werden jedoch nur eine bestimmte Anzahl an Zeichen iNum vom String sSource angeh ngt Beispiel new sTesti MAX_TEXT_LENGTH Test123 new sTest2 MAX_TEXT_LENGTH Test456 strncat sTest1 Test2 5 MAX_TEXT_LENGTH Es werden nur die ersten 5 Zeichen von sTest2 an sTest1 angeh ngt Der String sTest1 ist nach der Anwendung von strncat Test123Test4 Geh rt zu string inc Siehe auch strcat snprintf 360 679 680 681 682 683 8 10 Funktionsreferenz 8 10 183 strncmp strncmp sString1 sString2 iNum sStringl Typ String 200 sString2 Typ String 200 iNum Typ Integer 0 200 Die Funktion vergleicht zwei Strings sStringl und sString2 ber eine bestimmte L nge iNum Gro und Kleinschreibung wird beachtet Sind beide Strings identisch wird eine 0 zur ckgegeben Man erh lt eine 0 zur ck wenn beide Strings gleich sind Ist das erste ungleiche Zeichen in den Strings bei sStringl gr er als bei sString2 wird eine Zahl gr er als 0 zur ckgegeben Umgekehrt wird eine Zahl kleiner als 0 zur ckgegeben Beispiel aus plugin CS Funktion
343. piel pgsql_ port 5433 Dies ver ndert den Standardport f r den Zugang zur PostgreSQL Datenbank auf 5433 Siehe auch pgsql_ database pgsql_dbtable_ips pgsql_dbtable_models pgsql_dbtable_ plugins pesql_dbtable_tags pgsql_dbtable_users pgsql_dbtable_ words pgsql_ host pgsql_pass pgsql_ preload pgsql_ tags sql pgsql user pegsql_users_sql 52 4 1 Admin Mod einrichten adminmod cfg 4 1 74 pgsql_preload nur PostgreSQL Version pgsql_preload lt gt Mit dieser Variable wird eingestellt ob die Datenbank Tabellen beim Admin Mod Start in den Speicher geladen werden sollen Dies verringert ganz erheblich die Last auf dem PostgreSQL Server da keine Querys mehr ausgef hrt werden m ssen f hrt aber bei spielsweise bei mehr als 1000 Usern in der users Tabelle zu einer berm igen Nutzung von Speicher durch Admin Mod 1 schaltet den preload ein Au erdem ist die Einstellung 0 notwendig um die Variablen pgsql_tags_sql und pgsql_users_ sql zu nutzen Beispiel pgsql_preload 1 Diese Einstellung aktiviert das Laden der User in den Speicher beim Serverstart und beim Mapwechsel wie users ini Sie deaktiviert pgsql_tags_sql und pgsql_users_ sq Siehe auch pgsql database pgsql_dbtable_ips pgsql_dbtable_ models pgsql_dbtable_ plugins pgsql_dbtable_tags pgsql_dbtable_users pgsql_dbtable_ words pgsql_host pgsql_ pass pgsql_ port pgsql_tags_sql pgsql_ user pgsql_users_ sql 4 1 75 pgsql_tags_sql nur PostgreSQL
344. plugin _CS 5 6 15 admin_hpenalty admin hpenalty Anzahl Dieser Befehl ver ndert die Servervariable mp__hostagepenalty Man stellt damit ein wieviele Geiseln ein Spieler t ten darf bevor er vom Server geworfen wird Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _hpenalty 2 admin _hpenalty 0 admin _hpenalty Im ersten Beispiel ist dem Spieler erlaubt zwei Geiseln zu t ten w hrend im zweiten die berwachung abgeschaltet ist Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin_ CS 129 5 Standardplugins und Befehle 5 6 16 admin_kickpercent admin kickpercent Anteil Dieser Befehl setzt die Servervariable mp_ kickpercent Man stellt damit ein wieviele Spieler prozentual f r den Kick eines anderen Spielers voten m ssen Dies geschieht ber vote lt Session ID gt in der Console Leider ist die Anwendung dieser Funktion f r die meisten Spieler ein Buch mit sieben Siegeln Es handelt sich bei vote um keine Admin Mod Funktionalit t Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _kickpercent 1 admin kickpercent 0 4 admin _kickpercent Im ersten Beispiel m ssten alle Spieler einem Kick zustimmen w hrend im zweiten nur 40 ben tigt w rden Im letzten Beispiel wird die aktuelle Einste
345. plugin_ exec setstrvar 219 510 511 512 513 514 8 Scripting 8 10 24 execclient execclient sPlayer sCommand sPlayer Typ String 100 sCommand Typ String 100 F hrt einen Befehl beim Spieler aus Dabei muss der Spielername und der auszuf hrende Befehl angegeben werden In der adminmod cfg muss allow_client_ exec auf 1 gesetzt sein Beispiel aus plugin_ retribution Funktion admin _ bury snprintf Text MAX_TEXT_LENGTH s has broke the rules TargetName say Text messageex TargetName Please obey our rules print_chat execclient TargetName say Help I m stuck Allen Spielern wird im Chat mitgeteilt dass der eingegrabene Spieler gegen die Regeln versto en hat Dieses wird ihm ebenfalls im Chat gesagt Zus tzlich l sst man den Spieler mittels execclient Help I m stuck sagen Geh rt zu admin inc Siehe auch execclient_ all 220 8 10 Funktionsreferenz 8 10 25 execclient_all execclient_all sCommand sCommand Typ String 100 F hrt bei allen Spielern den selben Befehl aus allow_client_exec 1 muss dazu in der adminmod cfg gesetzt sein Beispiel aus plugin _cw_creator plugin_logd_cwcaddon Funktion logd_cwc_ score 305 if maxrounds 0 306 execclient_all timeleft 307 Falls die Variable maxrounds auf 0 gesetzt ist wird bei allen Spielern der Befehl timeleft ausgef hrt der die verbleibende Restzeit auf
346. r admin buytimer Minuten Der Befehl admin _buytimer verstellt die Servervariable mp__buytimer Hiermit kann man einstellen wie viele Minuten nach dem Rundenstart noch eingekauft werden darf bliche Werte sind 0 25 Minuten 15 Sekunden oder 0 5 Minuten 30 Sekunden Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _buytimer 0 25 admin _buytimer 1 admin _buytimer Im ersten Beispiel wird die Kaufzeit auf 15 Sekunden im zweiten auf 60 Sekunden gesetzt Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 123 5 Standardplugins und Befehle 5 6 4 admin_c4timer admin c4timer Sekunden Der Befehl admin c4timer setzt die Servervariable mp __cAtimer Hiermit kann man einstellen wie lang der Countdown des Zeitz nders der Bombe ist bliche Werte sind 45 Sekunden oder 35 Sekunden Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _c4timer 35 admin _c4timer 45 admin c4timer Im ersten Beispiel wird der Bombencountdown auf 35 Sekunden im zweiten auf 45 Se kunden gesetzt Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS 5 6 5 admin_chattime admin chattime Sekunden Dieser Befehl setzt die Servervariable mp __c4timer Man kann
347. r Typ Fixed 2147482 2147482 string Typ String 20 iMaxLength Typ Integer 0 20 Die Funktion fixtostr wandelt eine Festkommazahl in einen String um Beispiel aus plugin_sdal_logd_hp50 Funktion display_victim 723 if g_display_distance 724 new Meters MAX_NUMBER_LENGTH 725 fixtostr fixed g_PlayerEnemyDistance UserID Meters MAX_NUMBER_LENGTH Wenn die Entfernung zum Gegner nach dem eigenen Ableben angezeigt werden soll wird zun chst die gespeicherte Entfernung g_PlayerEnemyDistance UserID in einen String umgewandelt Meters Die Textausgabe erfolgt sp ter im Code Geh rt zu math inc Siehe auch fixedstr strtofix hnttp www adminmod de plugins php plugin plugin_sdal_logd_hp50 247 320 321 322 323 324 8 Scripting 8 10 68 format_command format_command sUser sCommand sData sText sUser Typ String 33 sCommand Typ String 30 sDatal Typ String 200 sText Typ String 200 Die Funktion bereitet einen Text zur Darstellung im Chat oder in den Logdateien auf wenn ein Admin Mod Befehl ausgef hrt wird Dazu muss der ausf hrende Admin sUser der ausgef hrte Befehl sCommand und die Parameter sData angegeben werden Die R ckgabe erfolgt ber sText Die Funktion wird blicherweise nicht allein eingesetzt da sie eine Unterfunktion von log command und say_ command ist Beispiel aus adminlib inc Funktion format_command stock
348. r Hinweis dass leider keine freien Pl tze mehr frei sind Mehr zu dem Thema ist dem Kapitel 4 4 4 Serverpl tze reservieren zu entnehmen Siehe auch reserve_slots reserve_ type 56 4 1 Admin Mod einrichten adminmod cfg 4 1 82 reserve_type reserve_type lt gt Diese Variable ist zun chst komplexer als sie erscheint Sie legt fest wie Admin Mod mit den reservierten Slots umgehen soll 0 Admins werden zun chst in ffentlichen Slots untergebracht und die reservierten Slots werden bei einem Disconnect zuerst freigemacht 1 Unabh ngig vom Wert in reserve_slots ist immer 1 Slot zum Connecten reser viert 2 Connectende Admins werden zun chst in die reservierten Slots geschoben und bei Disconnects zun chst ffentliche Slots geleert Beispiel reserve_type 1 Einen Slot ausschlie lich zum Connecten der Admins zu verwenden ist von den meisten gew nscht Bei dieser Einstellung wird die Einstellung von reserve_slots ignoriert und nur ein Slot reserviert Der Platz bleibt immer frei steht also nicht zum Spielen zur Verf gung Er ist nur tempor r f r die Zeitdauer des Connectens f r die Admins nutzbar F r den Admin wird der Spieler mit dem h chsten Ping gekickt Mehr zu dem Thema ist dem Kapitel 4 4 4 Serverpl tze reservieren zu entnehmen Siehe auch ami_sv_maxplayers amv_hide_reserved_slots public_slots free reserve_slots reserve_slots_msg 4 1 83 script_file veraltet script_file lt
349. r als die L nge des Texts angesetzt werden da Small in die letzte Zelle ein 0 setzt um das Ende des Strings festzulegen new Text 200 Hallo Welt new Text Hallo Welt Man kann wie gezeigt auch auf die Deklaration einer Feldgr e verzichten Die Feldgr e betr gt in diesem Fall jedoch nur die L nge von Hallo Welt 1 12 und kann auch nicht w hrend der Laufzeit vergr ert werden Neben dem Pseudo Datentyp String gibt es den Typ der Festkommazahlen Fixed Die Festkommazahlen haben in Admin Mod einen Zahlenbereich von 2147482 bis 2147482 mit 3 Nachkommastellen Festkommazahlen werden folgenderma en deklariert new fixed fPI 3 142 Die Information fixed weist den Compiler an die Zahl als Festkommazahl zu betrach ten Zu guter Letzt kann man auch Enums definieren Dabei werden Begriffe einer aufsteigen den Zahlenreihe zugeordnet Man kann sie zur besseren Lesbarkeit des Codes einsetzen enum tks tk 0 victim Das 0 bedeutet dass bei Null angefangen wird zu z hlen Jeder weitere Option bekommt einen um eins erh hten Wert 8 3 Operatoren Es stehen folgende Rechenoperatoren zur Verf gung Addieren Subtrahieren Multiplizieren 171 8 Scripting Dividieren amp Bit Shift Aktionen Auch existieren die blichen Vereinfachungen aus anderen Sprachen i entspricht i i 1 i j entspricht i it j Vorsicht Nicht auf Zellen von Feldern anwenden a 1 z B
350. r ecke Seve ee Mesto eet oh dere od 320 8 10 1441 TEMOVESPIWA s au be a a a aa a eed po a na a ee 321 8 10 145 resetfile onen 322 B 10 146 TEX ie 2a pe Om ed Ce be whew ew ads 323 CD ey Say ou eee oye ee Reed pe Rae ee oe ee See ee 324 8 10 1218 say Command lt ss ee Oa OAM Eee eee OE ES 325 2 10 19 selfm ssage ven ee A 326 3 10 190 Servertime seime s a4 moran En Sa ee ed aS 327 810 181 get serverinfo Le leo eee a aa ee a Gee 329 10 192 set IMEF 23 0 a ee a a der 330 8 10 1593 set vanltdata s 3 28 3 su u sone Y ae aie BE are ee Se 331 10 154 set vaultnumdata cs mete 4 du 5 a Se aan ae 332 SUI SEAT ice ee a aa BLE R 333 amp 1 156 SELDOOPEEN se as 244 4 a u ne da au ke 334 8 10 1597 setstrvar oa au a a pirar Da p a a a a a k e i 335 A AE 336 ME A er 331 AM a lt e picie e S nine ee ER ee Ee a en 338 CIE ON s a ap oe BRS BAe BOA wee POR RE RE Re EEE ee 340 SIGS Mee a ox i eB ee ot a ee we EO 341 8 10 163 strbreak on nn 342 S 10 164 SORA S PE 343 8 10 LODNSEEEASESE copor a a ae a Oo Seal ee es d 344 S10 100 StrCaSeStEx y a va o A ee ee 345 Ms Se ee ee 346 SOLOS Strehr oce amaa Re ee eee we wae es MRR me ee ed 347 SU SHION 348 6 101 0 Sto u ca ke Er BE bok rn 349 SOTI en OEM AMO Bee ee ee Eee OSS 390 8 1 17 BEN e ro e e e a e AR ee 351 SILLA stred e lt iis rid tgi ai e ei e a a E a a E 352 STOTT Re occ e a et ae ar a a a 303 SATS SORES 1 ace wk be Se Hed He bebe neh RR OR 354 DIG SEER 2 yc oe ee ok ee
351. r nicht wirklich irgendjemanden davon ab Besser ist es ein TK Plugin zu installieren Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin _tkpunish 1 admin tkpunish 0 admin _tkpunish Im ersten Beispiel wird das Aussetzen bei einem Teamkill aktiviert w hrend im zweiten Beispiel die Funktion deaktiviert wird Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin CS 5 6 29 admin _unrestrict admin _unrestrict Option Der Befehl admin unrestrict erm glicht es Waffen und oder Equipment auf dem Server wieder zu erlauben Dabei hilft eine Vielzahl an Optionen diese Einschr nkungen bis ins kleinste Detail einzustellen Die Einstellungen k nnen ber den Befehl admin _ restrict r ckg ngig gemacht werden Dar ber hinaus steht ein Men ber den Befehl admin_restrictmenu zur Verf gung Die folgenden Optionen erm glichen neben der serverweiten Erlaubnis auch optional den Zugriff eines Teams oder eines bestimmten Spielers auf die Gegenst nde Optionen player lt Name gt team lt ct t gt all Erlaubt den Einkauf aller Waffen und Gegenst nde player lt Name gt team lt ct t gt weapons Erlaubt den Kauf aller Waffen player lt Name gt team lt ct t gt menu Men name nummer Erlaubt ein bestimmtes Kaufmen ber die Men nummer 138 5 6 plugin CS player lt Name gt team lt c
352. rHealthi ps s er ae ea Ver 256 UNT BELICE eres a ee 4 RRA 257 ET get Werle s x a A a ee 258 SIDA get WET user arial A 259 3 10 80 gel username oe a ad ee e a a ran 260 S106 LA BROTE AAA AA AA 261 2 1022 get serS ssionlD s cser eee FRO ia RRR ES 262 8 10 83 get Weer leat s csee soon an ee eR a a 263 8 10 84 gel meer WONID 2 8 2 00 5 2 ua RAR e e 264 2105 FIT a s saaat edi errar e a A 265 2 1020 ze vaultnumidata re a ar Br erde 266 SUS getag ioc nra biarra miga da ds RR ER ORS 267 S 10 38 PMA er a ia a a a 267 8 10 89 getproperty s 22 24 sraa dai a a a 268 FUN PAM ar ot Besen serien A 269 U EV et E 6 a den de AAA a 270 U OSMA e ds ee a a eR a er 271 8 10 93 getteamcount sa scc e 272 XII Inhaltsverzeichnis 8 10 94 getyalue 20 her er er Bere 272 OM PA 6 oe lg 6 ee hea eh OAS ea A 273 10 06 ORO cs ob ele oe A Aree ae ee 274 MU Pedidos aoe ee Bee we Bee ES ALOR eA ER 275 8 10 98 heapspa sa so a srdaca ro ERE eH eA SOG 276 A WN sg ss me Se ne eee PO ee Be a ee 277 SLO Or III 278 SPRL U DUN N Mn we daa a ee 279 SS kill timer es aa 6 a on ae er Se Ge we 280 SIE Japs sele a ee en a a be aoe E eE 281 SUCIA Deep escindida AA 282 amp 10 105 log oad 6 hd Be a e ee ee ee Bee ED Se 283 8 10 106 l g command gt e s 24 r o sws Ade me A ES Ged eS 284 2 109 107 look Amalie 2 a et aed en ee ee ee g 285 83 10 108 MADE 2 aco ht a HE 286 SIT matherror oe Sid a a a a are Di eee Se E 287 SIG TI Wie s see
353. rd Die Minutenzahl ist optional Standardm ig wird 0 angenommen was ein permanenter Ban ist Im Regelfall sv_lan 0 wird auch angenommen dass eine ID gebannt werden soll Erst wenn man es explizit am Ende des Befehls angibt oder bei sv_lan 1 wird die IP gebannt Beim Bannen einer ID oder IP muss der Spieler nicht auf dem Server sein Bei einem LAN Server ohne Internetzugang kann auch gleich admin banip genutzt wer den Beispiele sv_lan 0 admin ban Idiot admin_ban STEAM_0 1 234567 60 admin _ban STEAM_0 1 234567 60 IP admin _ban 81 56 23 12 60 Im ersten Beispiel wird ein Spieler mit dem Namen Idiot permanent mit seiner Steam ID gebannt Es kann sich auch um einen Teil des Namens handeln z B Ich bin ein Idiot Solange der Name mit Idiot eindeutig zuzuordnen ist wird der Spieler gebannt Sind beispielsweise zwei Spieler Ich bin ein Idiot und Ich war ein Idiot kommt es zu keinem Bann da Admin Mod den Bann nicht eindeutig zuordnen kann Im zweiten Beispiel wird der Spieler mit der Steam ID STEAM __0 1 234567 f r 60 Minuten ber seine Steam ID gebannt Im dritten Beispiel hingegen wird nicht seine Steam ID sondern seine IP gebannt Das letzte Beispiel basiert auf der IP des Spielers Allerdings wird nicht seine IP sondern seine Steam ID f r 60 Minuten gebannt Access Level 256 Geh rt zu plugin_ base Siehe auch admin_banip admin_unban 96 5 3 plugin base 5 3 3 admin_ban
354. rd die Position inkrementiert Andernfalls wird die Position auf 0 gesetzt Geh rt zu string inc Siehe auch index 48nttp www adminmod de plugins php plugin plugin_blatt_map 347 8 Scripting 8 10 169 strcmp stremp sString1 sString2 sStringl Typ String 200 sString2 Typ String 200 Die Funktion vergleicht zwei Strings sStringl und sString2 ber ihre gesamte Lange Gro und Kleinschreibung wird beachtet Sind beide Strings identisch wird eine 0 zur ckgegeben Man erh lt eine 0 zur ck wenn beide Strings gleich sind Ist das erste ungleiche Zeichen in den Strings bei sStringl gr er als bei sString2 wird eine Zahl gr er als 0 zur ckgegeben Umgekehrt wird eine Zahl kleiner als 0 zur ckgegeben Beispiel aus plugin CS Funktion SetRestrictions 609 else if strcmp Data help 0 610 ShowHelp Status Falls Data help unter Ber cksichtigung der Gro und Kleinschreibung entspricht wird eine pluginspezifische Funktion zur Darstellungen der Optionen ausgef hrt Geh rt zu string inc Siehe auch streq strncasecmp strncmp 348 648 649 650 651 652 653 654 8 10 Funktionsreferenz 8 10 170 strcount strcount sSource iChar sSource Typ String 200 iChar Typ Integer 1 256 Die Funktion z hlt das Vorkommen eines Zeichens iChar in einem String sSource Vereinfacht kann auch das entsprechende Zeichen in einfache Anf hrungszei
355. rden Trotz der scheinbaren funktionalen berlegenheit AMXMod X s hat Admin Mod immer noch seine Existenzberechtigung Admin Mod mag nicht die Funktionsvielfalt besitzen Shttp amxmod net http www amxmodx org 1Ohttp www unitedadmins com index php p content amp content clanmod 1 Einleitung wurde aber stets unter der Pr misse entwickelt dass es ausschlie lich zur Serveradminis tration verwendet werden sollte Dem entsprechend sind Funktionen zur Beeinflussung des Gameplays verp nt Das bedeutet dass man auf einem Admin Mod Server mehr oder weniger das Spiel vorfindet was man erwartet Unter AMXMod X k nnen Plug ins das Spielprinzip gravierend ver ndern Auch Admin Mod bietet einige Funktionen wie Teleport oder Godmode welche aber bei Anwendung stets allen Spielern mitgeteilt werden Ein weiterer Punkt ist der Schutz des Clients gegen ber der Willk r des Admins Admin Mod erlaubt daher nicht das Ausf hren aller Befehle beim Client Es ist mir ein R tsel warum diverse Admins unbedingt die Konfiguration vermeintlicher Cheater zerst ren m ssen Admin Mod bietet schon bezogen auf die Standardplugins gen gend M glich keiten einen Spieler vom Server zu ekeln und das mit Stil Das Zerst ren fremder Installationen ist eines Admins nicht w rdig Dies sollten sich die N rgler in den Foren vor Augen f hren Aus diesem Grund werden die Restriktionen nicht gelockert Was Spielevents z B Rundenstart Kills betrifft
356. rden Dadurch wei der Server dass man einen Befehl in die Serverconsole schreiben will Einen direkten Zugriff auf die Serverconsole hat man hingegen im Fenster des Dedica ted Servers oder per RCon Console bei einem Programm z B HLSW Hier muss kein rcon vor die Serverbefehle gesetzt werden Man ist bereits in der Serverconsole Al lerdings m ssen nun admin_cmd oder wahlweise admin_command vor die Admin Mod Befehle gestellt werden damit der Server sie als solche erkennt z B admin_cmd admin _help 6 5 Couldn t find Meta_Query Die folgende Fehlermeldung tritt auf Inttp www adminmod de 2http www adminmod org 3http forum adminmod de http www ravenousbugblatterbeast pwp blueyonder co uk Shttp www hlsw de 160 6 6 WARNING meta interface version mismatch lt amx _admin so gt Couldn t find Meta_Query Irgendwo im Netz hat mal jemand behauptet dass die amx_admin so auch in die plug ins ini von Metamod kommt Offensichtlich hat diese Information die Runde gemacht Dies Behauptung ist selbstverst ndlich Unsinn Es handelt sich um die Scripting Engine Einzige Vorraussetzung ist dass sie sich im gleichen Verzeichnis wie die admin MM _ i386 so befindet Gleiches gilt nat rlich auch f r die Windows Version 6 6 WARNING meta interface version mismatch Es ist m glich dass evtl Folgendes in den Logdateien auftaucht 09 58 53 LOGD WARNING meta interfa
357. rdlist txt mysql gt CREATE TABLE words word VARCHAR 30 NOT NULL Der Tabellenname muss in der adminmod cfg unter mysql_dbtable_words angegeben werden Es ist daher auch m glich einen anderen Namen f r die Words Tabelle zu w h len 4 10 7 Plugins Tabelle Die Plugins Tabelle wird als Ersatz f r plugin ini eingerichtet Sie besteht nur aus der Spalte plugin Eintr ge in diese Tabelle sind identisch zur plugin ini mysql gt CREATE TABLE plugins plugin VARCHAR 100 NOT NULL Der Tabellenname muss in der adminmod cfg unter mysql_dbtable_plugins angegeben werden Es ist daher auch m glich einen anderen Namen f r die Plugins Tabelle zu w hlen 4 10 8 Zugriff auf die Datenbank Nachdem die MySQL Datenbank nun mit den Tabellen ausgestattet ist muss Admin Mod noch mitgeteilt bekommen wo und wie es diese erreichen kann Dazu m ssen in der adminmod cfg folgende Variablen gesetzt sein mysql host IP Adresse Datenbankrechner meist localhost mysql user Username zum Zugriff auf die Datenbank mysql pass Passwort zum Zugriff auf die Datenbank 82 4 11 PostgreSQL Installation einrichten 4 10 9 Au ergew hnliche Einstellungen Es gibt noch Einstellungen die nur sehr selten gebraucht werden die aber erw hnt werden sollten mysql preload legt fest ob alle Spieler beim Mapwechsel in den Speicher von Admin Mod geladen werden Einstellung 1 oder aber bei jedem Spielerconnect eine Datenaban kabfrag
358. reit strtrim Die Aus f hrung der If Verzweigung erfolgt nur wenn die Variable sBotCvar genau dem String bots entspricht wobei die Gro und Kleinschreibung keine Rolle spielt Geh rt zu string inc Siehe auch strcmp strncasecmp strncmp 46nttp www adminmod de plugins php plugin plugin_bk_botmanager 343 8 Scripting 8 10 165 strcasestr strcasestr sSource sSearch sSourcel Typ String 200 sSearch Typ String 200 Die Funktion sucht einen String sSearch in einem anderen String sSource Gro und Kleinschreibung wird nicht beachtet Wird der Suchstring gefunden gibt die Funktion eine Zahl gr er als 0 zur ck Wenn der String nicht gefunden wurde gibt die Funktion eine 1 zur ck Ist der Suchstring gleich dem anderen String wird eine 0 zur ckgegeben Beispiel aus plugin chat Funktion HandleSay 57 if strcasestr MessageMode UserIndex admin_ gt 0 4 58 plugin_exec MessageMode UserIndex Data 9 return PLUGIN_HANDLED Es wird ohne Beachtung der Gro und Kleinschreibung der String admin _ im Admin Mod Befehl in MessageMode UserIndex gesucht Ist er enthalten wird der Befehl mit den Parametern Data ausgef hrt plugin _exec und die Ausf hrung beendet Geh rt zu string inc Siehe auch strcasestrx strstr 344 8 10 Funktionsreferenz 8 10 166 strcasestrx strcasestrx sSource sSearch sSourcel Typ String 200 sSearch T
359. ren da der b sartige Code schnell auffindbar ist Grunds tzlich sind uns aber keine solchen Plugins bekannt Viele Plugins brauchen aber Zugriff auf einige Dateien Somit sollte man diese Funktion aktivieren Beispiel file_access_read 1 Aktiviert den Lesezugriff auf Dateien im Modverzeichnis Siehe auch allow_ client_ exec file_access_ write 4 1 41 file_access_write file _ access _ write lt gt Mit file_ access write erlaubt man Plugins s mtliche Dateien im Modverzeichnis und sei nen Unterverzeichnissen des Servers zu beschreiben berschreiben Viele Plugins brau chen diese Funktion es sind aber b sartige Plugins nie auszuschlie en Daher ist die Funktion standardm ig auf 0 gesetzt aktiviert wird sie durch das Setzen auf 1 Aus diesem Grund ist es immer gut Plugins selber zu compilieren da der b sartige Code schnell auffindbar ist Grunds tzlich sind uns aber keine solchen Plugins bekannt Viele Plugins brauchen aber Zugriff auf einige Dateien Somit sollte man diese Funktion aktivieren Beispiel file_access_write 1 Aktiviert den Schreibzugriff auf Dateien im Modverzeichnis Siehe auch allow _client_exec file_access_read 36 4 1 Admin Mod einrichten adminmod cfg 4 1 42 help_file veraltet help_file lt string gt Wird nur ben tigt wenn man statt das Pluginsystems das alte Scriptfilesystem verwen det Diese Variable definiert wo die Datei mit den Hilfebeschreibung
360. renz 8 10 17 currentmap currentmap sMap iMaxLength sMap Typ String iMaxLength iMaxLength Typ Integer variabel theoretisch 1 2147483647 praktisch 33 Mit der Funktion currentmap wird die aktuell laufende Map sMap zuriickgegeben Beispiel aus plugin_ chat Funktion SayCurrentMap SayCurrentMap new Text MAX_TEXT_LENGTH new CurrentMap MAX_NAME_LENGTH currentmap CurrentMap MAX_NAME_LENGTH snprintf Text MAX_TEXT_LENGTH The current map is s CurrentMap say Text Die derzeit auf dem Server gespielte Map wird ermittelt Die maximale Stringlange von 33 MAX NAME LENGTH sollte v llig ausreichend sein Anschlie end wird allen Spielern mitgeteilt auf welcher Map sie gerade spielen Geh rt zu admin inc Siehe auch nextmap 213 1550 1551 1552 1553 1554 1555 8 Scripting 8 10 18 cvar_exists cvar_exists sCvar sMap Typ String variabel theoretisch 1 2147483647 praktisch 33 Die Funktion dient der Uberpriifung ob eine bestimmte Servervariable existiert U U kann man durch diese Funktion herausbekommen welche HL Modifikation lauft Beispiel aus plugin CS Funktion Get Version GetVersion if cvar_exists sv_region return V15 1 return V15 In diesem Fall wird berpr ft ob die Variable sv_region existiert Diese wurde erst in der Counter Strike Version 1 6 eingef hrt Da sich einiges im Handling zwischen CS
361. return fdiv f_sinh fNum f_cosh fNum 495 Der Tangens Hyperbolicus wird aus der Berechnung tanh x sinhe gebildet Geh rt zu math inc Siehe auch f_cosh f_coth f_tanh 240 8 10 Funktionsreferenz 8 10 58 fixed f_sqrt f_sqrt fixed fNum amp iError 0 fixed fNumStart 1 000 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 fixed fNumStart Typ Fixed 2147482 2147482 Die Funktion f_sqrt zieht aus einer gegebenen Zahl fNum die Quadratwurzel Da die Ermittlung der Quadratwurzel eine iterative Berechnung ist kann die Berechnung be schleunigt werden in dem ein sinnvoller Startwert f r fNumStart angegeben wird Stan dard 1 000 Au erdem wird ber iError ein Fehlerwert zur ckgegeben Beispiel aus math inc Funktion f_arsinh return f_In fNum f_sqrt fmul fNum fNum 1 000 Der Areasinus Hyperbolicus wird aus der Berechnung arsinh x ln z yx 1 000 gebildet Geh rt zu math inc 8 10 59 fixed f_tan f_tan fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_ tan gibt den Tangens Wert als eine Festkommazahl zur ck Beispiel fNum f_tan fNun Aus fNum wird der Tangens gebildet Geh rt zu math inc Siehe auch f_cos f_cot f_sin 241 8 Scripting 8 10 60 fixed f_tanh f_tanh fixed fNum fixed fNum Typ Fixed 2147482 2147482 Die Funktion f_tanh gibt den Tangens Hyperbolicus Wert als eine Festk
362. rhalb der Anf hrungszei chen vorhanden wird der letzte Teilstring ignoriert Geh rt zu string inc Siehe auch strgsep strgtok strgtokrest strsep strsplit strtok strtokrest 50http www adminmod de plugins php plugin plugin_gnc_filtersay 304 8 10 Funktionsreferenz 8 10 176 strgtok strgtok sSource sDelimiters sGrouping sToken iMaxLen sSource Typ String 200 sDelimiters Typ String 200 sGrouping Typ String 200 sToken Typ String 200 iMaxLen Typ Integer 0 200 Diese Funktion trennt einen String sSource am ersten im String sDelimitiers angege benen Zeichen Die Trennung wird dort nicht ausgef hrt wo die Zeichenkette von den im String sGrouping angegebenen Zeichen umschlossen wird Sollen weitere Teilstrings abgetrennt werden kann die Funktion wiederholt ausgef hrt werden Dabei darf sSour ce nicht angegeben werden Ein m glicher Reststring kann mit strgtokrest ausgegeben werden Bequemer sind die Funktionen strgsep und strgsplit f r mehrere Trennungen Die Funktion gibt 1 zur ck wenn kein Trennzeichen gefunden wurde Beispiel new sTest MAX_TEXT_LENGTH Test 127 3 Test strgtok sTest sToken1 MAX_DATA_LENGTH strgtok sToken2 MAX_DATA_LENGTH strgtokrest sToken3 MAX_DATA_LENGTH Der String sTest soll getrennt an allen Slashes getrennt werden Dabei sind mit Frage zeichen umrahmte Zeichenketten ausgenommen Die Aktio
363. rigen Userindex existiert Optionale Argumente k nnen mit _ ausgespart werden wenn nicht sie sondern die nachfolgenden ben tigt werden Beispiel aus plugin_ retribution Funktion admin _bury 499 get_userindex Data nIndex 500 playerinfo nIndex TargetName MAX_NAME_LENGTH _ _ _ nDead Der Status eines Spielers lebend oder tot l sst sich mit Admin Mod nur mit der Funk tion playerinfo ermitteln Da sie den Userindex ben tigt muss zun chst aus dem Namen Data der Userindex nIndex ermittelt werden Anschlie end kann der Status abge fragt werden TargetName ist eigentlich nicht notwendig ist jedoch eine Pflichtr ckgabe Auf die weiteren Variablen kann verzichtet werden Als Auslassungszeichen wird der Un terstrich verwendet Die Steam ID wurde ebenfalls ausgelassen Geh rt zu admin inc Siehe auch get_userindex get_ username get _userSessionID get _userWONID get_userTeam get _userAuthID 301 98 100 101 102 103 104 105 106 107 108 109 110 8 Scripting 8 10 124 playsound playsound sTarget sSound sTarget Typ String 33 sSound Typ String 100 Die Funktion spielt eine Wave Datei sSound beim angegebenen Spieler sTarget ab Der Spieler muss diese Datei bereits auf dem Rechner haben Bei der Angabe der Wa vedatei darf der Pfad nicht vergessen werden Der Pfad beginnt im sound Verzeichnis Beispiel aus plugin_ retribution Funktion PlaySoundToAll Pl
364. rintf Text MAX_TEXT_LENGTH The next map will be s NextMap say Text Die n chste Map wird ermittelt in einen Text eingebettet und im Chat an alle Spieler ausgegeben Geh rt zu admin inc Siehe auch currentmap 296 8 10 Funktionsreferenz 8 10 119 noclip noclip sPlayer iOnOff sPlayer Typ String 33 i0nOff Typ Integer 0 1 Die Funktion l sst den Spieler sPlayer durch W nde gehen wenn man als iOnOff eine 1 bergibt Mit 0 stellt man den Noclip Modus wieder aus Es wird eine Nachricht allen Spielern auf dem Server angezeigt dass der Spieler diese Fahigkeit erhalten hat Diese Nachricht kann nicht ausgeschaltet werden Beispiel aus plugin_ cheat Funktion admin_noclip if check_user strNoclipUser 1 say_command User Command Data 1 noclip strNoclipUser iNoclip else selfmessage Unrecognized player selfmessage strNoclipUser Wenn der entsprechende Spieler strNoclipUser auf dem Server ist wird die Verwendung des Noclip Modus bekannt gegeben Aber auch ohne say_ command wird eine Meldung an alle Spieler abgesetzt Da hier erheblich in die Spielmechanik eingegriffen wird kann die Meldung nicht unterdr ckt werden Anschlie end wird der Noclip Modus f r den entsprechenden Spieler ausgef hrt Ist der Spieler nicht auf dem Server wird das dem aufrufenden Admin in der Console mitgeteilt Geh rt zu admin inc 297 8 Scripting 8 10 120 numarg
365. ror matherror iError Aus fNum wird die Fakult t ermittelt und anschlie end eine m gliche Fehlermeldung mit matherror in die Logdateien geschrieben Geh rt zu math inc 8 10 47 fixed f_In f In fixed fValue amp iError 0 fixed fValue Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_In ermittelt den nat rlichen Logarithmus einer Zahl und gibt diesen als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zur ckgegeben Beispiel aus math inc Funktion f_arsinh 510 return f_In fNum f_sqrt fmul fNum fNum 1 000 Der Areasinus Hyperbolicus wird aus der Berechnung arsinh x In x yx 1 000 gebildet Geh rt zu math inc Siehe auch f_log10 f_logab 234 8 10 Funktionsreferenz 8 10 48 fixed f_log10 f_log10 fixed fValue amp iError 0 fixed fValue Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_log10 ermittelt den Zehner Logarithmus einer Zahl und gibt diesen als eine Festkommazahl zur ck Dar ber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zur ckgegeben Beispiel aus math inc Funktion f_logab 163 fBase f_log10 fBase iError 164 if iError gt 0 165 return fBase 166 Die Basis fiir den beliebigen Logarithmus wird mit dem Zehnerlogarithmus vorbereitet Ist ein Fehler aufgetreten wird die Ausf hrung abgebrochen G
366. rt F r einen Server im Internet ist diese Anzahl von Worten wenn man die Zeit ber cksichtigt die zum Connecten ben tigt wird mehr als genug Dennoch wird h ufig der Wunsch nach mehr als 40 Sounds laut Dies war dann zumeist f r LAN Server angedacht Mehr Sounds zu definieren ist auch ohne gro e Probleme m glich Dazu muss die Datei plugin sank _sound sma mit einem geeigneten Editor ge ffnet werden z B Notepad In der Zeile 58 des Quellcodes befindet sich die Zeile define MAX_KEYWORDS 40 Maximum number of keywords Diese Zeile sagt aus dass maximal 40 Schl sselworte aus der SND LIST CFG ausgelesen werden Wenn man 150 Schl sselworte auslesen will so ndert man diese Zeile in define MAX_KEYWORDS 150 Maximum number of keywords Danach muss die Datei compiliert und ggf konvertiert werden A 1 2 Probleme Sind keine Soundausgaben zu h ren wurden zumeist die Sounds nicht auf den Server kopiert bzw in ein falsches Verzeichnis Es kann auch sein dass keine res Dateien ange legt wurden Als letzte M glichkeit kommt in Betracht dass die Datei SND LIST CFG nicht an der Stelle ist an der sie erwartet wird Moddirectory z B cstrike Werden nicht alle Sounds abgespielt kann es sein dass mehr als 40 Schl sselworte ange 395 A Besondere Customplugins legt wurden jedoch vergessen wurde den Quellcode des Plugins anzupassen Alternativ wurde das Format Schl sselwort Pfad Wavdatei wav falsch eingegeben
367. rtmoney 800 admin _startmoney Im ersten Beispiel wird das Startgeld mit 8000 festgelegt w hrend im zweiten Fall das Startgeld auf die blichen 800 gesetzt wird Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin_ CS 5 6 27 admin_t admin_t lt Spieler gt Man kann mit diesem Befehl einen Spieler ins Terroristen T Team verschieben Ist er nicht tot wird er bei dieser Aktion sterben Der Spieler kann entweder ber seine ID IP den Namen oder einen eindeutigen Namensteil erkannt werden Damit der Befehl funktioniert muss allow_ client _exec aktiviert worden sein Beispiel admin _t Ich bin kein CT admin _t Big admin t STEAM_0 123456 admin t 23 156 43 12 Im ersten Beispiel wird der Spieler mit dem Namen Ich bin kein CT zu den Terro risten verschoben Im n chsten Beispiel wird der Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt zu den Terroris ten verschoben Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 128 Geh rt zu plugin_ CS Siehe auch allow _client _exec admin _ct 137 5 Standardplugins und Befehle 5 6 28 admin_tkpunish admin _tkpunish 0 1 Mit admin _tkpunish kann man die Servervariable mp_tkpunish editieren Man stellt damit ein ob ein Teamkiller in der n chsten Runde aussetzen muss oder nicht Das h lt abe
368. rvariable mp_autokick Ak tiviert man diese Funktion werden Teamkiller oder sogenannte Idler automatisch vom Server geworfen Ein Teamkill kann auch versehentlich geschehen Der Spieler wird dann aber trotzdem vom Server geworfen Man sollte besser auf TK Plugins zur ckgreifen Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin autokick 1 admin autokick 0 admin autokick Im ersten Beispiel wird der Autokick aktiviert im zweiten deaktiviert Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin _CS Siehe auch admin tkpunish admin_hpenalty 122 5 6 plugin CS 5 6 2 admin_autoteambalance admin autoteambalance 0 1 Der Befehl admin_autoteambalance verstellt im laufenden Betrieb die Servervariable mp__autoteambalance Aktiviert man diese Funktion wird beim Rundenwechsel eine etwaige berzahl durch Verschieben von Spielern ins kleinere Team ausgelichen Gibt man keine Zahl ein wird die aktuelle Einstellung angezeigt Diese Funktion steht allen Spielern offen Beispiele admin autoteambalance 1 admin autoteambalance 0 admin autoteambalance Im ersten Beispiel wird das Auto Teambalance aktiviert im zweiten deaktiviert Im letzten Beispiel wird die aktuelle Einstellung gezeigt Access Level 0 512 Geh rt zu plugin_ CS Siehe auch admin limitteams 5 6 3 admin_buytime
369. s A gesucht wird Wendet man dieses RegEx auf das obige Beispiel Admin Mod an so w rde es gefunden w hrend ein a keine berein stimmung findet Man kann es aber auch negieren also nach Zeichen suchen die nicht vorhanden sein sollen Aa Man kann aber auch Bereiche angeben z B a z oder 0 9 alle Kleinbuchstaben oder die Zahlen von 0 9 Bei ersterem werden Umlaute nicht erfasst Admin Mod benutzt Extended oder Modern Regular Expressions nach POSIX 1003 2 Diese werden jedoch case insensitive gesucht Gro und Kleinschreibung wird nicht unterschieden Weitere und ausf hrlichere Informationen zu RegEx sind im Internet zu finden 4 4 6 2 Clantag reservieren Ein Clantag ist nur ein Teil des eigenen Namens Er weist einen jedoch indirekt als Mit glied des Clans und auf dem eigenen Server auch als Admin aus Es ist dementsprechend auch nicht gewollt dass ein Nicht Mitglied so tut als ob er Mitglied bzw Admin auf dem Server ist Einerseits kann man wie im vorherigen Abschnitt 4 4 5 beschrieben den Namen jedes einzelnen Spielers inklusive Clantag reservieren Dies ist auf der einen Seite unbequem und hat zudem den Nachteil dass Kombinationen mit dem Clantag und nicht reser vierten Namen m glich sind Es lohnt sich daher f r die meisten nur den Clantag zu reservieren Zun chst sind RegEx in der adminmod cfg zu aktivieren use_ regex 1 und alle Spieler in 47 B http www regenechsen d
370. s numargs Diese Funktion wird nur F llen gebraucht wenn man die Anzahl der Argumente einer Funktion mit variabler Anzahl auslesen m chte Beispiel sum new result 0 for new i 0 i lt numargs i result getarg i return result Eine Funktion sum mit variabler Argumentanzahl wird definiert Eine For Schleife fragt die einzelnen Argumente ab getarg und addiert sie Die Summe wird zur ckge geben Die Anzahl der bergebenen Argumente wurde dabei mit numargs ermittelt Geh rt zu core inc Siehe auch numargs setarg 298 544 545 546 547 548 8 10 Funktionsreferenz 8 10 121 numtostr numtostr num str num Typ Integer 2147483648 2147483647 str Typ String 20 Die Funktion wandelt eine Ganzzahl num in einen String str um Beispiel aus plugin CS Funktion HandleRestart Vote new Timelimit MAX_NUMBER_LENGTH numtostr getvar mp_timelimit 60 timeleft 10 60 Timelimit setstrvar mp_timelimit Timelimit setstrvar sv_restartround 10 say Round restart vote succeeded Vom aktuellen Zeitlimit auf dem Server wird die Restzeit abgezogen und 10 Sekun den addiert Dieser Wert wird als neues Zeitlimit eingetragen Anschlie end wird ein Maprestart nach 10 Sekunden angefordert und der Restart allen Spielern mitgeteilt Geh rt zu adminlib inc Siehe auch strtonum 299 8 Scripting 8 10 122 playercoun
371. s gibt dabei 4 verschiedene Optionen Bei 0 wird nicht verschl sselt Bei 1 wird das unixeigene Crypt verwendet Bei 2 werden MD5 Hashes verwendet Bei 3 wird die MySQL Passwort Funktion verwendet Diese steht jedoch nur bei Verwendung einer MySQL Tabelle statt einer users ini zur Verf gung Hier gibt es das Problem dass diese Option nicht mit MySQL 4 1 und neuer funktioniert au er man setzt den gesamten SQL Server in den Kompabilit tsmodus In diesem Fall empfiehlt sich als Alternative MD5 Hashes zu verwenden Zur Erstellung der Passw rter liegen Tools den Admin Mod Distributionen bei s unter encrypt encrypt exe Bitte beachten dass der Client stets das Passwort im Klartext angeben muss Beispiel encrypt_password 2 In diesem Beispiel wandelt Admin Mod das vom Spieler bertragene Passwort in einen MD5 Hash um und vergleicht diesen mit dem Hash in der users ini Siehe auch admin ignore_immunity admin_ highlander admin_reject_msg amv_private_server 35 4 Konfiguration 4 1 40 file_access_read file_access_read lt gt Mit file_access_read erlaubt man Plugins s mtliche Dateien im Modverzeichnis und seinen Unterverzeichnissen des Servers zu lesen Viele Plugins brauchen diese Funktion es sind aber b sartige Plugins nie auszuschlie en Daher ist die Funktion standardm Big auf O gesetzt aktiviert wird sie durch das Setzen auf 1 Aus diesem Grund ist es immer gut Plugins selber zu compilie
372. s AS access FROM phpbb_users AS ul phpbb_profile_fields_data AS u2 WHERE ul user_id u2 user_id Bitte nicht vergessen nun auf die Tabelle am_ users zu verweisen mysql_dbtable_users am_users In den meisten F llen w rde ich Views vorziehen da man mit Admin Mod nur sehr eingeschr nkt auf Fehlersuche gehen kann Sie sind aber kein Allheilmittel und stehen bei lteren MySQL Versionen auch nicht zur Verf gung 4 12 3 Nutzung von phpBB2 Wie bereits eingangs erw hnt steht jedem die weitere Integration offen Auch andere CMS oder Foren sind m glich Es ist ebenfalls die Implementierung in phpBB2 m glich wenngleich ungleich schwieriger da zun chst ein Hack wie das Profile Control Center installiert werden muss Weder dessen Installation noch Konfiguration sind trivial Auch passt die Installationsanweisung teilweise nicht mehr zur aktuellen Version Abschlie end die Admin Mod SQL Abfrage f r phpBB2 mit installiertem Profile Control Center und Passwortabfrage sowie den passenden View SELECT user_password AS pass user_amaccess AS access FROM s WHERE username s OR user_steamid s CREATE VIEW am_users AS SELECT user_steamid AS nick user_password AS pass user_amaccess AS access FROM phpbb_users 8http www phpbb com community viewtopic php t 150925 89 5 Standardplugins und Befehle Bis auf wenige Ausnahmen stammen die Admin Mod Befehle die man zumeist in der Console eingibt aus den installierten P
373. s String aus Mit bool pack kann definiert werden ob der String gepackt oder ungepackt erwartet und ausgelesen wird Mangels einer Befehlszeile fiir diese Tastatureingabe ist die Funktion in Admin Mod nutzlos Geh rt zu console inc Siehe auch getchar getvalue 269 344 345 346 347 8 Scripting 8 10 91 getstrvar getstrvar sVarname sValue iMaxLength sVarname Typ String 100 sValue Typ String 200 iMaxLength Typ Integer 0 200 Mit der Funktion kann man eine Servervariable sVarname als String sValue auslesen Beispiel aus plugin base Funktion admin_ pass new sPasswd MAX_NAME_LENGTH getstrvar sv_password sPasswd MAX_NAME_LENGTH snprintf Text MAX_TEXT_LENGTH The password is s sPasswd selfmessage Text Die Servervariable sv_ password wird in sPasswd ausgelesen formatiert snprintf und anschlie end beim Spieler der den Befehl ausgef hrt hat ausgegeben Geh rt zu admin inc Siehe auch exec getvar setstrvar 270 430 431 432 433 434 435 8 10 Funktionsreferenz 8 10 92 gettarget gettarget sPlayer sTargetName iMaxLength iRange 2048 sPlayer Typ String 33 sTargetName Typ String 33 iMaxLength Typ Integer 0 33 iRange 2043 Typ Integer 0 2147483647 Mit dieser Funktion kann man ermitteln auf welchen Gegner sTargetName der Spieler sPlayer zielt Sie gibt auch den Userindex des Spieler
374. s Vor und Nach teile W hrend der SQL Server auf dem Gameserver keine Verbindungsverluste hat pro duziert 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 Wis sens 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 Kop
375. s direkt zur ck Das Argument iRange definiert die Blickweite Beispiel aus plugin_blatt_monster Funktion BBMonsterSpawn if strlen TargetName 0 gettarget UserName TargetName MAX_DATA_LENGTH if strlen TargetName 0 return PLUGIN_HANDLED Wenn kein Spieler angegeben wurde wird berpr ft auf welchen Spieler der Admin schaut Schaut er niemanden an bricht das Plugin die Ausf hrung ab Geh rt zu admin inc Siehe auch pointto 2lnttp www adminmod de plugins php plugin plugin_blatt_monster 271 144 8 Scripting 8 10 93 getteamcount getteamcount iTeam amp team Typ Integer 0 4 500 600 Die Funktion ermittelt die Anzahl der Spieler eines Teams auf Basis der Team ID iTeam Sonderteams sind kein Team 0 Spectator 500 und HLTV 600 Verschiedene Modi fikationen haben unterschiedliche Teams Mod Team 1 Team 2 Team 3 Team 4 CS Terrorist Counter Terrorist VIP TFC Team Blau Team Rot Team Gelb Team Gr n DoD Axis Allies Beispiel aus plugin_bk_botmanager Funktion addbot new iTplayers getteamcount TERROR new iCTplayers getteamcount CT Die Variablen iTplayers und iCTplayers werden deklariert und gleichzeitig mit der Spie lerzahl des jeweiligen Teams gef llt Dabei sind TERROR und CT jeweils Konstanten 1 bzw 2 Geh rt zu admin inc Siehe auch get_userTeam playerinfo 8 10 94 getvalue getva
376. s gleiche Model reserviert bekommen wird dies nicht funktionieren da nur ein Passwort dem Model zugeordnet werden kann In Mods mit wenigen Models insbesondere in Teamspielen wie Counter Strike oder Day of Defeat ist die Verwendung 78 4 8 Chat zensieren wordlist txt der models ini daher nicht sinnvoll Haben alle Admins in der users ini jedoch das gleiche Passwort bei Verwendung der Steam ID durchaus akzeptabel kann auch dem Clan ein Model zugeordnet werden Ein weiterer Punkt ist dass ein Spieler bei Auswahl eines gesch tzten Models direkt vom Server gekickt wird Dies ist eventuell nicht unbedingt im Sinne vieler Admins Weitere Dateien lassen sich mit der Include Anweisung einbinden z B include modelsadmins ini Steht dieser Eintrag in der models ini sucht Admin Mod auch noch in der modelsad mins ini im gleichen Verzeichnis nach weiteren Models vergl plugin ini nderungen an der models ini werden erst bei einem Serverneustart einem Mapwechsel oder vorzugsweise beim Ausf hren des Befehls admin reload bernommen 4 8 Chat zensieren wordlist txt Es gibt eine M glichkeit mit Admin Mod zu verhindern dass bestimmte Worte auf dem Server im Chat geschrieben werden Beschimpfungen und hnliches k nnen zensiert werden Dies geschieht ber das Plugin Retribution welches zu den Standardplugins geh rt und der wordlist txt Datei In die wordlist txt schreibt man einfach die W rter untereinander die nic
377. sLogEntry Typ String 256 Mit dieser Funktion k nnen Daten sLogEntry in die Logdateien geschrieben werden Beispiel aus plugin _ base Funktion plugin init currentmap strMap MAX_DATA_LENGTH snprintf ExecCommand MAX_DATA_LENGTH s cfg strMap if fileexists ExecCommand snprintf ExecCommand MAX_DATA_LENGTH exec s cfg strMap log ExecCommand exec ExecCommand Es wird die aktuelle Map ermittelt und berpr ft ob sich im Modverzeichnis eine Konfi guartionsdatei f r diese spezielle Map befindet Existiert die Datei wird sie ausgef hrt Dies ist eine oftmals bersehene Funktion Admin Mods die der Basisfunktionalit t des HL Servers zugeschlagen wird Unter anderem wird der ausgef hrte Befehl in die Logdateien geschrieben Zeile 874 Geh rt zu admin inc Siehe auch log_command 283 8 Scripting 8 10 106 log_command log_command sUser sCommand sDatal sUser Typ String 33 sCommand Typ String 30 sData Typ String 200 Die Funktion schreibt einen formatierten Text in die Logdateien Dazu muss der ausf h rende Admin sUser der ausgef hrte Befehl sCommand und die Parameter sData angegeben werden Die Ausgabe kann durch die Einstellung von admin quiet beeinflusst werden Beispiel aus plugin base Funktion admin _ssay 496 strstripquotes Data 497 say Data 498 log_command User Command Data Der in den Chat zu schreibende Text
378. sind ein wesentlicher Bestandteil Admin Mods Funktionen k nnen aus ande ren einfacheren Funktionen erstellt werden Viele Funktionen werden jedoch auch von Admin Mod zur Verf gung gestellt Sie werden in den sogenannten Includes vermerkt und stehen nach Einbindung selbiger f r die Programmierung zur Verf gung Es gibt aber auch Funktionen die bei bestimmten Events z B Serverbefehl oder Spie lerconnect automatisch ausgef hrt werden Dabei kann die zugeh rige Reaktion pro grammiert werden Dies sind e plugin init Serverstart bzw nach Mapwechsel vergleichbar z B in C mit main e plugin connect Spielerconnect e plugin info Spieleraktionen beim Connect aber auch Namen oder Modelwechsel 175 8 Scripting e plugin disconnect Spielerdisconnect e plugin command Serverbefehle e abgelaufener Timer e abgelaufener Vote Auf die Anwendung von Events wird im Tutorial n her eingegangen Vorgegebenen Funktionen ist ein stock in Small erstellte Funktion bzw native von Admin Mod zur Verf gung gestellte Funktion vorangestellt Sie werden nur vom Com piler eingebunden wenn sie auch ben tigt werden Beide Schl sselw rter sind nur von Interesse wenn man eigene Includes erstellen m chte Funktionen die auf Events reagie ren muss ein public vorangestellt werden da anderenfalls die Funktion zur Laufzeit nicht gefunden wird Alle weiteren Funktionen ben tigen keine besondere Kennzeich nung
379. so kann die Reaktion auf diese durch die Verwendung eines weiteren Metamod Plugins namens LogDaemon LogD oder StatsMe erweitert werden Oftmals wird zudem bersehen dass auch Admin Mod Men s besitzt die in vielen Customplugins eingesetzt werden Es ist inzwischen m glich viele nichtadminitrative Plugins zu verwenden auch wenn bei der Erstellung nie daran gedacht wurde Clanmod ist sicherlich vorzugsweise etwas f r den ClanWar Server AMXMod X etwas f r den Publicserver bei Admins die f r Abwechslung sorgen m chten Admin Mod hingegen kann f r ClanWar Server als auch Publicserver eingesetzt werden Admin Mod kann dabei fast Clanmod ersetzen bietet jedoch die Sicherheit auf Publicservern dass alles so funktioniert wie es das Gameplay des Mods mal vorgesehen hat Ich pers nlich versuche AMXMod Server zu vermeiden aber das ist mittlerweile schwer geworden Unttp logd sf net 2nttp www unitedadmins com index php p content amp content statsme 2 Historie Es ist nicht einfach etwas ber Admin Mods Historie aus den Weiten des Netzes zu erfahren Vieles blieb wohl mehr oder weniger undokumentiert Dennoch soll an dieser Stelle versucht werden die vorhandenen Informationen zu einem groben Gesamtbild zusammenzufassen Der Vater von Admin Mod ist Alfred Reynolds inzwischen bei Valve besch ftigt Anfang 2000 betreute er einige Server auf denen er nicht st ndig als Administrator unterwegs sein konnte So musste er d
380. sollte man im Webinterface nicht vergessen das Rcon Passwort unter Game Settings lt mod gt 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 verbes sern 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 Meta mod Webseite einsehen Einige Admin Mod Plugins zu ihrer Administration sind auf Adminmod de oder Adminmod org im Downloadbereich zu finden Shttp www hlstats community org http metamod org plugins html Shttp www adminmod de nttp www adminmod org 168 O 0 DONA 8 Scripting Das Scripting Kapitel ist in Form eines Tutoriums gefasst bei dem nicht bei Adam und Eva angefangen wird Auch wird das Thema nicht in allen Feinheiten vorgestellt Das w rde den Sinn eines Tutoriums verfehlen Ich bin leider nur Autodidakt und daher im Fachvokabular eines Informatikers nicht firm Letztendlich so
381. specific saved weapon restrictions found else if get_vaultdata WeaponRestrictions strKey MAX_ITEMS 1 plugin_message Default saved weapon restrictions found else plugin_message No saved weapon restrictions found Es wird nach mapspezifischen und allgemeinen Waffeneinschr nkungen gesucht Wenn der Eintrag strName in der vault ini gefunden wurde wird in der Console ausgegeben dass mapspezifische Restriktionen geladen wurden Beim Eintrag WeaponRestrictions wird ausgegeben dass die Standardeinschr nkungen geladen wurden Wurde kein Ein trag ausgemacht erscheint in der Console dass keine Restriktionen geladen wurden Geh rt zu plugin inc Siehe auch selfmessage 310 8 10 Funktionsreferenz 8 10 133 plugin_registercmd plugin _registercmd Command Function RequiredAccess HelpMessage Command Typ String 30 Function Typ String 19 RequiredAccess Typ Integer 0 2147483647 HelpMessage Typ String 150 Die Funktion dient der Registrierung eines Befehls Command der z B in der Console eingegeben wird Als Argumente miissen die aufzurufende Funktion Function und der n tige Access Level RequiredAccess angegeben werden Optional kann ein Hilfetext z B die Syntax angegeben werden der dann beim Aufruf von admin help ausgegeben wird Man verwendet diesen Befehl blicherweise nur in plugin_init Mehr zu diesem Befehl ist auch dem Tutorial zu ent
382. sst SND LIST CFG und geh rt direkt in die Mod Directory z B cstrike Die Eintr ge darin sind wie folgt angeordnet Chateingabe misc sounddatei wav Eine SND LIST CFG k nnte folgenderma en aussehen TimeStamp 20 38 December 23 2001 File created by Admin Important parameters SND_KICK 20 SND_WARN 17 SND_JOIN sank theone wav SND_EXIT misc comeagain wav SND_DELAY 0 SND_SPLIT 0 394 A 1 Plugin_sank_ sounds EXACT_MATCH 1 Word Wav combinations The symbol signifies an admin only sound woohoo misc woohoo wav misc woohoo2 wav crap misc awwcrap wav misc awwcrap2 wav misc awwman wav ha ha misc haha wav doh misc doh wav misc doh2 wav misc doh3 wav misc dohoo wav bud misc bud wav misc weis wav misc er wav ouch misc ow wav weis misc weis wav doomed misc doomed wav Die Chateingabe ha ha verursacht also das Abspielen der Datei misc haha wav Mit dem Zeichen wird ein Sound oder sogar ein Schl sselwort f r authorisierte Admins reserviert Die Pfadangabe des Verzeichnisses sound wird in der SND LIST CFG weg gelassen Weiterhin sind noch die Angaben zu SND_ JOIN Sound der beim Connecten abgespielt wird und SND_FXIT Sound der beim Verlassen eines Spielers abgespielt wird zu erw hnen Das Plugin liesst bis zu 40 Schl sselworte aus der SND LIST CFG aus Mehr Schl ssel worte zu definieren macht also keinen Sinn wenn man nicht den Quellcode des Plugins ver nde
383. start die grundlegenden Einstellungen von Admin Mod geladen Folgende Dateien sind zu kopieren Kopiere dlls admin_MM d11 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 dl1s admin_MM d11 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 dllsWmp dl1 zu gamedll addons metamod dl1s metamod d11 Wahlweise ist es mit einem neueren Steamserver auch m glich Metamod direkt ber einen Startparameter zu starten Dies umgeht auch das standige Uberschreiben der lib list gam beim Serverupdate dll addons metamod dlls metamod d1l Damit ist die Installation abgeschlossen und ein Serverrestart notwendig Ob alles funk tioniert 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 Pro blemen 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
384. stellung admin quiet abgesetzt Gedacht war der Befehl urspr nglich beim Deathmatch den Admin w hrend er den Server konfiguriert vor Angriffen zu sch tzen Der Befehl kann nat rlich auch verwendet werden um unerlaubt ins Spielgeschehen einzugreifen Auch wenn es auf den ersten Blick lustig erscheint sollte man von der Nutzung absehen Die anderen Spieler lassen sich schnell ver rgern und verlassen den Server Der Spielername muss ausgeschrieben werden Beispiele admin _godmode I am GOD on admin _godmode Kanonenfutter off Im ersten Fall wird der Spieler I am GOD in die Lage versetzt unsterblich zu sein w hrend im zweiten Fall dem Spieler Kanonenfutter diese F higkeit aberkannt wird Access Level 8192 Geh rt zu plugin_ cheat 119 5 Standardplugins und Befehle 5 5 2 admin_noclip admin _noclip lt Spielername gt lt on oder off gt Der Befehl admin_noclip erlaubt dem Admin einem Spieler die F higkeit zu geben durch W nde zu gehen Eine serverweite Meldung wird automatisch abgesetzt sobald der Befehl ausgef hrt wird Diese wird unabh ngig von der Einstellung admin_ quiet abgesetzt Eine sinnvolle Verwendung k nnte etwa bei SvenCoop denkbar sein wenn man bei spielsweise an einer bestimmten Stelle wegen eines Mapfehlers h ngen bleibt Der Befehl kann nat rlich auch verwendet werden um unerlaubt ins Spielgeschehen einzugreifen Allerdings sollte man genau wissen wo man hinl uft
385. string HLData sData MAX_DATA_LENGTH strsep sData sA MNL sV MNL sW MNL sD MNL sData MAX_DATA_LENGTH strsep sD sData MAX_DATA_LENGTH sD MNL playerinfo strtonum sA sA MNL playerinfo strtonum sV sV MNL snprintf sData MAX_DATA_LENGTH s traf s mit s s hp sA sV sW sD say sData return PLUGIN_HANDLED F r Damages sieht der String beispielhaft so aus 3 1 p228 damage 28 damage _armor 12 health 72 armor 34 188 E 8 8 Tutorial Der String beginnt mit dem Userindex des Angreifers gefolgt von dem des Opfers und der genutzten Waffe Anschlie end kommt der Lebensschaden der R stungsschaden die verbleibenden Lebenspunkte und die verbleibenden R stungspunkte des Opfers Option und Wert sind hier durch Hashes getrennt F r die Ausgabe werden in diesem Fall nur die ersten vier Werte ben tigt Zun chst wird der String an den ersten 4 Leerzeichen getrennt Zeile 17 sData wird hier als Abfalleimer wiederverwendet der Restsring wird nicht ben tigt Anschlie end wird sD am Hash getrennt Zeile 18 Auch hier ist sData wieder Abfalleimer verwendet Auf diese Weise spart man sich Speicher da keine zus tzlichen Variablen definiert werden m ssen Aus den Userindizes sollen nun Namen ermittelt werden playerinfo Dazu m ssen die Strings aber zuvor in Zahlen umgewandelt werden strtonum Der String wird dann in Zeile 23 neu zusammengesetzt und k nnte dann mit obigen LogD String folgenderma
386. string gt Definiert wo das Scriptfile zu finden ist Die Verwendung des Scriptfiles ist veraltet es wird stattdessen das Pluginsystem admin_plugin_file verwendet Siehe auch admin plugin file help_ file 57 4 Konfiguration 4 1 84 use_regex use_regex lt gt Schaltet RegEx Regular Expressions regul re Ausdr cke f r die Verwendung in der Datei users ini ein 1 bzw aus 0 RegEx erm glicht die Verwendung von Wildcards und kann z B f r die Reservierung von Clantags genutzt werden Regex ist ein m chtiges aber auch kompliziertes Tool was meist eine berarbeitung der gesamten users ini mit sich zieht Es lohnt sich aber Standardeinstellung 0 Beispiel use_regex 1 Schaltet die Verwendung von RegEx ein Das Kapitel 4 4 6 RegEx geht genauer auf das Thema ein Siehe auch admin plugin file help_ file 4 1 85 users_file users_file lt string gt Hier wird festgelegt wo sich die Datei mit den Adminrechten befindet in der Regel Addons adminmod config users ini Beispiel users file users ini Mit dieser Einstellung erwartet Admin Mod die users ini im Mod Verzeichnis Siehe auch admin plugin file admin_vault_ file ips_ file maps file models file mysql dbtable_ users nicks_ kick msg pgsql_dbtable_ users words_ file 98 4 1 Admin Mod einrichten adminmod cfg 4 1 86 vote_freq vote_freq lt gt Mit dieser Variable wird festgelegt welcher Zeitraum Sekunden
387. suaa 84 2112 Users Tabelle 22 4 bet p 000 BE wa Ke Se eee ee 84 1113 Tags Tabelle coordinada A 84 4114 Models Tabelle 24 2 cee u pb a ae Sea ah a e 85 2 115 Ips Tabele u cipreses A Bee 85 A116 Words Tables 3 00 eee bh ee eRe eS eat 85 Alir Peme Tpelle ss bar wu SR ERR we BRE 85 411 8 Zugrif auf die Datenbank 2 e sot 2 a us be au eee e 86 4 11 9 Au ergew hnliche Einstellungen 86 4 12 Beispiel Admin Mod in phpBB integrieren MySQL 86 4 121 Admin Mod einrichten 4 0 4 ve ae ze ae de 87 4 12 2 Nutzung von Views zus 4 a2 a Rd ea an anna 88 4 123 Nien von phpBB2 a zur zu ua zur aaa ai 89 Standardplugins und Befehle 90 5 1 Befehle unabh ngig von Plugins 2 nn ann 90 gt 11 OD A ae ge ere Be tr sce Meee Soe ee Be 90 5 1 2 adman C s a aaa a ee i Ae ee a ee A 91 Dla admin command o g sd e a e e ee eee eee ee oi 91 5 1 4 admin Help s sis lt sasa aaa e ae RES OEE oe BEE 92 5 1 5 admin logie s e s acte ea paa Hee EEE ae oe HE 92 5 1 6 admin Passw os ra ee a ER ee 93 SLT Admin Status es corona aa OS ED ERS OS 93 SS admu Version a e Gee hoe Re we ee a een 94 95 2 pugem OOOO s ee ee ad ar 95 Geo PIO Dase o a ee ee Ee er Er ne de 95 Dia al admin abort Vote c s ro Au we eG be a we lw awe e 95 9 3 2 SOUT bar u as a ee we sede ae a BO eg BO 96 5 3 83 admin AMI s ea ea sse EH et ee gas 97 5 4 5 9 Inhaltsverzeichnis 5 3 4 admin Is ee ee Be Oe Be ee ee ee a
388. sweise zwei Spieler Ich bin ein Idiot und Ich war ein Idiot kommt es nicht zum Vote da Admin Mod den Vote nicht eindeutig zuordnen kann Im zweiten Beispiel wird ein Vote zum Spieler mit dem Namen Ich bin ein Idiot ausge f hrt Gibt es Leerzeichen im Spielernamen muss der Text jeweils in Anf hrungszeichen gesetzt werden 113 5 Standardplugins und Befehle Weiterhin ist zu beachten dass Votes nicht beliebig kurz hintereinander durchgef hrt werden k nnen vote_freq Ohne Votum der Spieler kann man auch jemanden ber admin _ kick vom Server werfen Access Level 1 Geh rt zu plugin base Siehe auch admin kick vote_ freq 5 3 34 admin_vote_map admin_vote_map lt Map gt Dieser Befehl f hrt ein Vote aus ob zur angegebenen Map gewechselt werden soll Sollte sich die Mehrheit f r einen Wechsel entscheiden wird dieser durchgef hrt Beispiel admin _vote_map de_dust2 In diesem Beispiel wird ein Vote zur Map de_dust2 durchgef hrt Es ist bei dieser Map u erst wahrscheinlich dass sich eine Mehrheit der Spieler f r de _dust2 entscheidet und der Mapwechsel vollzogen wird Weiterhin ist zu beachten dass Votes nicht beliebig kurz hintereinander durchgef hrt werden k nnen vote_freq Ohne Votum der Spieler kann man auch die Map mit admin map wechseln Access Level 1 Geh rt zu plugin_base Siehe auch admin map vote_freq 114 5 4 plugin chat 5 3 35 admin_vsay
389. t playercount Die Funktion gibt die Anzahl der Spieler auf dem Server als Ganzzahl zur ck Beispiel aus plugin_logd_ redirect Funktion logd_ redirect Count maxplayercount Count2 playercount snprint Text MAX_TEXT_LENGTH Maxplayers i nPlayerCount i Count Count2 messageex User Text print_chat Es wird die maximal m gliche Count und die tats chliche Spielerzahl Count2 ermit telt Die Ausgabe wird formatiert und im Chat des entsprechenden Spielers ausgegeben Geh rt zu admin inc Siehe auch maxplayercount 29http www adminmod de plugins php plugin plugin_logd_redirect 300 8 10 Funktionsreferenz 8 10 123 playerinfo playerinfo iPlayerIndex sName iLength amp iUserID 0 amp iWONID 0 amp iTeam 0 amp iDead 0 sAuthID MAX_AUTHID_LENGTH iPlayerIndex Typ Integer 1 32 sName Typ String 33 iLength Typ Integer 0 33 0 amp iUserID Typ Integer 0 2147483647 amp iWONID 0 Typ Integer 0 2147483647 amp iTeam 0 Typ Integer 0 4 500 600 amp iDead 0 Typ Integer 0 1 sAuthID MAX_AUTHID_ LENGTH Typ String 39 Diese Funktion dient zur umfassenden Ermittlung diverser Spielerinformation Dies sind Name sName Session ID iUserID WONID iWONID Teamzugeh rigkeit iTeam Lebensstatus iDead und die Steam ID sAuthID Sie gibt dar ber hinaus direkt aus ob ein Spieler mit dem zugeh
390. t return abgebrochen Diese Routine verhindert dass der unzul s sige Aufruf von vote zu einer Fehlermeldung f hrt Anschlie end wird der Vote mit der Funktion vote gestartet Vote ben tigt eine Frage bis zu neun Optionen die aufzurufende Funktion und Zusatzdaten vote Restart Ja Nein HandleVsay Hier wird gefragt ob ein Restart durchgeftihrt werden soll es gibt zwei Optionen Ja oder Nein die aufzurufende Funktion hei t HandleVsay und es werden keine Zusatzdaten bertragen Es ist zu beachten dass keine Vote Dauer festgelegt werden kann Hierzu zieht Admin Mod die Variable amv vote duration heran Auch die Schriftfarbe kann nicht ver ndert werden wei Der Vote Event wird mit Ablauf des Vote Timers ausgel st public HandleVsay WinningOption HLData VoteCount UserCount if WinningOption 1 say Mehrheit wollte Restart setstrvar sv_restart 1 else say Mehrheit wollte keinen Restart 184 OONDOKRWNEHE 8 8 Tutorial Einige Variablen werden bei diesem Event mitgeliefert WinningOption gibt die Num mer der Option an die gewonnen hat Dies wird ber die Variable admin _vote_ ratio vorab festgelegt HLData gibt die Zusatzoptionen zur ck die hier nicht genutzt wur den muss konvertiert werden Au erdem bekommt man die Anzahl der Stimmen die auf die Option gefallen sind VoteCount sowie die Gesamtzahl der Stimmen User Count Die erste Option
391. t 3 verschiedene Schleifen implementiert for while und do while In Admin Mod werden vorzugsweise For Schleifen eingesetzt da auf Grund der festgelegten Feldgr e auch die Schleifenl nge bereits vorab festgelegt werden kann 1 schleife 2 new j 0 3 4 for i 0 i lt 5 i 5 j je a 6 T 8 return j 9 In diesem Fall l uft die Schleife von 0 bis 5 wobei i um eins bei jedem Schritt erh ht wird Will man die Schleife abbrechen z B wenn j 10 berschreitet muss man mit der break Anweisung arbeiten 1 schleife 2 new j 0 3 4 for i 0 i lt 5 i 5 if j gt 10 6 break 7 8 tds 9 10 173 8 Scripting 11 return j 12 y In diesem Fall bricht die For Schleife komplett ab und der Wert j wird zur ckgegeben Statt break kann auch continue verwendet werden 6 continue Mit continue wird direkt der n chste Durchlauf der Schleife initiiert ohne dass die noch ausstehenden Rechnungen hier j j i durchgef hrt werden Die gleiche Schleife kann auch mit while und do while durchgef hrt werden wobei beachtet werden muss dass do while mindestens einmal ausgef hrt wird da der Vergleich erst am Ende der Schleife durchgef hrt wird 1 schleife 2 new j 0 3 4 do i while j gt 10 5 j j i 6 7 8 return j 9 Und hier auch ein Beispiel mit while 1 schleife 2 new j 0 3
392. t Funktionen die direkt also nicht von Admin Mod von Small zur Verf gung gestellt werden Genutzt werden die Funktionen nur selten z B clamp oder random aber zur Sicherheit sollte man auch dieses Include einbinden clamp heapspace strpack deleteproperty numargs strunpack existproperty random swapchars funcidx setarg tolower getarg setproperty toupper getproperty strlen 195 8 Scripting 8 9 5 fixed inc Das Include fixed stellt die Grundrechenarten f r Festkommazahlen und einige Konver tierungsfunktionen zur Verf gung Das Include wird nur dann ben tigt wenn man mit Festkommazahlen arbeiten oder Funktionen aus dem math Include nutzen m chte fixed fdiv fixed ffract fixed fixed fixed fixedstr fixed fmul fround 8 9 6 math inc Die Nutzung von Festkommazahlen ist eigentlich nur sinnvoll wenn man auf Funktionen zur ckgreifen will die ber die einfachen Grundrechenarten hinausgehen Mit Ganzzah len Integer ist man auf die Grundrechenarten beschrankt Da eine native Implementierung der Funktionen h herer Mathematik in Admin Mod nicht in Aussicht gestellt wurde entstand dieses Include welches die Funktionen aus den Grundrechenarten nachbildet Das Include ist mehr oder weniger ein Proof of Concept hatte aber auch das Ziel z B Statistiken oder Distanzrechnungen in Admin Mod zu erm glichen Bis dato ist kein Plugin bekannt das dieses Include nutzt Die Genaui
393. t also ein INT Feld user _amaccess wird dann in pf_user_amaccess umbenannt hinzu welches nur durch die Forenadministratoren editierbar ist standardm ig sollte es O oder 1 sein s default access Leider befindet http www phpbb com 87 4 Konfiguration sich der Inhalt des Feldes nicht in phpbb_ users was die Abfrage komplexer macht Auch muss man in phpBB3 das Passwort als userspezifisches Feld anlegen VAR Feld L nge 20 user_ password wird zu pf_user_ password SELECT u2 pf_user_password AS pass u2 pf_user_amaccess AS access FROM s AS ul phpbb_profile fields _ data AS u2 WHERE ul user_id u2 user_id AND ul username s OR ul username s Nun kann jeder Nickname oder jede Steam ID in der Datenbank wiedergefunden werden Eine Steam ID als Nickname ist aber eher unerw nscht Also wird noch ein weiteres Feld ben tigt das die Steam ID beinhaltet VARCHAR L nge 31 user _steamid das vom User im Profil editierbar sein sollte SELECT u2 pf_user_password AS pass u2 pf_user_amaccess AS access FROM s AS ul phpbb_profile fields _ data AS u2 WHERE ul user_id u2 user_id AND ul username s OR u2 pf_user_steamid s Man kann die Abfrage auch beispielsweise auf bestimmte Gruppen z B Clans ein schr nken so dass ein angemeldeter normaler User ohne Passwort auf den Server kann bzw die Server clanweise aus einer Datenbank verteilt werden k nnen Man k nnte das
394. t die Funktion ab Beispiele admin fraglimit 50 admin fraglimit 0 Im ersten Beispiel wird das Frag Limit auf 50 Frags gesetzt w hrend im zweiten Beispiel die Funktion abgeschaltet wird Access Level 2 Geh rt zu plugin_base 5 3 9 admin_friendlyfire admin friendlyfire lt Wert gt Mit diesem Befehl kann man den Wert der Servervariablen mp_ friendlyfire ver ndern Exkurs Diese Variable stellt ein ob man vom eigenen Team getroffen werden kann Friendly Fire oder nicht 1 schaltet die Friendly Fire ein 0 schaltet es aus Beispiele admin friendlyfire 1 admin friendlyfire 0 Im ersten Beispiel wird Friendly Fire eingeschaltet w hrend im zweiten Beispiel die Funktion abgeschaltet wird Access Level 32 Geh rt zu plugin_ base 100 5 3 plugin base 5 3 10 admin_gravity admin gravity lt Wert gt Diesem Befehl erlaubt die Schwerkraft durch das Setzen der Servervariablen sv_ gravity zu ver ndern Exkurs Diese Variable stellt ein wie hoch die Schwerkraft auf dem Server ist berli cherweise steht diese auf 800 Beispiele admin_gravity 300 admin_gravity 800 Das erste Beispiel erlaubt weite Spr nge w hrend das zweite die Schwerkraft wieder auf normale Werte zur cksetzt Access Level 32 Geh rt zu plugin_ base 5 3 11 admin_hostname admin _hostname lt Wert gt Diesem Befehl erlaubt den Namen des Gameservers zu ver ndern Dabei wird die Ser vervariable
395. t diesem Befehl einen Spieler ins gr ne Team verschieben Ist er nicht tot wird er bei dieser Aktion sterben Der Spieler kann entweder ber seine ID IP den Namen oder einen eindeutigen Na mensteil erkannt werden Damit der Befehl funktioniert muss allow _client_exec aktiviert worden sein Beispiele admin green Gruenes Gras admin _green Big admin _green STEAM_0 123456 admin _green 23 156 43 12 Im ersten Beispiel wird der Spieler mit dem Namen Gruenes Gras ins gr ne Team 156 5 12 plugin TFC verschoben Im n chsten Beispiel wird der Spieler mit dem Namen Big oder Big im Namen sofern kein anderer Spieler Big im Namen tr gt ins gr ne Team verschoben Dies funktioniert auch mit einer ID oder IP wie in den letzten beiden Beispielen Access Level 8192 Geh rt zu plugin TFC Siehe auch admin blue admin _ red admin _ yellow allow__client_ exec 5 12 4 admin_prematch admin_prematch lt Minuten gt Der Befehl admin_prematch erlaubt es die Zeit der Aufw rmrunde vor einem Clanwar zu definieren Beispiel admin_prematch 5 Das Beispiel zeigt wie man die Zeit der Aufw rmrunde auf 5 Minuten stellt Access Level 4 Geh rt zu plugin TFC 5 12 5 admin_red admin_red lt ID IP Name gt Man kann mit diesem Befehl einen Spieler ins rote Team verschieben Ist er nicht tot wird er bei dieser Aktion sterben Der Spieler kann entweder ber seine ID IP den Namen oder einen ei
396. t geteilt und der erste Teil in den String IP geschrieben Anschlie end wird dieser an den String Name angeh ngt Geh rt zu string inc Siehe auch strgsep strgsplit strgtok strgtokrest strsep strsplit strtokrest 57http www adminmod de plugins php plugin plugin_showip 372 102 103 104 105 106 107 108 109 8 10 Funktionsreferenz 8 10 195 strtokrest strtokrest sRest iMaxLen sRest Typ String 200 iMaxLen Typ Integer 0 200 Die Funktion gibt den Reststring sRest mit der L nge iMaxLen nach Ausf hrung von strgtok aus Ist strgtok oder der Reststring leer wird 1 zur ckgegeben Beispiel aus plugin_prison2 Funktion admin _showip strtok line storedmap MAX_DATA_LENGTH strtok tmp MAX_DATA_LENGTH x strtonum tmp strtok tmp MAX_DATA_LENGTH y strtonum tmp strtok tmp MAX_DATA_LENGTH z strtonum tmp strtokrest tmp MAX_DATA_LENGTH Aus dem String line werden ber den Doppelpunkt als Trennzeichen St ck f r St ck Daten extrahiert und teilweise in Ganzzahlen x y z umgewandelt Am Ende wird der Reststring ausgelesen Geh rt zu string inc Siehe auch strgsep strgsplit strgtok strgtokrest strsep strsplit strtok 58http www adminmod de plugins php plugin plugin_prison2 373 207 208 209 210 211 212 8 Scripting 8 10 196 strtonum strtonum sStringl sStringl Typ String 200 Die F
397. t man keine Modelre servierung sollte diese Variable nicht definiert werden Beispiel models file addons adminmod config models ini Der Ort wo sich die Datei zur Modelreservierung befindet ist damit definiert Siehe auch admin plugin file admin vault_ file ips_ file maps_ file models_kick_msg mysql_dbtable_ models pgsql_dbtable_models users_ file words _ file 39 4 Konfiguration 4 1 48 models_kick_msg models_kick_msg lt string gt Definiert die Kickmessage die bei Verwendung eines reservierten Models an den Spieler bermittelt wird Standard ADMIN That model is reserved on this server Beispiel models_kick_msg So wie Du aussiehst musst Du draussen bleiben Dies gibt einen deutlichen Hinweis an den Spieler wenn er ein reserviertes Model nutzen will Siehe auch admin_reject_msg amv_prvt_kick_ message models file nicks kick msg reserve_slots_msg 4 1 49 mysql_database nur MySQL Version mysql database lt string gt Definiert die Datenbank auf dem MySQL Server in der sich die Konfigurationsdaten von Admin Mod befinden Beispiel mysql database adminmod In diesem Fall sucht Admin Mod die Informationen in der Datenbank adminmod Siehe auch mysql_dbtable_ips mysql_dbtable_ models mysql_dbtable_plugins mysql_dbtable_tags mysql_dbtable_users mysql_dbtable_words mysql_host mysql_pass mysql_ preload mysql_tags sql mysql user mysql_users_sql 40 4
398. t t gt Name Waffe Equipment Erlaubt eine Waffe oder einen Gegenstand auf Basis seines Namens player lt Name gt team lt ct t gt lt Men nummer gt lt Nummer Waffe Equipment gt Erlaubt eine Waffe oder einen Gegenstand auf Basis der Men und Auswahlnummer Beispiele admin unrestrict all Erlaubt allen Spielern beider Teams den Einkauf admin unrestrict player Full metal jacket weapons Erlaubt dem Spieler Full metal jacket den Kauf einer Waffe Die einfachen Anf h rungszeichen sind bei Spielernamen mit Leerzeichen zu verwenden Alternativ wird auch ein eindeutiger Teil des Namens akzeptiert admin unrestrict team ct menu 1 admin _unrestrict team ct menu pistols Beide Schreibweisen erlauben dem CT Team den Kauf von Pistolen admin _unrestrict Magnum Sniper Rifle admin_unrestrict awp admin_unrestrict 4 6 Alle drei Beispiele erlauben die AWP Letzteres ber die Men nummer und die Aus wahlnummer Access Level 32 Geh rt zu plugin_ CS Siehe auch admin_ restrict admin restrictmenu 5 6 30 admin_vote_restart admin_vote_restart lt Sekunden gt Dieser Befehl l st einen Vote aus ob die Servervariable mp__restartround ver ndert werden soll Entscheidet sich die Mehrheit basierend auf map_ ratio daf r wird die Map nach der festgelegten Zeit neu gestartet Beispiel admin _vote_restart 5 Entscheidet sich im Anschluss die Mehrheit der Spieler auf dem Server daf r wird die Map
399. t_vaultdata sAuthID VaultData MAX_DATA_LENGTH 0 if strcasestr VaultData llama 1 strcat VaultData llama MAX_DATA_LENGTH set_vaultdata sAuthID VaultData Es wird versucht den Schl ssel mit der Steam ID des Spielers zu finden Ist dies der Fall wird das Ergebnis in VaultData zwischengespeichert Falls das Ergebnis nicht bereits den Teilstring llama beinhaltet wird dies dem Ergebis angeh ngt strcat und zur ck in die vault ini geschrieben Geh rt zu admin inc Siehe auch get_vaultnumdata set _vaultdata set _vaultnumdata 265 8 Scripting 8 10 86 get_vaultnumdata get_vaultnumdata sKey amp iData sKey Typ String 100 amp iData Typ Integer 2147483648 2147483647 Die Funktion liest die Daten die unter dem Schl ssel sKey stehen als Ganzzahl iData aus der vault ini aus Die Daten bleiben ber einen Mapchange bzw einen Serverneu start erhalten Das Schl ssel Daten Paar wird mit set_ vaultdata oder set_ vaultnumdata angelegt Die Funktion ist ideal um pluginspezifische Einstellungen zu speichern Ist im Schl ssel ein String hinterlegt darf man die Funktion nicht anwenden Statt dessen ist get_ vaultdata zu verwenden Beispiel aus plugin_bk_botmanager Funktion addbot 150 if get_vaultnumdata BK_BM_BOTS iBots amp amp iBots lt playercount 151 return PLUGIN_CONTINUE 152 Der Schl ssel BK_BM_BOTS wird ausgelesen und die Daten in iBots geschri
400. ten anbieten Das Plugin w re bei n chster Gelegenheit ausgetauscht worden ein Prototyp existierte bereits Eine neue Admin Mod Version hat es jedoch nicht mehr gegeben 5 8 1 admin_cancelvote admin _cancelvote Dieser Befehl bricht einen eventuell laufenden Mapvote ab Die gleiche Funktion l sst sich auch ber den Chat say cancelvote ausf hren Beispiel admin _cancelvote In diesem Beispiel wird der laufende Mapvote abgebrochen Falls keiner l uft wird eine Fehlermeldung ausgegeben Access Level 2 Geh rt zu plugin_hldsld_ mapvote Siehe auch say cancelvote http sourceforge net projects halfd 3http www tcl tk 143 5 Standardplugins und Befehle 5 8 2 admin_denymap admin _denymap lt Map gt Dieser Befehl l scht alle Votes f r die angegebene Map Die gleiche Funktion l sst sich auch ber den Chat say denymap ausf hren Beispiel admin _denymap de_dust2 In diesem Beispiel werden alle Votes f r die so h ufig gespielte Map de_dust2 entfernt um zu verhindern dass zu dieser Map gewechselt wird Access Level 2 Geh rt zu plugin_hldsld_ mapvote Siehe auch say denymap 5 8 3 admin_startvote admin startvote Dieser Befehl startet einen Mapvote Die gleiche Funktion l sst sich auch ber den Chat say mapvote oder say rockthevote ausf hren Einige Einstellungen z B zur Dauer des Votes der H ufigkeit etc sind in der adminmod cfg einstellbar Beispiel admin startvote
401. ten die Vorein stellung addons adminmod config plugin ini unbedingt stehen lassen Steht in ad min plugin file ein Verzeichnis z B addons adminmod scripts durchsucht Admin Mod dieses Verzeichnis nach Dateien mit der Endung amx und versucht diese zu la den Alle nicht ben tigten Plugins sind dementsprechend zu l schen oder umzubenennen z B amx noload Beispiel admin plugin file plugin ini In diesem Fall wird die plugin ini im Mod Verzeichnis erwartet Mehr zu dieser Datei im Kapitel Plugins installieren plugin ini Siehe auch admin vault_file ips_ file maps_ file models file mysql_dbtable_ plugins pesql_dbtable_ plugins users_ file words_ file 21 4 Konfiguration 4 1 14 admin_reconnect_timeout admin reconnect_timeout lt gt Gibt die Zeit in Sekunden an wie lang das Passwort eines Spielers g ltig ist so dass er bei gleicher IP und Namen ohne Neuangabe wieder connecten kann Den Wert h her als 300 zu setzen ist ein Sicherheitsrisiko Ein Wert gr er als 0 wird f r den Mapwech sel ben tigt ansonsten werden die Admins ihre Rechte verlieren und u U vom Server geworfen Standardeinstellung 300 Beispiel admin _reconnect_timeout 60 Dies setzt die Zeit f r die R ckkehr eines Admins auf 60 Sekunden innerhalb der er sich nicht erneut authentifizieren muss Siehe auch amv_reconnect_ time 4 1 15 admin_reject_msg admin_reject_msg lt string gt Dies
402. tes wav mister wav mode wav motor wav motorpool wav move wav must wav nearest wav nice wav nine wav nineteen wav ninety wav no wav nominal wav north wav not wav november wav now wav number wav objective wav observation wav of wav officer wav ok wav on wav one wav open wav operating wav operations wav operative wav option wav order wav organic wav oscar wav out wav outside wav over wav overload wav override wav pacify wav pain wav pal wav panel wav percent wav perimeter wav permitted wav personnel wav pipe wav plant wav platform wav please wav point wav portal wav power wav presence wav press wav primary wav proceed wav processing wav progress wav proper wav propulsion wav prosecute wav protective wav push wav quantum wav quebec wav question wav questioning wav quick wav quit wav radiation wav radioactive wav rads wav rapid wav reach wav reached wav reactor wav red wav relay wav released wav remaining wav renegade wav repair wav report wav reports wav required wav B 4 HL Sounds 425 B Sonstiges 426 research wav resevoir wav resistance wav right wav rocket wav roger wav romeo wav room wav round wav run wav safe wav safety wav sargeant wav satellite wav save wav science wav scream wav screen wav search wav second wav secondary wav seconds wav sector wav secure wav secured wav security wav select wav selected wav servic
403. ts seine Rechte beh lt W hrend dieser Zeit ist es Admin Mod dann m glich ihn neu zu authentifizieren Der Maximalwert betr gt 90 Sekunden bei 0 wird die Funktion abgeschaltet Standard Sollte ein Spieler beim Mapwechsel seine Rechte verlieren oder gekickt werden so sollte versucht werden den Wert zu erh hen Beispiel amv_reconnect_time 30 Gibt Admin Mod 30 Sekunden Zeit den Spieler wieder neu zu erkennen Siehe auch admin reconnect timeout 4 1 36 amv_register_cmds amv_register_cmds lt string gt Plugins f r Metamod wie LogD oder Statsme greifen per exec admin_ command auf bestimmte Events zu Die Verwendung von admin command ist jedoch auf Grund von Sicherheitsbedenken nicht mehr gestattet Mit dieser Variablen kann man bestimmten Metamodplugins dennoch Zugriff gewahren Dazu tragt man hier den entsprechenden String ein wie logd_reg Bei LogD und Statsme ist das allerdings nicht mehr n tig da diese schon ber cksichtigt werden Bei Verwendung mehrerer Plugins sind die Registrierungsstrings durch Leerzeichen zu trennen Beispiel amv_register_cmds logd reg sm_reg sm_register Dies erlaubt LogD und Statsme alt und neue Registrierung auf admin_ command zu zugreifen Allerdings sind diese schon automatisch berticksichtigt Der Eintrag wird also nicht ben tigt Andere Metamod Plugins die diese Schnittstelle nutzen sind unbekannt 33 4 Konfiguration 4 1 37 amv_vote_duration amv_vot
404. ty 3 15 sString Das erste Beispiel erstellt unter der ID 2 die Property test_ prop mit dem Inhalt aus der Variable sString w hrend das zweite Beispiel unter der ID 3 die Property 15 mit dem gleichen Inhalt erstellt Geh rt zu core inc Siehe auch existproperty deleteproperty getproperty 334 544 545 546 547 548 8 10 Funktionsreferenz 8 10 157 setstrvar setstrvar cvar value cvar Typ String 100 value Typ String 100 Mit dieser Funktion k nnen Servervariablen cvar gesetzt werden Der Inhalt value muss als String vorliegen Eine quivalente Funktion f r Ganzzahlen existiert nicht so dass diese vorab in einen String umgewandelt werden m ssen numtostr Beispiel aus plugin CS Funktion HandleRestart Vote new Timelimit MAX_NUMBER_LENGTH numtostr getvar mp_timelimit 60 timeleft 10 60 Timelimit setstrvar mp_timelimit Timelimit setstrvar sv_restartround 10 say Round restart vote succeeded Vom aktuellen Zeitlimit auf dem Server wird die Restzeit abgezogen und 10 Sekunden addiert Dieser Wert wird in einen String umgewandelt numtostr und in die Server variable mp_timelimit als neues Zeitlimit eingetragen Anschlie end wird mit dem Setzen der Variable sv_restartround auf 10 ein Maprestart nach 10 Sekunden ange fordert und der Restart allen Spielern mitgeteilt Geh rt zu admin inc Siehe auch exec getstrvar getvar 335
405. u kein Plugin Siehe auch admin login Namenreservierung users ini 5 1 7 admin_status admin status ID Name Mit admin_ status kann der Accesslevel erfragt werden der einem von Admin Mod zugewiesen wurde Genauso kann man auch erfragen welchen Accesslevel ein anderer Spieler hat Beispiele admin status admin status Playerl Im ersten Beispiel wird der eigene Accesslevel in der Console angezeigt w hrend im zweiten Beispiel der Accesslevel des Spielers Playerl angezeigt wird Access Level 0 Geh rt zu kein Plugin Siehe auch users ini 93 5 Standardplugins und Befehle 5 1 8 admin_version admin version Wie der Name bereits erahnen l sst wird die Versionsnummer der geladenen Admin Mod Version ausgegeben Dar ber hinaus werden aber auch alle installierten Admin Mod Plugins ausgegeben Beispiele admin version Gibt die Admin Mod Version und alle installierten Plugins aus Access Level 0 Geh rt zu kein Plugin Siehe auch plugin ini 94 5 2 plugin _antiflood 5 2 plugin_antiflood Das Antiflood Plugin beinhaltet keine Befehle Es soll den Server vor Leuten sch tzen die durch das Absetzen unz hliger Befehle und Chatnachrichten versuchen den Server zum Absturz zu bringen Es ist daher wichtig dass das Plugin in der plugin ini immer an der ersten Stelle steht wird dann als erstes geladen und bei einer Anfrage ausgef hrt 5 3 plugin_base Das Base Plugin beinhaltet alle gru
406. ugin plugin_bk_cron 251 8 Scripting 8 10 72 get_timer get_timer iTimer iTimer Typ Integer 0 511 Die Funktion get_timer gibt den Status eines Timers aus l uft 1 l uft nicht 0 geh rt nicht dem Plugin 1 Beispiel if get_timer iTimer kill_timer iTimer Nur wenn der Timer mit dem Index iTimer aktuell l uft und dem eigenen Plugin geh rt wird der Timer gestoppt kill_timer Geh rt zu admin inc Siehe auch kill_timer set_ timer 252 441 442 443 444 445 8 10 Funktionsreferenz 8 10 73 get_userArmor get_userArmor sPlayer amp armor sPlayer Typ String 33 armor Typ Integer 0 2147483647 Die Funktion liefert den momentanen Wert der R stung des Spielers als Integerwert armor zur ck Beispiel aus plugin_sdal_logd_hp50 Funktion hp_ kill playerinfo iAID Attacker MAX_NAME_LENGTH _ _ iATeam playerinfo iVID Victim MAX_NAME_LENGTH _ _ iVTeam get_userHealth Attacker iAHealth get_userArmor Attacker iAArmor Die Spielernamen des Angreifers und des Opfers sowie deren Teamzugeh rigkeit werden ber playerinfo ermittelt Nicht ben tigte Variablen werden durch Unterstriche von der Verarbeitung ausgeklammert Diese Methode sollte nur auf Admin Mod 2 60 42 und neuer angewendet werden da es schon einmal Probleme mit Memory Leaks gegeben hat Anschlie end werden die verbleibenden Lebens und R stungspunkte des Angreifers zur sp t
407. ul fixed fmul fixed operi fixed oper2 fixed operl Typ Fixed 2147482 2147482 fixed oper2 Typ Fixed 2147482 2147482 Die Funktion fmul f hrt eine Multiplikation zweier Zahlen durch Theoretisch steht auch als Operatorzeichen zur Verf gung Die Erkennung durch den Compiler ist leider nicht zuverl ssig so dass die Funktion fmul empfohlen wird Beispiel aus math inc Funktion f_abs stock fixed f_abs fixed fNum if fNum gt 0 000 return fNum return fmul fNum 1 000 Ist die Zahl positiv wird sie unbearbeitet zur ckgegeben Anderenfalls wird sie mit 1 multipliziert also negiert so dass stets der Absolutwert zur ckgegeben wird Geh rt zu fixed inc Siehe auch fdiv 245 8 Scripting 8 10 66 fixed strtofix fixed strtofix sNumber string Typ String 20 Die Funktion strtofix wandelt einen String in eine Festkommazahl um Im Gegensatz zu fixedstr wird ein m gliches Vorzeichen ber cksichtigt Beispiel new sNumber MAX_NUMBER_LENGTH strcpy sNumber 1 378 MAX_NUMBER_LENGTH fNumber strtofix sNumber Es wird ein String definiert und anschlie end mittels der Funktion strepy mit 1 378 bef llt Aus diesem String sNumber wird eine Festkommazahl gebildet fNumber Geh rt zu math inc Siehe auch fixedstr fixtostr 246 8 10 Funktionsreferenz 8 10 67 fixtostr fixtostr fixed fNumber sNumber iMaxLength fixed fNumbe
408. unktion RemoveUserF lag if get_vaultdata sAuthID VaultData MAX_DATA_LENGTH 0 if strcasestr VaultData llama 1 strsubst VaultData llama MAX _DATA_LENGTH set_vaultdata sAuthID VaultData Wenn eine Eintrag mit der AuthID in der vault ini gefunden wurde wird berpr ft ob die Zeichenkette llama enthalten ist Ist dies der Fall wird im String VaultData llama durch eine leere Zeichenkette ersetzt und somit gel scht Abschlie end wird der Text zur ck in die vault ini geschrieben Geh rt zu string inc Siehe auch snprintf 371 8 Scripting 8 10 194 strtok strtok sSource sDelimiters sToken iMaxLen sSource Typ String 200 sDelimiters Typ String 200 sToken Typ String 200 iMaxLen Typ Integer 0 200 Diese Funktion trennt einen String sSource am ersten im String sDelimitiers ange gebenen Zeichen Sollen weitere Teilstrings abgetrennt werden kann die Funktion wie derholt ausgef hrt werden Dabei darf sSource nicht angegeben werden Ein m glicher Reststring kann mit strtokrest ausgegeben werden Bequemer sind die Funktionen strsep und strsplit f r mehrere Trennungen Die Funktion gibt 1 zur ck wenn kein Trennzeichen gefunden wurde Beispiel aus plugin_showip Funktion admin _showip 102 strtok UserIP i IP MAX_IPADDRESS 103 strcat Name IP MAX_NAME_LENGTH Der String UserIP i wird am ersten Doppelpunk
409. unktion wandelt eine als String vorliegende Zahl sString in eine Ganzzahl um Beispiel aus plugin_ retribution Funktion admin _execteam strbreak Data strTeam Cmd MAX_TEXT_LENGTH if strlen Cmd 0 selfmessage Unparsable format no command found return PLUGIN_HANDLED ExecTeam strtonum strTean Der String Data wird am ersten Leerzeichen in strTeam und Cmd geteilt Ist Cmd leer wird eine Fehlermeldung in der Console ausgegeben Anderenfalls wird strTeam in eine Ganzzahl umgewandelt Geh rt zu admin inc Siehe auch numtostr 374 8 10 Funktionsreferenz 8 10 197 strtrim strtrim sString sTrim iWhere 2 sStringl Typ String 200 sTrim Typ String 200 iWhere 2 Typ Integer 0 2 Die Funktion entfernt die in einem String aufgef hrten Zeichen sTrim am Anfang Where 0 am Ende Where 1 oder am Anfang und Ende Where 2 eines Strings sString Sie gibt dar ber hinaus die Anzahl der entfernten Zeichen an oder 1 wenn kein Zeichen entfernt wurde Beispiel aus plugin_bk_botmanager Funktion admin_bot_ set 266 strbreak sValue sBotCvar sValue MAX_DATA_LENGTH 267 strtrim sValue 2 268 strtrim sBotCvar 2 Der Wert sValue wird in sBotCvar und sValue aufgeteilt strbreak Beiden Variablen werden am Anfang und am Ende von m glichen Leerzeichen befreit Geh rt zu string inc Siehe auch strstripquotes 9nttp www adminmod de plugins
410. urcenschonung immer noch eingesetzt obwohl die Entwicklung am Plugin selber eingeschlafen ist Die eigent liche Entwicklung hatte sowieso seit Einf hrung der Scripte vom Plugin weggef hrt 1 3 Warum nicht ein anderes Plugin nutzen Da es neben Admin Mod noch weitere Metamod Plugins gibt stellt sich die Frage was die Unterschiede zwischen Admin Mod und beispielsweise AMXMod AMXModX oder ClanMod sind Mit letzterem wird begonnen Clanmod wurde von OLO entwickelt um eine einfache Administration ohne viele Schn rkel zu erm glichen Lange Zeit war Clanmod das ein zige Addon das sich fast komplett ber Men s bedienen lie Leider war und ist die Erweiterung von Clanmod ber das Gebotene hinaus schwer Es gibt zwar inzwischen M glichkeiten die Funktionen von Clanmod ber Plugins zu erweitern diese m ssen jedoch in C geschrieben werden und sind damit recht selten anzutreffen Das Pro gramm wurde von United Admins betreut wird aber nicht mehr weitergepflegt Bei AMXMod X handelt es sich um eine ausgereifte und oft verwendete Software die ihren Reiz aus den mannigfaltigen Funktionen und damit den unendlichen M glichkeiten zum Eingreifen ins Spielgeschehen zieht Gerade das wie in Admin Mod verwendete Small Pluginsystem erm glicht auf dem Gebiet der Fun Plugins eine riesige Auswahl Da AMXMod X eigentlich fast alle Admin Mod Funktionen aufweist k nnen Admin Mod Plugins mit relativ wenig Aufwand auf AMXMod X konvertiert we
411. urde Sollte ein Plugin zwischenzeitlich etwas in die vault ini sind alle nderungen verloren gegangen Admin Mod liest alle Eintr ge in einem Rutsch schreibt sie aber auch in einem Rutsch so dass auch alle anderen Eintr ge berschrieben werden Daher sollte nach dem Editieren schnellstm glich admin _ reload ausgef hrt werden Die plugin ini kann damit nicht neu eingelesen werden Eine nderung an der plugin ini erfordert mindestens einen Mapwechsel da nur dann die Plugins neu geladen werden Beispiel admin reload Liest die Konfigurationsdateien au er der adminmod cfg und plugin ini neu ein Access Level 4 Geh rt zu plugin _ base 5 3 23 admin_say admin say lt Nachricht gt Mit diesem Befehl kann eine Nachricht an alle Spieler auf dem Server geschrieben werden Es wird explizit vermerkt dass die Nachricht von einem Admin kommt Im Gegensatz zu admin _ssay wird der Name des Admins angegeben Beispiel admin _say Dieser Server geht offline Dies weist die Spieler im Chat darauf hin dass der Server gleich nicht mehr zur Verf gung steht Die Meldung s he z B folgenderma en aus Message from Admin WING Black Knight Dieser Server geht offline Access Level 64 Geh rt zu plugin_ base Siehe auch admin chat admin _csay admin _ dmesg admin _psay admin _ssay admin_tsay admin _vsay 108 5 3 plugin base 5 3 24 admin_servercfg admin_servercfg lt Dateiname gt Dieser Befehl erm glicht
412. userspezifische Funktion angesprochen bzw via HL Speech vox von f nf auf eins heruntergez hlt Bei 1 werden zwei Timer abgebro chen Geh rt zu admin inc Siehe auch timeleft 26http www adminmod de plugins php plugin plugin_wm_chat 286 8 10 Funktionsreferenz 8 10 109 matherror matherror iError iError Typ Integer 0 3 Wandelt einen Fehlercode aus den Festkommaberechnungen der math inc in lesbaren Text um und schreibt diesen in die Logdateien Kann in Kombination mit den meisten Festkommaberechnungen verwendet werden Beispiel new fixed fNegative 4 000 new iError 0 iError f_sqrt fNegative matherror iError Es wird versucht aus einer negativen Zahl fNegative die Wurzel zu ziehen Die Variable fNegative wird auf 1 und der Fehlercode iError auf 1 gesetzt Mit matherror wird die Meldung No valid value for function input in die Logs geschrieben Geh rt zu math inc Siehe auch f_degtorad 287 270 271 272 273 8 Scripting 8 10 110 max max a b a Typ Integer 2147483648 2147483647 b Typ Integer 2147483648 2147483647 Die Funktion liefert den Maximalwert zweier Ganzzahlen Warum nicht auf die nativen Funktionen zur ckgegriffen wird core inc entzieht sich der Kenntnis des Autors Eine vergleichbare Funktion f max gibt es auch f r Festkommazahlen Beispiel aus plugin_bk_botmanager Funktion admin_bot_ set if strcasecmp sBotCvar b
413. ussp hen k nnen Bis Admin Mod 2 50 56 war dies nur mit Linuxrechnern m glich Ein kleines Tool namens make pass das der Linuxdistribution beiliegt wird zur Erstellung der verschl sselten Passw rter verwendet Der R ckgabewert von make_pass meinpasswort ist dann die Verschl sselung f r meinpasswort Das verschl sselte Passwort muss nun statt des Klartext Passworts in die users ini aufgenommen und die Variable encrypt_ password 1 in der adminmod cfg gesetzt werden Mit der Version 2 50 56 wurde dieses Tool durch das Programm encrypt ersetzt Dieses ist nun in der Lage die alten Passw rter Parameter c bzw auch MD5 Hashes Parameter m zu produzieren Die encryt_ password Variable ist abw rtskompatibel muss jedoch auf 2 gesetzt werden wenn man MD5 Hashes nutzen m chte 64 4 4 Administratoren einrichten users ini Inzwischen gibt es das Verschl sselungstool auch mit einer graphischen Oberfl che so wohl unter Linux als auch unter Windows die auf adminmod de zum Download zur Verf gung stehen Beim Client ist nichts zu ndern Er bertr gt das Passwort weiterhin im Klartext Wenn jemand den Netzwerkverkehr mitliest kann er das Passwort immer noch das Passwort ermitteln Man sollte also ein Passwort w hlen das man ansonsten nicht verwendet Die Verschl sselung dient ausschlie lich dem Entgegenwirken eines Aussp hens lokal auf dem Server Wichtig Es ist nicht m glich verschiedene Verschl sselungsarte
414. v whatisthat wav whatsgoingon wav workingonstuff wav yessir wav youbet wav youeverseen wav survive wav targetpractice wav teamupl wav teamup2 wav thinking wav waitin wav wayout wav yougotit wav youhearthat wav youneedmedic wav youtalkmuch wav yup wav B 4 7 boid boid_alertl wav boid_alert2 wav boid_ idlel wav boid_ idle2 wav boid_idle3 wav B 4 8 bullchicken boid_alertl wav boid_alert2 wav boid_idlel wav boid_idle2 wav bc_ acid2 wav bc_ attackl wav bc_attack2 wav bc_attack3 wav bc_attackgrowl3 wav bc_ bitel wav bc_ bite2 wav bc_ bite3 wav bc_ diel wav bc_die2 wav bc_die3 wav bc_idlel wav bc__idle4 wav bc_idle5 wav bc_painl wav bc_ pain2 wav bc_pain3 wav bc_pain4 wav bc_spithitl wav bc_spithit2 wav bc_idle2 wav bc_spithit3 wav bc_idle3 wav bc_attackgrowl wav bc_attackgrowl2 wav B 4 9 buttons belll wav button6 wav lever3 wav blipl wav button7 wav lever4 wav blip2 wav button8 wav lever5 wav buttonl wav button9 wav lightswitch2 wav button10 wav latchlocked1 wav sparkl wav button11 wav latchlocked2 wav spark2 wav button2 wav latchunlockedl wav spark3 wav button3 wav latchunlocked2 wav spark4 wav button4 wav leverl wav spark5 wav button5 wav lever2 wav spark6 wav 409 B Sonstiges B 4 10 common bodydrop1 wav launch_select1 wav npc_step4 wav bodydrop2 wav launch_select2 wav null
415. v your wav B 4 16 garg 412 gar _alertl wav gar _alert2 wav gar _alert3 wav gar_attackl wav gar_attack2 wav gar_attack3 wav gar_breathel wav gar_breathe2 wav gar_breathe3 wav gar _diel wav gar _die2 wav gar _flameoffl wav gar _flameonl wav gar _flamerunl wav gar _idlel wav gar _idle2 wav gar _idle3 wav gar _idle4 wav gar _idle5 wav gar _painl wav gar _pain2 wav gar_paind wav gar _stepl wav gar _step2 wav gar _stompl wav B 4 17 gman B 4 HL Sounds gman__choosel wav gman_mumble5 wav gman__choose2 wav gman_mumble6 wav gman_mumblel wav gman_nasty wav gman_mumble2 wav gman_noreg wav gman_mumble3 wav gman_noregret wav gman_mumble4 wav gman_nowork wav gman_ offer wav gman_ otherwise wav gman_ potential gman_stepin wav gman_ suit wav gman__wise wav wav B 4 18 gonarch gon_alertl wav gon_alert2 wav gon_alert3 wav gon_attackl wav gon_attack2 wav gon_attack3 wav gon_birthl wav gon_ birth2 wav gon_ birth3 wav gon_childdiel wav gon_childdie2 wav gon_childdie3 wav gon_diel wav gon pain2 wav gon_ pain4 wav gon _pains wav gon_sackl wav gon_sack3 wav gon_stepl wav gon _step2 wav gon _step3 wav B 4 19 hassault hw_gun4 wav hw _shootl wav hw _ shoot2 wav hw _ shoot3 wav hw_spin wav hw_ spindown wav hw_spinup wav B 4 20 headcrab he_alertl wav he_alert2 wav he _attackl wav he_atta
416. ve been kicked because you are afk Man beachte auch die Anf hrungszeichen Gibt es Leerzeichen im Spielernamen oder in der Nachricht muss der Text jeweils in Anf hrungszeichen gesetzt werden Access Level 128 Geh rt zu plugin_ base Siehe auch admin vote kick 102 5 3 plugin base 5 3 13 admin_listmaps admin_listmaps Gibt die Maps im Mapcycle und die derzeitige Map in der Console aus Beispiele admin_listmaps Dies f hrt beispielsweise zu folgendem Ausdruck in der Console The maps on the mapcycle are de _dust de_dust2 de_aztec and the current map is de_dust2 Access Level 0 Geh rt zu plugin_ base 5 3 14 admin_map admin _map lt Map gt Dieser Befehl f hrt einen sofortigen Mapwechsel zur angegebenen Map durch Beispiel admin_map de_dust2 In diesem Beispiel wird mit sofortiger Wirkung zur Map de_dust2 gewechselt Access Level 2 Geh rt zu plugin_ base Siehe auch admin _vote_map 103 5 Standardplugins und Befehle 5 3 15 admin __motd admin _motd lt Spieler gt lt Text gt Dieser Befehl ffnet beim angegebenen Spieler das MotD Message of the Day Fenster das den gew nschten Text beinhaltet Dieser Befehl funktioniert nicht bei allen Mods da nur einige das MotD Fenster unterst tzen z B Counter Strike aber nicht TFC oder Ricochet Zudem ist die L nge des Textes sehr eingeschr nkt Beispiel admin _motd SucheClan lt html gt lt head gt lt meta http
417. vel wav heavystopl wav heavystop2 wav platmovel wav platstopl wav rackmovel wav rackstopl wav railmovel wav railstopl wav squeekmovel wav squeekstopl wav talkmovel wav talkmove2 wav talkstop1 wav train _usel wav trainl wav train2 wav ttrain_brakel wav ttrain_startl wav ttrainl wav ttrain2 wav ttrain3 wav ttrain4 wav ttrain6 wav ttrain7 wav B 4 30 player 418 breathel wav geigerl wav geiger2 wav geiger3 wav geiger4 wav geigerd wav geiger6 wav heartbeatl wav pl_dirt1 wav pl_dirt2 wav pl_dirt3 wav pl_dirt4 wav pl_ductl wav pl_duct2 wav pl_duct3 wav pl_duct4 wav pl_fallpainl wav pl_fallpain2 wav pl_fallpain3 wav pl_gratel wav pl_grate2 wav pl_grate3 wav pl_grate4 wav pl_jumpl wav pl_jump2 wav pl_jumpland2 wav pl_ladderl wav pl_ladder2 wav pl_ladder3 wav pl_ladder4 wav pl_metall wav pl_metal2 wav pl_metal3 wav pl_metal4 wav pl_pain2 wav pl_pain4 wav pl_pain5 wav pl_pain6 wav pl_pain7 wav pl_shelll wav pl_shell2 wav pl_shell3 wav pl_slosh1 wav pl_slosh2 wav pl_slosh3 wav pl_slosh4 wav pl_stepl wav pl_step2 wav pl_step3 wav pl_step4 wav pl_swiml wav pl_swim2 wav pl_swim3 wav pl_swim4 wav pl_tilel wav pl_tile2 wav pl_tile3 wav pl_tile4 wav pl_tile5 wav pl_wadel wav pl_wade2 wav pl_wade3 wav pl_wade4 wav sprayer wav B 4 31 roach B 4 HL Sounds rch__die wav rch_smash wav rch_ walk wav B 4 32 scientist _comm
418. x_attack2 wav x_painl wav x_shootl wav x_attack3 wav x_pain2 wav x_teleattackl wav x_ballattackl wav x_ pain3 wav x_diel wav x_rechargel wav B 4 40 zombie claw_missl wav zo alert20 wav zo_idle3 wav claw_miss2 wav zo_alert30 wav zo_idle4 wav claw_strikel wav zo_attackl wav zo_painl wav claw_strike2 wav zo_attack2 wav zo_pain2 wav claw_ strike3 wav zo_idlel wav zo_alert10 wav zo_idle2 wav 428 C Changelog 01 01 2010 Erste Fassung 10 03 2012 Links an berarbeitete Seite angepasst 429
419. xcellentteam wav excuse wav fascinating wav fellowscientist wav fine wav freeman wav freemanalive wav fusionshunt wav getoutalive wav getoutofhere wav goodpaper wav goodtoseeyou wav gottogetout wav greetings wav greetings2 wav headcrab wav heall wav heal2 wav heal3 wav heal4 wav heal5 wav hearsomething wav hello wav hello2 wav hellofreeman wav hellofromlab wav hellothere wav hideglasses wav holdstill wav hopenominal wav hopeyouknow wav howinteresting wav hungryyet wav ibelieveso wav idontthinkso wav ihearsomething wav illwait wav illwaithere wav importantspecies wav improbable wav imsure wav inconclusive wav inmesstoo wav ipredictedthis wav istay wav iwounded wav iwounded2 wav iwoundedbad wav justasked wav lambdalab wav leadtheway wav leavingme wav letmehelp wav letsgo wav letstrythis wav letyouin wav limitsok wav lowervoice wav luckwillchange wav madness wav needsleep wav neverseen wav newhevsuit wav newsample wav nodoubt wav nogrant wav noguess wav noidea wav n00 wav N000 wav noplease wav notcertain wav nothostile wav notsure wav odorfromyou wav ofcourse wav ofcoursenot wav okgetout wav okihope wav organicmatter wav overhere wav peculiarmarks wav peculiarodor wav perfectday wav perhaps wav positively wav protectme wav purereadings wav recalculate wav reconsider wav repeat wav reportflux wav rescueus wav ridiculous wav right wav rightwayout wav rumorclean wav rum
420. yp String 200 Die Funktion sucht einen String sSearch in einem anderen String sSource Gro und Kleinschreibung wird nicht beachtet Wird der Suchstring gefunden gibt die Funktion eine Zahl gr er als 0 zur ck Wenn der String nicht gefunden wurde oder leer ist gibt die Funktion eine 1 zur ck Ist der Suchstring gleich dem anderen String wird eine 0 zur ckgegeben Beispiel aus plugin_sdal_logd_hp50 Funktion HandleSay 677 if strcasestrx Data hp 1 678 if g_PlayerEnemyID UserIndex 0 amp amp IsDead 1 679 display_victim User UserIndex 680 Jelset 681 display_statistik User UserIndex 682 683 else if strcasestrx Data myhits 1 684 own_statistic User UserIndex 685 else if strcasestrx Data hits 1 686 most_damage User UserIndex 687 else if strcasestrx Data weapon 1 688 most_used_weapon User UserIndex 689 Die If Verzweigung berpr ft ob einige Begriffe in Data vorkommen oder den gleichen Inhalt haben Ist dies der Fall werden entsprechende Unterfunktionen aufgerufen die dem Spieler unterschiedliche Statistikinformationen auf dem Bildschirm darstellen Geh rt zu string inc Siehe auch strcasestr strstr 4 nttp www adminmod de plugins php plugin plugin_sdal_logd_hp50 345 8 Scripting 8 10 167 strcat strcat sDest sSource iMaxLen sDest Typ String 200 sSearch Typ String 200 iMaxLen Typ I
421. zeigen Zum Entfernen des Passworts kann auch admin _nopass verwendet werden Beispiele admin _pass Geheim admin _pass Geheimes Passwort admin _pass admin _pass none admin_pass Das erste und zweite Beispiel f hrt zu einem Setzen bzw ndern des Serverpassworts Hat das Serverpasswort ein Leerzeichen muss es wie im zweiten Beispiel in Anf hrungs zeichen gesetzt werden Im dritten und vierten Beispiel wird das Passwort entfernt Gibt man wie im f nften Beispiel gezeigt nichts weiter an wird dem Admin lediglich das aktuelle Serverpasswort angezeigt an Access Level 16 Geh rt zu plugin_ base Siehe auch admin _nopass 105 5 Standardplugins und Befehle 5 3 19 admin_pause admin_pause Dieser Befehl ist nicht mit dem Pausieren des Servers zu verwechseln Es wird lediglich den Spielern erlaubt das Spiel ber den Clientbefehl pause anzuhalten Exkurs Es wird die Servervariable pausable auf 1 gesetzt Zur cksetzen kann man dies mit dem Befehl admin unpause Beispiel admin_pause Erlaubt ALLEN Spielern das Pausieren des Spiels Access Level 8 Geh rt zu plugin_ base Siehe auch admin_unpause 5 3 20 admin_psay admin psay lt ID Namensteil IP gt lt Nachricht gt Der Befehl admin psay erm glicht es pers nliche Nachrichten an einen bestimmten Spieler zu schicken Dabei kann die ID die IP oder der Name als Empf nger gew hlt werden Es kann sich auch um einen Tei
422. zeigt dass der Spieler diese Fahigkeit erhalten hat Diese Nachricht kann nicht ausgeschaltet werden Beispiel aus plugin cheat Funktion admin_godmode if check_user strGodModeUser 1 say_command User Command Data 1 godmode strGodModeUser iGodMode else selfmessage Unrecognized player selfmessage strGodModeUser 67 F Wenn der entsprechende Spieler strGodModeUser auf dem Server ist wird die Ver wendung des Godmodes bekannt gegeben Aber auch ohne say command wird eine Meldung an alle Spieler abgesetzt Da hier erheblich in die Spielmechanik eingegriffen wird kann die Meldung nicht unterdr ckt werden Anschlie end wird der Godmode f r den entsprechenden Spieler ausgef hrt Ist der Spieler nicht auf dem Server wird das dem aufrufenden Admin in der Console mitgeteilt Geh rt zu admin inc Siehe auch noclip 275 8 Scripting 8 10 98 heapspace heapspace Die Funktion gibt die Gr e des freien Heap Speichers in Zellen zur ck Diese Funktion wird verwendet um Speicherl cher in Scripten aufzusp ren Speicherl cher sind Fehler im Programm die den verwendeten Speicher immer weiter anwachsen lassen bis keiner mehr zur Verf gung steht und die Scriptausf hrung mit dem Fehler AMX_ERR_STACKERR beendet werden muss blicherweise liegt der Fehler allerdings nicht am Script selber sondern am Wirtspro gramm Adminmod Der Stack und der Heap belegen einen gemeinsamen Speicher
423. zt die Admin Mod Version Es macht keinen Sinn diesen Wert zu ndern aber der Vollst ndigkeit halber soll die Variable hier erw hnt werden H ndische nderungen werden von Admin Mod berschrieben 4 1 21 admin_vote_autostart admin vote _autostart lt gt F r das Plugin hldsld_mapvote wird hier festgelegt ob 5 Minuten vor Mapchange au tomatisch ein Mapvote gestartet werden soll 1 aktiviert die Funktion 0 deaktiviert sie Default 0 Beispiel admin vote autostart 1 Hiermit ist der Vote vor dem Mapwechsel aktiviert worden Siehe auch admin_vote_echo admin _vote_ freq admin_vote_maxextend admin _vote_ratio amv__vote_duration kick ratio map_ ratio vote_ freq 25 4 Konfiguration 4 1 22 admin_vote_echo admin vote_echo lt gt Setzt man die Variable auf 1 wird angezeigt welcher Spieler welche Option bei einem Vote gew hlt hat Bei 0 wird nur das Endergebnis pr sentiert Beispiel admin vote autostart 1 Zeigt die Entscheidung jedes einzelnen Spielers beim Vote an Siehe auch admin _vote_autostart admin _vote_freq admin_vote_maxextend admin _vote_ ratio amv_ vote _duration kick ratio map_ ratio vote_ freq 4 1 23 admin_vote_freq admin_vote freq lt gt Hiermit wird festgelegt wieviele Sekunden nach einem Mapchange bzw dem letzten Vote mittels Plugin hldsld_ mapvote vergangen sein m ssen bis ein neuer durchgef hrt werden darf Es ist zu beachten dass dieser Wert nicht f r a
424. zu gehen und etwas scrollen um die Zeilen zu finden Wird man dennoch nicht als Admin erkannt sollte man zun chst die einzelnen Schritte 67 4 Konfiguration im Kapitel 4 4 genau durchgehen Es gibt allerdings drei besondere Punkte die zu beachten sind 1 Zun chst sollte die Variable encrypt_ password berpr ft werden Diese muss pas send zu den Passw rtern in der users ini gesetzt sein Wer keine Passwortverschl s selung verwendet soll hier 0 nehmen 2 Wenn use_ regex verwendet wird Variable auf 1 sollte man immer darauf achten dass evtl vorhandene Regex Steuerzeichen escaped werden 3 Ebenfalls d rfte es Leuten mit einem Steam Listenserver Probleme bereiten IPs oder die STEAM _ID als Authentifizierungsmerkmal in der users ini zu verwenden Es geht jedoch ber die Localhost Adresse s Kapitel 4 4 1 1 4 4 3 Rechtelevel Das Rechtesystem von Admin Mod basiert auf dem Dualsystem 2 Jedem Level ist ein Bit x zugeordnet Allerdings wird nicht das Bit angegeben sondern die sich daraus ergebene Dezimalzahl s Tabellen 4 1 und 4 2 f r die Standardplugins Beispiel 2 16 oder 2 256 Bin r entspricht 16 00001000 bzw 256 10000000 Man erkennt in der Bin rschreib weise die einzelnen gesetzten Rechtelevel Jedem einzelnen Befehl wird in den Plugins ein Rechtelevel zugewiesen den der Admin braucht um den Befehl auszuf hren Da dies ganz unterschiedliche Rechtelevel sein k nnen und man in
425. zur ckgegeben Beispiel fNum f_arcoth fNum iError matherror iError Aus fNum wird der Areatangens Hyperbolicus gebildet und anschlie end eine m gliche Fehlermeldung mit matherror in die Logdateien geschrieben Geh rt zu math inc Siehe auch f_arcosh f_arsinh f_artanh 8 10 35 fixed f_arcsin f arcsin fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_arcsin gibt den Arkussinus Wert als eine Festkommazahl zurtick Dartiber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zur ckgegeben Beispiel aus math inc Funktion f_arccos 478 return fdiv f_pi 2 000 f_arcsin fNum Der Arkuskosinus wird aus der Berechnung arccos z 5 arcsin x gebildet Geh rt zu math inc Siehe auch f_arccos f_arccot f_arctan 228 8 10 Funktionsreferenz 8 10 36 fixed f_arctan f_arctan fixed fNum amp iError 0 fixed fNum Typ Fixed 2147482 2147482 iError 0 Typ Integer 0 3 Die Funktion f_arctan gibt den Arkustangens Wert als eine Festkommazahl zur ck Dartiber hinaus wird bei einer fehlgeschlagenen Berechnung ein Fehlerwert iError zu r ckgegeben Beispiel aus math inc Funktion f_arccot 481 stock fixed f_arccot fixed fNum 482 return fdiv f_pi 2 000 f_arctan fNum 483 MT z arctan x gebildet Der Arkuskotangens wird aus der Berechnung arccot x Geh rt zu math in

Download Pdf Manuals

image

Related Search

Related Contents

取扱説明書 - エー・アンド・デイ  取扱説明書 - 三洋電機    CMX DMS 7640  申し込みはホームページからもできます。  ピュアライド UVプロテクトクリヤーシリーズ  TJÄNLIG Four à pyrolyse  Y!mobile 302HW 取扱説明書  Quick reference guide  

Copyright © All rights reserved.
Failed to retrieve file