HLSS

Od HLDS.pl
(Różnice między wersjami)
Skocz do: nawigacji, wyszukiwania
(Zakończenie)
(Opis)
 
(Nie pokazano 21 wersji utworzonych przez 5 użytkowników)
Linia 2: Linia 2:
  
 
HLSS 2 jest skryptem w [[PHP]] do wyświetlania statusu serwera albo serwerów gry [[Half-Life]] i [[Source]] na stronie [[WWW]].
 
HLSS 2 jest skryptem w [[PHP]] do wyświetlania statusu serwera albo serwerów gry [[Half-Life]] i [[Source]] na stronie [[WWW]].
Potrafi zwracać status jako listę serwerów, jako pojedyńczy serwer, może zwracać jako HTML, jako wybrany plik textowy, jako obrazek (bardzo uproszczone).
+
Potrafi zwracać status jako listę serwerów, jako pojedynczy serwer, może zwracać jako HTML, jako wybrany plik textowy, jako obrazek (bardzo uproszczone).
  
Aktualna wersja to 0.8, autor _KaszpiR_ http://nvt.prv.pl
+
Aktualna wersja to 0.9, autor _[[KaszpiR]]_
 
Oryginalnie napisany po angielsku.
 
Oryginalnie napisany po angielsku.
  
Przykład działania brak :)
+
Przykład działania brak, albo google.
  
 
Testowane na:
 
Testowane na:
*Counter-Strike 1.6 (2005.08.08)
+
*TeamFortress 2 (2010.12.27)
 +
*Counter-Strike 1.6 (2010.12.27)
 +
*Counter-Strike: Condition Zero (2010.12.27)
 
*Counter-Strike: Source (2005.08.08)
 
*Counter-Strike: Source (2005.08.08)
 
*Half-Life2 DeathMatch (2006-03-04)
 
*Half-Life2 DeathMatch (2006-03-04)
Linia 17: Linia 19:
 
*Quake3 i jego klony (beta)
 
*Quake3 i jego klony (beta)
  
=Wymagania=
+
=Download=
PHP 4.3 z funkcją [url=http://www.php.net/fsockopen]fsockopen()[/url] - oznacza to, że php musi byc skompilowany z opcją '' --enable-sockets '' (przeważnie jest, jak instalujesz z pakietów instalacyjnych). Dodatkowo funkcja fsockopen() nie może być blokowana jako funkcja niedozwolona w php.ini, na serwerze www lepiej abyś nie miał żadnego firewall'a albo odblokowane połączenia na porty gier.
+
http://kaszpir.hlds.pl/hlds.pl/hlss/hlss_0.9.zip - od jakże dawna oczekiwany ;)
Opcjonlanie bilbioteka GD2 w PHP (tylko do generacji obrazków w katalogu tools/
+
  
 +
=Wymagania=
 +
PHP 4.3 z funkcją [http://www.php.net/fsockopen fsockopen()] - oznacza to, że php musi być skompilowany z opcją '' --enable-sockets '' (przeważnie jest, jak instalujesz z pakietów instalacyjnych). Dodatkowo funkcja fsockopen() nie może być blokowana jako funkcja niedozwolona w php.ini, na serwerze www lepiej abyś nie miał żadnego firewall'a albo odblokowane połączenia na porty gier.
 +
Opcjonalnie biblioteka GD2 w PHP (tylko do generacji obrazków w katalogu tools/
  
 
= Instalacja =
 
= Instalacja =
  
 
*Zrób kopie bezpieczeństwa starszej wersji :)
 
*Zrób kopie bezpieczeństwa starszej wersji :)
Osoby znające język anglieski - zalecam przeczytać plik docs/readme.html
+
Osoby znające język angielski - zalecam przeczytać plik docs/readme.html
  
 
*Rozpakuj plik .zip do katalogu na serwerze, zachowując strukturę katalogów, oraz zachowując wielkość liter w nazwach plików.
 
*Rozpakuj plik .zip do katalogu na serwerze, zachowując strukturę katalogów, oraz zachowując wielkość liter w nazwach plików.
*Upewnij się, że plik hlss2_cache.txt ma tak ustawione prawa do zapisu, że może byc zapisyawlny przez wszystkich ( chmod 666 ).
+
*Upewnij się, że plik hlss2_cache.txt ma tak ustawione prawa do zapisu, że może być zapisywany przez wszystkich ( chmod 666 ).
albu ustaw ''$main['cache'] = "";'' jesli nie chcesz korzystać z tej opcji cache (nie yżuwanie cahce jest nie zalecane ze względów wydajności i poprawności działania skryptu).
+
albo ustaw ''$main['cache'] = "";'' jeśli nie chcesz korzystać z tej opcji cache (nie używanie cahce jest nie zalecane ze względów wydajności i poprawności działania skryptu).
  
*Zedytuj plik config.php - na szczęście jest tam parę przykładów które powiny ci pomóc. Warto abyś użył słownika do angielskiego bo wiele opisów dałem w tym języku.
+
*Zedytuj plik config.php - na szczęście jest tam parę przykładów które powinny ci pomóc. Warto abyś użył słownika do angielskiego bo wiele opisów dałem w tym języku.
  
 
*Ale pare informacji naprowadzających:
 
*Ale pare informacji naprowadzających:
'''$main['template'] ="list.html";''' - definiuje plik do wyświetlenia stanmdardowej listy serwerów, pliki template są w katalogu skin i mają rozszerzenie .html
+
'''$main['template'] ="list.html";''' - definiuje plik do wyświetlenia standardowej listy serwerów, pliki template są w katalogu skin i mają rozszerzenie .html
  
 
Następnie konfigurujesz serwer albo serwery - chodzi o ''$server[]''
 
Następnie konfigurujesz serwer albo serwery - chodzi o ''$server[]''
 
Wypełnij dane zgodnie z ustawieniami swojego serwera
 
Wypełnij dane zgodnie z ustawieniami swojego serwera
'''"ip" => "ADRES:PORT",''' - numer ip naszego serwea w postaci ADRES:PORT , jeśli nie ma portu (czyli jest tylko ADRES) to domyślnie będzie użyty port 27015), w nazwie adresu można podać nazwę hosta serwera
+
'''"ip" => "ADRES:PORT",''' - numer ip naszego serwera w postaci ADRES:PORT , jeśli nie ma portu (czyli jest tylko ADRES) to domyślnie będzie użyty port 27015), w nazwie adresu można podać nazwę hosta serwera
  
 
'''"disable" => 0,''' - ustawiając 1 albo 0 możemy szybko ukryć/pokazać nasz serwer przed wyświetlaniem, bez potrzeby kasowania zbędnych linii
 
'''"disable" => 0,''' - ustawiając 1 albo 0 możemy szybko ukryć/pokazać nasz serwer przed wyświetlaniem, bez potrzeby kasowania zbędnych linii
  
'''"template" => "default.html"''' - plik który będzie uzywany do wyświetlenia detalicznego, specyficznego statusu dla tego serwera, dzięki temu możesz miec inne pliki dla każdego serwera, np DOD, CS czy CS:Source itp. Pliki są w katalogu skins, możesz stworzyc własne bazując na już istniejących, dane dotyczące tagów są w dalszej części artykułu.
+
'''"template" => "default.html"''' - plik który będzie używany do wyświetlenia detalicznego, specyficznego statusu dla tego serwera, dzięki temu możesz mieć inne pliki dla każdego serwera, np DOD, CS czy CS:Source itp. Pliki są w katalogu skins, możesz stworzyć własne bazując na już istniejących, dane dotyczące tagów są w dalszej części artykułu.
  
'''"name" => "serwer1",''' - ustawia nazwę serwera, jeśli nie mozna jej pobrać bezpośrednio - uzyteczne jak serwer nie odpowiada a nie chcemy mieć pustej nazwy
+
'''"name" => "serwer1",''' - ustawia nazwę serwera, jeśli nie można jej pobrać bezpośrednio - użyteczne jak serwer nie odpowiada a nie chcemy mieć pustej nazwy
  
'''"ha" => "Admin",''' - Imię headadmina, ewentualne tag do wykorzystania w skinie
+
'''"ha" => "Admin",''' - Imię HeadAdmina, ewentualne tag do wykorzystania w skinie
  
'''"ha_mail" => "Admin@mail.com",''' - mail admina, ale przy modyfikacji skina mozna to zmienić np na numer GG czy cos podobnego
+
'''"ha_mail" => "Admin@mail.com",''' - mail admina, ale przy modyfikacji skina można to zmienić np na numer GG czy coś podobnego
  
'''"timeout" => 1,''' - czas oczekiwania na odpowiedź od serwera w sekundach, lepiej nie schodzic poniżej sekundy, ani nie zwiększać - bo wydłuża to czas ładowania strony jeśli serwer nie odpowiada.
+
'''"timeout" => 1,''' - czas oczekiwania na odpowiedź od serwera w sekundach, lepiej nie schodzić poniżej sekundy, ani nie zwiększać - bo wydłuża to czas ładowania strony jeśli serwer nie odpowiada.
  
 
'''"gameurl" => "halflife",'''  - podaje rodzaj gry (opcja ''halflife'' albo ''halflife2'', potem stosowana w skórkach .html
 
'''"gameurl" => "halflife",'''  - podaje rodzaj gry (opcja ''halflife'' albo ''halflife2'', potem stosowana w skórkach .html
  
'''nicklength" => "29",''' - długość nazwy gracza, jeśli używamy tagu payer_shortname - gdzy chcemy aby wygląd był w ograniczonychr amach a nicki są za długie, tutaj możesz ustawi 35 aby wyświetlić cały nick
+
'''nicklength" => "29",''' - długość nazwy gracza, jeśli używamy tagu payer_shortname - gdy chcemy aby wygląd był w ograniczonych ramach a nicki są za długie, tutaj możesz ustawi 35 aby wyświetlić cały nick
  
'''"mapurl" => "../maps/halflife"''' - ścieżka do obrazków mapy, może byc względna albo bezwzględna (czyli zawierająca http://), map nie ma w zipie - musisz ściągnąć je sam np ze strony [page=10]psychostats[/page], uwaga, w skinach jeste jescze używany tag {gamerul} oraz {gamedir} - jeśli masz specyficzny mod do gry musisz stworzyć katalog o nazwie modu i tam umieścić obrazki map
+
'''"mapurl" => "../maps/halflife"''' - ścieżka do obrazków mapy, może być względna albo bezwzględna (czyli zawierająca http://), map nie ma w zipie - musisz ściągnąć je sam np ze strony [[psychostats]], uwaga, w skinach jest jeszcze używany tag {gamerul} oraz {gamedir} - jeśli masz specyficzny mod do gry musisz stworzyć katalog o nazwie modu i tam umieścić obrazki map
  
 
'''"mapext" => "jpg"''' - rozszerzenie obrazków map - ten tag jest specyficzny dla skina
 
'''"mapext" => "jpg"''' - rozszerzenie obrazków map - ten tag jest specyficzny dla skina
Linia 64: Linia 68:
  
  
'''$main['showall'] = 0;''' - ustaw 1 oraz w jednym z serwerów ustaw template na showall.html i zobacz co sie będzie działo, mniej więcej w 80% od góry strony będą interesujące cię tagi (a tak to wszstkie dostępne tagi i nie tylko.
+
'''$main['showall'] = 0;''' - ustaw 1 oraz w jednym z serwerów ustaw template na showall.html i zobacz co się będzie działo, mniej więcej w 80% od góry strony będą interesujące cię tagi (a tak to wszystkie dostępne tagi i nie tylko.
  
'''$main['debug'] = 0;''' - ustaw na 1 aby włączyć wyświetlanie błędów, dobre jak cos ci nie działa.
+
'''$main['debug'] = 0;''' - ustaw na 1 aby włączyć wyświetlanie błędów, dobre jak coś ci nie działa.
  
 
*Po tym zapisujemy config, i kierujemy przeglądarkę na adres i sprawdzamy czy wszystko chodzi.
 
*Po tym zapisujemy config, i kierujemy przeglądarkę na adres i sprawdzamy czy wszystko chodzi.
Nastepny punkt zawiera inforamcje o zastosowaniu na stronach klanowych.
+
Następny punkt zawiera informacje o zastosowaniu na stronach klanowych.
  
  
 
= Zwracanie obrazków =
 
= Zwracanie obrazków =
Od wesjo 0.7 skrypt potrafi zwracać status serwera jako prosty obrazek - uzyteczne na stronach gównych albo forum gdzie ni jesteś w stanie wstawić znacznika iframe.
+
Od wersji 0.7 skrypt potrafi zwracać status serwera jako prosty obrazek - użyteczne na stronach głównych albo forum gdzie ni jesteś w stanie wstawić znacznika iframe.
 
+
Ten tryb działa tylko dla pojedyńczego serwera - więc jeśli masz np 5 serwerów - musisz stworzyc pięc oddzielnych wpisów aby zwracały obrazki.
+
  
'''Tryby zwracania obrazków:'''
+
Ten tryb działa tylko dla pojedynczego serwera - więc jeśli masz np 5 serwerów - musisz stworzyć pięć oddzielnych wpisów aby zwracały obrazki.
- podstawowy - zwraca tylko obrazek online/offline
+
- liczbowy - zwraca obrazek w zależności od ilości graczy na serwerze
+
- procentowy - zwraca obrazek w zależności od ilości zajętych slotów na serwerze w procentach.
+
  
'''Jak to zrobić:'''
+
=Tryby zwracania obrazków=
Musisz po prostu wywołac specyficzny adres url w tagu img src obrazka. X oznacza tutaj specyficzny server id ( 1 to pierwszy, 2 to drugi ...)
+
* podstawowy - zwraca tylko obrazek online/offline
 +
* liczbowy - zwraca obrazek w zależności od ilości graczy na serwerze
 +
* procentowy - zwraca obrazek w zależności od ilości zajętych slotów na serwerze w procentach.
  
- podstawowy
+
==Jak to zrobić==
 +
Musisz po prostu wywołać specyficzny adres url w tagu img src obrazka. X oznacza tutaj specyficzny serwer id ( 1 to pierwszy, 2 to drugi ...)
 +
===podstawowy===
 
<pre>index.php?id=X&img=1</pre>
 
<pre>index.php?id=X&img=1</pre>
  
- liczbowy
+
===liczbowy===
 
<pre>index.php?id=X&img=1&plr=1</pre>
 
<pre>index.php?id=X&img=1&plr=1</pre>
  
- procentowy
+
===procentowy===
 
<pre>index.php?id=X&img=1&plr=2</pre>
 
<pre>index.php?id=X&img=1&plr=2</pre>
  
Linia 101: Linia 104:
 
</pre>
 
</pre>
  
<div style="display:none;"><!-- Do poprawy -->
+
<!-- Do poprawy
----
+
  
 
<img src="datas/files/hlss2/hlss2/index.php?id=1&img=1" /> Festung-Breslau.pl #1 [DOD 1.3]  
 
<img src="datas/files/hlss2/hlss2/index.php?id=1&img=1" /> Festung-Breslau.pl #1 [DOD 1.3]  
Linia 117: Linia 119:
  
 
----
 
----
 
  
 
<img src="datas/files/hlss2/hlss2/index.php?id=1&img=1&plr=2" /> Festung-Breslau.pl #1 [DOD 1.3]  
 
<img src="datas/files/hlss2/hlss2/index.php?id=1&img=1&plr=2" /> Festung-Breslau.pl #1 [DOD 1.3]  
Linia 123: Linia 124:
 
<img src="datas/files/hlss2/hlss2/index.php?id=3&img=1&plr=2" /> Festung-Breslau.pl [DOD:Source]  
 
<img src="datas/files/hlss2/hlss2/index.php?id=3&img=1&plr=2" /> Festung-Breslau.pl [DOD:Source]  
 
<img src="datas/files/hlss2/hlss2/index.php?id=4&img=1&plr=2" /> Festung-Breslau.pl 3.1 [DOD 3.1]  
 
<img src="datas/files/hlss2/hlss2/index.php?id=4&img=1&plr=2" /> Festung-Breslau.pl 3.1 [DOD 3.1]  
</div>
+
-->
  
 
= Wywołanie skryptu, skiny, iframe i tagi =
 
= Wywołanie skryptu, skiny, iframe i tagi =
Linia 129: Linia 130:
 
Zauważcie, że wywołanie pliku index.php?id=0 powoduje wyświetlenie listy serwerów, a wywołanie index.php?id=1 wyświetli pierwszy serwer, index.php?id=2 drugi serwer i tak dalej.
 
Zauważcie, że wywołanie pliku index.php?id=0 powoduje wyświetlenie listy serwerów, a wywołanie index.php?id=1 wyświetli pierwszy serwer, index.php?id=2 drugi serwer i tak dalej.
  
Polecam zajrzeć do pliku config.php i na przykład zmienić $main['template'] na nano_list.html, podobnie zmienić paru serwerom template na nano.html i zobaczyć jak wygląda wygląd statusu dla wszystkich serwerów jak i dla pojedyńczego serwera. Oczywiście zajrzyjcie do tych plików .html
+
Polecam zajrzeć do pliku config.php i na przykład zmienić $main['template'] na nano_list.html, podobnie zmienić paru serwerom template na nano.html i zobaczyć jak wygląda wygląd statusu dla wszystkich serwerów jak i dla pojedynczego serwera. Oczywiście zajrzyjcie do tych plików .html
  
 
'''Iframe - połącz to ze swoją stroną'''
 
'''Iframe - połącz to ze swoją stroną'''
 
Chyba najwięcej ci wyjaśni plik [url=datas/files/hlss2/hlss2/iframe.html]iframe.html[/url] (otwórz w przeglądarce na serwerze) a następnie przeanalizuj kod źródłowy.
 
Chyba najwięcej ci wyjaśni plik [url=datas/files/hlss2/hlss2/iframe.html]iframe.html[/url] (otwórz w przeglądarce na serwerze) a następnie przeanalizuj kod źródłowy.
 
Na stronie klanowej musisz w wybranym miejscu wstawić po prostu znacznik iframe z ustawionymi parametrami.
 
Na stronie klanowej musisz w wybranym miejscu wstawić po prostu znacznik iframe z ustawionymi parametrami.
Starczy potem poprawic wygląd aby mieściło się w ramce pliku .html oraz style .css aby pasowały do reszty strony.
+
Starczy potem poprawić wygląd aby mieściło się w ramce pliku .html oraz style .css aby pasowały do reszty strony.
  
 
Zwróć uwagę na obrazki!
 
Zwróć uwagę na obrazki!
Linia 140: Linia 141:
  
 
'''Tagi'''
 
'''Tagi'''
Dzięki tagom wyświetlamy interesującą nas zawartość na strone.
+
Dzięki tagom wyświetlamy interesującą nas zawartość na stronę.
Radzę popatrzeć po prostu na rózne pliki html w katalogu skins.
+
Radzę popatrzeć po prostu na różne pliki html w katalogu skins.
  
Wszelkie elemety typu ''[tag] => wartosc'' powinniscie traktowac jako ''{tag}'' oraz jaką ''wartość '' on zwraca
+
Wszelkie elementy typu ''[tag] => wartosc'' powinniscie traktowac jako ''{tag}'' oraz jaką ''wartość '' on zwraca
  
  
Uniwersalne uzycie zmiennych z PHP
+
Uniwersalne użycie zmiennych z PHP
 
Używaj {PHP.nazwa_zmiennej}, działa także z tablicami, na przykład {PHP.tablica.klucz}, na przykład {PHP._SERVER.SERVER_NAME}
 
Używaj {PHP.nazwa_zmiennej}, działa także z tablicami, na przykład {PHP.tablica.klucz}, na przykład {PHP._SERVER.SERVER_NAME}
  
Linia 318: Linia 319:
 
included license.txt file for futher details. Donations are always welcome.
 
included license.txt file for futher details. Donations are always welcome.
  
_KaszpiR_ http://nvt.prv.pl
+
_KaszpiR_
  
 
=Podziękowania=
 
=Podziękowania=
 
*PawelS za zwracanie uwagi na CSS i HTML
 
*PawelS za zwracanie uwagi na CSS i HTML
 
*trawiator za fazę testową na swoich serwerach i wskazanie poprawki psychoquery
 
*trawiator za fazę testową na swoich serwerach i wskazanie poprawki psychoquery
*FOMFNY za lenistwo w działaniu i nazdwyczajna aktywność w nakłanianiu mnie abym odświeżył porjekt i pokazał jak stosować iframe
+
*FOMFNY za lenistwo w działaniu i nadzwyczajną aktywność w nakłanianiu mnie abym odświeżył porjekt i pokazał jak stosować iframe
 
*graczu za mod phpBB
 
*graczu za mod phpBB
 
*Assasiner za HLS - oryginalny projekt.
 
*Assasiner za HLS - oryginalny projekt.
  
 
=Changelog=
 
=Changelog=
 +
==0.8==
 +
- added class checking when script used as include - to avoid class redeclaration under Land down Under and Seditio and other scripts using Xtemplate
 +
- added customizable skin directory variable in config.php - now you can have skin selswere than subdirectory of hlss
 +
$main['skindir'] = "skin/"; //where are stored skin template files, remember to add end slash
 +
 +
- disabled ob_flush() on end of index.php - should be more covenient when including on some pages.
 +
 +
** Upgrading
 +
- you just need to add on top of the config.php below line (if needed customize of course):
 +
$main['skindir'] = "skin/"; //where are stored skin template files, remember to add end slash
 +
- overwrite inc/functions.php with new version.
  
 
==0.7==
 
==0.7==
 
  - added cache mode - speed improvement and also saves you problem with banned www server on game server
 
  - added cache mode - speed improvement and also saves you problem with banned www server on game server
in older versions if there were too many queries about server status from certain
+
in older versions if there were too many queries about server status from certain
ip, then that ip got banned on game server (the game server wasignoring status request)
+
ip, then that ip got banned on game server (the game server wasignoring status request)
that caused that you could no more get server status info
+
that caused that you could no more get server status info
the cache is updating server status from time to time, - increases speed and  
+
the cache is updating server status from time to time, - increases speed and  
decreases ban possibilty to almost zero (well unless you suddenly get over 100 hits  
+
decreases ban possibilty to almost zero (well unless you suddenly get over 100 hits  
to www in one specified second when the scrit was updating server status, but tis is extremely rare)
+
to www in one specified second when the scrit was updating server status, but tis is extremely rare)
 
+
 
  - added option to output images
 
  - added option to output images
 
  - added some tags in config for:
 
  - added some tags in config for:
mapsurl - given some examples (to suit better cs and cs:s)
+
mapsurl - given some examples (to suit better cs and cs:s)
gameurl - for use in template to change path to maps images and game mod icons
+
gameurl - for use in template to change path to maps images and game mod icons
applaunch - example to activate game launch when klicking on server ip
+
applaunch - example to activate game launch when klicking on server ip
 
+
 
  - added special char change in player names
 
  - added special char change in player names
 
  - added tag player_shortname if you want list with truncated nicknames
 
  - added tag player_shortname if you want list with truncated nicknames
Linia 357: Linia 369:
 
  - changed direcotry structure (cleaner)
 
  - changed direcotry structure (cleaner)
 
  - if calling with id=0 (that means alist all servers, server uses only one template,  
 
  - if calling with id=0 (that means alist all servers, server uses only one template,  
and does not include, separate templates specfic for each server
+
and does not include, separate templates specfic for each server
this was introduced for security reasons
+
this was introduced for security reasons
 
  - output buffering (i forgot :D)
 
  - output buffering (i forgot :D)
 
  - renamed .tpl to .html, better usage for morons
 
  - renamed .tpl to .html, better usage for morons
Linia 369: Linia 381:
 
   servers in a list, and if you run index.php?id=0 it will display only server number zero  
 
   servers in a list, and if you run index.php?id=0 it will display only server number zero  
 
   that is a first server in a config.php, use respectively index.php?id=1 for second server etc.
 
   that is a first server in a config.php, use respectively index.php?id=1 for second server etc.
 
+
 
   notice this required .tpl change.
 
   notice this required .tpl change.
  
Linia 398: Linia 410:
 
  - Commented out the "header(content-length)".
 
  - Commented out the "header(content-length)".
 
  - Commented out the error message if block do not exists.
 
  - Commented out the error message if block do not exists.
 +
 +
= Nie rozumiesz / Nie działa =
 +
 +
Wejdz na [http://www.game-monitor.com Game Monitor] i użyj ich modułu.
 +
 +
[[Kategoria:Oprogramowanie]]

Aktualna wersja na dzień 00:07, 28 gru 2010

Spis treści

Opis

HLSS 2 jest skryptem w PHP do wyświetlania statusu serwera albo serwerów gry Half-Life i Source na stronie WWW. Potrafi zwracać status jako listę serwerów, jako pojedynczy serwer, może zwracać jako HTML, jako wybrany plik textowy, jako obrazek (bardzo uproszczone).

Aktualna wersja to 0.9, autor _KaszpiR_ Oryginalnie napisany po angielsku.

Przykład działania brak, albo google.

Testowane na:

  • TeamFortress 2 (2010.12.27)
  • Counter-Strike 1.6 (2010.12.27)
  • Counter-Strike: Condition Zero (2010.12.27)
  • Counter-Strike: Source (2005.08.08)
  • Half-Life2 DeathMatch (2006-03-04)
  • Day Of Defeat (2006-03-04)
  • Day Of Defeat: Source (2006-03-04)
  • Quake3 i jego klony (beta)

Download

http://kaszpir.hlds.pl/hlds.pl/hlss/hlss_0.9.zip - od jakże dawna oczekiwany ;)

Wymagania

PHP 4.3 z funkcją fsockopen() - oznacza to, że php musi być skompilowany z opcją --enable-sockets (przeważnie jest, jak instalujesz z pakietów instalacyjnych). Dodatkowo funkcja fsockopen() nie może być blokowana jako funkcja niedozwolona w php.ini, na serwerze www lepiej abyś nie miał żadnego firewall'a albo odblokowane połączenia na porty gier. Opcjonalnie biblioteka GD2 w PHP (tylko do generacji obrazków w katalogu tools/

Instalacja

  • Zrób kopie bezpieczeństwa starszej wersji :)

Osoby znające język angielski - zalecam przeczytać plik docs/readme.html

  • Rozpakuj plik .zip do katalogu na serwerze, zachowując strukturę katalogów, oraz zachowując wielkość liter w nazwach plików.
  • Upewnij się, że plik hlss2_cache.txt ma tak ustawione prawa do zapisu, że może być zapisywany przez wszystkich ( chmod 666 ).

albo ustaw $main['cache'] = ""; jeśli nie chcesz korzystać z tej opcji cache (nie używanie cahce jest nie zalecane ze względów wydajności i poprawności działania skryptu).

  • Zedytuj plik config.php - na szczęście jest tam parę przykładów które powinny ci pomóc. Warto abyś użył słownika do angielskiego bo wiele opisów dałem w tym języku.
  • Ale pare informacji naprowadzających:

$main['template'] ="list.html"; - definiuje plik do wyświetlenia standardowej listy serwerów, pliki template są w katalogu skin i mają rozszerzenie .html

Następnie konfigurujesz serwer albo serwery - chodzi o $server[] Wypełnij dane zgodnie z ustawieniami swojego serwera "ip" => "ADRES:PORT", - numer ip naszego serwera w postaci ADRES:PORT , jeśli nie ma portu (czyli jest tylko ADRES) to domyślnie będzie użyty port 27015), w nazwie adresu można podać nazwę hosta serwera

"disable" => 0, - ustawiając 1 albo 0 możemy szybko ukryć/pokazać nasz serwer przed wyświetlaniem, bez potrzeby kasowania zbędnych linii

"template" => "default.html" - plik który będzie używany do wyświetlenia detalicznego, specyficznego statusu dla tego serwera, dzięki temu możesz mieć inne pliki dla każdego serwera, np DOD, CS czy CS:Source itp. Pliki są w katalogu skins, możesz stworzyć własne bazując na już istniejących, dane dotyczące tagów są w dalszej części artykułu.

"name" => "serwer1", - ustawia nazwę serwera, jeśli nie można jej pobrać bezpośrednio - użyteczne jak serwer nie odpowiada a nie chcemy mieć pustej nazwy

"ha" => "Admin", - Imię HeadAdmina, ewentualne tag do wykorzystania w skinie

"ha_mail" => "Admin@mail.com", - mail admina, ale przy modyfikacji skina można to zmienić np na numer GG czy coś podobnego

"timeout" => 1, - czas oczekiwania na odpowiedź od serwera w sekundach, lepiej nie schodzić poniżej sekundy, ani nie zwiększać - bo wydłuża to czas ładowania strony jeśli serwer nie odpowiada.

"gameurl" => "halflife", - podaje rodzaj gry (opcja halflife albo halflife2, potem stosowana w skórkach .html

nicklength" => "29", - długość nazwy gracza, jeśli używamy tagu payer_shortname - gdy chcemy aby wygląd był w ograniczonych ramach a nicki są za długie, tutaj możesz ustawi 35 aby wyświetlić cały nick

"mapurl" => "../maps/halflife" - ścieżka do obrazków mapy, może być względna albo bezwzględna (czyli zawierająca http://), map nie ma w zipie - musisz ściągnąć je sam np ze strony psychostats, uwaga, w skinach jest jeszcze używany tag {gamerul} oraz {gamedir} - jeśli masz specyficzny mod do gry musisz stworzyć katalog o nazwie modu i tam umieścić obrazki map

"mapext" => "jpg" - rozszerzenie obrazków map - ten tag jest specyficzny dla skina

"applaunch" => "30" - rodzaj gry do uruchomienia jeśli klikniesz na numerze ip serwera, zależy od gry (http:/www.steampowered.com) oraz skina


$main['showall'] = 0; - ustaw 1 oraz w jednym z serwerów ustaw template na showall.html i zobacz co się będzie działo, mniej więcej w 80% od góry strony będą interesujące cię tagi (a tak to wszystkie dostępne tagi i nie tylko.

$main['debug'] = 0; - ustaw na 1 aby włączyć wyświetlanie błędów, dobre jak coś ci nie działa.

  • Po tym zapisujemy config, i kierujemy przeglądarkę na adres i sprawdzamy czy wszystko chodzi.

Następny punkt zawiera informacje o zastosowaniu na stronach klanowych.


Zwracanie obrazków

Od wersji 0.7 skrypt potrafi zwracać status serwera jako prosty obrazek - użyteczne na stronach głównych albo forum gdzie ni jesteś w stanie wstawić znacznika iframe.

Ten tryb działa tylko dla pojedynczego serwera - więc jeśli masz np 5 serwerów - musisz stworzyć pięć oddzielnych wpisów aby zwracały obrazki.

Tryby zwracania obrazków

  • podstawowy - zwraca tylko obrazek online/offline
  • liczbowy - zwraca obrazek w zależności od ilości graczy na serwerze
  • procentowy - zwraca obrazek w zależności od ilości zajętych slotów na serwerze w procentach.

Jak to zrobić

Musisz po prostu wywołać specyficzny adres url w tagu img src obrazka. X oznacza tutaj specyficzny serwer id ( 1 to pierwszy, 2 to drugi ...)

podstawowy

index.php?id=X&img=1

liczbowy

index.php?id=X&img=1&plr=1

procentowy

index.php?id=X&img=1&plr=2

Poniższy przykład rozwieje pewne wątpliwości - każdy jest dla innego serwera oraz każdy zwróci inny stan

<img src="index.php?id=1&img=1" />
<img src="index.php?id=2&img=1&plr=1" />
<img src="index.php?id=3&img=1&plr=2" />


Wywołanie skryptu, skiny, iframe i tagi

Zauważcie, że wywołanie pliku index.php?id=0 powoduje wyświetlenie listy serwerów, a wywołanie index.php?id=1 wyświetli pierwszy serwer, index.php?id=2 drugi serwer i tak dalej.

Polecam zajrzeć do pliku config.php i na przykład zmienić $main['template'] na nano_list.html, podobnie zmienić paru serwerom template na nano.html i zobaczyć jak wygląda wygląd statusu dla wszystkich serwerów jak i dla pojedynczego serwera. Oczywiście zajrzyjcie do tych plików .html

Iframe - połącz to ze swoją stroną Chyba najwięcej ci wyjaśni plik [url=datas/files/hlss2/hlss2/iframe.html]iframe.html[/url] (otwórz w przeglądarce na serwerze) a następnie przeanalizuj kod źródłowy. Na stronie klanowej musisz w wybranym miejscu wstawić po prostu znacznik iframe z ustawionymi parametrami. Starczy potem poprawić wygląd aby mieściło się w ramce pliku .html oraz style .css aby pasowały do reszty strony.

Zwróć uwagę na obrazki!


Tagi Dzięki tagom wyświetlamy interesującą nas zawartość na stronę. Radzę popatrzeć po prostu na różne pliki html w katalogu skins.

Wszelkie elementy typu [tag] => wartosc powinniscie traktowac jako {tag} oraz jaką wartość on zwraca


Uniwersalne użycie zmiennych z PHP Używaj {PHP.nazwa_zmiennej}, działa także z tablicami, na przykład {PHP.tablica.klucz}, na przykład {PHP._SERVER.SERVER_NAME}

najlepiej jest poeksperymentować.


Pomiędzy znacznikami PLAYERS na przykład {player_id}, {player_name}

[player_name] => [P0D]Trust Noone "(88)"
[player_id] => 5
[player_kills] => 1
[player_time] => 225
[player_time_min] => 00:03:45
[player_shortname] => [P0D]Trust...
'' => 0
[j] => 1



Pomiędzy znacznikami STATUS na przykład {template}, {skin}, {map}

	    [disable] => 0
            [ip] => 192.168.1.1
            [template] => showall.html
            [name] => Szambo
            [ha] => 
            [ha_mail] => 
            [timeout] => 0
            [id] => 4
            [skin] => showall
            [ping] => 11
            [ipport] => 192.168.1.1:27015
            [port] => 27015
            [int_ipport] => 127.0.0.1:27015
            [int_port] => 27015
            [int_ip] => 127.0.0.1
            [map] => de_nuke
            [gamedir] => cstrike
            [gamename] => Counter-Strike
            [totalplayers] => 5
            [maxplayers] => 20
            [protocol] => 47
            [servertype] => d
            [serveros] => l
            [serverlocked] => 0
            [modrunning] => 1
            [modurl] => www.counter-strike.net
            [modftp] => 
            [modver] => 1.0
            [modsize] => 184000000
            [modserveronly] => 0
            [modclientdll] => 1
            [hlss_update_time] => 1141777570
            [update_time] => 2006-03-08

Pomiędzy znacznikami STATUS z użyciem rules na przykład {rules.amx_nextmap} {rules.mp_timelimit} etc

    [_tutor_bomb_viewable_check_interval] => 0.5
    [_tutor_debug_level] => 0
    [_tutor_examine_time] => 0.5
    [_tutor_hint_interval_time] => 10.0
    [_tutor_look_angle] => 10
    [_tutor_look_distance] => 200
    [_tutor_message_character_display_time_coefficient] => 0.07
    [_tutor_message_minimum_display_time] => 1
    [_tutor_message_repeats] => 5
    [_tutor_view_distance] => 1000
    [allow_spectators] => 1
    [amx_match_deluxe] => 1.72
    [amx_nextmap] => cs_estate
    [amx_timeleft] => 17:51
    [amx_version] => 0.9.9b (5 modules)
    [atac_version] => 2.5.3
    [coop] => 0
    [deathmatch] => 1
    [decalfrequency] => 30
    [edgefriction] => 2
    [fun_version] => 0.9.9b
    [hostage_debug] => 0
    [hostage_stop] => 0
    [humans_join_team] => any
    [max_queries_sec] => 1
    [max_queries_sec_global] => 1
    [max_queries_window] => 1
    [metamod_version] => 1.17.3
    [mp_allowmonsters] => 0
    [mp_autokick] => 0
    [mp_autoteambalance] => 0
    [mp_buytime] => 0.25
    [mp_c4timer] => 35
    [mp_chattime] => 10
    [mp_consistency] => 1
    [mp_fadetoblack] => 0
    [mp_flashlight] => 1
    [mp_footsteps] => 1
    [mp_forcecamera] => 2
    [mp_forcechasecam] => 1
    [mp_fragsleft] => 0
    [mp_freezetime] => 6
    [mp_friendlyfire] => 1
    [mp_ghostfrequency] => 0.1
    [mp_hostagepenalty] => 0
    [mp_kickpercent] => 0.66
    [mp_limitteams] => 0
    [mp_logdetail] => 3
    [mp_logfile] => 1
    [mp_logmessages] => 1
    [mp_mapvoteratio] => 0.66
    [mp_maxrounds] => 0
    [mp_mirrordamage] => 0
    [mp_playerid] => 0
    [mp_roundtime] => 1.75
    [mp_startmoney] => 800
    [mp_timeleft] => 0
    [mp_timelimit] => 20
    [mp_tkpunish] => 0
    [mp_windifference] => 1
    [mp_winlimit] => 0
    [pausable] => 0
    [smyga_plugin] => ;Destuckme 2.1;
    [sv_accelerate] => 5
    [sv_aim] => 0
    [sv_airaccelerate] => 10
    [sv_airmove] => 1
    [sv_allowupload] => 1
    [sv_alltalk] => 0
    [sv_bounce] => 1
    [sv_cheats] => 0
    [sv_clienttrace] => 1
    [sv_clipmode] => 0
    [sv_contact] => 
    [sv_friction] => 4
    [sv_gravity] => 800
    [sv_logblocks] => 1
    [sv_maxrate] => 20000
    [sv_maxspeed] => 320
    [sv_minrate] => 0
    [sv_password] => 0
    [sv_proxies] => 1
    [sv_region] => 3
    [sv_restart] => 0
    [sv_restartround] => 0
    [sv_stepsize] => 18
    [sv_stopspeed] => 75
    [sv_uploadmax] => 0.5
    [sv_voiceenable] => 1
    [sv_wateraccelerate] => 10


Modyfikacje

HLSS2 phpBB mod - modyfikacja skryptu pod forum phpBB



Zakończenie

  • This software is being provided free for all users under the GNU GPL license. See the

included license.txt file for futher details. Donations are always welcome.

_KaszpiR_

Podziękowania

  • PawelS za zwracanie uwagi na CSS i HTML
  • trawiator za fazę testową na swoich serwerach i wskazanie poprawki psychoquery
  • FOMFNY za lenistwo w działaniu i nadzwyczajną aktywność w nakłanianiu mnie abym odświeżył porjekt i pokazał jak stosować iframe
  • graczu za mod phpBB
  • Assasiner za HLS - oryginalny projekt.

Changelog

0.8

- added class checking when script used as include - to avoid class redeclaration under Land down Under and Seditio and other scripts using Xtemplate
- added customizable skin directory variable in config.php - now you can have skin selswere than subdirectory of hlss
	$main['skindir'] = "skin/"; //where are stored skin template files, remember to add end slash

- disabled ob_flush() on end of index.php - should be more covenient when including on some pages.

** Upgrading
- you just need to add on top of the config.php below line (if needed customize of course):
	$main['skindir'] = "skin/"; //where are stored skin template files, remember to add end slash
- overwrite inc/functions.php with new version.

0.7

- added cache mode - speed improvement and also saves you problem with banned www server on game server
	in older versions if there were too many queries about server status from certain
	ip, then that ip got banned on game server (the game server wasignoring status request)
	that caused that you could no more get server status info
	the cache is updating server status from time to time, - increases speed and 
	decreases ban possibilty to almost zero (well unless you suddenly get over 100 hits 
	to www in one specified second when the scrit was updating server status, but tis is extremely rare)

- added option to output images
- added some tags in config for:
	mapsurl - given some examples (to suit better cs and cs:s)
	gameurl - for use in template to change path to maps images and game mod icons
	applaunch - example to activate game launch when klicking on server ip

- added special char change in player names
- added tag player_shortname if you want list with truncated nicknames
- added some small tools for image generation
- changed readme.txt
- added doc/ dir
- moved readme.txt to doc/readme.html and made it HTML
- minor typos fixed
- favicon in some .html (templates)

0.6

- rewritten config
- changed direcotry structure (cleaner)
- if calling with id=0 (that means alist all servers, server uses only one template, 
	and does not include, separate templates specfic for each server
	this was introduced for security reasons
- output buffering (i forgot :D)
- renamed .tpl to .html, better usage for morons
- few examples like nano, and nano_list
- the idea for users how and which tags to use (at the end of readme)

0.5

unreleased (or if realeased, the do not use it)
- added option to parse the GET['id'], so if you run your script like index.php? it shows all
  servers in a list, and if you run index.php?id=0 it will display only server number zero 
  that is a first server in a config.php, use respectively index.php?id=1 for second server etc.

 notice this required .tpl change.

0.4

- minor tweaks

0.3

- initial release

Powered by

html generation with templates - fast & easy
copyright (c) 2000-2001 Barnabás Debreceni [cranx@users.sourceforge.net]

latest stable & CVS versions always available @
http://sourceforge.net/projects/xtpl/

Modifcations made by Olivier "Neuro" C. (http://www.neocrome.net) :

* 10-jun-2003 :
- Function assign modified, for parsing of arrays in arrays.

* 02-feb-2004 :
- Added the function out_to_file
- Commented out the "header(content-length)".
- Commented out the error message if block do not exists.

Nie rozumiesz / Nie działa

Wejdz na Game Monitor i użyj ich modułu.

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