Der Server von Left 4 Dead bringt viele Neuerungen.
Generelle Neuerungen
- Es gibt eine neue Funktion für den Fernzugriff über eine Telnetverbindung. Diese Funktion kann mit “-netconport“ aktiviert werden. Bei “-netconport 9000“ läuft der Telnet-Dienst dann auf Port 9000. Diese Funktion ist standardmäßig abgeschaltet. Mehrere Telnet-Verbindungen können simultan zum Server aufgebaut werden.
- Wenn die „netconsole“ Aktiviert ist und die Option “-netconpassword xxx“ gesetzt ist, führt die „netconsole“ keine Befehle aus, bis der Befehl „PASS xxx“ eingegeben wurde.
Neuerungen unter Linux
- Der komplette Code wurde mit gcc 4.3.0 und glibc 2.8-8 kompiliert (Optimierung). Das System muss imstande sein die Binärdateien auszuführen, welche für diese glibc-Version erstellt worden sind.
- Es kann jetzt ein Server mit mehreren Instanzen gestartet werden. „srcds_run -fork 5“ startet z.B. fünf Instanzen. Um Speicher zu sparen, greifen die Prozesse auf einen gemeinsamen Speicher zu (nur lesen).
- Wenn der Modus -fork aktiviert ist, kann mit dem Raute-Zeichen (#) der Server parametriert werden. Bei “-fork 10 -netconport 90##“ würde z.B. der erste Server -netconport 9001 nutzen, der 2. -netconport 9002, usw..
Installation
Der Server für L4D wird wie alle anderen Half-Life-Dedicated-Server und Source-Dedicated-Server über das Programm steam unter Linux oder hldsupdatesool unter Windows installiert.
Unter Linux:
|
Quellcode
|
1
|
./steam -command update -game left4dead -dir ~/l4d
|
Unter Windows:
|
Quellcode
|
1
|
hldsupdatetool.exe -command update -game left4dead -dir C:\l4d
|
Der Server wird im Verzeichnis l4d installiert. Wenn also das Installationsverzeichnis
~/l4d ist, befindet sich der eigentliche Server in
~/l4d/l4d
Eine detaillierte Anleitung ist im Artikel
Dedicated Server zu finden.
Glibc
Der Server setzt unter Linux eine neuere Glibc-Version voraus. Mit der Eingabe des Befehls /lib/libc.so.6 wird die aktuelle Version angezeigt. Der L4D-Server benötigt mindestens die Version 2.5.
Debian
Durch den Paketmanager ist die Installation der neuen Version recht einfach. Man hat die Wahl entweder mit der ganzen Distribution auf einen unstabilen Zweig zu wechseln oder wahlweise die glibc (inkl. Abhängigkeiten) zu aktualisieren.
Sollte es sich um ein Produktivsystem handeln(1)) ist von einem Update abzuraten. Wir übernehmen keine Garantie, dass alles Reibungslos klappt. Zusätzlich gibt es noch die Möglichkeit für Debian einfach eine Chroot-Umgebung einzurichten. Die Vorgehensweise wird im Artikel
Chroot mit Debian beschrieben.
Upgrade der Distribution
Zuerst muss die Datei
/etc/apt/sources.list bearbeitet werden. Da
lenny jetzt stable ist, entfällt bei den meisten diese nötige Änderung. Sollte noch
etch drin stehen, kann das durch
stable oder
lenny ersetzt werden. Beide Varianten haben ihre Vor- und Nachteile.
|
Quellcode
|
1
|
nano -w /etc/apt/sources.list
|
Danach muss ein Update der Paketliste gezogen werden. Hier werden noch keine Updates installiert:
|
Quellcode
|
1
|
apt-get update
|
Jetzt wird ein Upgrade der Pakete und der Distribution gestartet:
|
Quellcode
|
1
|
apt-get upgrade && apt-get dist-upgrade
|
Gemischtes System
Es ist auch möglich ein gemischtes System aus stable, testing und unstable zu verwalten. Dieser Weg ist etwas eleganter als die beiden anderen Methoden. Mit dem
Pinning von Apt-Get besteht die Möglichkeit Pakete unterschiedlicher Zweige zu installieren. Abhängigkeiten werden weiterhin erfüllt. Zuerst muss die Datei
/etc/apt/apt.conf.d/70debconf erweitert werden oder wahlweise kann auch die Datei /etc/apt/apt.conf erstellt werden. Folgender Inhalt muss hinzugefügt werden:
|
Quellcode
|
1
2
|
APT::Default-Release "stable";
APT::Cache-Limit "18388608";
|
Als Standard wird bei dieser Einstellung für apt-get der stabile Zweig
(2)) verwendet. Der Cache-Limit ist erhöht worden, da beide Paketlisten der Zweige lenny und etch zu groß für die Standardeinstellung sind.
Danach muss ein weiterer Debian-Mirror für Debian Lenny zur Datei /etc/apt/sources.list hinzugefügt:
|
Quellcode
|
1
|
deb ftp://ftp.debian.org/debian lenny main
|
Mittels
apt-get update können die Paketlisten neu geladen werden und zuletzt wird dann glibc installiert:
|
Quellcode
|
1
|
apt-get -t testing install libc6
|
Zuvor kann mit dem Befehl
|
Quellcode
|
1
|
apt-get -s -t testing install libc6
|
überprüft werden, welche Pakete durch Abhängigkeiten betroffen sind und aktualisiert würden.
Upgrade der Glibc (unkonventionell)
Dieser Weg sollte nicht angewandt werden, da es ansonsten Probleme mit
anderen Paketen geben wird, die im Nachhinein installiert werden sollen.
Zuerst muss die Datei
/etc/apt/sources.list bearbeitet werden. Bei den meisten steht entweder
stable oder
etch drin. Das muss durch
lenny ersetzt werden.
|
Quellcode
|
1
|
nano -w /etc/apt/sources.list
|
Danach muss ein Update der Paketliste gezogen werden. Hier werden noch keine Updates installiert:
|
Quellcode
|
1
|
apt-get update
|
Ist man sich nicht sicher, kann man noch mit folgendem Befehl die Änderungen der Pakete vorher anzeigen lassen:
|
Quellcode
|
1
|
apt-get -s install libc6
|
Meistens sind auch andere Pakete betroffen, die ein neues Update bekommen. Bei dem Update kommen Abfragen um bestimmte Dateien zu ersetzen, meist ist es besser die Originaldateien zu belassen. Wenn man sich wirklich sicher ist, kann man aber auch die neue Konfigurationsdateien aus dem neuen betroffenen Paket installieren (Apache ist auch dabei). Um das Paket
libc6 zu aktualisieren führt man folgenden Befehl aus:
|
Quellcode
|
1
|
apt-get install libc6
|
Es wird abgefragt werden, ob die Pakete heruntergeladen werden sollen. Es muss mit Y oder J bestätigt werden. Nach dem Update kann mittels
/lib/libc.so.6 kann die aktuelle Version der Glibc nochmals abgefragt werden.
Der letzte, eigentlich wichtigste Schritt, ist es die Quellen im Paket
/etc/apt/sources.list wieder auf etch zu setzen. Dadurch werden bei zukünftigen Updates andere Paket nicht betroffen sein. Man kann dann zur Kontrolle nochmals ein mittels
apt-get update die Paketlisten vom stabilen Zweig
etch herunterladen. Führt man ein Upgrade mittels
apt-get upgrade durch, bleiben
libc6 und die anderen betroffenen Pakete unberührt, bis es entweder in diesem Zweig eine neuere Version als im Unstable-Zweig gibt (unwahrscheinlich) oder wenn manuell nochmals die Quellen gewechselt worden sind und ein Paket mit einer neueren Version vorhanden ist.
Konfiguration
autoexec.cfg
In der autoexec.cfg, die nach dem Serverstart vor der ersten Map geladen wird, können Einstellungen vorgenommen werden, die erst nach einem Mapchange übernommen werden
(3)). Desweiteren kann man dort Einstellungen vornehmen, die während der Laufzeit von Außen nicht geändert werden. Mit einer vernünftigen Aufteilung lässt sich auch die server.cfg übersichtlich halten.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
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
37
38
39
40
|
// log on
//
// Das Logging ist standardmaessig aktiviert
// falls erwünscht, kann es mit log off hier deaktiviert werden
// logaddress_add ip:port
//
// wird fuer HLstatsx benoetigt
// sv_pure 0
//
// Aktiviert den sv_pure Modus (0 / 1 / 2)
// leider funktioniert dieser aus konzeptionellen Gruenden nicht richtig
// Es werden nicht alle Dateien ueberprueft
// sv_allow_wait_command 1
//
// mit 0 wird der clientseitige Wait-Befehl unterbunden
// es kann helfen bestimmte clientseitige Scripts zu unterbinden
// motdfile "motd.txt"
//
// Definiert die Datei fuer die MOTD (Message of the Day)
// motd_enabled 1
//
// Aktiviert MOTD
// hostfile "host.txt"
//
// Definiert die Datei fuer die den Host-Banner
// sv_region 255
//
// Gibt an in welchen Teil der Welt man sich befindet.
// 3 = Europa
// Kann angegeben werden, um den Spielern die Kontaktaufnahme zum Admin zu ermoeglichen.
//
// sv_contact ""
|
server.cfg
Bei Left 4 Dead sind nur sehr wenige Einstellungen nötig. Die server.cfg sollte möglichst klein gehalten werden. Es sind sehr viele Beispiele im Netz zu finden, die schlichtweg falsch sind. Es wurden seit der Demo
Befehle und
Konsolen-Variablen geändert, hinzugefügt oder entfernt. Die
Konsolen-Variablen sv_cheats muss komplett aus der server.cfg entfernt werden, da ansonsten Probleme im Spiel auftreten können. Bestimmte Einstellungen können durch das Matchmaking-System anscheinend nicht mehr richtig gesetzt werden. Hier ist ein Beispiel für eine komplette server.cfg:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
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
37
38
39
40
41
42
43
44
45
46
47
48
49
|
hostname "L4D by Left4.de"
// Servernamen festlegen
rcon_password "xxxxxxxx"
// Rcon-Passwort setzen
// sv_gametypes "coop,versus,survival"
//
// Mit der cvar sv_gametypes wird festgelegt welche Spiel-Typen zulaessig sind.
//
// coop = Kampagne mit 4 Spielern
// versus = Versus-Modus mit 8 Spielern
// survival = Survival-Mods mit 4 Spielern
// sv_search_key ""
//
// Setzt einen Schluesselwort, mit dem der Spieler als Lobbyanfuehrer
// automatisch mit den anderen Spielern aus der Lobby auf den Server mit diesem Schluessel joint.
// Der Server muss zum Zeitpunkt der Suche leer sein und beim Master-Server eingetragen sein.
// sv_steamgroup ""
//
// Der Server wird mit dieser Cvar einer Steam-Gruppe zugeordnet. Die ID, bestehend aus Zahlen,
// kann im Administrationspannel der Steam-Gruppe eingesehen werden.
// Spieler, die sich in der gleichen Steam-Gruppe befinden, bekommen den Server
// im Spiel automatisch angezeigt. Mehrere Steam-Gruppen können auch genutzt werden.
// Die Steam-Gruppen werden dann mit einem Komma getrennt.
// Es koennen auch mehrere Server in der gleichen Steam-Gruppe sein.
// sv_steamgroup_exclusive 0
//
// Wenn der Server einer Steam-Gruppe zugewiesen ist, kann mit dieser Cvar festgelegt werden,
// ob auch Spieler die sich nicht in der Steam-Gruppe des Server befinden, auf den Server joinen koennen.
// Befinden sich Spieler auf dem Server, können auch Spieler,
// die sich nicht in der Steam-Gruppe befinden, auf den Server nachjoinen.
//
// 0 = Es duerfen alle Spieler auf den Server joinen. (Standard)
// 1 = Es duerfen nur Spieler auf den leeren Server joinen, die sich nicht in der Steam-Gruppe befinden.
// Setzt ein Passwort. Es muss dafuer das direkte Verbinden mit dem Server erlaubt sein.
// Damit das Setzen des Passworts funktioniert, muss die cvar sv_allow_lobby_connect_only auf 0 stehen.
// sv_password "xxxx"
// sv_allow_lobby_connect_only 1
//
// Erlaubt das direkte Verbinden mittels connect auf den Server.
//
// 0 = Die direkte Verbindung durch den Befehl connect wird zugelassen. Dies betrifft auch HLSW.
// 1 = Verbindung nur durch die Lobby.
|
In diesem Beispiel stehen in den auskommentierten
Konsolen-Variablen die Standardwerte.
Einstellungen an den Netsettings vorzunehmen ist unnötig, da der Server nicht mehr als 30 FPS schafft, was daraus schließen lässt, dass der
Server nur mit Tickrate 33 läuft
(4)). Die
Konsolen-Variablen für die Netsettings sind außerdem versteckt und lassen sich ohne Plugins nicht ändern.
Zugelassene Spielmodi
Mit der
Konsolen-Variable sv_gametypes lässt sich festlegen, welche Spieltypen des Servers über das Matchmaking-System genutzt werden.
sv_gametypes
Wert --Beschreibung
coop --Der Server wird für Kampagnen vom Matchmaking-System genutzt.
versus --Der Server wird für Versus vom Matchmaking-System genutzt.
survival --Der Server wird für den Survival-Mods vom Matchmaking-System genutzt.
Die Werte lassen sich kombinieren. Sie werden durch ein Komma getrennt. Der Standard-Wert ist zur Zeit coop,versus,survival. Die
Konsolen-Variable kann zur server.cfg, autoexec.cfg oder einer cfg-Datei für geforkte Server hinzugefügt werden. Wird diese
Konsolen-Variable nicht gesetzt, sind alle Spieltypen über das Matchmaking-System für diesen Server erlaubt.
Spielmodus festlegen
Startbefehl
Wird der Server mit einer Map gestartet, befindet sich diese automatisch im Coop-Modus. Die
(5)) verwendet werden. Damit auch der Spieltyp zur ersten geladenen Map passt, sollte der Startbefehl dementsprechend angepasst werden.
Zur Laufzeit
Läuft der Server bereits, kann der passende Spielmodus gändert werden ohne den Server neustarten zu müssen.
mp_gamemode --Die
Konsolen-Variable mp_gamemode bestimmt den aktuellen Modus.
map --Mit dem
Befehl map kann die
Map und zugleich der Modus gewechselt werden.
Syntax:
|
Quellcode
|
1
|
map mapname [coop|versus|survival]
|
Beispiel:
|
Quellcode
|
1
|
map l4d_vs_smalltown01_caves versus
|
Der Befehl kickt wie bei allen anderen SourceGames die Spieler vom Server. Der Befehl changelevel kann leider nicht verwendet werden, um den Modus zu ändern.
Maps sortiert nach Spieltypen
Coop
l4d_hospital01_apartment
l4d_farm01_hilltop
l4d_airport01_greenhouse
l4d_smalltown01_caves
Versus
l4d_vs_hospital01_apartment
l4d_vs_farm01_hilltop
l4d_vs_airport01_greenhouse
l4d_vs_smalltown01_caves
Survival
Es sind noch nicht alle Maps eingetragen.
l4d_hospital02_subway
l4d_vs_hospital05_rooftop
l4d_farm02_traintunnel
l4d_airport02_offices
l4d_smalltown04_mainstreet
l4d_vs_smalltown05_houseboat
l4d_sv_lighthouse
Banner
Es wird im Spiel ein Server-Banner von „Left 4 Dead“ angezeigt. Dieser kann geändert werden. Zu bearbeitende Datei:
|
Quellcode
|
1
|
./left4dead/host.txt
|
Größe des Banners: 500 x 100 bis 673 x 135 (bei verschiedenen Größen wird der Banner unterschiedlich groß angezeigt).
Für die Anzeige eines eigenen Banners, muss Webspace vorhanden sein. Man kann direkt eine
URL</acronym> zum Banner angeben oder eine html-Datei mit dem Bild erstellen. Der Weg mit der html-Datei ist der elegantere Weg. Beispiel einer
host.txt:
|
Quellcode
|
1
|
http://sourceserver.info/l4d-serverbanner.htm
|
Mit einem Trick kann man die Größe automatisch an die Auflösung anpassen. Das Bild wird, wenn es zu groß ist, sogar verkleinert. Beispiel von serverbanner.htm auf dem Webspace:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
<html>
<head>
<style type="text/css">
html, body { background: black; margin:0px; padding:0px; border-style:none}
img { width: 100%; height: 100%;}
</style>
</head>
<body scroll=no>
<img src="http://sourceserver.info/l4d.jpg" class="img" border="0" />
</body>
</html>
|
Message of the Day
Das Format der Datei modt.txt hat sich geändert.
Zu bearbeitende Datei:
./left4dead/motd.txt
Gleiche wie bei dem Banner. Es muss ein Link zu einer Seite angegeben werden.
Start-Befehl
Unter Linux:
|
Quellcode
|
1
|
./srcds_run -game left4dead -port 27015 -fork 1 +map l4d_hospital01_apartment +mp_gamemode coop
|
Unter Windows:
|
Quellcode
|
1
|
srcds.exe -console -game left4dead -port 27015 +map l4d_hospital01_apartment +mp_gamemode coop
|
Durch das Matchmaking-System werden die Server automatisch für
„coop“,
„versus“ oder
„survival“ eingerichtet. Es kann über die
Konsolen-Variable mp_gamemode bestimmt werden, welcher Spielmodus läuft. Als Startparameter für die erste Map, kann
+mp_gamemode wie im Beispiel hinzugefügt werden.
Netconsole (Telnet)
Mit dieser neuen Funktion hat man über Telnet direkten Zugriff auf die Konsole. Die Funktion kann mit
-netconport 9000 aktiviert werden. Die Zahl gibt den Port an. Da so jeder Fremde mit Kenntnis des Ports Zugriff auf den Server hat, kann man die Konsole auch mit einem Passwort schützen. Mit dem Parameter
-netconpassword xxx lässt sich die Konsole mit einem Passwort schützen. Die Konsole führt solange keine Befehle aus, bis der Befehl
PASS xxx eingegeben wird.
Aufbau einer Verbindung
Die Verbindung kann mit einem Telnet-Client aufgebaut werden. Unter Windows ist ein Telnet-Client Implementiert. Über
Start > Ausführen > cmd > ok > telnet ServerIP Port kann eine Verbindung zum Server aufgebaut werden. Falls man die Verbindung über
Putty aufbauen will, muss die Übertragungsart auf
RAW gestellt werden.
Passwort
Falls ein Passwort vom Serveradmin definiert wurde, muss als erstes
PASS dasPasswort eingegeben werden. Danach steht die Konsole zur Verfügung.
forking
Unter Linux kann der Server mehrere Instanzen starten, die dann auf gleiche nur lesbare Speicherbereiche zugreifen. Durch diese Technik wird der Speicherbedarf gesenkt. Die Instanzen des Servers starten nach Abstürzen automatisch neu. Im Startparameter kann die Raute verwendet werden, um an dieser Stelle für die einzelnen Instanzen Zahlen einzusetzen. Für jede Instanz wird der Zahl um eins
inkrementiert.
Zum besseren Verständnis sollten folgende Begriffe bekannt sein:
Parent: Ein Prozess, der gestartet wird und weitere Childprozesse startet. In diesem Fall ist der Parent der Prozess, der die Instanzen der Server startet. Der Parent selber ist kein Server. Es lässt sich aber dennoch eine Verbindung zum Parent aufbauen, um die Childs zu verwalten.
Child: Ein Childprozess, welcher durch den Parent gestartet wird. Beim Forking sind dies die Instanzen der Server auf denen gespielt werden kann.
Start-Befehl
|
Quellcode
|
1
|
./srcds_run -console -fork 4 -game left4dead -port 27015 -maxplayers 4 +map l4d_dem_hospital01_apartment +exec fork_cfg##.cfg +motdfile fork_motd##.txt +hostfile fork_host##.txt
|
In diesem Fall wird der Server mit 4 Instanzen gestartet. Der Port wird für die erste Instanz verwendet. Die anderen Instanzen bekommen den Port
27015+n zugewiesen. Die 3. Instanz würde dann den Port
27017 belegen. Für jede Instanz wird die
fork_cfg##.cfg ausgeführt. Für die Raute wird automatisch die Nummer der Instanz eingesetzt. Sie beginnt bei eins. Es darf aber nie mit Raute angefangen werden. Der Befehl
+exec ##.cfg würde nicht funktionieren. Für die erste Instanz wird dann z.B.
./left4dead/cfg/fork_cfg1.cfg ausgeführt. Es wird bei diesem Beispiel dennoch die server.cfg ausgeführt. Deswegen ist es ratsam dort nur Einstellungen festzulegen, die jeden Server betreffen sollen. Den
Befehl servercfgfile gibt es leider nicht mehr. Zusätzlich wird die
motd.txt und
host.txt für jede Instanz gesetzt. Es können so für die Instanzen unterschiedliche Message of the day und Serverbanner angezeigt werden.
Befehle zu Steuerung
Die Befehle müssen an den Parent
(6)) per Telnet gesendet werden. Der Parent belegt in diesem Beispiel den Port 9000.
Befehl --Bedeutung
status --Status aller Instanzen wird angezeigt.
shutdown --Server werden beendet wenn alle Spiele fertig sind.
broadcast <Befehl> --Führt einen
Befehl bei allen Instanzen des Servers aus.
Netconsole
Werden mehrere Instanzen eines Servers durch das neue forking gestartet, hat man die Wahl nur für den Parent
( 7)) eine Netconsole zu starten oder für den Parent und all seine Childs.
Netconsole für alle Server
Hier wird auf dem Parent die Netconsole auf dem Port 9000 gestartet.
Alle weiteren Instanzen werden mit 9001, 9002, 9003, usw. gestartet.
Auf dem Parent sind nur die 3 Befehle verfügbar.
|
Quellcode
|
1
|
-netconsole 90##
|
Netconsole für den Parent
Hier wird auf dem Parent die Netconsole auf dem Port
9000 gestartet. Es sind nur die 3 Befehle verfügbar.
|
Quellcode
|
1
|
-netconsole 9000
|
Watchdog (Wachhund)
Der Watchdog überwacht den Server und startet ihn neu, wenn nach 5 Sekunden keine Reaktion vom Server ausgeht. Bei non-forked Server
(8)) wird der Server neugestartet. In Verbindung mit einem Restart-Script oder der Funktion autoupdate kann das ganz nützlich sein. Bei forked Server
(9)) wird die Instanz beendet und eine neue Instanz gestartet.
Diese Überwachungsfunktion kann aber auch z.B. bei langen Ladezeiten bei
Maps ggf. zu Problemen führen. Deaktivieren lässt sich die Überwachungsfunktion mittels -nowatchdog im Startparameter.
Verschiedene Typen des Servers
Das sich durch das Matchmaking-System vieles geändert hat, kann man sich nur über Umwege direkt mit dem Server verbinden. Es gibt 3 verschiedene Arten des Servers. Bei unseren Beispielen verwenden wir die Datei server.cfg für die Einstellungen, da diese nach jedem Mapchange geladen wird. Nach einer frischen Installation befindet sich keine server.cfg im Verzeichnis ./left4dead/cfg/. Diese kann mit einem gewöhnlichem Texteditor erstellt werden.
Öffentlicher Server
Dieser Server ist über das Matchmaking-System erreichbar
server.cfg
|
Quellcode
|
1
2
3
4
5
|
// Servername
hostname "Left4.de"
// Passwort für [[:rcon]]
rcon_password "xxx"
|
Öffentlicher Server mit Steam-Gruppen
Dieser Server ist über das Matchmaking-System erreichbar. Zusätzlich ist er in einer vom Server-Admin definierten Steam-Gruppe/n direkt sichtbar. Spieler, die in der gleichen Steam-Gruppe befinden, können den Server direkt auswählen.
server.cfg
|
Quellcode
|
1
2
3
4
5
6
7
8
|
// Servername
hostname "Left4.de"
// Passwort für rcon
rcon_password "xxx"
// Steam-Gruppe
sv_steamgroup "xxxx"
|
Die ID der Steamgruppe ist im Admin-Panel der jeweiligen Gruppe einsehbar. Sie steht oben an erster Stelle (ID: 12345)
Privater Server mit Steam-Gruppen
Dieser Server ist nur über eine vom Server-Admin definierte Steam-Gruppe/n sichtbar. Spieler, die sich in der gleichen Steam-Gruppe befinden, können den Server sehen und direkt auswählen. Erst nachdem der Server einen Spieler aus der Steam-Gruppe auf den Server gekommen ist, wird der Server für das Matchmaking-System freigegeben und andere Spieler können auf den Server kommen.
server.cfg
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
// Servername
hostname "Left4.de"
// Passwort für rcon
rcon_password "xxx"
// Steam-Gruppe
sv_steamgroup "xxxx"
// Exklusiv nur für die Steamgruppe
sv_steamgroup_exclusive 1
|
Die ID der Steamgruppe ist im Admin-Panel der jeweiligen Gruppe einsehbar. Sie steht oben an erster Stelle
(ID: 12345).
Erklärung zu sv_steamgroup_exclusive:
Wert --Erklärung
0 --Funktion ist abgeschaltet. Der Server ist ggf. für die Steam-Gruppe sichtbar und für das Matchmaking-System verfügbar.
1--Auf dem Server können nur Spieler joinen, die sich in der Steam-Gruppe des Servers befinden.
Halb privater Server
Möchte man als Spieler sich nur mit eigenen Server verbinden, kann die Funktion
sv_search_key genutzt werden. Der Serveradmin kann mit der
Konsolen-Variable sv_search_key einen Schlüssel setzen, den ein Lobby-Anführer oder Spieler in der Konsole gesetzt haben muss. Spieler, die den Schlüssel Clientseitig mit der gleichen
Konsolen-Variable setzen, finden über das Matchmaking-System nur noch Server mit diesem Schlüssel. Spieler ohne diesen Schlüssel können nur direkt auf den Server joinen oder einem bereits laufenden Spiel nachjoinen. Wenn das Spiel aus einer Lobby heraus gestartet wird, muss nur der Lobby-Anführer den sv_search_key setzen. Der Spieler oder Lobby-Anführer muss vorher die Konsole aktivieren, da diese Funktion nicht in die
GUI</acronym> eingebaut ist. Ist Serverseitig
sv_search_key gesetzt, sind die Funktionalitäten der Steam-Gruppen deaktiviert.
Voraussetzungen
Es müssen bestimmte Bedingungen erfüllt sein, damit die Suche mittels
sv_search_key funktioniert.
- sv_search_key funktioniert nur, wenn die Konsolen-Variablen sv_steamgroup nicht gesetzt ist.
- Der Server darf nicht mit einem Passwort gesichert sein.
server.cfg
|
Quellcode
|
1
2
3
4
5
6
7
8
|
// Servername
hostname "Sourceserver.info"
// Passwort für rcon
rcon_password "xxx"
// Schlüssel
sv_search_key "xxxx"
|
Tipps für die Spieler
Um es sich als Clan oder Gruppe mit seinem L4D-Server so einfach wie möglich zu machen, kann eine
autoexec.cfg im Verzeichnis
steamapps\common\left 4 dead\left4dead\cfg bei allen Mitgliedern mit folgendem Inhalt erstellt werden:
|
Quellcode
|
1
|
sv_search_key "key_vom_eigenen_server"
|
Ein Spieler des Clans bzw. der Gruppe kann so problemlos eine Lobby eröffnen ohne vorher manuell den sv_search_key eintragen zu müssen. Es
joinen alle aus der Lobby auf den Server, vorausgesetzt er ist nicht belegt. Es können auch mehrere Server den gleichen. Bei mehreren
Servern mit dem gleichen Schlüssel wird automatisch der nächst freie Server gewählt.
Passwortgeschützter Server
Der Server lässt sich mit der
Konsolen-Variablen sv_password „xxx“ schützen. Dies kann mit den 3 anderen Serverarten kombiniert werden. Die
Konsolen-Variablen kann über den Startparameter mit
+sv_password „xxx“ übergeben werden. Ein Eintrag in der
server.cfg oder
autoexec.cfg ist aber der bessere Weg.
Das Setzen des Passworts funktioniert aber nur, wenn zuvor sv_allow_lobby_connect_only auf „0“ gesetzt wurde.
Server zur Serverliste hinzufügen
Es wird im
Steampowered-Forum beschrieben, dass man den Server mit
setmaster add zur Serverliste hinzufügen kann. Der Server wird im Normalfall ohne die zwei Einträge automatisch zur Serverliste hinzugefügt. Wer dennoch den Server zur Serverliste manuell hinzufügen möchte, kann die beiden
Einträge zur
server.cfg hinzufügen:
|
Quellcode
|
1
2
|
setmaster add 68.142.72.250:27011
setmaster add 72.165.61.189:27011
|
Custommaps
Seit dem Update vom 25.06.2009 wurde ein neues System eingeführt, mit dem es möglich ist die Custommaps mit allen anderen benötigten Dateien
in eine
.vpk-Datei zu packen. Die .vpk-Dateien können auch mehrere Maps enthalten. Die Mapautoren können auch eine Beschreibung hinzufügen. Bei
dieser Methode wird kein Fastdownload benötigt, da in der
.vpk-Datei eine
URL</acronym> für den direkten Download der Map enthalten ist. Will ein Spieler einem Freund nachjoinen und dieser die Map nicht besitzt, wird ein Dialog geöffnet, mit dem man den Download der Datei über den Webbrowser
starten kann. Diese muss nach dem Download nur einmal angeklickt werden, damit diese Lokal beim Spieler installiert wird.
Damit auf einem Server die Kampagnen gespielt werden können, muss die
.vpk-Datei nach
l4d/left4dead/addons kopiert werden. Nach einem Neustart sind die neuen Kampagnen verfügbar. Mit dem Befehl
update_addon_paths;mission_reload sind die neu hinzugefügten Kampagnen auch sofort ohne Neustart verfügbar.
Hier eine Liste an Quellen, über die
Maps bzw. Kampagnen bezogen werden können:
Administration
Es gibt drei Wege den Server zu administrieren:
Ohne Plugins kann wie bei allen bekannten
SourceMods der Server über das RCON-Protokoll gesteuert werden.
- Es kann mit telnet eine Verbindung zu Netconsole aufgebaut werden.
- Mithilfe von Plugins lässt sich der Server im Spiel auch bequem über Menüs steuern.
Plugins
Plugin --Version --Funktioniert --Bemerkung
Metamod: Source--
1.7.1-- ja-- Unterstützt jetzt alle Versionen bis auf L4D2 der SourceEngine
SourceMod --
1.2.4 --ja --Das Plugin nextmap.smx löschen oder nach disabled verschieben, da ansonsten die nächste Map nicht geladen wird.
Mani-Admin-Plugin -- 1.2T -- nein
BeetlesMod L4D_1A ja Kommentar vom Entwickler: Heres a mini Left4Dead admin plugin. just has kick, ban, permanantban
EventScripts 2.x -- ja
Rcon
Der größte Teil der
Befehle und
Konsolen-Variablen, die bei der OrangeBox-Engine bekannt sind, funktionieren auch bei dem L4D-Server. Handelt es sich um einen gefokten Server und dieser soll neugestartet werden kann man das mittels sv_cheats 1; sv_crash erreichen.
Netconsole
Mit der Außnahme des Parents
(10)) ist die Administration über die Netconsole ist identisch mit der Administration über die
Remote-Console.
Statistiken
Funktionsfähig
Quellen
1) Plesk, Confix und andere Dienste, die geschäftlich genutzt werden
2) zur Zeit etch
3) z.B. sv_pure
4) Wenn es sowas bei L4D überhaupt noch gibt
5) +mp_gamemode
6) Elternprozess
7) , 10) Der Prozess, der die Instanzen (Childs) startet
8 ) normaler Server ohne Instanzen
9) Server mit mehreren Instanzen
Quelle: sourceserver.info
Stand der Quelle: 06.12.2009 15:31
>>Aktualisiert am 31.12.2009 00:45<<
[infobox]Wenn Fragen und Probleme entstehen bitte das "Support-Forum" nutzen! Danke[/infobox]
Support-Forum