Serwer Counter-Strike 1.6 Linux

Od HLDS.pl
Wersja Trawiator (dyskusja | edycje) z dnia 17:20, 14 lis 2013
(różn.) ← poprzednia wersja | zobacz aktualną wersję (różn.) | następna wersja → (różn.)
Skocz do: nawigacji, wyszukiwania

Spis treści

Counter-Strike 1.6 Linux

Wcześniej zobacz artykuł o HLDS, a dopiero tutaj patrz.


Uwaga!

Poniższe FAQ jest przeznaczone dla osób, które chcą zainstalować Serwer Counter-Strike'a. Aby zacząć cokolwiek robić, musisz mieć przynajmniej jakakolwiek wiedzę na temat systemów typu *nix - najlepiej jak najpierw zajrzycie tutaj.

Warto także najpierw zobaczyć podstronę tego artykułu w zależności od posiadanego systemu operacyjnego (jeśli takowa istnieje).

Wymagania:

  • Dostęp do serwera po przez SSH, albo siedzieć przy nim ;),
  • Połączenie z internetem na serwerze z Linuksem,
  • ‘homedir’ gdzie masz prawa zapisu,
  • Więcej niż 600 MB miejsca na dysku,
  • pakiet wget,
  • pakiet gzip (unzip).
  • pakiet lib32gcc1 (tylko systemy 64 bitowe)
  • pakiet ia32-libs (tylko systemy 64 bitowe)

Instalacja Serwera

Podstawowa Konfiguracja Serwera

Uruchamianie serwera jest dość proste, opis wartości dla parametrów podane są niżej. Dla przykładu:

./hlds_run -game cstrike +port <port> +ip <ip> +maxplayers <liczba> +exec server.cfg +map <mapa> 

Parametry

+ip <ip> oznacza ze chcemy aby serwer był tylko na danym adresie ip , nie musicie tego dawać jeśli chcecie uruchomić serwer widoczny na lanie i internecie (pod warunkiem ze serwer linuksowy ma przekierowanie na routerze odpowiednich portów albo on sam ma publiczny adres ip). ip są zależne od numerów jaki ma dany serwer i zależy to do jego konfiguracji - warto mieć admina serwera pod ręką :P. jeśli nie sprecyzujemy parametru ip, to hlds będzie słuchał na wszystkich interfejsach sieciowych serwera - użyteczne jak chcemy mieć serwer na przykład w dwóch sieciach komputerowych albo serwer na lan i na internecie (np.: w internet cafe). Przy numerach dynamicznych lepiej nie precyzować numeru ip serwera (np.: mając łącze takie jak Neostrada, itp.)

Przykład +ip 192.168.1.10

+port <port> oznacza na jakim porcie chcemy odpalić serwer, przeważnie domyślnie mamy 27015, można zmienić np.: na 27016 jeśli stawiamy drugi serwer

Przykład +port 27016

+maxplayers <liczba> oznacza na ile slotów chcemy stworzyć serwer, przeważnie chcemy zrobić na 18 graczy, czyli mamy +maxplayers 18. Maksymalna ilość slotów zależy w dużej mierze od wydajności waszego serwera oraz łącza internetowego.

+map <mapa> każe załadować mapę, inaczej serwer będzie działał, ale na nim nie zagracie :D, trzeba dodać +map de_dust jeśli nie ma mapy powinna być jednak możliwość podłączenia się do serwera poprzez rcon.

-autoupdate parametr, dzięki któremu serwer będzie się automatycznie aktualizował po restarcie.

OSTATECZNIE wasza podstawowa linia startowa serwera powinna wyglądać na przykład tak:

./hlds_run -autoupdate -game cstrike +maxplayers 18 +exec server.cfg +map de_dust

Pierwsze uruchomienie

Warto najpierw odpalić serwer bez modów i sprawdzić czy działa. Warto uruchomić serwer z parametrem -debug -condebug, dzięki czemu będziemy widzieć o wiele więcej komunikatów o błędach, a większość problemów będzie w pliku cstrike/qconsole.txt

Serwer powinien wystartować i po chwili pokazać, że chodzi. Możemy się o tym przekonać wpisując w konsoli komendę

status

powinno zwrócić info jaka jest mapa, adres ip, ilość graczy, itd - możemy spróbować się do niego podłączyć.

Jak sobie pobiegamy to teraz można wyłączyć serwer (wpisz komendę quit w konsoli serwera) i myśleć nad bardziej zaawansowanym konfigurowaniem, opisanym w innych artykułach.

FreeBSD

Wymagany artykuł po angielsku - dla admina http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu-lbc-install.html

Autor: di0nizy Instalacja Klienta Steam pod systemem FreeBSD. Niestety, aby wszytko działało jak należy będzie nam potrzeby root albo superuser.

Po aktualizacji portów (aktualizacji systemu) wykonujemy polecenie:

# cd /usr/ports/emulators/linux_base-suse-9.2 && make install clean

Aktywujemy Linux emulation - do pliku /etc/rc.conf należy dopisać:

linux_enable="YES"

Potem musimy wykonać reboot maszyny.

Następnie:

cd /usr/ports/games/linux-steam && make install clean

Jeśli chcecie zainstalować Steam'a w konkretnej lokalizacji, musisz wyedytować plik /usr/ports/games/linux-steam/Makefile W środku znajdziesz linię:

INSTALLDIR?= steam

Zmień ją na:

INSTALLDIR?=/gdziekolwiek/Ci/wygodnie/zainstalować/steama/

System powienien ściągnąć i zainstalować Steam'a jak i wszystkie niezbędne do jego działania biblioteki.

Na końcu:

# cd /gdziekolwiek/Ci/wygodnie/zainstalowac/steama/
# ./steam

i instalujemy jak dla reszty linuksów.


stare -----

Dodatkowo warto zaznajomić się z pakietem http://www.freshports.org/games/hlserver-cs/ Potrzebne będzie też http://www.freshports.org/emulators/linux_base-8/

Systemy 64 bitowe

Na systemach 64 bitowych występuje błąd podczas instalacja serwera a mianowicie nie można odpalic pliku hldsupdatetool.bin

./hldsupdatetool.bin
-bash: ./hldsupdatetool.bin: Nie ma takiego pliku ani katalogu

aby to naprawić wystarczy doinstalować 2 pakiety :)

apt-get install lib32gcc1
apt-get install ia32-libs

Gentoo

Warto zajrzeć najpierw na Gentoo Wiki - o ile artykuł jest o Serwerze Source, warto się z nim zaznajomić i pozmieniać odpowiednie wartości jak "Counter-Strike Source" na cstrike.

Potrzebne pakiety

  • app-arch/ncompress
  • sys-kernel/linux-headers
  • sys-libs/libstdc++-v3

Użyteczne pakiety

app-misc/screen

Można pobawić się pakietem halflife-steam ale radziłbym stosować opisaną instalację jak dla normalnych linuksów.

Wywalanie się serwera z powodu CPU Frequency

Jeszcze jedna notka co do wywalającego się serwera, najczęściej objawiająca się komunikatem

Unable to determine CPU Frequency

Problem leży w katalogu /proc

SteamPowered Forums thread

Przeważnie chodzi o to, że w systemie linuksowym nie ma dostępu do /proc/cpuinfo albo go w ogóle nie ma - tak się zdarza przy bardzo restrykcyjnie ustawionym systemie (np.: PLD) albo jak nie ma doinstalowanych pakietów (np.: FreeBSD)

HLDS używa od jakiegoś czasu dziwnej metody określenia taktowania procesora, czasem mu się udaje, ale jak procesor jest bardzo obciążony to może mu się nie udać (w wyniku przełączania procesów) i wywala błąd - dlatego serwer np startuje ale przy zmianie mapy pada.

Rozwiązaniem jest danie userowi na którym działa serwer dostępu do czytania /proc/cpuinfo albo przeczytajcie niżej rozwiązanie dla FreeBSD.


Hey Guys,

I keep getting this error almost every time I try to start up srcds_run. It looks like it starts up ok, then it gives the error "Unable to determine CPU Frequency" and crashes.

After running the srcds_run commands about 5 times, it finally starts up OK. Does anyone know why I would get such an error and how I can fix it?

I'm running FreeBSD 4.11 with a Pentium 4 2.8Ghz prescott CPU.

Any help would be greatly appreciated.

Dan


You need to make sure linux_base is installed and that you have linuxproc fs and mounted i belive try cvsup'ing to RELENG=5.3 i belive.


just found another piece of puzzle here it is: http://www.mail-archive.com/hlds_li...m/msg35818.html in few words - you may need to add the following line to your /etc/fstab file: linprocfs /compat/linux/proc linprocfs rw 0 0 worked for me


Konfiguracja

Już przeczytaliście, że serwer można odpalić z parametrami, istnieją jescze komendy oraz zmienne, które dokładniej określają pracę serwera. Warto zaznajomić się teraz ponownie z artykułem HLDS gdzie są przedstawione podstawowe pliki konfiguracyjne.

Poniżej przykładowy server.cfg

// server.cfg PL
// by _KaszpiR_ and PawelS
// ver 0.7.1 2006-11-11
 
// odpal hlds z parametrem +servercfgfile server.cfg
// na przyklad ./hlds_run -game cstrike +map de_dust +servercfgfile server.cfg
 
// config ma parametry przygotowanie na serwer ffa
 
// konfiguracja podstawowa
sv_lan 0 //ustaw na 1 jesli to jest serwer wylacznie na lan
maxplayers 22 //maksymalna ilosc graczy, pamietaj ze systemy rezerwacji slotow na serwerze zabieraa przewaznie 2 sloty
sv_visiblemaxplayers -1 // liczba widocznych slotow na serwerze, jesli -1 to jest automatycznie obliczana (standard)
                        // ale wtedy trzeba recznie w konsoli napisc adres serwera aby sie podlaczyc (jesli serwer pelny)
                        // ustawiasz np te wartosc na 20 a masz maxplayers 22 i w rzeczywistosci masz 2 wolne sloty na serwerze 
 
exec banned.cfg // laduj bany steamid/wonid
exec listip.cfg // laduj bany na ip
 
hostname "Szambo" // nazwa serwera widziana poprzez przegladarki serwerow (np w favourities)
mapchangecfgfile "server.cfg" // wykonaj ten confgi podczas zmiany mapy (np aby przywrocic stare ustawienia )
mapcyclefile "mapcycle.txt" // plik zawiera liste map wg ktorych bedzie sie grac po zakonczeniu rozgrywki 
motdfile "motd.html" // nazwa pliku do wyswietlenia jak sie wchodzi na serwer, to czego ludzie nie czytaja :)
servercfgfile "server.cfg" // plik z glownymi ustawieniami na serwerze, odpalany przy pierwszym starcie 
 
sv_proxies 1 // liczba hltv proxy jakie moga sie podlaczyc do serwera, standard 1, wiecej nie zalecane
sv_region 3 // domyslne 0 - swiat, a poniewaz jestesmy w europie ustawiamy na 3
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// wydajnosc
fps_max 100 // ile fps serwer powinien miec srednio, najlepiej aby byla okolo 100, ale nie wieksza od 200
            // inaczej serwer zzera za duzo procesora
host_framerate 0 // cholera wie co to jest
sys_ticrate 200 // wartosc 125 jest zalecana, najlepiej nie miec wiecej niz 200, niektore mecze wymagaja 1000, ale firmy hostingowe moga forsowac te wartosc na nizsze
                // 10 000 jest wartoscia ekstremalna, jedynie na lany dla wymiataczy
                // przewaznie zzera tylko niepotrzebnie procesor
        
///////////////////////////////////////////////////////////////////////////////////////////////////
// net
sv_maxrate 20000 // maksymalna wartosc jaka serwer moze wyslac do kazdego klienta z osobna,
                // ustawianie wartosci ponizej 4000 zlaguje graczy i serwer, na lan maksymalna wartość 25000
                // na serwer internetowy - zalezy do lacza, sprobuj z 9999 jesli masz lagi, ewentualnie sukcesywnie zmniejszaj o 500
 
sv_maxupdaterate 80 // maksymalna wartosc jaka klient moze miec przy cl_updaterate, 
                    // jesli ma wiecej to bedzie mial tracone pakiety
 
sv_minrate 0 // minimalna wartosc jaka serwer moze wyslac do kazdego klienta z osobna, domyslnie 4000,
            // ustawanie wartosci powyzej 6000 zlaguje serwer i graczy
            // zaleca sie trzymanie wartosci 0 ze wzgledu na serwery HLTV - po prostu mozna zaoszczedzic kase za lacze
 
sv_minupdaterate 10 // minimalna wartosc jaka klient musi miec przy cl_updaterate, 
                    // zaleca sie trzymanie wartosci 10 ze wzgledu na serwery HLTV
 
sv_maxunlag 1 // maksymalny czas w sekundach kompensacji lagow
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// rcon i hasla
sv_password "" // wymagane haslo aby sie podlaczyc do serwera, 
                //ustawnaie najczesciej na serwery klanowe albo podczas meczu
 
//rcon_password "zupa" // haslo na rcon, nie zalecane aby tu umeszczac, lepiej jesli dasz w parametrach odpalania serwera
                     // jesli ustawisz "" to rcon nie bedzie dzialal
                     // np +rcon_password "zupa"
 
sv_rcon_banpenalty 60 //czas bana za probe uzycia zlego rcon'a za wielokrotne proby (banuje na ip), 0 to na zawsze
sv_rcon_minfailures 5 // limit zlych komend rcon aby dostac ban'a
sv_rcon_minfailuretime 30 // czas w jakim sa sprawdzane proby rcon, 
// jak ktos zle wpisze rcon_password (albo nie poda) i wykona zbyt wiele komend rcon to dostanie bana
// wtedy pomaga jedynie restart serwera, poniewaz po odbanowaniu kazdy blad spowoduje zalozenie na nowo bana
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// logi
// zaleca sie zachowanie ponizszych ustawien jesli chcesz uzywac HLStats albo PsychoStats
mp_logdetail 3 // poziom logow, 0 - wylacz, 1 - tylko trafienia przeciwnika standard , 2, - tylko trafienia tp, 3 - loguj oba (tp i wroga)
mp_logecho 1 // 1 - wlacza logowanie komendy echo, 0 - wylacza, np jak masz w server.cfg echo SERVER CFG LOADED to bedziesz mial to logowane
mp_logfile 1 // logowanie wydarzen multiplayer (koniec rundy itp), 1 - tak (standard), 0 - nie
mp_logmessages 1 // loguj komendy say (chat), 1 - tak (standard), 0 - nie
sv_logbans 1 // loguj dawanie banow, 1 - tak (standard), 0 - nie
sv_logblocks 1 // loguj blokowane proby zmiany zastrzezonych wartosci zmiennych, 1 - tak (standard), 0 - nie 
sv_logrelay 1 // loguj podlaczenia hltv relay proxy, 1 - tak (standard), 0 - nie
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// voice
sv_voicecodec "voice_speex" // rodzaj kodeka, domyslnie voice_miles, zalecany voice_speex - lepsza jakosc kosztem kilku procent uzycia procesora
sv_voiceenable 1 // uzywaj opcji voice na serwerze, 1 - tak (domyslnie), 0 - nie
sv_voicequality 3 // jakosc glosu, od 1 do 5, im wiecej tym lepiej ale wieksze uzyci proca i sieci, domyslnie 3
sv_alltalk 0 // 0 - (domyslnie) voice mozna uzywac tylko jesli zywy i tylko do tp, 1 - kazdy moze gadac z kazdym (dobre na poczatek i koniec meczu)
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// downlad
// zaleca sie zachowanie ponizszych wartosci aby nie miec problemow ze sciaganiem plikow z serwera
hpk_maxsize 0.5 // maksymalny rozmiar sumy wszstkich logo graczy na serwerze, w megabajtach
                // rekomendowana wartosc do 2 mega
                // ustawianie zbyt wysokich warosci spowoduje ze gracze beda disconnectowani (bo musza to zassac),
                // a serwer bedzie sie wolniej ladowal
                // 1 MB = 100 bitmap
sv_allowdownload 1 // pozwalaj na download, 1 - tak (standard), 0 - nie
sv_allowupload 1 // pozwalaj na upload (np loga), 1 - tak (standard), 0 - nie
sv_send_logos 1 //pozwalaj na wysylanie logo graczy (sprej na sciane)
sv_send_resources 1 // pozwalaj na dowload listy wymaganych plikow aby grac na mapie, 1 - tak (standard), 0 - nie
//sv_downloadurl "http://szambo/hlds/dlurl/" // url do lokacji skad mozna zasysac pliki serwerowe (pamietaj aby ograniczyc dostep do waznych plikow  - katalog addons, server.cfg itp)
sv_downloadurl "http://bagno/hlds/" 
mp_decals 300 // maximum wyswietlanych logo itp na serwerze
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// rozgrywka
mp_autoteambalance 0 // przerzucaj graczy do innych druzyn jesli nierowne sklady, 0 - nie (domyslnie), 1 - tak
mp_buytime 0.25 // czas kupowania na pocz rundy, w ulamku minuty ( jedna minuta = 1.0, 30 sekund = 0.25)
mp_c4timer 35 // czas w sekundach na rozbrojenie bomby (bo inaczej bedzie bum :), domyslnie 35
mp_consistency 1 // 0 - nie pozwol graczom na uzywanie wlasnych modeli postaci i broni (standard) , 0 -  pozwalaj (bo czituja)
mp_flashlight 1 // 1 - mozna uzywac latarki (standard), 0 - latarka zablokowana
mp_footsteps 1 // 1 - slychac kroki graczy podczas biegu (standard), 0 - wylaczone (quake 1 mode), dobre do cwiczenia refleksu :)
mp_freezetime 6 // czas w sekundach wstrzymania na poczatku rundy (na reload i kupno broni), ustaw na 0 na mapach aim
mp_friendly_grenade_damage 1 // 0 - granaty nie rania tp (ale zabiebraja armor), 1 - granaty rania graczy z druzyny (standard)
mp_friendlyfire 1 // 0 - jak strzelasz do swoich to ich nie ranisz, 1 - ranisz swoich (standard)
mp_ghostfrequency 0.1 // czestosc odswiezania stanu dla obserwatorow
mp_hostagepenalty 0 // ilosc zabic zakladnikow po ktorym dostajesz kicka, 0 - wylaczone
mp_limitteams 0 // ilu graczy moze byc niesymetrycznie po jedej z druzyn, 0 - bez limitu, 2 - maxymalnie moze byc w jednej z druzyn 2 graczy wiecej
mp_maxrounds 0 // maksymalna liczba rund do grania, 0 - brak limitu (standard)
mp_mirrordamage 0 // jak trafiasz swojego to tak jabys trafial siebie, domyslnie 0, 1 - wlacza (nie zalecane)
mp_payerid 0 // wyswietla nick gracza po nacelowaniu, 0 - widac wsztkich (w kolorach) (standard), 1 - tylko tp i zakladnicy, 2 - nikogo nie pokazuje
mp_roundtime 1.75 // czas trwania rundy w minutach , standard to 3 minuty, albo 1.75 na szybkie rozgrywki (aby sie nie nudzic na obsie), wartosci od 1 do 9
mp_startmoney 800 // liczba kasy na poczatku rundy
mp_timelimit 20 // limit czasu grania na mapie (po nim nastepuje zmiana mapy), w minutach, ustaw na 0 na brak limitu czasu, 
mp_tkpunish 0 // karanie smiercia na poczatku nastepnej rundy za zabicie swojego, 0 - nie (domyslnie), 1 - tak
mp_winlimit 0 // limit rund do wygrania, jak jakas druzyna osiagnie te wartosc to nastepuje zmiana mapy, 0 - brak limitu (standard)
pausable 0 // 0 (standard) nie pozwala graczom pauzowac gry na serwerze, 1 - pozwala, czasem na meczach sie tak ustawia
sv_maxspeed 320 // maksymalna predkosc biegu gracza , standard (320)
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// obserwatorzy
allow_spectators 1 // pozwalaj na obserwatorow (osoby kompletnie nie grajace), 1 - tak (standard), 0 - nie, 
mp_fadetoblack 0 // 1 - ekran sie sciemnia po smierci gracza (wymagane na niektorych meczach), 0 - bez sciemnienia
mp_forcecamera 2 // forsuj spectarora na: 0 - nie forsuj, 1 - widok z oczu gracza i z chase mode , 2 - tylko widok z oczu gracza, zalecana wartosc 1 albo 2
mp_forcechasecam 1 // 0 - gracz moze latac po calej mapie, 1 - mozna ogladac typo swoich tp, 2 - klient nie rusza sie z miejsca gdzie umarl
 
mp_autokick 0 // automatyczne kickowanie za zabijanie swoich albo dlugie nie ruszanie sie z miejsca
sv_timeout 120 // czas w sekundach, jesli gracz nie odpowie w tym czasie uznawany jest za odlaczony od serwera (jak komus sie komp zwiesi/padnie na chwile lacze)
sv_spectatormaxspeed 500 // maksymalna predkosc latania obserwatora , normalny gracz biega z predkoscia 320, standard jest 500
mp_chattime 3 // po ilu sekundach po osiagnieciu timelimitu/maxrounds zmienia sie mapa
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// inne 
mp_autocrosshair 0 // default 0
sv_aim 0 //0 ((standard) wylacza autocelowanie, 1 - zalacza auto celowanie (nie zalecane)
sv_airaccelerate 10 // akcleracja w powietrzu (bunnyjump), wartosc od 0 do 10 , 10 standardowo
sv_airmove 1 // pozwala na ruch w powietrzu (bunnyjump), 1 - tak (standard), 0 - nie
sv_challengetime 150 // czas w sekundach, jesli gracz sie nie podlaczy do gry w tym czasie bedzie uznawany za odlaczonego, zwieksz jesli gracze maja slabe kompy albo duzo sciagaja z serwera :D
sv_cheats 0 // 0 (standard) nie pozwala na komendy give weapon, god, noclip i takie tam, 1 - dla deweloperow map albo serwero for fun
sv_clienttrace 1 // (standard) 1
sv_friction 4 // poslizg na powierzchni podczas biegania, ma wplyw na predkosc kompletnego zatrzymania sie, 4 (standard)
sv_gravity 800 // grawitacja, domyslnie 800, im wiecej tym trudniej skakac (przy pewnych wartosciach zejscie z malego schodka jest smiertelne a granaty padaja pod nogami)
                // 0 wylacza grawitacje - jak podskoczysz to juz nie upadniesz
                // wartosc 100, 200, 400 sanajczesciej spotykane na serwerach niekonwecjonalnych
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// status serwera poprzez www
// sprawdzenie statusu serwera tez zzera troche procesora i lacza, domyslne wartosci sa wystarczajace
 
max_queries_global 20 // jak czesto mozna w sumie sprawdzic status serwera
max_queries_sec 3 // jak czesto klient moze sprawdzac status serwera (all seeing eye, skrypty www)
max_queries_window 30 // rozmiar okna czasowego na sprawdzanie zapytan ,jak masz problemy z timeoutem w hlsw ustaw na 10
 
///////////////////////////////////////////////////////////////////////////////////////////////////
// ekstra konfigi
//exec addons/wwcl/scripts/wwcl_config.cfg // wykonaj confgi wwcl (jesli posiadasz ten plugin, a jak nie to nic zlego sie nie stanie)
//exec addons/cdeath/cdeath.cfg // wykonaj confgi Cheating-Death (jesli posiadasz ten plugin, a jak nie to nic zlego sie nie stanie)
 
//say "Server.cfg loaded" // ta linia odkomentowana czasem sie przydaje przy wykonywaniu zdalnej komendy
//echo "Server.cfg loaded" // to samo co wyzej, ale aby bylo zalogowane musi byc zmienna mp_logecho 1
                        // rcon exec server.cfg
                        // wtedy latwiej sie upewnic ze dobrze wpisalismy komende
 
// koniec 
Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia