Counterstrike:Source Server-Hacks
Configs, Preferences, Empfehlungen
Die in meiner Freizeit beim Spiel Counterstrike:Source gesammelte Erfahrung möchte ich hier zusammentragen. Durch die weitreichenden Einstellungsmöglichkeiten ermöglicht Counterstrike eine Vielzahl von Variationen, die vor allem im den Neulingen Kopfzerbrechen bereiten.
Oft gestellte Fragen sollen hier geklärt und mögliche Lösungen präsentiert und diskutiert werden. Das nötige technische Verständnis zur eigenen Anwendung dieser Lösungen liegt grundsätzlich zwischen medium und schwer. Ich gehe davon aus, dass Serveradmins ohne Probelem Config- und Textdateien editieren und mit einem FTP-Programm umgehen können. Das ganze ist wie eine FAQ aufgebaut.
Statt den Gameserver mit dem Datenschaufeln zu belasten und die Besucher nicht mti einem quälend langsamen Download zu vergraulen, sollte man eine externe Downloadressource definieren.
Hierzu genügt ein herkömmlicher Webserver, den viele Gameserveranbieter kostenfrei dazugeben. Auf Nachfrage erlauben viele auch den Download von diesen.
In der server.cfg muss zur Aktivierung einfach folgender Eintrag angepasst werden:
Doch damit ist die Arbeit noch nicht getan. Denn auf dem externen Webserver muss nun per FTP alles, was später downgeloadet werden muss gespiegelt werden. Dazu gehören mindestens folgende Ordner inklusive deren Unterordner:
Sollte eine vom Server/Clienten angeforderte Datei dort nicht existieren, bricht der Download mit einer Fehlermeldung ab und der Spieler kann nicht mehr zum Server connecten.
Es ist also wichtig den Webserver immer up-2-date zu halten, um solche Fehler zu verhindern.
Bedankt wird die zusätzliche Arbeit mit einer rasant anwachsenden Downloadgeschwindigkeit. Denn dadurch dass die Dateien nun per http übertragen werden ist eine Ausreizung der Downloadgeschwindigkeit bis ans Limit der Leitung möglich.
Folgendes in der server.cfg einfügen:
Bei tv_name kann man beliebigen Inhalt einsetzen. Dieser wird dann, falls hinzugefügt, als Name in der Favouritenliste erscheinen, als auch als Eintrag in der Spectatorlist im Spiel. Damit die Besucher auch den Port wissen, sollte dieser, am besten mit der IP, im Namen mit angegeben werden.
Jedoch sollte dieser nicht zu lang ausfallen, da ab einer bestimmten Länge dieser in der Anzeige abgeschnitten wird.
Surfmaps benötigen lediglich folgende Config-Einstellungen:
Am besten man legt diese für jede Surfmap beim Mani Admin Plugin unter cstrike/cfg/mani_admin_plugin/map_config/ an. So wird die Config automatisch beim Start der Map geladen und muss nicht bei jedem Start von einem Admin manuell ausgeführt werden.
Dazu muss man die motd.txt in dem cstrike-Verzeichnis des Servers anpassen. Dabei kann beliebiger HTML-Code verwendet werden, denn Counterstrike greift auf eine Internetexplorer-Schnittstelle zu und liefert somit einen vollwertig integrierten Browser. Auf javascript sollte jedoch verzichtet werden.
Da Counterstrike grundsätzlich nur eine geringe Größe der Datei zulässt, sollte man eine externe HTML-Datei darin laden, um diese Beschränkung auszuhebeln.
Der entsprechende Quellcode sieht dann wie folgt aus:
Dazu muss die adminlist.txt unter cstrike/cfg/mani_admin_plugin/ editiert werden.
Am Ende wird dann die STEAM_ID der Spieler eingefügt, die Adminrechte haben sollen. Diese werden in jeder neuen Zeile geschrieben. Um den Überblick nicht zu verlieren sollte man die Einträge kommentieren und den Namen des Spielers hinterschreiben.
Das Mani Admin Plugin ermöglicht das setzen von Flags. Grundsätzlich hat jeder eingetragene Admin volle Rechte. Mit diesen Flags kann man diese Rechte einschränken.
Nach einem Serverrestart sind die neuen Einstellungen dann aktiv.
Aufrufen kann man als Client das Adminmenü dann über den Befehl admin in der Konsole. Diesen kann man sich aber auch in der Userconfig binden:
Über die Taste k wird dann zukünftig das Adminmenü aufgerufen.
Die Config-Dateien, in denen Beispielsweise die Configs für die einzelnen Ligen definiert sind, müssen sich unter cstrike/cfg/ befinden. Diese können dann im Spiel über die Konsole dynamisch via adminrcon exec configdateiname.cfg aufgerufen werden, sofern man das Mani-Admin-Plugin laufen und dort die adminrcon-Rechte hat. Dies sollte jedoch ohnehin als eingetragener Admin standardmäßig der Fall sein sollte.
Um die Configs auch im WarMode oder ohne Adminrcon-Rechte starten zu können, sollten diese in das RCON-Menü vom Mani-Admin-Plugin eingefügt werden. Dazu muss die rconlist.txt unter cstrike/cfg/mani_admin_plugin/ die Befehle zum Aufruf der Serverconfigs enthalten.
Beispiel für eine Sammlung an Serverconfigs:
Die hier gelisteten Configs könnt ihr euch als Zip-Archiv gepackt herunterladen.
server_cfgs.zip
(6,57 Kbyte), Hits: 2551
Dass sie mit den aktuellen Regeln der Ligen noch konform sind, kann ich nicht garantieren, eher sollen sie als grobe Richtlinie angesehen werden, wie solche Serverconfigs aussehen können.
Zu beachten ist aber, dass nach einem Mapchange wieder die standardconfig (server.cfg) geladen wird.
Das Mani-Admin-Plugin ermöglicht seit der Version V1.1.0q die Benutzung von eigenen Skins auf den Servern. Da diese gezwungenermaßen gedownloadet werden müssen, kann man als Admin stets davon ausgehen, dass jeder auf dem Server diese auch korrekt dargestellt hat. Seit der Version V1.1.0r lässt sich zudem Einstellen, dass sich die Besucher bei Teambeitritt für einen Skin entscheiden müssen.
Es gibt bereits mehrere Skins - sowohl um Admins im Spiel zu kennzeichnen, als auch den Spielern im Spiel die Möglichkeit zu geben zwischen mehreren Skins zu wählen. Ich beschreibe hier jedoch nur die Installation der Adminskins, da die Verfahrensweise stets gleich ist und eine Nachinstallation der Playerskins keine Probleme bereiten sollte.
Admin- und Playerskinsets kann man sich unter lduke.com herunterladen.




Die Zips enthalten alle Dateien die so ein Skin beinhalten muss. Sogar auf die korrekte Ordnerstruktur wurde geachtet, so dass der Inhalt des cstrike-Ordner nur noch in den cstrike-Ordner des Servers kopiert werden muss.
Um später überprüfen zu können, ob der automatische Download vom Server zum Clienten auch funktioniert, sollte man aufs zusätzliche Kopieren ins lokale cstrike-Verzeichnis zunächst absehen.
Nun müssen die Skins noch in den jeweiligen .txt-Dateien unter cstrike/cfg/mani_admin_plugin/skins/ eingetragen werden.
In den Unterverzeichnissen admin_ct und admin_t müssen nun nochmals je eine .txt-Datei erstellt werden. Die benötigten Dateinamen haben wir oben definiert:
adminct.txt unter admin_ct und admint.txt unter admin_t
In diesen werden dann die Speicherorte der benötigten Skin-Dateien eingetragen:
Die mani_server.cfg muss nun auch angepasst werden:
Wichtig: Um einen automatischen Download zu ermöglichen muss in der server.cfg folgendes eingestellt werden.
Anschließend muss der Server neu gestartet werden und die Skins sollten einwandfrei funktionieren.
Oft gestellte Fragen sollen hier geklärt und mögliche Lösungen präsentiert und diskutiert werden. Das nötige technische Verständnis zur eigenen Anwendung dieser Lösungen liegt grundsätzlich zwischen medium und schwer. Ich gehe davon aus, dass Serveradmins ohne Probelem Config- und Textdateien editieren und mit einem FTP-Programm umgehen können. Das ganze ist wie eine FAQ aufgebaut.
Server Optimierung
Custommaps, Sounds, Skins... Wie kann ich den Download für die Besucher verkürzen?
Statt den Gameserver mit dem Datenschaufeln zu belasten und die Besucher nicht mti einem quälend langsamen Download zu vergraulen, sollte man eine externe Downloadressource definieren.
Hierzu genügt ein herkömmlicher Webserver, den viele Gameserveranbieter kostenfrei dazugeben. Auf Nachfrage erlauben viele auch den Download von diesen.
In der server.cfg muss zur Aktivierung einfach folgender Eintrag angepasst werden:
QUOTE (Inhalt der server.cfg)
sv_downloadurl "http://domain.com/cstrike"
Doch damit ist die Arbeit noch nicht getan. Denn auf dem externen Webserver muss nun per FTP alles, was später downgeloadet werden muss gespiegelt werden. Dazu gehören mindestens folgende Ordner inklusive deren Unterordner:
QUOTE
maps
materials
models
sound
materials
models
sound
Sollte eine vom Server/Clienten angeforderte Datei dort nicht existieren, bricht der Download mit einer Fehlermeldung ab und der Spieler kann nicht mehr zum Server connecten.
Es ist also wichtig den Webserver immer up-2-date zu halten, um solche Fehler zu verhindern.
Bedankt wird die zusätzliche Arbeit mit einer rasant anwachsenden Downloadgeschwindigkeit. Denn dadurch dass die Dateien nun per http übertragen werden ist eine Ausreizung der Downloadgeschwindigkeit bis ans Limit der Leitung möglich.
Server Erweiterung
Wie aktiviere ich den Source-TV-Server?
Folgendes in der server.cfg einfügen:
QUOTE
tv_enable "1"
tv_name "Antrax SrcTV 213.203.195.72:25099" // Der SrcTV Host Name
tv_delay "90" // Das Broadcastdelay in Sekunden
tv_autorecord "0" // Nimmt automatisch alles als SrcTV Demos auf
tv_maxclients "5" // bis 128 clientmaximum
tv_maxrate "3500" // Maximale SrcTV Spectator Bandbreite, 0 == unlimited
tv_name "Antrax SrcTV 213.203.195.72:25099" // Der SrcTV Host Name
tv_delay "90" // Das Broadcastdelay in Sekunden
tv_autorecord "0" // Nimmt automatisch alles als SrcTV Demos auf
tv_maxclients "5" // bis 128 clientmaximum
tv_maxrate "3500" // Maximale SrcTV Spectator Bandbreite, 0 == unlimited
Bei tv_name kann man beliebigen Inhalt einsetzen. Dieser wird dann, falls hinzugefügt, als Name in der Favouritenliste erscheinen, als auch als Eintrag in der Spectatorlist im Spiel. Damit die Besucher auch den Port wissen, sollte dieser, am besten mit der IP, im Namen mit angegeben werden.
Jedoch sollte dieser nicht zu lang ausfallen, da ab einer bestimmten Länge dieser in der Anzeige abgeschnitten wird.
Wie ermögliche ich Surfmaps auf meinem Server?
Surfmaps benötigen lediglich folgende Config-Einstellungen:
QUOTE
sv_airaccelerate 100
sv_wateraccelerate 100
sv_wateraccelerate 100
Am besten man legt diese für jede Surfmap beim Mani Admin Plugin unter cstrike/cfg/mani_admin_plugin/map_config/ an. So wird die Config automatisch beim Start der Map geladen und muss nicht bei jedem Start von einem Admin manuell ausgeführt werden.
Wie erstelle ich eine eigene motd (Message of the Day)?
Dazu muss man die motd.txt in dem cstrike-Verzeichnis des Servers anpassen. Dabei kann beliebiger HTML-Code verwendet werden, denn Counterstrike greift auf eine Internetexplorer-Schnittstelle zu und liefert somit einen vollwertig integrierten Browser. Auf javascript sollte jedoch verzichtet werden.
Da Counterstrike grundsätzlich nur eine geringe Größe der Datei zulässt, sollte man eine externe HTML-Datei darin laden, um diese Beschränkung auszuhebeln.
Der entsprechende Quellcode sieht dann wie folgt aus:
CODE
<html><head></head><body>
<iframe src="http://website.com/datei.html" style="width:100%;height:100%;border:0px;margin:0px;scrolling:yes;">
</body>
</html>
<iframe src="http://website.com/datei.html" style="width:100%;height:100%;border:0px;margin:0px;scrolling:yes;">
</body>
</html>
Server Erweiterung (Externe Tools)
Mani Admin Plugin
Wie richte ich mich und andere als Admin ein?
Dazu muss die adminlist.txt unter cstrike/cfg/mani_admin_plugin/ editiert werden.
Am Ende wird dann die STEAM_ID der Spieler eingefügt, die Adminrechte haben sollen. Diese werden in jeder neuen Zeile geschrieben. Um den Überblick nicht zu verlieren sollte man die Einträge kommentieren und den Namen des Spielers hinterschreiben.
QUOTE (Inhalt der adminlist.txt)
// (...)
// in your config.cfg file in your client installation.
//
//
STEAM_0:0:12345678 // no_comment
STEAM_0:1:87654321 il // sowieso
STEAM_0:0:87678321 c // Blub
// in your config.cfg file in your client installation.
//
//
STEAM_0:0:12345678 // no_comment
STEAM_0:1:87654321 il // sowieso
STEAM_0:0:87678321 c // Blub
Das Mani Admin Plugin ermöglicht das setzen von Flags. Grundsätzlich hat jeder eingetragene Admin volle Rechte. Mit diesen Flags kann man diese Rechte einschränken.
Nach einem Serverrestart sind die neuen Einstellungen dann aktiv.
Aufrufen kann man als Client das Adminmenü dann über den Befehl admin in der Konsole. Diesen kann man sich aber auch in der Userconfig binden:
QUOTE (Inhalt der userconfig.cfg)
bind k admin
Über die Taste k wird dann zukünftig das Adminmenü aufgerufen.
Wie lade ich verschiedene Serverconfigs im Spiel?
Die Config-Dateien, in denen Beispielsweise die Configs für die einzelnen Ligen definiert sind, müssen sich unter cstrike/cfg/ befinden. Diese können dann im Spiel über die Konsole dynamisch via adminrcon exec configdateiname.cfg aufgerufen werden, sofern man das Mani-Admin-Plugin laufen und dort die adminrcon-Rechte hat. Dies sollte jedoch ohnehin als eingetragener Admin standardmäßig der Fall sein sollte.
Um die Configs auch im WarMode oder ohne Adminrcon-Rechte starten zu können, sollten diese in das RCON-Menü vom Mani-Admin-Plugin eingefügt werden. Dazu muss die rconlist.txt unter cstrike/cfg/mani_admin_plugin/ die Befehle zum Aufruf der Serverconfigs enthalten.
Beispiel für eine Sammlung an Serverconfigs:
QUOTE (Inhalt der rconlist.txt)
"Liga HQ 1on1" exec ligahq_1on1.cfg
"Liga HQ 2on2" exec ligahq_2on2.cfg
"Liga HQ 3on3" exec ligahq_3on3.cfg
"Liga HQ 5on5" exec ligahq_5on5.cfg
"ESL 1on1" exec esl_1on1.cfg
"ESL 2on2" exec esl_2on2.cfg
"ESL 3on3" exec esl_3on3.cfg
"ESL 5on5" exec esl_5on5.cfg
"Giga Liga 1on1" exec gigaliga_1on1.cfg
"Giga Liga 2on2" exec gigaliga_2on2.cfg
"Giga Liga 5on5" exec gigaliga_5on5.cfg
"Surfmaps Config nachladen" exec surfmaps.cfg // Runs surfmaps.cfg
"Standard Config nachladen" exec server.cfg // Runs server.cfg
"SourceTV Config nachladen" exec sourcetv.cfg // Runs sourcetv.cfg
"Liga HQ 2on2" exec ligahq_2on2.cfg
"Liga HQ 3on3" exec ligahq_3on3.cfg
"Liga HQ 5on5" exec ligahq_5on5.cfg
"ESL 1on1" exec esl_1on1.cfg
"ESL 2on2" exec esl_2on2.cfg
"ESL 3on3" exec esl_3on3.cfg
"ESL 5on5" exec esl_5on5.cfg
"Giga Liga 1on1" exec gigaliga_1on1.cfg
"Giga Liga 2on2" exec gigaliga_2on2.cfg
"Giga Liga 5on5" exec gigaliga_5on5.cfg
"Surfmaps Config nachladen" exec surfmaps.cfg // Runs surfmaps.cfg
"Standard Config nachladen" exec server.cfg // Runs server.cfg
"SourceTV Config nachladen" exec sourcetv.cfg // Runs sourcetv.cfg
Die hier gelisteten Configs könnt ihr euch als Zip-Archiv gepackt herunterladen.
Dass sie mit den aktuellen Regeln der Ligen noch konform sind, kann ich nicht garantieren, eher sollen sie als grobe Richtlinie angesehen werden, wie solche Serverconfigs aussehen können.
Zu beachten ist aber, dass nach einem Mapchange wieder die standardconfig (server.cfg) geladen wird.
Wie installiere ich Skins/Models?
Das Mani-Admin-Plugin ermöglicht seit der Version V1.1.0q die Benutzung von eigenen Skins auf den Servern. Da diese gezwungenermaßen gedownloadet werden müssen, kann man als Admin stets davon ausgehen, dass jeder auf dem Server diese auch korrekt dargestellt hat. Seit der Version V1.1.0r lässt sich zudem Einstellen, dass sich die Besucher bei Teambeitritt für einen Skin entscheiden müssen.
Es gibt bereits mehrere Skins - sowohl um Admins im Spiel zu kennzeichnen, als auch den Spielern im Spiel die Möglichkeit zu geben zwischen mehreren Skins zu wählen. Ich beschreibe hier jedoch nur die Installation der Adminskins, da die Verfahrensweise stets gleich ist und eine Nachinstallation der Playerskins keine Probleme bereiten sollte.
Admin- und Playerskinsets kann man sich unter lduke.com herunterladen.
Die Zips enthalten alle Dateien die so ein Skin beinhalten muss. Sogar auf die korrekte Ordnerstruktur wurde geachtet, so dass der Inhalt des cstrike-Ordner nur noch in den cstrike-Ordner des Servers kopiert werden muss.
Um später überprüfen zu können, ob der automatische Download vom Server zum Clienten auch funktioniert, sollte man aufs zusätzliche Kopieren ins lokale cstrike-Verzeichnis zunächst absehen.
Nun müssen die Skins noch in den jeweiligen .txt-Dateien unter cstrike/cfg/mani_admin_plugin/skins/ eingetragen werden.
QUOTE (Inhalt der admin_ct.txt)
"admin_antiterror" adminct.txt
QUOTE (Inhalt der admin_t.txt)
"admin_terror" admint.txt
In den Unterverzeichnissen admin_ct und admin_t müssen nun nochmals je eine .txt-Datei erstellt werden. Die benötigten Dateinamen haben wir oben definiert:
adminct.txt unter admin_ct und admint.txt unter admin_t
In diesen werden dann die Speicherorte der benötigten Skin-Dateien eingetragen:
QUOTE (Inhalt der adminct.txt)
models/player/lduke/adminctv1/urban.mdl
models/player/lduke/adminctv1/urban.dx80.vtx
models/player/lduke/adminctv1/urban.dx90.vtx
models/player/lduke/adminctv1/urban.phy
models/player/lduke/adminctv1/urban.sw.vtx
models/player/lduke/adminctv1/urban.vvd
materials/models/player/lduke/adminctv1/ct_urban.vmt
materials/models/player/lduke/adminctv1/ct_urban.vtf
models/player/lduke/adminctv1/urban.dx80.vtx
models/player/lduke/adminctv1/urban.dx90.vtx
models/player/lduke/adminctv1/urban.phy
models/player/lduke/adminctv1/urban.sw.vtx
models/player/lduke/adminctv1/urban.vvd
materials/models/player/lduke/adminctv1/ct_urban.vmt
materials/models/player/lduke/adminctv1/ct_urban.vtf
QUOTE (Inhalt der admint.txt)
models/player/lduke/admintv1/terror.mdl
models/player/lduke/admintv1/terror.mdl
models/player/lduke/admintv1/terror.dx80.vtx
models/player/lduke/admintv1/terror.dx90.vtx
models/player/lduke/admintv1/terror.phy
models/player/lduke/admintv1/terror.sw.vtx
models/player/lduke/admintv1/terror.vvd
materials/models/player/lduke/admintv1/t_phoenix.vmt
materials/models/player/lduke/admintv1/t_phoenix.vtf
models/player/lduke/admintv1/terror.mdl
models/player/lduke/admintv1/terror.dx80.vtx
models/player/lduke/admintv1/terror.dx90.vtx
models/player/lduke/admintv1/terror.phy
models/player/lduke/admintv1/terror.sw.vtx
models/player/lduke/admintv1/terror.vvd
materials/models/player/lduke/admintv1/t_phoenix.vmt
materials/models/player/lduke/admintv1/t_phoenix.vtf
Die mani_server.cfg muss nun auch angepasst werden:
QUOTE (Inhalt der mani_server.cfg)
// **********************************************
// **********************************************
// New for V1.1.0q
// **********************************************
// **********************************************
mani_adminsetskin_anonymous 1 // When set to 0, an admin set skin shows admins name to all players, when set to 1 they do not
mani_admindropc4_anonymous 1 // When set to 0, an admin dropc4 shows admins name to all players, when set to 1 they do not
mani_skins_admin 1 // 0 = Dont allow admins to have admin skins, 1 = Allow admins to have admin skins
mani_skins_public 0 // 0 = Dont allow public skins for normal players, 1 = Allow public skins for normal players
mani_skins_force_public 0 // 0 = Dont force first skin in list for public player, 1 = Force first skin in list on public player
mani_skins_setskin_misc_only 0 // 0 = Allow all skins to be selected via ma_setskin, 1 = Only allow misc skins to be used
mani_skins_auto_download 1 // 0 = Dont auto download skin resources, 1 = auto download skin resources to clients
mani_dead_alltalk 0 // 0 = All Dead talk off, 1 = All dead talk on
// **********************************************
// **********************************************
// New for V1.1.0r
// **********************************************
// **********************************************
mani_skins_reserved 0 // 0 = Dont allow immunity players to have reserved skins, 1 = Allow immunity players to have reserved skins
mani_skins_force_choose_on_join 1 // 0 = No menu on team join, 1 = show skin chooser on team join, 2 = show settings menu on team join
mani_skins_random_bot_skins 1 // 0 = no custom skins for bots, 1 = use random public class skins on bots
// **********************************************
// New for V1.1.0q
// **********************************************
// **********************************************
mani_adminsetskin_anonymous 1 // When set to 0, an admin set skin shows admins name to all players, when set to 1 they do not
mani_admindropc4_anonymous 1 // When set to 0, an admin dropc4 shows admins name to all players, when set to 1 they do not
mani_skins_admin 1 // 0 = Dont allow admins to have admin skins, 1 = Allow admins to have admin skins
mani_skins_public 0 // 0 = Dont allow public skins for normal players, 1 = Allow public skins for normal players
mani_skins_force_public 0 // 0 = Dont force first skin in list for public player, 1 = Force first skin in list on public player
mani_skins_setskin_misc_only 0 // 0 = Allow all skins to be selected via ma_setskin, 1 = Only allow misc skins to be used
mani_skins_auto_download 1 // 0 = Dont auto download skin resources, 1 = auto download skin resources to clients
mani_dead_alltalk 0 // 0 = All Dead talk off, 1 = All dead talk on
// **********************************************
// **********************************************
// New for V1.1.0r
// **********************************************
// **********************************************
mani_skins_reserved 0 // 0 = Dont allow immunity players to have reserved skins, 1 = Allow immunity players to have reserved skins
mani_skins_force_choose_on_join 1 // 0 = No menu on team join, 1 = show skin chooser on team join, 2 = show settings menu on team join
mani_skins_random_bot_skins 1 // 0 = no custom skins for bots, 1 = use random public class skins on bots
Wichtig: Um einen automatischen Download zu ermöglichen muss in der server.cfg folgendes eingestellt werden.
QUOTE (Inhalt der server.cfg)
sv_allowdownload 1
Anschließend muss der Server neu gestartet werden und die Skins sollten einwandfrei funktionieren.




