Half-Life : Counter-Strike server til Linux.

cs

Counter-Strike er en gratis modificering af det kommercielle spil Half-Life. Således er Counter-Strike også en modificering der skal ligges oven på HLDS (Half-Life Dedicated Server) til Linux. Af andre modificeringer til Half-Life kan nævnes Day of Defeat, Team Fortress og Natural Selection. Der findes sågar et racerbil spil (HLRally) og en Worms klon (WormsHL) der kan køres ovenpå dit Half-Life.

I denne guide nøjes vi med at beskæftige os med Counter-Strike server på Linux.
Til at starte med skal vi sørge for at vi har alle de filer som er nødvendige samt at de er i nyeste version. Bemærk at der tit kommer opdateringer til disse produkter så undersøg selv om de er de nyeste.

hlds_l_3111_full.bin 116.3 MB

Som sagt er Counter-Strike en modificering til Half-Life og derfor er det nødvendigt at hente hlds først. I skrivende stund er 3.1.1.1 den nyeste version (4.1.1.1 til Windows).
Den kan hentes her : http://www.fileplanet.com/files/50000/58368.shtml

hlds_l_3111b3_update.tar.gz 2.3 MB

Til 3111 er der kommet en b3 opdatering, den retter en del kritiske fejl i 3.1.1.1, den kan hentes fra dette ftp-site :
server: ftp.valvesoftware.com
user: hlserver
password: hlserver

cs_15_full.tar.gz 107 MB

Så skal vi hente Counter-Strike, der er en version 1.6 på trapperne men den er ikke kommet i skrivende stund, den kan hentes fra Counter-Strike's officielle hjemmeside :
http://www.counter-strike.net/linux_full.html

Det er sådan set alt hvad der skal hentes for at sætte en funktionel Counter-Strike server på internettet, der findes en masse addons som du skal overveje at ligge på din server.
Da det falder lidt udenfor emnet nøjes jeg med at liste nogle af dem her :

Adminmod 2.50.52 Fra : www.adminmod.org
Metamod 1.6 Fra : www.metamod.org
StatsMe 2.7.1 Fra : www.unitedadmins.com
HLGuard 1.41 Fra : www.unitedadmins.com

Metamod bliver installeret med Adminmod, men ikke i nyeste version, så husk at opdatere selvom Metamod er installeret.

Når disse filer er hentet og lagt på din Linux box er vi klar til at installere. Først skal vi have lagt hlds på, hvor du vil ligge den er op til dig, jeg antager i artiklen /opt/hlds_l.

Kopier hlds_l_3111_full.bin til /opt og kør følgende :

# cd /opt
# chmod o+x hlds_l_3111_full.bin
# ./hlds_l_3111_full.bin

Der vil herefter komme en licens som du skal acceptere, så vil pakken blive til en tar.gz pakke som udpakkes således :

# tar zxvf hlds_l_3111_full.tar.gz

Så udpakkes alle filerne til biblioteket hlds_l.
Kopier så hlds_l_3111b3_update.tar.gz til /opt og udpak som før :

# cd /opt
# tar zxvf hlds_l_3111b3_update.tar.gz

De opdaterede filer skulle gerne overskrive de gamle og dermed have patchet serveren op til nyeste version af hlds til Linux.

Dernæst skal vi have Counter-Strike 1.5 på serveren, kopier cs_15_full.tar.gz til /opt/hlds_l og gør følgende :

# cd /opt/hlds_l
# tar zxvf cs_15_full.tar.gz

Så er din Counter-Strike server sådan set installeret.

Konfigurationen af din server forgår hovedsagligt i filen server.cfg i /opt/hlds_l/cstrike.
Der er mangt og mange opsætnings parametre og variabler at skrue på, i første omgang kan vi give vores server et navn, editer server.cfg ret hostnavnet i linien :

hostname "Counter-Strike 1.5 Server"

Hvis det er en LAN server skal du lave en ny linie med teksten :

sv_maxupdaterate 100

For lidt mere info omkring variabler kik : http://server.counter-strike.net/cscmd.html

Den næste konfigurations fil vi skal kikke på er MOTD.txt i /opt/hlds_l/cstrike. MOTD står for Message Of The Day, og indholdet af denne fil popper op på skærmen når folk joiner eller når en ny bane starter.

Editer denne fil, og skriv "Velkommen til Ejner Hultesøms CS Server" eller hvad du nu lige syntes passer, denne fil kan max indeholde 155 karakterer.

Den sidste konfigurations fil du skal editere hedder mapcycle.txt, den ligger ligeledes i /opt/hlds_l/cstrike.
Denne fil er din mapcycle hvis du ligger nye maps på serveren kan du skrive dem i denne fil, desuden kan du fjerne de maps som du ikke syntes skal spilles. Serveren skifter automatisk til de maps der ligger i denne fil.

Når disse filer er tilrettet som du syntes passer, skal vi til at starte serveren.

Dette gøres med filen hlds_run og en passende mængde parametre :

-game "mod" = Start denne modificering eks. Cstrike.
-noipx = Start uden IPX.
+ip "x.x.x.x" = Brug denne IP-adresse.
+port "27xxx" = Brug dette port nr. (Brugt mest ved flere servere på samme maskine).
+maxplayers "antal" = Definerer et maximalt antal spillere.
+map "map" = Start med dette map eks. +map de_aztec.
-nomaster = Ingen kommunikation med WON servere (Brug ved LAN server).
-insecure = Hent ikke VAC modul (Brug når der ikke er en internet forbindelse).
+sv_lan 1 = Kør en LAN server.
+exec "file" = Eksekver en fil ved start eks. +exec autoexec.cfg.

Med disse parametre til hlds_run kan vi starte en server med de indstillinger vi vil have, lad os lave et par eksempler :

# cd /opt/hlds_l
# ./hlds_run "game cstrike "noipx +maxplayers 12 +map de_aztec

Denne linie vil starte en CS server uden IPX til 12 spillere og med de_aztec som første bane.

# cd /opt/hlds_l
# ./hlds_run "game cstrike "noipx "insecure -nomaster +sv_lan 1 +ip 10.0.0.1 +maxplayers 20 +map de_inferno

Denne linie vil starte en CS LAN server uden IPX og VAC modul på ip 10.0.0.1 til 20 spillere med første map som de_inferno.

Når du har fundet den opstarts linie du skal bruge kan du passende lave et lille script til at skrive denne lange kommando for dig. Lav en fil et sted i path som f.eks. /usr/bin eller hvor du syntes.
Kald den noget du kan huske og som virker logisk, som f.eks. csserver eller hlserver, skriv så følgende i den nye fil :

#!/bin/bash
cd /opt/hlds_l
./hlds_run "Alle dine parametre"

Husk at sætte eksekverings bit'et på din nye fil ellers kan den ikke køres, det gøres således :

# chmod o+x /usr/bin/hlserver

I nogle tilfælde er det nødvendigt at eksportere din sti til dine "dynamic Libraries" for at serveren kan starte, det gør vi sådan :

# export LD_LIBRARY_PATH=/opt/hlds_l:$LD_LIBRARY_PATH

Nu har vi sådan set en fuld funktionel server, jeg kan nævne et par kommandoer som kan bruges fra server konsollen : status, stat, stats, changelevel, kick, ban.

Når du føler dig klar til næste skridt skal du prøve at ligge adminmod på serveren. Med adminmod får du en masse funktionalitet blandt meget andet kan du oprette brugere og tildele dem rettigheder.
Dette er der masser af dokumentation til på deres hjemmeside som er nævnt tidligere i artiklen.

Til slut vil jeg gerne lige nævne et problem som mange løber ind i. hlds laver enormt mange logfiler, faktisk så mange at ls kommandoen ikke kan vise alle dine logfiler. Dette kan løses ved jævnligt at slette dem du ikke skal bruge, eller ved at bruge denne kommando der sletter filer der er over 90 dage gamle :

# find /opt/hlds_l/cstrike/logs -mtime +90 -exec rm -rf {} /;

Denne linie kan man jo passende ligge i cron så den bliver kørt hver nat.

God Fornøjelse.

Af
Jesper Jakobsen
www.dkgoofy.dk
jesper@dkgoofy.dk

Yderligere info :
http://www.unitedadmins.com
http://www.counter-strike.net
http://server.counter-strike.net
http://csnation.counter-strike.net
http://www.counter-strike.dk