Pobieranie map z WWW
Spis treści |
Opis
Artykuł porusza kwestię zmiennej sv_downloadurl stosowanej na platformie Steam w HLDS i SRCDS.
Zobacz także Niestandardowe_Mapy
Szybkie pobieranie z WWW
Opcja ta jest dostępna od jakiegoś czasu w serwerach na platformie Steam.
Jeśli mamy dostęp do serwera WWW możemy przyśpieszyć ściąganie plików z serwera normalnie transfer wynosi jakieś 3k/s, z wykorzystaniem sv_downloadurl przeważnie idzie to 10x szybciej, jeśli nie jeszcze szybciej - zamiast np. 10 minut, gracz ściąga wszstko w minutę. A na lanie... no cóż, wszystkie pliki zasysane są przeważnie w kilka sekund - jest to fantastyczne na lanparty.
Funkcja sv_downloadurl oznacza, że musimy udostępnić pliki na WWW tak ja są one w katalogu cstrike . Oczywiście powinniśmy zabezpieczyć ważne pliki przed niepowołanym dostępem, np katalog addons, plik server.cfg, przy użyciu np plików .htaccess czy innych sposobów.
Powiedzmy ze mamy taką oto ścieżkę lokalna (może to by np symbolic link (symlink))
/var/www/html/sciezka/do/hlds_l/cstrike
która jest dostępna z zewnętrz poprzez url
http://nasz.serwer.com.pl/sciezka/do/hlds_l/cstrike
Katalogi muszą mieć możliwość 'execute for everyone' (a dokładniej dla serwera WWW) a pliki 'read' (dla serwera WWW). W tym celu uzywamy w konsoli linuksowej polecenia chmod, pod Windows można pobawić się opcją Właściwości -> Zabezpieczenia, a przez FTP także opcją chmod (to gdzieś powinno być w kliencie FTP, file permissions)
Zaawansowani mogą dać ustawienie w konfiguracji Apache, ale to już jest w manualu do httpd.
Powinniśmy mieć możliwość swobodnego pobierania plików, np
http://nasz.serwer.com.pl/sciezka/do/hlds_l/cstrike/maps/de_biochem.bsp
Opcja wyświetlania zawartości katalogów nie jest wymagana - dzięki temu uzyskamy jeszcze wyższy poziom bezpieczeństwa na serwerze.
W takim ustawieniu dodajemy do server.cfg
sv_downloadurl "http://nasz.serwer.com.pl/sciezka/do/hlds_l/cstrike"
Uwaga adres w sv_downloadurl nie może mieć więcej niż 127 znaków.
Jeśli mamy serwer Condition-Zero możemy zrobić też katalog obok o nazwie
http://nasz.serwer.com.pl/sciezka/do/hlds_l/czero
z użyciem
sv_downloadurl "http://nasz.serwer.com.pl/sciezka/do/hlds_l/czero"
Można także użyć jakiegoś ogólnie dostępnego innego serwera WWW, który wiemy, że udostępnia pliki jakich także i my używamy (oczywiście jeśli serwer istnieje, poniższa linia jest wymyślona)
sv_downloadurl http://hosting.serwerow.com.pl/common/cstrike
Często można do hostowania zawartości kilku publicznych serwerów gry używać 1 hosta WWW z różnymi ścieżkami (dla kazdego mod'a gry inny, np cstrike, dod, czero). Można albo wrzucić wszystkie pliki jakie są na serwerach do 1 katalogu, albo stworzy oddzielny katalog do downloadu dla każdego z nich (przeważnie strata miejsca)
Oczywiście nie musisz używać na końcu dokładnie nazwy cstrike, może być jakakolwiek ale poprawna (no ale to utrudnia życie) Np można mieć dostęp do http://krzywy.host.dzies.w.com.pl/~stefan/dzika_malina/maps/de_biochem.bsp
.ztmp
Pewnie po jakimś czasie zauwazycie pliki .ztmp w katalogach serwera. Pliki te są wykorzystywane do przesyłu danych do klienta - spakowane programem z/bzip2 zaoszczędzają czas i łącze, jeśli osoba ściaga pliki z serwera (jeśli funkcja downloadu jest aktywna i nie korzystamy z sv_downloadurl).
Pliki jeśli są tworzone, to niestety nie są aktualizowane jeśli np wrzucimy nowszą wersję mapy czy dzwięków - dlatego trzeba się ich pozbywac ręcznie.
Aby serwer nie tworzy skompresowanych plików .ztmp w katalogach serwera dodaj do server.cfg poniższą linię
sv_filetransfercompression 0
Domyslnie wartośc zmiennej jest równa 1, ale jesli wykorzystujemy sv_downloadurl warto ustawić na 0 - zaoszczędzi to nam troche miejsca i bałaganu na serwerze gry.
Serwer sam z siebie nie kasuje plików .ztmp - musimy je skasować ręcznie.