Einzelnen Beitrag anzeigen
Alt 18.10.2010, 15:03   #1
phenom
Profi
Punkte: 9.188, Level: 64 Punkte: 9.188, Level: 64 Punkte: 9.188, Level: 64
Levelaufstieg: 46% Levelaufstieg: 46% Levelaufstieg: 46%
Aktivität: 0% Aktivität: 0% Aktivität: 0%
Letzte Erfolge
Artikel Benutzer besitzt 1x Ideen-Spender Benutzer besitzt 1x Badboy Benutzer besitzt 1x Spamer Benutzer besitzt 1x Angel Benutzer besitzt 1x Helfer Benutzer besitzt 1x Fortgeschrittener Benutzer besitzt 1x Hilfe Level 3
 
Benutzerbild von phenom
 
Registriert seit: 06.12.2008
Ort: Oberhausen/Die Macht am Niederrhein
Alter: 62
Beitr?ge: 689
Abgegebene Danke: 115
Erhielt 139 Danke für 18 Beiträge
Downloads: 175
Uploads: 0
Nachrichten: 2
Renommee-Modifikator:
1216 phenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehenphenom genießt hohes Ansehen
Standard Einen RANKED Server unter LINUX erstellen

Einen RANKED Server ( COD4 ) unter LINUX erstellen (Zugriff per putty)

VORAB:
Das ist nur eine schnell zusammengebastelte Anleitung um den Ungeduldigen unter euch ein wenig unter die Arme zu greifen...
Grundlage ist eine saubere WINDOWS-Server-Installation, die wir auf einen Linux-Root gepackt haben - der Ordner players z. B. scheint unter Linux nicht benötigt zu werden, ebenso, wie einige weitere Dateien.

Des weiteren gehen wir davon aus, daß Du Zugriff auf den Linux-Server per putty hast und weisst, wie man sich per putty einloggt... Außerdem benutzen wir das Programm "screen", um den Server in einem eigenen "Fenster" (um es mal in Windows-Sprache zu sagen) laufen zu lassen.

Durch den Rest lotsen wir Dich Schritt-für-Schritt.

Eine "bereinigte" Installations-Anleitung wird´s beizeiten mal geben.
---
Ok, legen wir mal los...
Grundlage ist wie gesagt eine WINDOWS-Server-Installation, die wir auf einen Linux-Root-Server gezogen haben.
Benutzte Programme:
WinSCP (um die Dateien zu uppen und die List-Anzeige zu kriegen)
putty (um den Linux-Server zu steuern)

Besorgt euch nun die Linux-Dateien, z. B. hier:
Arizona (GoDaddy):
http://treefort.icculus.org/cod/cod4-lin...1212007.tar.bz2

California (Dreamhost):
http://treefort.icculus.org/cod/cod4-lin...1212007.tar.bz2
Deutscher Mirror:
http://www.globe-network.net/downloa...212007.tar.bz2

Diese Datei (ist eine Archiv-Datei, wie z. B. eben ZIP oder RAR) enthält letztlich nach (zweimaligem Entpacken) diese Dateien:

Cod4_Inxded,Cod4-Inxded-bin,libgcc.so.6,pbsetup.run,README LINUX

Diese Dateien müssen nun in den CoD4-Ordner auf eurem Server (also in den gleichen Ordner wie z. B. die localization.txt und die beiden exe Dateien) kopiert/entpackt werden .

Denk daran, daß im main-Ordner noch eine CFG-Datei mit Deinen Servereinstellungen liegen muss - in unserem Beispiel arbeiten wir mit der beispiel.cfg, die wir auch getestet haben:

Ok, die Linux-Dateien sind oben, die CFG-Datei ist oben - also ab auf den Linux-Server mit putty - einfach mal einloggen und in den CoD4-Ordner wechseln. In unserem Beispiel haben wir den Ordner unter /home/gameserver/cod4liegen:

Mal kurz nachschauen, ob wir richtig sind, wir müssen in das Verzeichnis, in dem auch die Datei cod4_lnxded liegt. Also rufen wir mal gerade eine Dateiliste mit ll -la auf, damit wir alle Dateien angezeigt bekommen:

Ok, wir sind im richtigen Ordner, als starten wir nun einen screen-Prozess mit
screen -dmS cod4

Nun wechseln wir in den screen-Prozess namens "cod4" mit
screen -r cod4

Nun sind wir quasi in der Serverkonsole in einem eigenen "Fenster":

Hier geben wir nun mal einen ganz einfachen Start-Parameter ein um den Server zu starten:

../cod4_lnxded +set loc_language 2 +set dedicated 2 +set sv_punkbuster 1 +exec beispiel.cfg +map_rotate

+set loc_language 2 Mit diesem Parameter muss man lt. ReadMe festlegen, mit welcher Sprachversion man startet (bzw. welche man auf dem Server
liegen hat - wir haben die deutsche CoD4-Version am Laufen):
Englisch (Standard): +set loc_language 0
Französich: +set loc_language 1
Deutsch: +set loc_language 2
Italienisch: +set loc_language 3
Spanisch: +set loc_language 4

+set dedicated 2
Sagt dem Server, daß er als dedizierter Internet-Server laufen soll.

+set sv_punkbuster 1
Sorgt dafür, daß der PunkBuster gestartet wird.

+exec beispiel.cfg
Sagt dem Server, daß er die beispiel.cfg einlesen soll, in der die Spiel-Einstellungen festgelegt sind.

Tipp:
Sollte der Server die cfg nicht akzeptieren, dann benenne sie um, am besten in etwas ziemlich Einmaliges - bei uns heisst eine cfg z. B. olhard.cfg. Manche cfg-Namen werden scheinbar nicht akzeptiert oder von gleichlautenden spieleigenen CFG-Dateien überschrieben (die in den IWD-Dateien liegen). Denk dran, dann auch den Startparameter entsprechend anzupassen!

+map_rotate
Sorgt dafür, daß die festgelegte Maprotation gestartet wird.

Gib den Befehl nun also ein und der Server sollte starten. Um nun zu prüfen, ob der Server läuft gibst Du den Befehl
status
ein und drückst ENTER

Herzlichen Glückwunsch - Dein Server läuft!

Um putty nun wieder zu schließen und den Server zu verlassen benutzt Du einfach die Tastenkombination
STRG+A+D
(-> legt den Screen-Prozess wieder in den Hintergrund)
und direkt noch einmal
STRG+A+D
(-> schließt putty komplett)
---
Noch ein paar Anmerkungen zum Schluß:

In unserem Beispiel haben wir eine ganz einfache und simple Variante erklärt. Nachteil in diesem Beispiel ist, daß nun im
root-Verzeichnis ein versteckter Ordner namens .callofduty4 angelegt wird, in dem z. B. die Log-Datei gespeichert wird. Um dies zu
verhindern bzw. umzuleiten gibt es die Befehle
fs_basepath und fs_homepath, die man besser anwenden sollte. Sie geben, mal ganz locker übersetzt, den Start- und Ziel-Ordner an.

In unserem Beispiel müssten wir nun als den Ordner /home/gameserver/cod4 angeben und die "Umleitung mit den Befehlen
+set fs_basepath /home/gameserver/cod4 +set fs_homepath /home/gameserver/cod4
einrichten - unser kompletter Start-Parameter sähe dann so aus:

./cod4_lnxded +set fs_basepath /home/gameserver/cod4 +set fs_homepath /home/gameserver/cod4 +set loc_language 2 +set dedicated 2 +set sv_punkbuster 1 +exec beispiel.cfg +map_rotate

Natürlich könntest Du nun auch noch den Port des Spiels über den Start-Parameter anpassen - der Befehl dazu lautet:
+set net_port XXXXX
XXXXX tauscht Du natürlich dann gegen den von Dir gewünschten Port aus.

So, das sollten erst mal die wichtigsten Grundlagen für den Anfang sein, viel Spaß und Erfolg!

Besten Dank geht an den Ersteller.



--======================================--
--==
Beitrag erstellt: 15:03 um 21:41 ==--
--==
geantwortet 18.10.2010 auf Beitrag vom 15.10.2010 ==--
--== automatische Beitragszusammenführung ==--
--======================================--


phenom schrieb nach 65 Stunden, 21 Minuten und 43 Sekunden:

Hier nun die beispiel.cfg

Beispiel-Server-CFG (Ranked Server)

Das ist die beispiel.cfg die derzeit auf dem COD4-Testserver im Einsatz ist.

//Call of Duty 4 - Modern Warfare
//
// Beispiel-Server-CFG für einen RANKED Server


// Informationen (HLSW, etc.)
sets sv_hostname "Servername"
sets _Admin "Name des Admin"
sets _Email "E-Mail@Domain.de"
sets _Website "http://www.deine-seite.de"
sets _Location "Standort des Servers"
sets _Irc "Dein IRC-Channel"
sets _Maps "CoD4 Standard Maps"
sets _Spieltype "Normal/OldSchool/HardCore"
sets _GamePlay "RANKED/UNRANKED"

//***

//RCON-Passwort setzen (Admin)
set rcon_password "passwort"

//Passwort für Clients (Server ist dann Passwort-geschützt)
set g_password ""

//Passwort, das private Clients benötigen, um jederzeit auf den Server zu können
//ACHTUNG: funktioniert nicht, wenn der Server mit "g_password" geschützt ist!!!
//set sv_privatePassword "passwort"

//Maximale Datenrate
set sv_maxRate "20000"

//Server-FPS (nicht verändern!)
set sv_fps "20"

//Punkbuster (muss im Startparameter gesetzt werden!)
set sv_punkbuster "1"

//Abgleich der IWD-Dateien
//0 = aus, 1 = an
set sv_pure "1"

//Maximale Anzahl Spieler
set sv_maxclients "16"

//Private Clients (Anzahl - wird von maxclients dann abgezogen!)
set sv_privateClients "0"

//Minimaler Ping beim Connecten
set sv_minPing "0"

//Maximaler Ping beim Connecten
set sv_maxPing "300"

//Anonymous
//0 = aus, 1 = an
set sv_allowAnonymous "0"

//Antilag
//0 = aus, 1 = an
set g_antilag "1"

// Bestimmte IPs bannen
// VORSICHT!!! Die meisten Spieler haben eine dynamische IP, also bringt das nicht viel!
//set g_banIPs ""
<br>
//Bann-Zeit bei Kick (in Sekunden)
set sv_kickBanTime "300"

//Log-Datei
// 0 = Kein Log, 1 = Log-Datei schreiben
set logfile "1"

//Art des Schreibens
// 0 = kein Log, 1 = gepuffert, 2 = durchgehend, 3 = nachträglich
set logsync "1"

//Name der Log-Datei
set g_log "games_mp.log"

//Abstimmungen (keine Einschränkung möglich!)
//0 = aus, 1 = an
set g_allowvote "1"
set g_oldVoting "1"

//Download & http-Redirect
set sv_allowDownload "0"
//set sv_wwwBaseURL ""
//set sv_wwwDlDisconnected "0"
//set sv_wwwDownload "0"

//Tote können chatten
//0 = aus, 1 = an
set g_deadChat "1"

//Tote können Voice-Chat benutzen<br>
//0 = aus, 1 = an
set voice_deadChat "0"

//Gravitation
//Standard 800
set g_gravity "800"

//Konsole für Clients deaktivieren
//0 = nein, 1 = ja
set sv_disableClientConsole "0"

//Spam-Schutz
set sv_floodProtect "1"
set g_no_script_spam "1"

//Reconnect-Limit
set sv_reconnectlimit "3"

//Timeout InGame
//0 = aus, x = Sekunden
set sv_timeout "240"

//Timeout beim Connecten
//0 = aus, x = Sekunden
set sv_connectTimeout "240"

//Kick bei Inaktivität
//nicht geprüft!!!
set g_inactivity "0"
set sv_zombietime "2"

//Automatischer Teamausgleich
//0 = nein, 1 = ja
set scr_teambalance "1"
<br>
//Team-Beschuss
//0 = aus, 1 = an,
//2 = reflektierter Schaden, 3 = geteilter Schaden
set scr_team_fftype "0"

//Killcam
//0 = nein, 1 = ja
set scr_game_allowkillcam "1"

// Zuschauer-Typ
// 0 = aus, 1 = nur Team/Spieler, 2 = Freies Umsehen
set scr_game_spectatetype "2"

//Zeit bis zum Match-Start (in Sekunden)
set scr_game_matchstarttime "0"

//Wartezeit bis zum Einstieg (in Sekunden)
set scr_game_playerwaittime "0"

//Wiedereinstieg erwingen
//0 = nein, 1 = ja
set scr_player_forcerespawn "0"

//Nur Kopfschüsse zählen
//0 = nein, 1 = ja
set scr_game_onlyheadshots "0"

//Teamkiller kicken
//0 = nein, 1 = ja
set scr_team_kickteamkillers "0"

//Teamkiller kicken nach x Teamkills
set scr_teamKillPunishCount "3"

//Wartezeit zum Wiedereinstieg nach Teamkill (in Sekunden)
set scr_team_teamkillspawndelay "20"

//Punktabzug nach Teamkill
//0 = nein, 1 = ja
set scr_team_teamkillpointloss "1"

//Sprach-Chat
//0 = aus, 1 = an
set sv_voice "0"

//Qualität des Sprach-Chats
//1 = niedrigste, 9 = höchste
set sv_voiceQuality "3"

//Hardcore Modus
//0 = aus, 1 = an
set scr_hardcore "0"

//Oldschool Modus
//0 = aus, 1 = an
set scr_oldschool "0"

//***

//Spiel-Modi

//Death Match (dm)

//Punkte-Limit
set scr_dm_scorelimit "1000"

//Zeit-Limit (in Minuten)
set scr_dm_timelimit "15"

//nicht geprüft (Standard)
set scr_dm_roundlimit "1"
set scr_dm_numlives "0"
set scr_dm_playerrespawndelay "0"
set scr_dm_waverespawndelay "0"

//Team Death Match (war)

//Punkte-Limit
set scr_war_scorelimit "750"

//Zeit-Limit (in Minuten)
set scr_war_timelimit "10"
//nicht geprüft (Standard)
set scr_war_roundlimit "1"
set scr_war_numlives "0"
set scr_war_playerrespawndelay "0"
set scr_war_waverespawndelay "0"

//Herrschaft (dom)
<br>
//Punkte-Limit
set scr_dom_scorelimit "200"

//Zeit-Limit (in Minuten)
set scr_dom_timelimit "0"

//nicht geprüft (Standard)
set scr_dom_numlives "0"
set scr_dom_playerrespawndelay "0"
set scr_dom_roundlimit "1"
set scr_dom_waverespawndelay "0"

//Hauptquartier (koth)

//Punkte-Limit
set scr_koth_scorelimit "250"

//Zeit-Limit (in Minuten)
set scr_koth_timelimit "15"

//Klassischer HQ-Modus
//0 = aktiviert, 1 = deaktiviert
set koth_kothmode "0"

//Benötigte Zeit zur Einnahme des Funkgerätes
set koth_capturetime "20"

//Verzögerung
//0 = sofort, x = Zeit in Sekunden
set koth_spawntime "0"

//nicht geprüft (Standard)
set scr_koth_numlives "0"
set scr_koth_playerrespawndelay "0"
set scr_koth_roundlimit "1"
set scr_koth_roundswitch "1"
set scr_koth_waverespawndelay "0"
set koth_autodestroytime "60"
set koth_delayPlayer "0"
set koth_destroytime "10"
set koth_spawnDelay "60"

//Sabotage (sab)

//Punkte-Limit
set scr_sab_scorelimit "1"

//Zeit-Limit (in Minuten)<br>
set scr_sab_timelimit "20"

//Runden-Limit (Anzahl Runden bis zum Team-Wechsel)<br>
set scr_sab_roundswitch "1"

//Zeit bis zur Explosion der Bombe (in Sekunden)
set scr_sab_bombtimer "30"

//Zeit zum Platzieren der Bombe (in Sekunden)
set scr_sab_planttime "2.5"

//Zeit zum Deaktivieren der Bombe (in Sekunden)
set scr_sab_defusetime "5"

//gemeinsamer Timer
//0 = nein, 1 = ja
set scr_sab_hotpotato "0"

//nicht geprüft (Standard)
set scr_sab_numlives "0"
set scr_sab_playerrespawndelay "7.5"
set scr_sab_roundlimit "0"
set scr_sab_waverespawndelay "0"

//Suchen und Zerstören (sd)

//Punkte-Limit
set scr_sd_scorelimit "4"

//Zeit-Limit (in Minuten)
set scr_sd_timelimit "2.5"

// Runden-Limit (Anzahl Runden bis zum Team-Wechsel)
set scr_sd_roundswitch "3"

// Zeit bis zur Explosion der Bombe (in Sekunden)
set scr_sd_bombtimer "45"

// Zeit zum Platzieren der Bombe (in Sekunden)
set scr_sd_planttime "5"

// Zeit zum Deaktivieren der Bombe (in Sekunden)
set scr_sd_defusetime "5"

//Sprengsatz-Anzahl
//0 = Ein Sprengsatz
//1 = Jeder Spieler hat einen Sprengsatz
set scr_sd_multibomb "0"

//nicht geprüft (Standard)
set scr_sd_numlives "1"
set scr_sd_playerrespawndelay "0"
set scr_sd_roundlimit "0"
set scr_sd_waverespawndelay "0"

//***

//Spiel-Modus
set g_gametype "war"

// DM - FREE FOR ALL DEATHMATCH (Death Match)
//NICHT aktiv
//set sv_mapRotation "gametype dm map mp_backlot gametype dm map mp_bloc gametype dm map mp_bog gametype dm map mp_cargoship gametype dm map mp_citystreets gametype dm map mp_convoy gametype dm map mp_countdown gametype dm map mp_crash gametype dm map mp_crossfire gametype dm map mp_farm gametype dm map mp_overgrown gametype dm map mp_pipeline gametype dm map mp_shipment gametype dm map mp_showdown gametype dm map mp_strike gametype dm map mp_vacant"

// DOM - DOMINATION
//NICHT aktiv
//set sv_mapRotation "gametype dom map mp_backlot gametype dom map mp_bloc gametype dom map mp_bog gametype dom map mp_cargoship gametype dom map mp_citystreets gametype dom map mp_convoy gametype dom map mp_countdown gametype dom map mp_crash gametype dom map mp_crossfire gametype dom map mp_farm gametype dom map mp_overgrown gametype dom map mp_pipeline gametype dom map mp_shipment gametype dom map mp_showdown gametype dom map mp_strike gametype dom map<br> mp_vacant"<br>

// KOTH - HEADQUARTERS
//NICHT aktiv
//set sv_mapRotation "gametype koth map mp_backlot gametype koth map mp_bloc gametype koth map mp_bog gametype koth map mp_cargoship gametype koth map mp_citystreets gametype koth map mp_convoy gametype koth map mp_countdown gametype koth map mp_crash gametype koth map mp_crossfire gametype koth map mp_farm gametype koth map mp_overgrown gametype koth map mp_pipeline gametype koth map mp_shipment gametype koth map mp_showdown gametype koth map mp_strike gametype koth map mp_vacant"

// SAB - SABOTAGE
//NICHT aktiv
//set sv_mapRotation "gametype sab map mp_backlot gametype sab map mp_bloc gametype sab map mp_bog gametype sab map mp_cargoship gametype sab map mp_citystreets gametype sab map mp_convoy gametype sab map mp_countdown gametype sab map mp_crash gametype sab map mp_crossfire gametype sab map mp_farm gametype sab map mp_overgrown gametype sab map mp_pipeline gametype sab map mp_shipment gametype sab map mp_showdown gametype sab map mp_strike gametype sab map mp_vacant"

// SD - SEARCH & DESTROY
//NICHT aktiv
//set sv_mapRotation "gametype sd map mp_backlot gametype sd map mp_bloc gametype sd map mp_bog gametype sd map mp_cargoship gametype sd map mp_citystreets gametype sd map mp_convoy gametype sd map mp_countdown gametype sd map mp_crash gametype sd map mp_crossfire gametype sd map mp_farm gametype sd map mp_overgrown gametype sd map mp_pipeline gametype sd map mp_shipment gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_vacant gametype sab map mp_backlot gametype sab map mp_bloc gametype sab map mp_bog gametype sab map mp_cargoship gametype sab map mp_citystreets gametype sab map mp_convoy gametype sab map mp_countdown gametype sab map mp_crash gametype sab map mp_crossfire gametype sab map mp_farm gametype sab map mp_overgrown gametype sab map mp_pipeline gametype sab map mp_shipment gametype sab map mp_showdown gametype sab map mp_strike gametype sab map mp_vacant"

// WAR - TEAM DEATH MATCH
//AKTIV
set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog gametype war map mp_citystreets gametype war map mp_convoy gametype war map mp_countdown gametype war map mp_crash gametype war map mp_crossfire gametype war map mp_farm gametype war map mp_overgrown gametype war map mp_pipeline gametype war map mp_shipment gametype war map mp_showdown gametype war map mp_strike gametype war map mp_vacant"

Ge?ndert von phenom (15.10.2010 um 22:21 Uhr) Grund: Eigen
phenom ist offline   Mit Zitat antworten Nach oben
Folgende 4 Benutzer sagen Danke zu phenom für den nützlichen Beitrag:
$iMpLy (18.10.2010), Cola (11.01.2015), DoLo (18.10.2010), gotthummer (16.10.2010)