HLTV

(Różnice między wersjami)
Skocz do: nawigacji, wyszukiwania
m (Jak sterować zdalnie HLTV ?)
Linia 206: Linia 206:
 
=Mecze i nagrywanie dem=
 
=Mecze i nagrywanie dem=
  
Czasem nie chcemy aby ktokolwiek podczas nagrywania dema miał możliwośc wejścia na HLTV.  
+
Czasem nie chcemy aby ktokolwiek podczas nagrywania dema miał możliwośc wejścia na HLTV.
 
Stosujemy tę opcje aby zmiejszyć obciążenie serwera, albo aby HLTV tylko i wyłącznie nagrało demka, które potem opublikujemy na sieci.
 
Stosujemy tę opcje aby zmiejszyć obciążenie serwera, albo aby HLTV tylko i wyłącznie nagrało demka, które potem opublikujemy na sieci.
  
Linia 220: Linia 220:
 
Aby tego uniknąć gracze mogą sprawdzić komendą ''status'' stan HLTV.
 
Aby tego uniknąć gracze mogą sprawdzić komendą ''status'' stan HLTV.
 
Powinien on powiadomić o delay (czyli opóźnieniu transmisji), liczbie widzów i wolnych slotach, numerze ip.
 
Powinien on powiadomić o delay (czyli opóźnieniu transmisji), liczbie widzów i wolnych slotach, numerze ip.
 
+
HLTV umożliwia także włączenie dźwięku (w tym voice) w czasie, gdy luzie są połączeni z serwerem w czasie rzeczywistym.
 
'''UWAGA!''' HLTV ma STEAM_ID równy '''HLTV''' tylko i wyłącznie!!! Wszystko inne to gracz/bot!!
 
'''UWAGA!''' HLTV ma STEAM_ID równy '''HLTV''' tylko i wyłącznie!!! Wszystko inne to gracz/bot!!
  

Wersja z 01:05, 24 cze 2009

Spis treści

Opis

Half-Life TeleVision (HLTV) to system do nagrywania i rozprowszechniania obserwacji z gry Half-Life i jest automatycznie instalowana z HLDS. Potrafi nagrywać dema oraz odtwarzać je potem w internecie, potrafi przekazywać dane z serwera gry aby gracze mogli obserwować grę bez przeszkadzania graczom.

Pod serwery Source zobacz SRCTV

Half-Life TV, w skrócie nazywane HLTV, daje możliwość posiadania nielimitowanej liczby graczy oglądających gry, rozgrywających się w czasie rzeczywistym, oraz nagranych z nich dem. Oglądający mają możliwość przyglądania się grze w sposób zbliżony jaki daje funkcja Spectator w normalnym serwerze gry. Oczywiście ich pełne możliwości mogą być kontrolowane aby uniknąć pewnego rodzaju nieporozumień mogących występować po meczu.

Każdy widz może wybrać dowolny punkt obserwacyjny, albo wybrać dowolnego gracza, aby przyjrzeć mu się dokładniej itp. Istnieje możliwość uruchomienia funkcji Auto-Director, która zwiększa wrażenia z gry. Powoduje to, że kamera zmienia się automatycznie, przedstawiając najciekawsze fragmenty gry z danego punktu obserwacyjnego. Dzięki temu widz może siedzieć wygodnie i przygadać się akcji bez zbędnego szukania ciekawych momentów, poprzez ciągłą zmianę widoku. W miedzy czasie widzowie mogą się komunikować miedzy sobą używając standardowego systemu komunikacji tekstowej w HL.

Większość (jeśli nie wszystkie) modów ma dostęp do używania HLTV w grze, np. Counter-Strike (CS), Team Fortress Classic (TFC), Day of Defeat (DOD) i inne.

Osoby udostępniające serwer HLTV maja pełną kontrole nad systemem HLTV:

  • mogą zmieniać liczbę slotów (czyli ilu widzów może oglądać mecz będąc podłączonym do właśnie danego serwera HLTV)
  • można wysyłać kolorowe napisy na ekrany widzów
  • można kontrolować zdalnie HLTV jak i serwer gry
  • można ustawić logo
  • można ustawić opóźnienie aby uniemożliwić podpowiadanie w grze innym graczom (domyślnie juz jest na 30 sekund)

Postawienie prostego serwera HLTV nie jest zadaniem trudnym - właściwie starczy wpisać 3 komendy i leci. Jednakże więcej można wycisnąć i ustawić jeśli trzeba. Natomiast ustawianie większej sieci HLTV na np tysiące widzów wymaga większego nakładu pracy oraz koordynacji oraz znajomości nie tylko prostych funkcji HLTV ale także znajomości sprzętu komputerowego i łączy internetowych.

Oglądanie gier

Poniższy opis może być dobry dla gier przed era Steam, w Steam może to wyglądać inaczej ale pewnie jest podobnie.

Aby oglądać grę poprzez HLTV, uruchom Half-Life, wybierz opcje Mulitplayer i wybierz 'Find Servers'. Aby znaleźć aktualnie nadawane gry wybierz 'Spectate' i naciśnij 'Refresh All'. Po zaktualizowaniu listy dwukrotnie kliknij na serwerze który chcesz oglądać jak wszystko będzie ok to się podłączysz.

Rozgrywki ligowe często są nadawane poprzez HLTV, podaje się wtedy numer IP:Port serwera HLTV jaki będzie w użyciu - może być to wiele adresów z powodu wielu proxy wykorzystywanych do nadawania, jeśli istnieje duże zainteresowanie. Zamiast szukać serwerów można wtedy użyć opcji 'Favorites' i dodać tam numer ip do listy.

Można się także podłączyć wpisując komendę z konsoli (jeśli aktywna), wpisując podobnie jak poniżej

connect ip:port 

Przykład:

connect 123.34.56.7:27020 

Domyślnym portem jest port 27020, ale może być on zmieniony. Aby się podłączyć do HLTV trzeba podawać numer portu gdyż domyślnie gra dodałaby sama z siebie port 27015 (jako domyślny).

Grę można oglądać z rożnych perspektyw:

  • Chase Cam - kamera podąża za graczem.
  • First Person - widzimy obraz bezpośrednio z oczu gracza.
  • Free Look - możemy sami dowolnie przemieszczać się po mapie i obserwować.
  • Map Overview - ogólny rzut a mapę z góry
  • Map Chase - rzut na mapę z góry ale mapa przesuwa się utrzymując wybranego gracza w centrum widoku.(czasem jak nie ma *grafiki to zamiast widoku mapki mamy zieloną kratkę, krótkie info na końcu w FAQ)

Najprostszą metodą zmiany widoku jest naciskanie klawisza odpowiadającego za funkcję JUMP (najczęściej prawy klawisz myszy albo SPACJA). Można także użyć menu naciskając klawisz DUCK (domyślnie CTRL),a tam możesz zmodyfikować aktualne ustawienia widoku. Naciskając klawisz USE (domyślnie E) możesz zmieniać ustawienia widoku - tzw PIP,rozwinięcie skrótu oznacza Picture-In-Picture (widok w widoku).

Poniższe komendy w konsoli gry gracza Half-Life są dostępne aby zmienić ustawienia:

  • spec_autodirector <0|1> - Auto Director działa/nie działa
  • spec_drawcone <0|1> - pokazuje stożek wizji na mapie
  • spec_drawnames <0|1> - pokazuje imiona graczy pod ich pozycjami
  • spec_drawstatus <0|1> - pokazuje informacje o grze
  • spec_pip <0|1> - Picture-In-Picture działa/nie działa (PIP)
  • spec_menu - otwiera menu widza/obserwatora
  • spec_help - pokazuje ekran pomocy
  • spec_decal - komentator HLTV sprejuje proxy custom decal - logo
  • spec_mode <1-6> [<0-4>] - ustawia główny widok, drugi parametr kontroluje PIP, nie wszystkie kombinacje działają

Główne:

  • 1 : Zablokowany Pościg
  • 2 : Swobodny Pościg
  • 3 : Swobodny Widok
  • 4 : First Person (z oczu)
  • 5 : Widok Mapy 6 : Widok Mapy z Pościgiem

PIP:

  • 0 : PIP wyłączone
  • 1 : Swobodny Pościg
  • 2 : First Person (z oczu)
  • 3 : Widok Mapy
  • 4 : Widok Mapy z Pościgiem

Podstawy HLTV

Hltv.graph1.gif

Podstawą HLTV jest system rozpowszechniania - czyli serwer HLTV jako aplikacja, powszechnie zwany także HLTV proxy. Serwer HLTV jest aplikacją konsolową która w działaniu przypomina trochę serwer dedykowany HLDS. Aby nadawać grę do oglądania, HLTV proxy musi się podłączyć do serwera gry tak jak normalny gracz, jednakże przechodzi on od razu do grupy Spectators. Widzowie natomiast podłączają się do HLTV proxy i oglądają grę. W ostateczności to wygląda mniej więcej tak:

HL Game Server -> HLTV Proxy => Spectator Clients czyli Gra -> HLTV -> Widzowie

Ilość widzów jaka jest obsługiwana przez dany HLTV Proxy zależy od wydajności sprzętu oraz od łącza sieciowego. Teoretycznie jeden proxy może maksymalnie mieć 255 widzów. Jednakże w rzeczywistości proxy ma mniej graczy gdyż 100 widzów wymaga wykorzystania w pełni w obu kierunkach 2MBit'owego łącza. Im więcej widzów tym większe łącze, więcej ramu, i większe użycie procesora. Oczywiście jak nie da się wszystkich upchnąć na 1 proxy to się tworzy kilka.

Wtedy układ wygląda inaczej. Pierwszy HLTV proxy podłącza się do gry i jest wtedy nazywany Master proxy. Wysyła on wtedy info do innych HLTV proxy, które z kolei się podłączają nie do serwera gry, ale właśnie do Master proxy - wtedy nazywają się one Relay proxy. Można w ten sposób tworzyć łańcuchy albo drzewa proxy - jedynym limitem jest przepustowość sieci oraz wydolność sprzętu. Należy tworzyć je tak aby nie następowało zbytnie przeciążenie, szczególnie sieci, gdyż przeważnie występują braki zasobów sieciowych (zbyt mały transfer łącza w stosunku do wymagań, lagi itp.).

Relay proxy przesyła więc dane do graczy lub innych HLTV proxy. Master Proxy przeważnie przesyła dane do Relay proxy ale może tez wysyłać do innych obserwatorów, często administratorów całości.

Przykład:

                                  -> HLTV Relay Proxy 1 => Spectator Clients
HL Game Server -> HLTV Master     -> HLTV Relay Proxy 2 => Spectator Clients
                                  -> HLTV Relay Proxy 3 => Spectator Clients

Przykład 2:

                                                                      => Spectator
                      -> Relay Proxy Level A 1 => Relay Proxy Level B => Spectator
Game Server->Master   -> Relay Proxy Level A 2 => Spectator (oper)
                      -> Relay Proxy Level A 3 => Spectator
                      -> Spectator Clients (admin)

Rozpowszechnianie HLTV

Prześledźmy najprostszą konfigurację HLTV na LAN, albo do nagrania meczu. Jest to chyba najczęściej spotykane rozwiązanie na turniejach, dlatego domyślne ustawienia nie muszą być zmieniane.

Wybierz maszynę na której będzie działał serwer HLTV (może to być tez ten sam serwer co serwer HLDS) Jeśli trzeba zainstaluj HLDS oraz grę rozgrywaną na serwerze, np. Mod Counter-Strike (zawiera on wszystko czego wymaga HLTV do działania) Uruchom aplikację HLTV - pojawi się konsola z informacjami o inicjalizacji, jeśli trwa to za długo uruchom HLTV z parametrem -nodns (wtedy nie czeka się na rozszyfrowanie nazw domen, dobre na LAN bez internetu)

Po chwili konsola powinna być gotowa do przyjmowania poleceń,pojawi się znaczek '>'

Wpisz unikalną nazwę dla aplikacji, będzie ona pokazywana na scoreboardzie

name "HLTV Proxy Patrzy" 

Załóżmy ze HLTV Proxy jest na numerze ip 192.168.1.2, natomiast serwer gry HLDS jest na numerze 192.168.1.3:27015 i działa.

Aby podłączyć nasze HLTV do serwera gry, wpisujemy:

connect 192.168.1.3:27015 

i po chwili HLTV powinno się podłączyć do gry i być gotowe na przyjęcie widzów. Aby się upewnić wpisz

status 

powinno się pojawić cos mniej więcej takiego:

--- HLTV Status ---
Local IP 192.168.1.2:27020, FPS 72.8, Network In 0.8 Out 0.9
Local Slots 128, Spectators 0, Proxies 0
Source: Server "Half-Life" (192.168.1.3:27015)
Total Slots 128, Spectators 0, Proxies 1
Time 01:02, Game "valve", Map "maps/frenzy.bsp", Players 1

Komenda status pokazuje: IP serwera HLTV, port serwera HLTV (domyślnie 27020), liczbę Klatek, ruch sieci w kB/s ilość miejsc dla widzów lokalnych, aktualna liczbę oglądających, liczbę dostępnych proxy Źródło przekazu (serwer gry, inny proxy czy tez demo nadawane, adres:port ip) sumy całkowite (totals) to suma wolnych slotów i widzów na wszystkich proxy nadających grę. Czas gry, rodzaj modu (tutaj valve, może być cstrike, dod, tfc...), mapę, graczy na serwerze. Info o nagrywanym demie (jesli nagrywane).

Oglądanie dem z HLTV

Dema z HLTV są takie same jak dema w normalnej grze, ale dodatkowo posiadają opcję wybrania dowolnego punktu widoku gry. Oznacza to że mozesz oglądać grę z dowolnego miejsca na mapie, widzieć kazdego gracza z róznych widoków (z oczu z tyłu, z boku).

Aby odtwarzać demo nagrane poprzez HLTV nie musisz posiadać serwera HLTV. Wystarczy, że po odpalisz grę i w konsoli wpiszesz

playdemo <nazwa_dema> 

albo

viewdemo <nazwa_dema> 

a obejrzysz dane demo. Róznica pomiędzy playdemo a veiwdemo jest znacząca - ta druga opcja daje mozliwość przwijania dema, pauzowania, czy tryb spowolnienia ruchu.

Nagrywanie dem poprzez HLTV

Aby nagrać demo musisz wykonać kilka operacji:

  • trzeba mieć uruchomione HLTV proxy (czyli serwer hltv)
  • należy podłączyć HLTV proxy do serwera gry na którym grają gracze i rozgrywają mecz
  • należy uruchomic komendę nagrywania.

Powiedzmy,że już masz uruchomione HLTv i że jest podłączone do serwera gry (opisane jes to pare punktów wyżej) Tera należny wpisac komendę do nagrywania

record nazwa_dema 

Wszelkie gry będa nagrywane po wykonaniu tej komendy. Wszelkie dema sa zapisywane w katalogu aktualnego mod'a, czyli na przykład dla Counter-Strike 1.6 w podkatalogu cstrike. Uwaga! Pod Windows należy stworzyć ten katalog w podkatalogu z którego uruchamiamy hltv (dedicated server) - inaczej dema nie będą zapisane.

Wszelkie dema mają specjalnie oznakowane nazwy

<nazwa_dema>-<YYMMDDhhmm>-<map>.dem

Pierwszy człon nazwy to wiadomo - nasza nazwa dema. Na przykład nazwa jakie graja klany. Dalej jest format daty, każde 2 liczny reprezentuja odpowiednio:

  • rok w formacie ostatnich 2 cyfr
  • miesiąc
  • dzień
  • godzine (24h)
  • minuty

Dalej jest nazwa mapy, oraz rozszerzenie, czyli .dem

Dema zapisuja dokładnie te same dane które otrzymują gracze podczas rozgrywki i będący obserwatorami. To zonacza, że HLTV nagrywa z tym samym opóznieniem danych jakie jest przesyłane do tych obserwatorów.

Aby sprawdzic czy demo sie nagrywa starczy wpisać w konsoli HLTV

status

Aby zatrzymać nagrywanie dem wpisz

stoprecording

Mecze i nagrywanie dem

Czasem nie chcemy aby ktokolwiek podczas nagrywania dema miał możliwośc wejścia na HLTV. Stosujemy tę opcje aby zmiejszyć obciążenie serwera, albo aby HLTV tylko i wyłącznie nagrało demka, które potem opublikujemy na sieci.

Wtedy warto uzyć poniższych ustawień, aby uzyskac optymalne parametry przy nagrywaniu

maxclients 0 // nie pozwalaj na obserwatorów
delay 10       // ustaw niskie opóżnienie, zmniejsza obciążenie HLTV, sczególnie jeśli na serwerze gry
rate 10000    // zmaksymalizuj przepustowość
updaterate 20 // ustaw standardowe update dla hltv
nomaster 1     // nie rejestruj w serwerach globalnych sieci WON/Steam

Często na oficjalnych meczach przeciwne drużyny nie ufają sobie nawzajem i nie pozwalają drugiemu zespołowi na ustawienie HLTV aby nagrać demo, bo obawiają się, że będzie używane do cheat'owania - podpowiadane np. O pozycji graczy i ich ruchach. Aby tego uniknąć gracze mogą sprawdzić komendą status stan HLTV. Powinien on powiadomić o delay (czyli opóźnieniu transmisji), liczbie widzów i wolnych slotach, numerze ip. HLTV umożliwia także włączenie dźwięku (w tym voice) w czasie, gdy luzie są połączeni z serwerem w czasie rzeczywistym. UWAGA! HLTV ma STEAM_ID równy HLTV tylko i wyłącznie!!! Wszystko inne to gracz/bot!!

Raz słyszałem o aferze gdy jedna z drużyn miała gracza, który miał imię HLTV ale w konsoli gracza jak się wstukało 'status' albo 'users' to pokazywało jego normalny SteamID.

Aby nie było żadnych nieporozumień i HLTV używane było TYLKO do nagrania dema, używamy poniższej komendy (oczywiście dodaj odpowiednie parametry jeśli wymagane):

hltv +maxclients 0 +record mecz +connect ip:port 

Jeśli tak wystartujemy HLTV to nie będzie tam hasła rcon (chyba, że jest w pliku hltv.cfg) - więc zdalna kontrola hltv będzie niemożliwa.Dodatkowo dopóki maxclients nie jest zmienione, to próba podłączenia do hltv proxy po prostu nie powiedzie się.

Ewentualnie dostęp do hltv poprzez rcon powinien być w rękach administratora lub match referee, albo kapitanów obu drużyn.

Warto sprawdzić na HLSW status HLTV.

Większe przekazy

Ustawianie sieci HLTV mogącej przyjąć większą liczbę obserwatorów (pow 1000) jest zadaniem trudnym i czasochłonnym. Poniższa sekcja powinna pomóc w konfiguracji i uruchomieniu takiej sieci. Jedną z najważniejszych cech takiej sieci powinna być jakość a nie ilość – lepiej jest oferować mniejszą ilość dostępnych miejsc dla widzów niż operować na maksimum wydolności przepustowości łącz. Lepiej jest przecież mieć mniejszą ilość osób, ale zadowolonych z efektu, niż masę zalagowanych maruderów, którzy potem mogą nie byc przychylnie nastawieni do podobnych projektów.

W rzeczywistości w dzisiejszej dobie portali częściej spotkamy się z ustawianiem małych sieci w celu nagrania dema, a potem umieszczenia spakowanych demek na serwerze www niż transmisje online.

Ale przejdźmy do przekazów zaawansowanych. Przede wszstkim trzeba dobrze obliczyć wydajność łącz dla serwera HLTV. Trzeba zakładać, że na jednego obserwatora przypada jakieś 3KB/s ruchu sieciowego. Jednak ta wartość może się zmieniać w zależności od modu gry, mapy, ilości graczy. Aktualnie Użucie CPU i pamięci RAM nie powinno stanowić problemów (HLTV nie jest tak zasobożerne jak serwer).

Poniższa lista daje ogólne pojęcie na ile mniej więcej powinieneś liczyć od serwera HLTV w zależności od posiadanego łącza:

  • ISDN 64 Kbps : 2 obserwatorów (nadaje się więc raczej do nagrania dema tylko i wyłącznie)
  • DSL 128 Kbps (upload) : 5 obserwatorów, typowa Neostrada
  • T1 1.5 Mbps : 75 obserwatorów
  • LAN 10 Mbps : 500 obserwatorów
  • T3 75 Mbps : 4000 obserwatorów

Aby kontrolować limit obserwatorów na HLTV uzyj zmiennej maxclients.

Dodatkowo upewnij się, że zmienna maxrate jest ustawiona na racjonalnym poziomie, powiedzmy 3500 kB/s (czyli maxrate 3500). Mniejsze wartości są dozwolone, ale może to spowodować, że obserwatorzy będą mieli zbyt duże choke. Choke oznacza, że serwer HLTV powstrzymuje się przed przesłaniem obserwatorowi zbyt dużej ilości danych w jednostce czasu przy zadanym rate (HLTV stara się nie floodować danymi do obserwatora). Tak najczęściej dzieje się przy bardzo dużym ruchu na serwerze gry (ostro sie strzelają). Warto pamiętać, że maxrate kontroluje transfer do obserwatora, a nie do innych HLTV proxy.

Aby zmniejszyć ogólny ruch sieciowy można wyłączyć przekazywanie komunikatów testowych na HLTV. Służy do tego komenda chatmode 0.

Dodatkowo można zmiejszyć ilość uaktualnień pozycji graczy itp. z domyślnej wartości 20 na 10, wystarczy wpisać updaterate 10. Ogólnie zmiejszenie updaterate do 10 może zaoszczędzić do 25%łącza, gdyż obserwatorzy nie muszą tak często dostawać danych jak normalni gracze. Zwiększanie updaterate mija się z celem, szczególnie jak nagrywamy dema – dostaniemy wtedy olbrzymiej wielkości pliki – wtedy nawet zzipowane dema będą się długo ściągać ze stron www.

Bardzo częstym ustawieniem dla większych wydarzeń jest używanie dwóch dedykowanych serwerów HLTV w celu stworzenia segmentu z miejscami prywatymi i publicznymi. Prywaty segment jest wtedy na przykład dla amdinistratorów, organizatorów, a publiczny dla reszty widzów.

Załóżmy, że przekaz będzie transmitowany z rozgrywek meczowych z imprezy LAN. Serwer gry, na odbywa się mecz jest zamknięty dla publiczności, i nie jest dostępny z zewnątrz. Zapewnia to maksimum bezpieczeństwa przed atakami (typu DOS itp.) z zewnątrz, oraz zwiększa komfort gry grających.

W takim układzie dopuszcza się jeden serwer HLTV dpo podłączenia – nazywa się on HLTV Master, i będzie on umiejscowiony w sieci LAN, jego nr ip powinien być utajniony. Na nim powinno sie nagrywać dema, prowadzić projekcję na rzutniki i zapraszać wybranych gości do oglądania meczu.

Teraz konfigurujemy drugi serwer HLTV. Podłączony będzie do serwera HLTV Master, czyli pierwszego HLTV. Ten właśnie serwer HLTV z zewnętrznym IP będzie on pełnił rolę tzw dispatcher'a, czyli jego adres będzie podawany do wiadomości publicznej. Wszelkie relay proxy powinny się podłączać właśnie do niego, podobnie inni obserwatorzy powinni być kierowani na ten adres – HLTV dispatcher przydzieli im wtedy odpowiedni serwer relay proxy.

Dzięki takiej konfiguracji mamy bezpieczną sieć bez zbytniego obciążenia ruchem, gdyż całkowite obciążenie sieci jest równomiernie rozłożone po wszystkich relay proxy.

Oczywiście pliki konfiguracyjne serwerów Master, Dispatcher i Relay są różne. Przykłady:

master.cfg:

nomaster 1 // nie rejestruj w serwerach WON
proxypassword MyPWD // podłączenie do hltv tylko jak sie zna hasło
publicgame 0 // nie podawaj ip serwera gry HLDS
dispatchmode 0 // nie przekierowuj obserwatorów


dispatcher.cfg:

forcemaster 1 // zarejestruj w WON, bo to jest publiczne HLTV dla wszystkich
publicgame 0 // nie podawaj numeru ip serwera gry
dispatchmode 2 // przełączaj wszelkich obserwatorów do innych relay proxy
hostname MyGame // Publiczna nazwa serwera

relay proxy każdy ma własną konfigurację, zależną od jego właściciela.

Jeśli używasz 3 lub więcej serwery HLTV dobrze jest używać kontroli poprzez rcon wykorzystując jedno narzędzie. Najczęściej będzie to HLSW, ale mogą być panele WWW czy bezpośrednie stukanie w konsoli jakiegoś hltv proxy – ale to dopiero będzie lagować nagrane demo i wszystkich obserwatorów więc odradzam.

Aby kontrola poprzez rcon działała na każdym serwerze HLTV musi być ustawione adminpassword, np.

adminpassword "haslo"

Czasem chcemy aby do naszego serwera HLTV tylko wybrane serwery HLTV mogły się podłączyć – stosujemy więc proxypassword. Dzięki temu będziemy mogli mieć master server czysty, albo ograniczyć dostęp do disptcher'a tylko do wybranych providerów czy obserwatorów.

Dla każdego 1000 obserwatorów potrzebujesz jakichs 2ghz procesora. 1000 obserwatorów pobiera w sumie jakieś 3000kb/s, to jest jakieś 30mbit/s Tak czy siak trudno jest taką ilość ludzi upchnąć na jendym łączu – dlatego albo nagrywa sie dema i je publikuje na www, albo tworzy się sieć HLTV.

Maksimum połączeń na 1 serwer HLTV wynosi 255 użytkowników (jeśli na tyle pozwala łącze i sprzęt.

Konfiguracja HLTV

Wszelkie komendy są dostępne poprzez bezpośrednie wstukanie w konsoli HLTV (nie zalecane, przycina widzom grę i demo), przez plik .cfg, przez zdalny dostęp przez rcon.

Jak korzystać z komend

komenda <parametr_wymagany> [<parametr>] 
 - opis

Komendy mogą mieć zero, jeden lub więcej parametrów, parametry w nawiasach kwadratowych są opcjonalne. Rodzaj parametrów

  • <string> - tekst, ciąg znaków, np "Ala ma kota"
  • <n> - liczba całkowita np 1337 hehheh
  • <f> - liczba zmiennoprzecinkowa 1.337
  • <IP:Port> - adres ip:port np 123.45.67.8:27020
  • <a|b|c> - ustawienie opcji a albo b albo c, można wybrać tylko jedną.

Znaki <,>,[,],| nie są pełnym przedstawieniem komend, i nie powinny byc dodawane. Przykład: Jeśli mamy komendę

 name <tekst>

oznacza to, że pod <tekst> wstawiamy dowolny ciąg znaków używając znaków cudzysłowu, np.:

name "Ala ma kota"

W starej wersji HLTV jak się wpisze początek komendy i wciśnie tab to powinno dopełnić komendę, ale istnieją wyjątki z powodu ciągłego rozwoju hltv (i trzeba się męczyć.

Jak wpisujecie poprzez HLSW czy zdalnie z konsoli w grze przez rcon, to musicie wpisywać całe komendy. W plikach .cfg trzeba wpisywać pełne komendy.

Nota: Inne Komendy

Reszta komend znajduję w artykule Komendy w HLTV. Zostało to specjalnie rodzielone aby skrócić artykuł.


Opcje przy starcie HLTV

Istnieją parametry które można ustawić jedynie przy starcie aplikacji, a nie poprzez komendy i nie działają w żadnych plikach cfg. Poniżej znajduje sie lista, reszta komend znajduję w artykule Komendy w HLTV.

-port <n>

  • ustawia domyślny port dla naszego proxy,
  • np.: możemy dać 27016, jeśli nie jest używany,
  • domyślnie 27020.

-ip <IP>

  • wymuszą używanie specyficznego IP, jeśli nasz serwer ma kilka numerów IP.

-comm <filename>

  • ustawia inne informacje, niż te które są w woncomm.lst zawierające informacje o serwerach master WON.

-nodns

  • bez DNS - nie rozwija nazw hostów na numery ip, szybsze, dobre na LAN.

-maxfps <n>

  • ustawia maksimum fps dla hltv (domyślnie 100), więcej znaczy mniejsze lagi, ale jednocześnie zwiększa użycie CPU.

-cachesize <n>

  • frame cache size (domyślnie 32 frames).

-highpriority

  • uruchamia HLTV z wyższym priorytetem (tylko Windows).

-steam

  • proxy uruchamia specjalny support dla Steam.

-dev

  • developer mode, zaawansowane funkcje jak są problemy.

Przykłady

Odpalanie kilku komend jednocześnie

hltv -maxfps 50 -nodns -port 27018

Start z konfigiem

Przykład odpalania z mieszanymi komendami:

hltv -nodns -port 27021 +exec hltv1.cfg 

A w pliku hltv1.cfg możemy wpisać interesujące nas komendy, np.

logfile hltv1.log // loguj wszystko do pliku
nomaster 1 // nie rejestruj w master servers (szybciej startuje)
forcemaster 0 // nie ma co na necie rejestrowac
publicgame 0 // ta gra nie jest do wgladu, hltv ma tylko nagrywac dema
adminpassword "rcon_hltv_1" // haslo do kontroli hltv poprzez rcon z hlsw
hostname "HLTV 1" // nazwa hltv
name "HLTV 1" // nazwa hltv na scoreboardzie

// mala reklama :)
// 5 sek, na dole, pomaranczowy tekst
loopcmd 1 60 localmsg "www.hlds.pl" 5 -1 0.85 00FFAAFF // nie mozna stosowac slashy

maxclients 0 // hltv ma tylko nagrywac, ustawiamy liczbe klientow na 0
autoretry 1 // automatycznie ma sie podlaczac po odlaczeniu
delay 90 // opoznienie w sekudnach
record hltv_1 // prefiks nazw dem z tego hltv, zacznij nagrywac
serverpassword "password1" // haslo na pierwszym serwerze meczowym, inaczej sie nie podlaczymy
connect 192.168.1.1:27015 // podlacz do pierwszego serwera meczowego
echo hltv1.cfg zaladowane
status // pokaz co sie dzieje

Z takim konfigiem hltv powinen sie podłączyc do zdefiniowanego serwera i nagrywać dema co zmianę mapy.

Opis wszystkich komend znajduję w artykule Komendy w HLTV.

Logo HLTV

Logo w lewym górnym ekranie podczas oglądania gry z HLTV. Widoczne jest także dla graczy na serwerze jeśli jest poprawnie ustawione.

Plik o formacie TGA musi być albo 24bit RGB albo 32bit RGBA (8 bit na kolor). A oznacza Alpha Channel i daje możliwość kontroli przezroczystości fragmentów loga. Logo bez kanału Alpha nie posiada przezroczystości.

Jeśli Alpha Channel nie jest poprawnie ustawiony to nie zobaczysz logo. Mały banner hltv.tga może być użyty do eksperymentów. http://www.slipgate.de/download/hltv.tga

Użyj swojego ulubionego programu do edycji grafiki.

Po tym jak logo jest poprawne należy je dodać do hltv. Używamy komendy:

bannerfile <plik>

w konsoli albo w pliku cfg

Przykład: - Wrzucamy plik moje_logo.tga do tego samego katalog gdzie jest aplikacja hltv, dodajemy do hltv.cfg: bannerfile moje_logo.tga

- Startujemy hltv, albo jeśli juz działa, dodajemy ręcznie do konsoli hltv (ta sama komenda co w poprzedniej linii)

- Aby się upewnić że logo zostało dodane , wpisujemy komendę: resources pojawi się cos w rodzaju:

File: "gfx/temp/6aa9c6cbdcd4f6961b95ab35edf97b95.tga", Size: 34039 bytes. 

Ta dziwna nazwa oznacza że zostało wygenerowane unikalne logo (dla danego serwera hltv). Jeśli chcesz aby rozpowszechnić zip'a z demem wraz z logiem musisz, jak sama nazwa wskazuje, dołączyć plik tga do zipa Normalnie jak gracz ogląda hltv to ściąga logo do katalogu <mod>/gfx/temp/i tam siedzi sobie .tga takie jak podaje komenda resources. To logo jest czasem wymagane do poprawnego odtworzenia dema (kiedyś był z tym problem na ClanBase)

Tak więc jak nagrałeś demo na hltv, to idź do katalogu <mod>/gfx/temp, skopiuj tga i spakuj razem z demem zachowując strukturę katalogów zip:

test-0405232144-de_aztec.dem
/gfx/temp/d5fb1c03ac7f9297cbdea9bedda09815.tga

Konfiguracja HLDS

Serwery Half-Life mają opcję kontroli nad hltv sv_proxies <n> - definiuje ile hltv proxy może się podłączyć do danego serwera domyślnie ustawiane na 1 oznacza ze będzie jeden proxy, czyli jako master proxy, jeśli chcesz zakazać podłączania się hltv ustaw na zero. Inne wartości są eksperymentalne i nie powinno się wpuszczać więcej niż 2 proxy na serwer gry (czasem nawet nie więcej niż 1).

Hasła dostępu i Rcon – kontrola zdalna

Warto abyś się zapoznał z artykułem rcon

Odpowiedniki

Widzieliście komendy serverpassword, adminpassword, proxypassword, ale możliwe że wolelibyście znać odpowiedniki tychże komend w programach które lepiej znacie - mam na mysli serwer HLDS oraz konsolę z gry podczas grania.

HLDS – HLTV

  • sv_passwordproxypassword oraz spectatorpassword (w zależności czy podłącza się inne hltv czy obs)
  • rcon_passwordadminpassword

Gracz – HLTV

Komendy do kontrolowania innego serwera z konsoli gracza/hltv.

  • rcon_password - rconpassword
  • rcon_addressrconaddress
  • rcon_portrconaddress (ma format ip:port)
  • rcon - rcon

Przykład:

Mamy serwer HLDS a na nim takie parametry

ip:port 192.168.1.1:27015
sv_password "mecz"
rcon_password "haslo_rcon_hlds"

Na serwerze HLTV mamy takie parametry

ip:port 192.168.1.1:27020
adminpassword "haslo_rcon_hltv
spectatorpassword "spect"
serverpassword "mecz"

Z takimi parametrami HLTV wejdzie na serwer HLDS bo zgadzają się hasła ("mecz")

Kontrola serwera HLDS poprzez rcon z HLTV

Pamiętajcie, stukanie bezpośrednio w konsoli HLTV będzie powodować lagi w demie i u obserwatorów. W konsoli HLTV wpisumeny:

rconpassword "haslo_rcon_hlds" 
rconaddress 192.168.1.1:27015 
rcon status 

Powinen się pojawić tekst o statusie serwera, jeśli nie ma to znaczy że coś jest nie tak (nie ma co wpisywać bo dostaniecie bana na ip na maszynie do której się próbujecie dostać. Jak wszystko ok, to możemy wpisywać takie komendy jak choćby

rcon say "Admin proszony na irca!"

i podobne.

Kontrola serwera HLDS poprzez rcon z konsoli gracza

Teraz zobaczmy jak z konsoli klienta, czyli gracza (albo poprzez HLSW) możemy kontrolować serwer HLDS. Pamiętajmy na jakim porcie stoi serwer HLDS, szczególnie jeśli hostuje on kilka serwerów!

rcon_password "haslo_rcon_hlds"
rcon_address 192.168.1.1
rcon_port 27015
rcon status

Widać, że podobnie jak w konsoli HLTV, różnica jest tylko w komendach. Możemy także kontrolować HLTV poprzez rcon, z poziomu gracza:

rcon_password "haslo_rcon_hlds"
rcon_address 192.168.1.1
rcon_port 27020
rcon status

Różnica jest w porcie oraz użytym haśle dostępu.

Oczywiście w powyższych przykładach parametry będą się różnić w zależności od prawdzwych serwerów. Warto także pamiętać na jakim serwerze się jest – czy na HLTV czy serwerze HLDS. Zasada kontroli może być poszerzona także o serwery HLTV typu relay – wtedy z master proxy albo dowolnego innego komputera można sterować innymi maszynami. Dlatego jeśli nie ma się konfigów albo robi się to na żywca bez przygotowania będzie to zajęcie czasochłonne.

Filmiki z opisanych operacji są załączone do artykułu, różnić się mogą jedynie nuemrami ip, portami i hasłami.

FAQ

Nie mam pliku hltv.cfg

Windows: stwórz go np.: notepad'em (upewnij się, że nie ma rozszerzenia .txt tylko .cfg) Linuks: stwórz go komendą w konsoli: touch hltv.cfg i edytuj ulubionym edytorem (vi, vim, pico, mcedit)

Jak sterować zdalnie HLTV ?

Naucz się sterować HLDS poprzez RCON, następnie ustawiasz hasło na serwerze HLTV (patrz wyżej w ustawieniach), a w kliencie - albo poprzez HLSW, albo bezpośrednio z gry:

rcon_port <port na którym działa hltv>
rcon_address <adres ip na którym działa serwer hltv>
rcon_password <hasło na zdalny dostęp do hltv>

Następnie wpisujesz komendy HLTV poprzedzając je dopiskiem rcon

Przykład:

rcon say Test rozmowy HLTV!
rcon record nazwadema
rcon stoprecording

HLTV nie musi być aktualnie na serwerze na którym grasz, więc możesz je zaprosić:

rcon serverpassword "clanwar"
rcon connect _clanwar_ip_:port

i po chwili (zależy od parametru delay) powinien być.

Ściągnąłem demo z internetu, jak je obejrzeć ?

  1. wrzuć demo do katalogu mod'u, może to być cos takiego jak
c:/program files/steam/steamapps/twoj@mail/cstrike
  1. uruchom grę tak, aby była dostępna konsola, otwórz konsole
  2. w konsoli wpisz: viewdemo nazwa_dema.dem
  3. jeśli to laguje to spróbuj playdemo nazwa_dema.dem

Linux/Windows - mam problem z otwarciem jakiegoś pliku

Console initialized. 
FileSystem initialized. 
Error:libSteamValidateUserIDTickets_i386.so: cannot open shared object file: 
No such file or directory 
***** FATAL ERROR ***** 
Proxy::Init: couldn't load network module. 
*** STOPPING SYSTEM *** 
ERROR! System::AddModule: couldn't initialize module (null). 
Type 'help' for a list of commands. 

Notka - zobacz też następne pytanie w FAQ dodaj przed komendą uruchamiania hltv taką oto linię:

export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH";

Linux/Windows - upewnij się ze uruchamiasz hltv z katalogu gdzie biblioteki sa dostępne - (ew dodaj dany katalog do ścieżki lub wrzuć liby do ścieżek) ewentualnie zmień w skrócie working dir na cos podobnego do

c:/program files/steam/steamapps/twoj@mail/dedicated server

albo w Linuksie dodaj linie aby zmienił ścieżkę (zwykle cd path/to/hlds/)

Linux - Jak uruchamiać HLTV na screenie ?

Tutaj prosty skrypt, oczywiście zedytuj go, aby bardziej ci pasowało :D

#!/bin/bash
export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH";
screen -A -m -d -S hltv ./hltv +exec hltv.cfg 

Zobacz też: screen.

Czy można scalić dema, złączyć je razem ?

Nie wiem, może jakimś programem do edycji demek. Komenda appenddemo podłącza do dema ścieżke cd audio :(

Przy podłączeniu mam problem z jakimś numerem protokołu

Pewnie chcesz hltv ze starego cs podłączyć pod nowego CS (czyli 1.5 na 1.6) niestety to nie pójdzie, musisz zrobić upgrade hltv - najlepiej do najnowszej wersji (starczy jak ściągniesz dedicated server 'valve')

HLTV na LAN bez internetu, włącza się długo

Oczywiście, służą do tego komendy do przyśpieszenia startu HLTV:

nomaster 1
forcemaster 0

Jeśli jest opcja -steam to wyłącz, a reszta w konfiguracji pozostaje bez zmian.

ERROR! Network::CreateSocket: WSAEADDRNOTAVAIL

Zmień numer ip/port, bo pewnie są już w użyciu przez inne aplikacje (może już inny serwer gry/hltv)

WARNING! DemoFile::StartRecording: coudn't open demo file demoname.dem

Stwórz podkatalog <mod>, np.: cstrike w tym samym, w którym odpalasz HLTV, to najczęściej zdarza się pod Windows. Jak odpalasz HLTV z katalogu:

C:\Program Files\Steam\SteamApps\twoj@mail\dedicated server

To stwórz podkatalog:

C:\Program Files\Steam\SteamApps\twoj@mail\dedicated server\cstrike

HLTV nie pozwala wejść graczowi na serwer, bo zabiera jego steam_id/slot

  • Ustaw sv_proxies na 0 i wykop HLTV
  • Wykop HLTV tuż przed podłączeniem się gracza
  • Zbanuj na serwerze numer IP HLTV na kilka minut, podłącz się do gry, niech gracze wejdą i dopiero odbanuj ip HLTV

Więcej o banowaniu w poradniku na temat rcon.

Jak oglądam demo z opcja PIP mam poszarpany obraz z czarnymi kreskami

gl_ztrick 0 w konsoli gracza

Jak wyłączyć SlowMotion ?

Wpisujemy w hltv.cfg:

slowmotion 1.0

albo

unload director001

To drugie działa jak nagrywamy demo (jest ładowane jak znowu zaczniemy nagrywać, można pobawić się z loopcmd aby wykonywał co minute komende na unload modułu albo wykonywał konfig, który będzie zawierał różne komedy, a w nich wyładowanie modułu, jednak polecamy:

slowmotion 1.0

Można także użyć:

slowmotion 0 0

W serwerach np.: CS 1.6 trzeba stworzyć plik director.cfg w tym samym katalogu, gdzie znajduje się hltv.cfg i dodać w nim linijke

slowmotion 1.0

ewentualnie nie ładować biblioteki autodirector (wystarczy zmienić director.dll/director_i386.so na inną nazwę i wtedy załadować hltv)

WARNING: UDP_Opensocket: setsockopt ID_multicast_loop: WSAENOPROTOOPT

Zignoruj ten komunikat. powodowany przez non-winnt klientów, to tylko komunikat z funkcji deweloper i nic nie robi i nie szkodzi. Zdarza się jak twoja sieciówka nie obsługuje pakietów typu multicast.

Zamiast mapki mam zielona kratkę

Nie masz pliku overview mapy, więcej w poradniku o overview w katalogu <mod>/overviews powinny się znajdować pliki:

<mod>/overviews/<nazwa_mapy>.bmp
<mod>/overviews/<nazwa_mapy>.txt
<mod>/overviews/<nazwa_mapy>.tga

Czasem może być tylko *.bmp albo tylko *.tga, albo oba na raz zainstaluj i powinno działać. Administratorzy serwera HLDS powinni zainteresować się ta funkcja i dodać pliki do *.res ręcznie lub przy użyciu aplikacji o nazwie resgen, oczywiście jeśli posiadają te pliki.

Komentator gada, ale w ogóle go nie rozumiem

'Czasem dźwięki w grze są zbyt głośne i trzeba komentatora z lekka doprawić, a więc wpisz w konsoli gracza:

voice_overdrive 32
voice_scale 2

możesz dodać też je do signoncommands na hltv – wtedy będzie wykonywana na graczach podłączających się na hltv:

signoncommands "voice_overdrive 32;voice_scale 2"

Nie mogę się podłączyć do lokalnego proxy

Uruchom hltv z parametrem -ip i ustaw odpowiedni adres ip. To się zdarza jak masz wiele ip na serwerze, a łączysz się na nazwę hosta, która zwraca inny numer ip niż powinno.

Bandwidth capacity exceeded

Widzowie czasem nie mogą się poprawnie podłączyć do proxy mimo wolnych miejsc HLTV mierzy sobie sieć i oblicza packet loss (stratę pakietów) i odrzuca nowe połączenia jeśli loss do graczy przekracza 25%. Ustawione specjalnie, aby nie było przeciążeń. Dodatkowo oznacza, że twoje łącze jest mocno obciążone i że wartość maxclients czy maxclientrate powinna być zmniejszona na serwerze HLTV Możesz sforsować HLTV, aby ignorowało to poprzez ustawienie (100%) (nie rekomendowane):

maxloss 1.0

Linki

Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia