Ein „Left 4 Dead“-Server lässt sich unter Linux in mehreren Instanzen1) starten. Der große Vortiel ist, dass Speicher gespart wird. In dieser Anleitung wird beschrieben, wie man das Forking bei L4D-Server einrichtet und SourceMod für das Forking installiert. Wir setzen einen bereits installierten Server voraus. Im Artikel Left 4 Dead Server-Anleitung wird alles genau beschrieben. In diesem Artikel geben wir ein Beispiel.
In diesem Beispiel starten wir insgesamt sechs Server-Instanzen aus einem Verzeichnis heraus:
Servername | Einstellungen |
---|---|
ZombieFrag COOP #1 | Public, eigener Banner, eigene MOTD, SourceMod |
ZombieFrag COOP #2 | sv_search_key, eigener Banner, eigene MOTD, kein SourceMod |
ZombieFrag VERSUS #1 | Public, eigener Banner, eigene MOTD, SourceMod |
ZombieFrag VERSUS #2 | sv_search_key, eigener Banner, eigene MOTD, kein SourceMod |
ZombieFrag SURVIVAL #1 | Public, eigener Banner, eigene MOTD, SourceMod |
ZombieFrag SURVIVAL #2 | sv_search_key, eigener Banner, eigene MOTD, kein SourceMod |
Alle Server sollen in der gleichen Gruppe sein, das gleiche Rcon-Passwort besitzen und die Netkonsole mit Passwort für den Daemon und alle Server-Instanzen anbieten.
Da die Server #01, #03 und #052) mit SourceMod gestartet werden sollen, ist für jeden Serverinstanz ein eigenes SourceMod-Verzeichnis notwendig. Server #02, #04 und #06 sollen ohne SourceMod für Matches gestartet werden. Mit einem Trick lässt sich das Laden von SourceMod verhindern. MetaMod: Source bleibt aber weiterhin geladen. Es wird in diesem Fall einfach ein anderes Basisverzeichnis und eine andere metaplugins.ini angegeben, bevor eine Map geladen wird. Durch die unterschiedlichen Configs, lassen sich für jeden geforkten Server unterschiedliche Einstellungen vornehmen. Die server.cfg wird als globale Konfigurationsdatei verwendet, um die anderen Konfigdateien für die Serverinstanzen übersichtlicher zu gestalten.
left4dead/addons
nach sourcemod01
, sourcemod03
und sourcemod05
kopieren.left4dead/addons/sourcemod/
alles außer das Verzeichnis bin
löschen.left4dead/addons/
das Verzeichnis disabled erstellen.left4dead/addons/disabled
die eine leere Datei namens metaplugins.ini
erstellen.
Die folgenden Konfigurationsdateien müssen erstellt werden. Alle genannten Dateien befinden sich im Verzeichnis ./left4dead/cfg
.
rcon_password "xxxxxxxx" sv_region 3 //Europa sv_contact "e-mail@domain.xy" sv_steamgroup 1234 //ID der Steam-Gruppe sv_allow_lobby_connect_only 0 //Die direkte Verbindung durch den Befehl connect wird zugelassen.
Jede Server-Instanz bekommt ihre individuelle Konfiguration.
hostname "ZombieFrag COOP #1" //Jeder Server bekommt einen eigenen Namen sv_gametypes "coop" //Nur coop wird zugelassen motdfile "motd_coop1.txt //Datei für die Message of the Day wird festgelegt hostfile "host_coop1.txt //Datei für den Server-Banner wird festgelegt map l4d_hospital01_apartment coop //Map wird geladen und der Spiel-Modus coop wird gesetzt
hostname "ZombieFrag COOP #2" sv_gametypes "coop" motdfile "motd_coop2.txt hostfile "host_coop2.txt sv_search_key "clanxy" //Der SearchKey wird für diesen Server festgelegt. mm_basedir "addons/disabled" //Basisverzeichnis von MetaMod: Source wird auf addons/disabled gesetzt. mm_pluginsfile "addons/disabled/metaplugins.ini" //Plugindatei von MetaMod: Source wird auf die leere Datei metaplugins.ini gesetzt. map l4d_hospital01_apartment coop
hostname "ZombieFrag VERSUS #1" sv_gametypes "versus" motdfile "motd_versus1.txt hostfile "host_versus1.txt map l4d_vs_hospital01_apartment versus
hostname "ZombieFrag VERSUS #2" sv_gametypes "versus" motdfile "motd_versus2.txt hostfile "host_versus2.txt sv_search_key "clanxy" mm_basedir "addons/disabled" mm_pluginsfile "addons/disabled/metaplugins.ini" map l4d_vs_hospital01_apartment versus
hostname "ZombieFrag SURVIVAL #1" sv_gametypes "survival" motdfile "motd_survival1.txt hostfile "host_survival1.txt map l4d_sv_lighthouse survival
hostname "ZombieFrag SURVIVAL #2" sv_gametypes "survival" motdfile "motd_survival2.txt hostfile "host_survival2.txt sv_search_key "clanxy" mm_basedir "addons/disabled" mm_pluginsfile "addons/disabled/metaplugins.ini" map l4d_sv_lighthouse survival
Da in diesem Beispiel für jeden Server ein anderer Banner und MOTD genutzt werden soll, müssen die einzelnen Dateien erstellt werden.
Message of the day (Beschreibung) | ||
---|---|---|
Dateiname | Inhalt | Beschreibung |
motd_coop1.txt | http://clanseite.de/l4d/motd_coop1.htm | MOTD für ZombieFrag COOP #1 |
motd_coop2.txt | http://clanseite.de/l4d/motd_coop2.htm | MOTD für ZombieFrag COOP #2 |
motd_versus1.txt | http://clanseite.de/l4d/motd_versus1.htm | MOTD für ZombieFrag VERSUS #1 |
motd_versus2.txt | http://clanseite.de/l4d/motd_versus2.htm | MOTD für ZombieFrag VERSUS #2 |
motd_survival1.txt | http://clanseite.de/l4d/motd_survival1.htm | MOTD für ZombieFrag SURVIVAL #1 |
motd_survival2.txt | http://clanseite.de/l4d/motd_survival2.htm | MOTD für ZombieFrag SURVIVAL #2 |
Server-Banner (Beschreibung) | ||
---|---|---|
Dateiname | Inhalt | Beschreibung |
host_coop1.txt | http://clanseite.de/l4d/host_coop1.htm | Banner für ZombieFrag COOP #1 |
host_coop2.txt | http://clanseite.de/l4d/host_coop2.htm | Banner für ZombieFrag COOP #2 |
host_versus1.txt | http://clanseite.de/l4d/host_versus1.htm | Banner für ZombieFrag VERSUS #1 |
host_versus2.txt | http://clanseite.de/l4d/host_versus2.htm | Banner für ZombieFrag VERSUS #2 |
host_survival1.txt | http://clanseite.de/l4d/host_survival1.htm | Banner für ZombieFrag SURVIVAL #1 |
host_survival2.txt | http://clanseite.de/l4d/host_survival2.htm | Banner für ZombieFrag SURVIVAL #2 |
Wir starten den Server direkt im Screen.
screen -mdS l4d ./srcds_run -game left4dead -ip xxx.xxx.xxx.xxx -port 27015 -netconport 90## -netconpassword "geheim" -fork 6 +exec fork_server##.cfg -autoupdate +sm_basepath addons/sourcemod##
Teil des Befehls/Parameter | Kurze erklärung |
---|---|
screen -mdS l4d | Startet den Screen l4d direkt im Hintergrund |
./srcds_run -game left4dead | Startet left4dead |
-ip xxx.xxx.xxx.xxx | Gibt die IP an |
port 27015 | Startet die erste Instanz bei 27015 und alle weiteren den nächsthöheren Port. |
-netconport 90## | Startet die Netconsole auf dem Port 9000 für den Daemon, der die anderen Instanzen startet. Port 9001 ist der erste Gameserver, der nach diesem Beispiel auf Port 27015 läuft. |
-netconpassword „geheim“ | Setzt das Passwort der Netconsole auf „geheim“. |
-fork 6 | Startet 6 Instanzen des Servers. |
+exec fork_server##.cfg | Führt für den ersten Server fork_server01.cfg aus, für den 2. fork_server02.cfg usw.. |
-autoupdate | Server wird bei einem Absturz neugestartet. |
+sm_basepath addons/sourcemod## | SourceMod bekommt für jede Instanz ein eigenes Basisverzeichnis zugewiesen. In unserem Beispiel wird sourcemod01 , sourcemod03 und sourcemod05 geladen. Durch den Trick3) in der fork_server02.cfg , fork_server04.cfg und fork_server06.cfg werden bei diesen Serverinstanzen keinerlei MetaMod: Source Plugins geladen. Im Verzeichnis sourcemod wird nur das Verzeichnis bin benötigt. Gleichzeitig muss sich das Verzeichnis bin aber auch in den anderen Basisverzeichnissen4) vorhanden sein. |