Logo name


Welcome Guest ( Log In | Register )

Diskussion
> BF2142 Gameserver unter Linux

Inhaltsverzeichnis

Installation,Konfiguration & Startscripte

Installation herunterladen und ausführen

Hinweis: Es ist wichtig, dass ihr alle hier beschriebenen Schritte als root ausführt werden. Erst wenn der Server gestartet wird, muss ein neuer Benutzer verwendet werden.

Zuerst erstellen wir einen Ordner, den wir als Lagerpunkt für unsere Downloads verwenden.

mkdir /root/bf2142_downloads
cd /root/bf2124_downloads

EA bietet einen FTP-Server an, unter dem man grö?ere Downloads wie z. B. Gameserver runterladen kann. Von dort holen wir uns jetzt über wget den aktuellen Server (v1.40), entpacken direkt die Zip-Datei und führen das Setup aus. Seit Version 1.4 ist die Installation in ein RAR-Archiv gepackt. Wir brauchen also ein Unrar-Tool, das wir bei Debian direkt über apt-get installieren können.

apt-get update
apt-get install unrar
wget http://largedownloads.ea.com/pub/patches/BF2142/1.40/bf2142-linuxded-1.09.79.0-installer.rar
unrar e ./bf2142-linuxded-1.09.79.0-installer.rar
chmod 777 ./bf2142-linuxded-1.09.79.0-installer.sh
./bf2142-linuxded-1.09.79.0-installer.sh

Nun muss noch der Installationspfad angegeben werden. Hier verwendet ihr bitte

/home

Der Server wird dann automatisch in das Unterverzeichnis

/home/bf2142

installiert.

Benutzer für den Server anlegen

Ihr solltet aus Sicherheitsgründen den Gameserver niemals als root starten. Stattdessen erstellt ihr den neuen Benutzer bf2142

adduser bf2142

und verwendet bitte nicht das gleiche Passwort wie der root Benutzer. Nun gebt ihr dem neuen Benutzer noch die Rechte auf das Verzeichnis des Gameservers.

chown bf2142:bf2142 -R /home/bf2142

Server konfigurieren

Wichtig: Alle nun folgenden Konfigurationen bitte mit dem Benutzer bf2142 ausführen! Im Verzeichnis

/home/bf2142/mods/bf2142/settings

befinden sich die zwei zu ändernden Dateien. Dabei handelt es sich um die maplist.con, in der die Liste der Maps mit Gamemode und Grö?e eingetragen werden und die serversettings.con, in der ihr die Einstellungen des Servers vornehmen könnt.


serversettings.con

Zuerst bearbeiten wir die serversettings.con mit einem lokalen Texteditor oder alternativ mit

nano /home/bf2142/mods/bf2142/settings/serversettings.con

Eine genaue Beschreibung der einzelnen Einstellungen findet ihr hier. Folgende Einstellungen müssen aber auf jeden Fall gemacht werden.

sv.internet 1 //Damit der Server im Internet erreichbar ist
sv.serverIP "xxx.xxx.xxx.xxx" //Hier kommt die IP-Adresse des Servers hin
sv.serverPort 17567 //Ich würde hier den Standard nehmen, aber ihr könnt auch einen anderen Port verwenden
sv.interfaceIP "xxx.xxx.xxx.xxx" //Hier muss die selbe IP wie bei sv.serverIP hin
sv.friendlyFireWithMines 0 // Diese Einstellung fehlt in der Datei. Ihr könnte sie ganz unten in einer neuen Zeile hinzufügen

Bitte nicht die Kommentare mit in die Datei übernehmen.


maplist.con

Die Datei könnt ihr wie auch die serversettings.con entweder mit einem lokalen Texteditor oder mit

nano /home/bf2142/mods/bf2142/settings/maplist.con

bearbeiten. Hier kommen alle Maps rein, die in den Mapzyklus sollen. Dabei ist folgendes Format zu beachten:

mapList.append kartenname modus grö?e
z.B.
mapList.append camp_gibraltar gpm_cq 32

Dabei ist zu beachten, dass Kartennamen immer klein geschrieben und Leerzeichen durch einen Unterstrich ersetzt werden. Wichtig ist auch, dass ihr die Gro?- und Kleinschreibung der Befehle beachtet (mapList.append). Ihr könnt die möglichen Modi und Grö?en für die Maps in der Descriptions-Datei nachlesen. Diese ist unter folgendem Pfad zu finden:

/home/bf2142/mods/bf2142/levels/<mapname>/info/<mapname>.desc
z. B. /home/bf2142/mods/bf2142/levels/camp_gibraltar/info/camp_gibraltar.desc

Diese Datei ist im XML-Format aufgebaut. Hier mal als Beispiel die Description-Datei von der Map Camp Gibraltar:

<map>
  <name> Camp_Gibraltar </name>
  <briefing locid="LOADINGSCREEN_MAPDESCRIPTION_Camp_Gibraltar">map description for modders maps not localized (english only)</briefing>
  <music> sound/music/Camp_Gibraltar.ogg </music>
  <modes>
    <mode type="gpm_cq">
      <maptype players="16" type="headon" locid="GAMEMODE_DESCRIPTION_assault">Unlocalized test for this mode on this map</maptype>
      <maptype players="32" type="headon" locid="GAMEMODE_DESCRIPTION_assault">Unlocalized test for this mode on this map</maptype>
    </mode>
  </modes>
</map>

Unter <mode type="gpm_cq" findet ihr immer die möglichen Game-Modes. Es gibt insgesamt vier verschiedene Game-Modes:

- gpm_cq   -> Conquest
- gpm_ti   -> Titan
- gpm_coop -> Coop (mit Bots)
- gpm_sl   -> Angriff (SupplyLine)

Unter <maptype players="16" könnt ihr die möglichen Kartengrö?en nachlesen. Es ist übrigens egal, wieviele maximale Spieler ihr eingestellt habt. 64 Spieler können auch auf einer 16er Map zocken und umgekehrt.

Server starten

Den Server startet man mit der start.sh, die sich im Installationsverzeichnis des Servers befindet (/home/bf2142). Wechselt nun in dieses Verzeichnis mit

cd /home/bf2142

Nun könnt ihr den Server wie folgt starten:

./start.sh +provider "www.tla-clan.eu" +region "de" +type=1
- provider -> hier könnt ihr z. B. die URL euer Homepage angeben
- region   -> de sigalisiert, dass der Server aus Deutschland kommt
- type     -> hier muss unbedingt der Wert 1 stehen, da der Server sonst im LAN-Modus, also nur lokal, läuft.

Jetzt haben wir aber folgendes Problem. Wenn ihr euch vom Root-Server disconnectet dann wird der Gameserver mit beendet. Deswegen legen wir den Prozess mit screen in den Hintergrund und geben ihm den Namen bf2142, damit wir ihn auch wieder ansprechen können:

screen -A -m -d -S bf2142 ./start.sh +provider "www.tla-clan.eu" +region "de" +type=1

Mit

screen -r bf2142

können wir uns den Prozess wieder in den Vordergrund holen und mit der Tastenkombination Strg + a + d wieder in den Hintergrund legen. Mit Strg + c kann man den Server beenden. Um nicht ständig so lange Befehle, die man leicht vergessen kann, eingeben zu müssen, bauen wir uns ein Startscript. Erstellt dazu die Datei starten und fügt den Befehl in diese Datei ein.

touch starten
echo "screen -A -m -d -S bf2142 ./start.sh +provider "www.tla-clan.eu" +region "de" +type=1" > ./starten
chmod 777 ./starten

Jetzt basteln wir noch ein Script, mit dem wir uns den Server in den Vordergrund holen können.

touch console
echo "screen -r bf2142" > ./console
chmod 777 ./console

Nun können wir den Server ganz einfach mit ./starten starten und mit ./console in den Vordergrund holen.

Punkbuster aktualisieren

Wenn der Server gestartet ist, dann beendet ihn zuerst. Jetzt laden wir das Update herunter

cd /home/bf2142/pb
wget http://www.punkbuster.com/downloads/bf2142/pbsecsv.htm

Der Server wird nun beim nächsten Starten automatisch upgedatet.


Rcon Zugang einrichten

Zuerst müssen wir die Datei default.py bearbeiten

nano /home/bf2142/admin/default.py

Sucht dort nach

options = {
	'port': '4711',
	'password': none,

	# True if multiple commands should be processed in one update and
	# if as many responses as possible should be sent each update.
	'allowBatching': False
}

Wo none steht könnt ihr euer Passwort einsetzten. Beachtet aber, dass es wie der Port in Hochkommas stehen muss.

options = {
	'port': '4711',
	'password': 'deinPasswort',

	# True if multiple commands should be processed in one update and
	# if as many responses as possible should be sent each update.
	'allowBatching': False
}

Als nächstes muss noch eine Konfigurationsdatei angelegt werden.

mkdir /home/bf2142/mods/bf2142/settings/admin
cd /home/bf2142/mods/bf2142/settings/admin
touch default.cfg
nano ./default.cfg

und fügt dort folgendes ein

port=4711
password=deinPasswort

Beachte, dass du hier das gleiche Passwort nehmen musst, wie du es zuvor in der Datei default.py eingetragen hast. Nun kannst du die Rcon-Konsole verwenden. Eine genaue Liste der möglichen Befehle findest du hier.

BF2142CC installieren

BF2142CC (www.2142cc.com) steht für Battlefield 2142 Command Control und ist eine Oberfläche für die Administration des Gameservers. Damit diese auch funktioniert müssen erst ein paar Dinge auf dem Rootserver installiert und konfiguriert werden. Zuerst einmal BF2142 CC v2.1.2628 und Mono.

Installation von Mono

Hier ist die Version 1.2.1 zu empfehlen, da diese wohl die einzige mit BF2142CC kompatible Version ist. Meldet euch für diese Installation mit dem Benutzer root an. Nun macht folgendes

cd /root/bf2142_downloads
wget http://go-mono.com/archive/1.2.1/linux-installer/1/mono-1.2.1_1-installer.bin
chmod 777 ./mono-1.2.1_1-installer.bin
./mono-1.2.1_1-installer.bin


Installation des BF2142-Daemons

Nun wird es etwas aufwendig. Erstmal wieder mit dem Benutzer bf2142 anmelden und dann muss die aktuelle Version des Daemons heruntergeladen werden. Danach werden die Modmanagerscripte, die der Daemon benötigt installiert und konfiguriert.

cd /home/bf2142
wget http://2142cc.com/downloads/2142cc_Daemon_2.1.2628.zip
unzip ./2142cc_Daemon_2.1.2628.zip
unzip ./modmanager-v1.6.zip

Zuerst müssen einige Anpassungen der Modmanagerscripte gemacht werden. Dafür wechseln wir ins Konfigurationsverzeichnis.

cd /home/bf2142/mods/bf2142/settings

Dann öffnen wir die modmanager.con mit einem lokalen Texteditor oder über

nano ./modmanager.con

In dieser Datei finden wir folgende fünf Zeilen

mm_rcon.rconBasicPassword "basic66"
mm_rcon.rconIp "0.0.0.0"
mm_rcon.rconListenQueue 1
mm_rcon.rconPassword "super123"
mm_rcon.rconPort 4711

Als rconBasicPassword und rconPassword nehmen wir wieder das selbe Passwort wie schon in der Datei default.py. Zudem ist noch bei rconIp die IP-Adresse des Servers einzutragen. Nun muss noch die serversettings.con bearbeitet werden. Sucht dort die Einstellung

sv.adminScript "default"

und ändert sie in

sv.adminScript "modmanager"

Nun können wir uns dem Daemon zuwenden. Dafür muss er ein erstes mal gestartet werden.

cd /home/bf2142
mono ./bf2ccd.exe

Gebt dort die richtigen Angaben an, auf die inzwischen wohl jeder selber kommen sollte. Wenn alle Einstellungen gemacht wurden, dann beendet den Daemon mit Strg + c. Nun können wir auch für den Daemon ein Start- und Konsolenscript basteln.

touch daemon_starten
echo "screen -A -m -d -S bf2142_daemon /opt/mono-1.2.1/bin/mono ./bf2ccd.exe" > ./daemon_starten
touch daemon_console
echo "screen -r bf2142_daemon" > ./daemon_console
chmod 777 ./daemon_*

Wichtig: Falls der Gameserver gestartet wurde, muss er unbedingt beendet werden. Anstatt des Gameservers startet ihr nun mit

./daemon_starten

den Daemon. Der startet dann nachher über den Client den Server.

BF2142CC Client

Den richtigen Client zur eben installieren Version findet ihr hier.

Mods installieren

Alle Mods müssen in den Ordner

/home/bf2142/mods

Dabei ist unter Linux zu beachten, dass alle Dateinamen und Ordner klein geschrieben sind, au?er es handelt sich um Python-Code-Dateien (*.py). Diese dürfen auf keinen Fall umbenannt werden. Vergewissert euch vor dem Hochladen einer Mod, ob diese Bedingung erfüllt ist. Wenn nicht, bietet der TLA-Clan natürlich für Lau ein Tool an, das man bei sich auf dem Rechner anwendet und dann erst die Dateien hochläd. Diese Tool findest du hier. Das Tool kann auch für Custom-Maps verwendet werden. Wenn ihr die Mod hochgeladen habt, dann solltet ihr die serversettings.con, modmanager.con und den admin-Ordner im Verzeichnis /home/bf2142/mods/bf2142/settings in das settings-Verzeichnis der Mod kopieren oder die Einstellungen von Hand vornehmen. Die Mod startet ihr entweder, indem ihr es im BF2142cc auswählt oder wenn ihr lieber direkt mit dem Startscript arbeiten wollt, indem ihr den Modpfad mit übergebt.

screen -A -m -d -S bf2142 ./start.sh +provider "www.tla-clan.eu" +region "de" +type=1 +modPath mods/cf2142

wäre ein Beispiel für die Conflict-Mod. Natürlich könnt ihr euch dafür wieder ein Startscript, wie schon oben beschrieben basteln. Das Script console wird aber nur einmal benötigt.

Diskussion
Diese Seite wurde zuletzt am 12. Januar 2010 um 09:36 Uhr geändert.  Diese Seite wurde bisher 9.768-mal abgerufen.  Impressum