Od dawna jest prosty sposób na wyświetlenie statystyk serwera na naszej własnej stronie czy forum.
Otóż serwis Game-Monitor udostępnia nasze dane w paru postaciach, my skorzystamy z zserializowanej tablicy, a dane wyświetlimy za pomocą skryptu PHP mojego autorstwa .
Do dzieła!
Na początku, jeśli jeszcze tego nie zrobiliśmy, dodajemy nasz serwer do serwisu Game-Monitor.
Następnie wchodzimy w jego statystyki, później w zakładkę Data Feeds, szukamy i kopiujemy link do PHP Serialized.
Poniższą funkcję wklejamy do kodu naszej strony:
function cstrike_gamemonitor($feed) { $data = file_get_contents($feed); $monitor = unserialize($data); if($monitor->error == 0) { $out = "<table align='center' width='400' cellspacing='0' cellpadding='0'>n<tr>n"; $out .= "<td style='border:1px #000000 solid;text-align:center;padding:3px 3px 3px 3px;font-weight:bold;' colspan='2'>".$monitor->name."</td>n"; $out .= "</tr>n<tr>n"; $out .= "<td style='border:1px #000000 solid;border-right:0;border-top:0;padding:3px 3px 3px 3px;'>IP:</td>"; $out .= "<td style='border:1px #000000 solid;border-top:0;padding:3px 3px 3px 3px;'>".$monitor->ip.":".$monitor->port."</td>"; $out .= "</tr>n<tr>n"; $out .= "<td style='border:1px #000000 solid;border-right:0;border-top:0;padding:3px 3px 3px 3px;'>Sloty:</td>"; $out .= "<td style='border:1px #000000 solid;border-top:0;padding:3px 3px 3px 3px;'>".$monitor->player." / ".$monitor->maxplayer."</td>"; $out .= "</tr>n<tr>n"; $out .= "<td style='border:1px #000000 solid;border-right:0;border-top:0;padding:3px 3px 3px 3px;'>Ping:</td>"; $out .= "<td style='border:1px #000000 solid;border-top:0;padding:3px 3px 3px 3px;'>".$monitor->query_time."</td>"; $out .= "</tr>n<tr>n"; $out .= "<td style='border:1px #000000 solid;border-right:0;border-top:0;padding:3px 3px 3px 3px;'>Typ:</td>"; $out .= "<td style='border:1px #000000 solid;border-top:0;padding:3px 3px 3px 3px;'>".($monitor->premium ==1 ? "Publiczny" : "Prywatny")."</td>"; $out .= "</tr>n</table>"; } else { $out = "<table align='center' width='400' cellspacing='0' cellpadding='0'>n<tr>n"; $out .= "<td style='border:1px #000000 solid;text-align:center;padding:3px 3px 3px 3px;font-weight:bold;' colspan='2'>Serwer nie działa</td>n"; $out .= "</tr>n</table>"; } return $out; }
UWAGA!
Nawet jeśli chcemy monitorować wiele serwerów, powyższą funkcję wklejamy tylko raz!
Funkcję tę wywołujemy w taki sposób:
echo cstrike_gamemonitor("TUTAJ LINK, KTORY SKOPIOWALISMY")
Wklejając link skopiowany z Game-Monitor w sposób podany w kodzie.
Uwagi!
1. Jeśli masz wiele serwerów, wystarczy że powielisz ten drugi kod, wklejając link do innego serwera
2. Połączenie z Game-Monitor jest dość czasochłonnym procesem (według moich obliczeń 0.80-1.10 sekundy), więc im więcej serwerów dodasz, tym dłużej może Ci się strona ładować.
3. Ten skrypt NIE DZIAŁA na serwerach z safe_mode on lub z zablokowaną funkcją file_get_contents();
Statystyki są dość ubogie (nawet aktualnej mapy nie pokazują), ale to już intencja serwisu Game-Monitor, jakie dane chce rozprowadzać, a nie moja .
Co do tego czasu połączenia, w sumie mogłem zrobić mały cache, jednak wydawało mi się to niepotrzebne, bo statystyki zbyt rozbudowane nie są (ale jeśli bardzo będzie wam przeszkadzał ten czas ładowania to coś skombinujemy ).
Wygląd oczywiście możecie dowolnie modyfikować (jeśli znacie html), nie ma z tym problemu.
Jeśli o czymś zapomniałem, proszę dać znać w temacie
Pozdro!!
Jeśli chcesz umieszczać ten poradnik na innej stronie, wklej wyraźny link do tego Supportu (amxx.pl) i do mojej strony (Kołaczyce Servers).