HLTV
Opis
Ten artykuł jest niepełny i wymaga uzupełnienia. Jeżeli jesteś w stanie - postaraj się go uzupełnić.. Pamiętaj, że nawet najmniejsza zmiana jest cenna i pomocna :) |
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
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.
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>
-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 hltrv na scoreboardzie //mala reklama :) // 5 sek, na srodku ekranu, na dole, pomaranczouwy tekst loopcmd 1 60 localmsg "http://hlds.pl" 15 -1 0.85 00FFAAFF maxclients 0 //hlt ma tylko nagrywac, ustawiamy nr 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_password – proxypassword oraz spectatorpassword (w zależności czy podłącza się inne hltv czy obs)
- rcon_password – adminpassword
Gracz – HLTV
Komendy do kontrolowania innego serwera z konsoli gracza/hltv.
- rcon_password - rconpassword
- rcon_address – rconaddress
- rcon_port – rconaddress (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
A: stwórz go np notepad'em (upewnij się ze nie ma rozszerzenia .txt tylko .cfg) albo w Linuksie komendą konsolową touch hltv.cfg i edytuj ulubionym edytorem (vi, vim, pico, mcedit)
Jak sterować zdalnie HLTV
A: 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 z gry bezpośrednio ustawiasz
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 :D więc możesz ze zaprosić
rcon serverpassword "clanwar" rcon connect _clanwar_ip_:port
i po chwili powinien być.
Ściągnąłem demo z internetu, jak je obejrzeć
A:
- wrzuć demo do katalogu mod'u, może to być cos takiego jak
c:program filessteamsteamappsyour@mailcstrike
- uruchom grę tak aby była dostępna konsola, otwórz konsole
- w konsoli wpisz: viewdemo nazwa_dema.dem
- jeśli to laguje to spróbuj playdemo nazwa_dema.dem
Linux/Windows - mam problem z otwarciem 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.
A: 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 filessteamsteamappsmy@emaildedicated server
albo w Linuksie dodaj linie aby zmienił ścieżkę (zwykle cd path/to/hlds/)
Linux - jak uruchamiać hltv na screen'ie
A:tutaj prosty skrypt, oczywiście zedytuj 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
A: 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
A: 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
A: 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 konfigach bez zmian
Nie chcę slowmotion, czyli efektu zwolnienia dema podczas meczu
A: slowmotion 0 0, w 1.6 trzeba stworzyc plik director.cfg (w tym samym katalogu gdzie znajduje się hltv.cfg) i dodać w nim linijke slowmotion 1.00 ewentualnie nie ładować biblioteki autodirector starczy zmienić director...so/.dll na inną nazwę i wtedy załadować hltv
ERROR! Network::CreateSocket: WSAEADDRNOTAVAIL
A: zmień numer ip/port, bo pewnie są juz w użyciu przez inne aplikacje (może już inny serwer gry/hltv
WARNING! DemoFile::StartRecording: coudn't open demo file demoname.dem
A: 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
A: wykop HLTV tuż przed podłączeniem się gracza lub zbanuj na serwerze nr ip HLTV na kilka minut podłącz się do gry, niech gracze wejdą odbanuj ip HLSW więcej o banowaniu w poradniku na temat rcon
Jak oglądam demo z opcja PIP mam poszarpany obraz z czarnymi kreskami
A: gl_ztrick 0 w konsoli gracza
Jak wyłączyc SlowMotion
A: Wpisujemy w hltv.cfg
slowmotion 1.0
albo
unload director001
to drugie dziala jak nagrywamy demo (jest ladowane jak znowu zaczniemy nagrywac, mozna pobawic sie z loopcmd alby wykonywal co minute komende na unload modulu albo wykonywal konfig ktory bedzie zawieral rozne komedy a w nich wyladowanie modulu
ja jednak polecam slowmotion 1.0
WARNING: UDP_Opensocket: setsockopt ID_multicast_loop: WSAENOPROTOOPT
A: 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ę
A: 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
A: Czasem dźwięki w grze są zbyt glosie i trzeba komentatora z lekka doprawić 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
A: 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
A: 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