Sunday, October 14, 2012

Több COD4 szerver egy szerver fájljaiból

Igen. A COD4-nek nem szükséges, hogy szerverenként felmásoljuk a szerverre a játék fájljait, így rengeteg helyet spórolhatunk meg. Egyszerüen elég, ha elhitetjük vele, hogy ott vannak a fájlok, ahol ő azt keresni fogja. Erre tökéleset megoldás a symlink -ek használata.

Tehát a következőképpen kell használni:

ln -s target_path link_path

Tehát, tegyük fel, hogy szeretnénk 4 szervert, ehhez a következő mappa struktúrát vegyük fel:

cod4:
-bin
-28960
-28961
-28962
-28963

A bin mappába másoljuk a gyári fájlokat, amik a dvd-n találhatóak ( main, mods stb.. ), majd töltsük le a legújabb (1.7) linux-os indítót ( lnxded ), ezt csomagoljuk ki, és másoljuk be mind a 4 mappába ( 28960 - 28963 ). 

Ezután hozzuk létre a symlinkeket:

ln -s /cod4/vin/main main
ln -s /cod4/bin/Mods Mods
.
.
.
Ezt szépen végig játszuk az összes mappával.

Ezután már csak létre kell hozni szerverenként a config fájlokat, illetve csinálhatunk egy indító fájlt. És már indíthatjuk is:

screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28960 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate

screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28961 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate

screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28962 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate

screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28963 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate

Saturday, October 13, 2012

Call of Duty 4 szerver Linuxon

A szerver elkészítéséhez szükségünk van a játék dvd-n található fájlokra, pontosabban a setup/main mappára. Első lépésként töltsük fel a szerverre (például winscp -vel), ez eltarthat egy ideig a hálózati kapcsolatunk sebességétől függően.

Telepítés:

A cod4 előnye, hogy ha több szervert szeretnénk futtatni, azt megtehetjük ,,osztott" erőforrásokkal, tehát csak egy main könyvtárra lesz szükségünk, ez nagy segítség, hiszen 1-1 szerver akár 4-5 GB helyet is foglalna.

( Ha több szervert szeretnél egyszerre érdemes EZT is elolvasnod! )

Feltöltés után hozzunk létre egy könyvtárat, például a usr mappában, de akár saját usert is hozzárendelhetünk a /home -ban. Biztonsági okokból ajánlott nem root-ként futtatni a szervereket.

mkdir /usr/local/games/cod4

Másoljuk át a fájlokat!

Töltsük le a legfrissebb (1.7) binárisokat pl. innen. (cod4 lnxded 1.7)

wget http://www.shrapnet.com/downloads/cod4-linux-server-06282008.tar.bz2

Ezután tömörítsük ki:

tar -jxvf cod4-linux-server-06282008.tar.bz2

Ha minden jól megy, a következő fájlokat találjuk kicsomagolás után:

cod4_lnxded
cod4_lnxded-bin
libgcc_s.so.1
libstdc + +. so.6
README.linux
pbsetup.run

Ezzel lényegében el is készültünk, most már csak konfigurálni kell.

Konfigurálás:

Ha szeretnénk, hogy a szerver fusson kijelentkezés után is, telepítsük a screen-t:

apt-get install screen

A screen egy ügyes kis program, röviden: képes több terminált emulálni:
ctrl+a+c = új terminál
ctrl+a+n = következő terminál
További lehetőségek: man screen

Igény esetén létrehozhatunk egy indító fájlt, így indításkor csak le kell futtatnunk:

echo > cod4_starter.sh
nano cod4_starter.sh

A következőket másoljuk bele:

screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28960 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate

röviden:

sv_pure 1 : a szerver ellenőrzi, hogy a játékosok fájljai nem ,,sérültek".
net_port : port, ahol elérheted
dedicated 2 :dedikált netes szerver
sv_punkbuster : engedélyezed a pb-t
exec: mindenféle fájlt megynittathatsz vele, pl configot is

A következő portokat érdemes felnyitni:

UDP 20800
UDP 20810
UDP 28960

A server.cfg fájlodat pedig ügyesen feltöltheted mindenféle csilivili beállítással, erre rengeteg generátor létezik, egyszerüen keress rá guglin: "cod4 server.cfg generator".






Friday, October 12, 2012

STEAMCMD Segmentation fault

If you use SteamCMD on Hardened Gentoo, you need some additional security configuration otherwise it will throw:

./steam.sh: line 67: 22525 Segmentation fault ${DEBUGGER}
"${STEAMROOT}"/${PLATFORM}/${STEAMEXE} "$@"

It throws because of PaX. PaX is a security layer of hardened gentoo, which helps to prevent some attacks. We will user paxctl, For more informations:

man paxctl

So first, go to steamcmd (usually it's in /ga/me/folder/steam/linux32)

cd /ga/me/folder/steam/linux32

You can check pax flags:

paxctl -v steamcmd

PaX control v0.7
Copyright 2004,2005,2006,2007,2009,2010,2011,2012 PaX Team <pageexec@freemail.hu>

Then you need to set up some flags:
-x: disable RANDEXEC
-e: disable EMUTRMA
paxctl -ex steamcmd
Then check flags:
paxctl -v steamcmd
PaX control v0.7
Copyright 2004,2005,2006,2007,2009,2010,2011,2012 PaX Team <pageexec@freemail.hu> 
- PaX flags: -------x-e-- [steamcmd]
RANDEXEC is disabled EMUTRAMP is disabled


Update:
Keep in mind: If you update steam, you have to do this again! (The updater will download a new steamcmd, so there will be no PaX headers!)