Startseite > .:: Rund um CoD ::. > CoD - Serverhilfe > CoD-Server unter Linux einrichten

Einen dedizierten Linux-Server aufsetzen

Erstellt von lao | TheJudge http://www.lao-gaming.net/
Veröffentlicht mit freundlicher Genehmigung auf www.opferlamm-clan.de DANKE SCHÖN!



Linux Dedicated Server Install / Config Tutorial

 

Hier mal ein kleines Tutorial, um einen CoD Linux Dedicated Server zum laufen zu bekommen.
Ich sehe mal davon ab zu erklären, was die einzelnen Befehle bedeuten, würde meinen Zeitrahmen sprengen :)

Noch eines Vorweg, es gibt auch andere Wege um zum selben Ziel zukommen. Ich habe es so gemacht wie hier beschrieben, war für michpersönlich die einfachste Lösung.

Des weiteren gehe ich mal davon aus, dass der Server mit aktiviertemPunkbuster laufen soll, darum erkläre ich es gleich mit, dennstandardmäßig ist PB deaktiviert.

Alles was kursiv geschrieben ist, sind Befehle oder Tasten, die eingegeben oder gedrückt werden müssen.

Was ihr als erstes benötigt ist das Programm PuTTY - gebt dort die Daten ein, die ihr vom Anbieter bekommen habt.

Nun müsst ihr euer Komplett Installiertes CoD Verzeichnis (ca.1,2GB) von eurer Platte auf den root hochladen, bevorzugt per FTP.

Von einer Beschreibung dazu sehe ich mal ab, sollte zumindest jeder Webmaster wissen.

Sollte auf dem root-server keine URL geschaltet sein, bin ich auchgerne bereit einen entsprechenden Link rauszugeben. Habt aber bitteVerständnis dafür, dass ich ihn hier nicht Posten werde, sondern nurauf anfrage per PN oder ICQ gebe.

Sobald ihr euerLokales CoD Verz. auf den root geladen habt, müsst ihr die LinuxVersion ziehen und ebenfalls hochladen in das CoD Verzeichnis euresroot Servers.

Download z.b. hier Call of Duty Linux Multiplayer Server Code Version 1.4 (Linux Large Update) ( http://www.callofduty-news.de/index.php?module=filebase&type=file&ref_id=435&file=421e647caf81c7dba09b70a07eef6467/0/)

Wenn es bei euch auf dem Server drauf ist, müsst ihr es wie folgt entpacken:
tar jxvf COD-lnxded-1.4.large.tar.bz2
(Achtet unbedingt darauf, dass sich das File im CoD Verzeichnis befindet. Und ihr den Entpack-Vorgang von dort startet.)

Als nächstes müsst ihr beigehen und eine cfg Datei erstellen, die die Server-Einstellungen beinhaltet.
Das könnt ihr den Configgeneratormachen lassen. Die Datei könnt ihr benennen wie ihr wollt, ich nenn sie jetztmal dedicated.cfg. Diese muss ins ../cod/main Verzeichniss.

Achtet bitte darauf, dass ihr die nachfolgende Reihenfolge unbedingteinhaltet, da ihr sonst keine Möglichkeit habt, PB zu aktivieren.
Ausgehend vom CoD Verzeichnis gebt ihr nun folgendes ein:
screen -mS cod ./cod_lnxded
(Gross-/Kleinschreibung beachten)

gebt in der CoD Server Konsole die daraufhin erscheint, folgendes ein um PB zu aktivieren:
pb_sv_enable 1

Nun ladet die cfg-Datei, die ihr euch erstellt habt, in meinem Beispiel wie folgt:
exec dedicated.cfg

als letztes müsst ihr noch eine map angeben die geladen werden soll, damit die Map-Rotation beginnt, z.B. pavlov:
map mp_pavlov

Das war´s, den Screen Prozess verlasst ihr mit folgenden Tasten-Befehlen:
STRG+A D

Ob der Server nun läuft, könnt ihr nicht nur z. B. im ASE sehen, sondern auch durch die Eingabe von:
ps -aux

Dort solltet ihr einen Prozess finden, der mit ./cod_lnxded anfängt.

Das war es auch schon im Großen, der Server sollte nun Spielbereit sein.

.cfg Datei Editieren
Ich persönlich bevorzuge den Editor vi unter Linux, um den geht es im nachfolgenden auch.

Geht in das Verzeichnis, wo die cfg Datei drin ist, also nach ../cod/main/
Öffnet wie folgt eure cfg-Datei, in meinem Beispiel heißt sie dedicated.cfg:

vi dedicated.cfg

Mit den Cursor Tasten könnt ihr nun durch die Datei Navigieren, bevorihr jedoch was ändern könnt müsst ihr in den"Einfüge"-Modus wechselnmit:

i

Links unten sollte nun"Einfüge Modus"stehen. Jetzt könnt ihr die Datei editieren.
Wenn ihr fertig seit 1x ESC drücken, um den"Einfüge Modu"wieder zu verlassen.
Zum Abspeichern folgendes eingeben, beachtet aber, dass der Editordamit auch geschlossen wird und ihr wieder in dem Prompt landet:

:wq!

Sollte man, aus welchen Gründen auch immer, den Editor verlassen wollenohne die Datei zu Speichern, geht das mit folgendem Befehl:

:q!

 Erstellt by The Judge http://www.lao-gaming.net/

 

Ein Serverscript erstellen


Bevor nun irgendwelche Kritiker anfangen, mich zu zerfleischen:

Ich will´s den Anfängern so einfach wie möglich machen, geht nurdarum, mal grundsätzlich den Aufbau zu zeigen und ein erstesErfolgserlebnis zu ermöglichen; perfektionieren kann es jeder für sichselbst, wenn man erst mal verstanden hat, wie´s funktioniert.

 

Eine weitere"Eigenart", die mir bei der CoD-Server-Script-Geschichte aufgefallen ist:
Auf vielen Seiten, die sich mit der Erstellung von Server-Scripten beschäftigen, werden die einzutragenden Befehle mit"set"oder"seta"angegeben- bei mir (und auch bei ein paar anderen Usern) klappen aber einigeServereinstellungen dann nicht. Daher gebe ich das Script hier so an,wie es bei mir ohne Probleme funktioniert.

Wenn Du Probleme feststellst, dann versuch es also noch ein mal, indem Du vor die entsprechende Einstellung, die bei Dir nichtfunktioniert"set"oder"seta"setzt, z. B.:

Friendly Fire ist so eingetragen:
scr_friendlyfire "1"
und funktioniert aber nicht - also versuch es mit
set scr_friendlyfire "1"
oder
seta scr_friendlyfire "1"

---

So, los geht´s mit Deinem ersten eigenen Server-Script:

Speichere Dir diese Datei in den main-Ordner :
DOWNLOAD dedicated.cfg
(rechte Maustaste auf den Link, Ziel speichern unter... - achte nachdem Download darauf, daß die Dateiendung .cfg ist und nicht .txt !)

 

Diese dedicated.cfg ist nun Dein Serverscript. Du kannst Dirnatürlich auch ein eigenes Script mit einem anderen Namen erstellen, imNamen des Scriptes dürfen aber KEINE LEERZEICHEN enthalten sein! Undden Namen des Scriptes musst Du dann natürlich auch bei der Verknüpfungentsprechend anpassen! Man kann ohne Probleme mehrere Scripts immain-Ordner liegen haben, im Spiel kann man dann über die Konsole einanderes Script laden, wenn man das möchte. Mehr dazu gleich.

Du hast die dedicated.cfg jetzt als Vorlage da - die kannst Du mitz. B. WORDPAD öffnen und die Einstellungen anpassen, wie Du sie habenmöchtest.

So, hier also mal was in der cfg steht und was es bedeutet: (Die blauen Einträge sind die, die Du in der dedicated.cfg findest)

Legt den Spieltyp zum Spielstart fest
(DM = Death Match - TDM = Team Death Match - SD = Search & Destroy- RE = Retrieval - BEL = Behind Enemy Lines - HQ = Headquater)

g_gametype tdm

Legt die Startmap fest
mögliche Maps: mp_brecourt mp_carentan mp_chateau mp_dawnville mp_depotmp_harbor mp_hurtgen mp_pavlov mp_powcamp mp_railyard mp_rocket mp_shipmp_bocage mp_neuville mp_stalingrad (Standard-Ingame-Maps wenn manPatch 1.4 installiert hat)
ACHTUNG: mp_chateau mp_powcamp und mp_ship können NICHT im SD gespielt werden!

map mp_stalingrad

Setzen einesrconpassword: Du solltest ein rconpassword vergeben, damit nicht jederwillkürlich die Servereinstellungen beeinflussen kann. passwort tauschtDu gegen ein Passwort Deiner Wahl aus.

rconpassword"passwort"

Hier nun ein paar Angaben zum Server. Die Angaben werden zwischendie""eingetragen und können von GameSpy oder ASE ausgelesen werden.

set sv_hostname"Name des Servers"
set scr_motd"Nachricht im Einstiegsbildschirm"
sets .Admin"Name des Admin"
sets .Email"123@provider.de"
sets .IRC""
sets .Website""
sets .Location""

Weitere Einstellungen ( o = aus, 1 = an)

Symbol über Kameraden
set scr_drawfriend"0"
Friendly Fire
set scr_friendlyfire"1"
Maximale Teilnehmer
set sv_maxClients"8"
Abgleich der Clients auf veränderte/zusätzliche pk3s
set sv_pure"0"
Abstimmung erlaubt
set g_allowVote"1"
set scr_allow_vote"1"
Downloads erlaubt - sollte man gerade bei einer DSL-Verbindung nichtgestatten - wenn ein sich verbindender Spieler die Map nicht hat undanfängt, die nun, während andere gleichzeitig spielen, vom Server zuziehen, dann geht dabei Bandbreite verloren, was zu erhöhten Pings fürdie Spieler auf dem Server führen kann!
set sv_allowDownload"0"

Waffeneinstellungen (dürfte einleuchtend sein)
//Weapons
set scr_allow_bar"1"
set scr_allow_bren"1"
set scr_allow_enfield"1"
set scr_allow_fg42"1"
set scr_allow_kar98"1"
set scr_allow_kar98ksniper"1"
set scr_allow_m1carbine"1"
set scr_allow_m1garand"1"
set scr_allow_mp40"1"
set scr_allow_mp44"1"
set scr_allow_nagant"1"
set scr_allow_nagantsniper"1"
set scr_allow_panzerfaust"1"
set scr_allow_ppsh"1"
set scr_allow_springfield"1"
set scr_allow_sten"1"
set scr_allow_thompson"1"

Einstellungen für den Spieltyp
Dürfte größtenteils einleuchtend sein
//DeathMatch
set scr_dm_scorelimit"20"
set scr_dm_timelimit"15"

//Team DeathMatch
set scr_tdm_scorelimit"20"
set scr_tdm_timelimit"15"

//Search and Destroy
set scr_sd_graceperiod"15"
set scr_sd_roundlength"4"
set scr_sd_roundlimit"0"
set scr_sd_scorelimit"5"
set scr_sd_timelimit"15"

//Behind Enemy Lines
set scr_bel_alivepointtime"10"
set scr_bel_scorelimit"50"
set scr_bel_timelimit"15"

//Retrieval
set scr_re_graceperiod"15"
set scr_re_roundlength"4"
set scr_re_roundlimit"0"
set scr_re_scorelimit"7"
set scr_re_timelimit"15"
set scr_re_showcarrier"0"

//HEADQUARTERS
set scr_hq_timelimit"30"
set scr_hq_scorelimit"450"

Maprotation

Ich für meinen Teil setze jedes Mal den Spieltyp davor, ist abernormalerweise nicht zwingend notwendig. Man sollte auch nicht zu vieleMaps in die Rotation setzen, da das zu Problemen führen kann. Machtaber z. B. dann Sinn, wenn man von vornherein auch einen Wechsel desSpieltyps vorgeben will.

Maprotation

//ROTATIONS
set sv_mapRotation "g_gametype tdm map mp_brecourt g_gametype tdm map mp_carentan g_gametype tdm map mp_chateau g_gametype tdm map mp_dawnville g_gametype tdm map mp_depot g_gametype tdm map mp_harbor g_gametype tdm map mp_hurtgen g_gametype tdm map mp_pavlov g_gametype tdm map mp_rocket g_gametype tdm map mp_bocage g_gametype tdm map mp_neuville g_gametype tdm map mp_stalingrad"
Das sind nun alle Einstellungen, die in der Vorlage dedicated.cfg eingestellt sind. 

Steuerung des Servers

Hier nun eine kleine Anleitung, wie Du vorgehen musst, wenn Du einenServer fernsteuern willst (also wenn Du NUR Client bist und eineVeränderung auf dem Server herstellen möchtest):

Zunächst einmal sind so gut wie alle Server im Internet mit einemPasswort zur Fernsteuerung geschützt – leuchtet ja auch ein, was gäbdas für ein Chaos, wenn jeder versuchen würde, Einstellungen am Serverzu verändern, irgendwann liefe wohl gar nix mehr…

Dieses Passwort zur Fernsteuerung nennt man rconpassword . (rcon für R emote Con trole = Fernsteuerung)

Du bist also nun auf einem Server, dessen rconpassword Du kennst und möchtest nun also eine Veränderung am Server vornehmen.

Zuerst einmal musst Du als Mitspieler oder Zuschauer auf dem Serversein. Ist dies der Fall, dann musst Du dem Server erst mal zeigen, daßDu berechtigt bist, Änderungen vorzunehmen. Deshalb gibst Du nun erstmal in der Konsole das rconpassword ein mit dem Befehl

\rconpassword passwort

passwort ist das entsprechende Passwort zur Fernsteuerung des Servers.

Es gibt leider keine Bestätigung wenn man das Passwort eingegebenhat, merkt man aber spätestens, wenn man irgendwas ändern will und eskeine Reaktion gibt.

So, das rconpassword ist eingegeben, nun möchtest Du dem Servereinen Befehl erteilen; es sind die gleichen Befehle, die man auch fürdie cfg und für den „lokalen“ Server benötigt, jedoch muss man noch vorjeden Befehl \rcon setzen:

Wenn Du eine bestimmte Map laden willst, musst Du in die Konsole den Befehl \rcon map eingeben, also z. B.:
\rcon map mp_stalingrad

Willst Du die nächste Map der Rotation laden, nimmst Du den Befehl
\rcon map_rotate

Willst Du die aktuelle Map neustarten, nimmst Du den Befehl
\rcon map_restart

Willst Du den Spieltyp ändern, nimmst Du den Befehl
\rcon g_gametype tdm

(oder welchen Spieltyp Du eben haben möchtest - DM = Death Match -TDM = Team Death Match - SD = Search & Destroy - RE = Retrieval -BEL = Behind Enemy Lines - HQ = Headquater)

und startest danach die Map neu mit dem Befehl

\rcon map_restart

Wenn auf dem Server mehrere Scripte liegen und Du eines davon aktivieren möchtest, nimmst Du den Befehl

\rcon exec name .cfg

wobei Du name gegen den Namen des von Dir gewünschten Scripts austauscht.

Grundsätzlich kannst Du (fast) jeden Befehl, den Du in der cfg-Datei verwendest auch über die Konsole eingeben.

---

Ich hoffe, diese Anleitung ist verständlich geschrieben und hilft Dir weiter. 
Für weitere Fragen stehen Dir jede Menge Leute im Forum von
Opferlamm-Clan Board
Call of Duty-News
Planet Call of Duty
zur Verfügung. 

Anregungen, Tips, etc. sind natürlich auch willkommen.