Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorial:server:l4d_sm_fork

Geforkte "Left 4 Dead"-Server mit SourceMod

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.

Vorgehensweise

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.

Vorbereitung

  1. MetaMod: Source und SourceMod installieren und den Server einmal starten, um die Konfiguration zu testen. Nur fortfahren, wenn SourceMod funktionsfähig ist.
  2. Das Verzeichnis sourcemod, welches sich in left4dead/addons nach sourcemod01, sourcemod03 und sourcemod05 kopieren.
  3. Im Verzeichnis left4dead/addons/sourcemod/ alles außer das Verzeichnis bin löschen.
  4. Im Verzeichnis left4dead/addons/ das Verzeichnis disabled erstellen.
  5. Im Verzeichnis left4dead/addons/disabled die eine leere Datei namens metaplugins.ini erstellen.

Konfiguration

Die folgenden Konfigurationsdateien müssen erstellt werden. Alle genannten Dateien befinden sich im Verzeichnis ./left4dead/cfg.

server.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.

Konfiguration der Server-Instanzen

Jede Server-Instanz bekommt ihre individuelle Konfiguration.

fork_server01.cfg

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

fork_server02.cfg

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

fork_server03.cfg

hostname "ZombieFrag VERSUS #1"
sv_gametypes "versus"
motdfile "motd_versus1.txt
hostfile "host_versus1.txt
map l4d_vs_hospital01_apartment versus

fork_server04.cfg

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

fork_server05.cfg

hostname "ZombieFrag SURVIVAL #1"
sv_gametypes "survival"
motdfile "motd_survival1.txt
hostfile "host_survival1.txt
map l4d_sv_lighthouse survival

fork_server06.cfg

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

Server-Banner und MOTD

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

Startbefehl

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.
1) fork
2) nicht mit dem Servernamen verwechseln
3) mm_basedir „addons/disabled“; mm_pluginsfile „addons/disabled/metaplugins.ini“
4) sourcemod01, sourcemod03, sourcemod05
tutorial/server/l4d_sm_fork.txt · Zuletzt geändert: 2009/10/24 14:00 (Externe Bearbeitung)