Ogólnie to zrobił bym to zupełnie inaczej, ale niech będzie wg tego skryptu..
zamień zawartość pliku status.php na tą:
<?php
/**
*
* Graficzny tatus serwerow opartych na protokole Half Life oraz Half Life 2
* Autorem klasy jest: Herwin Weststrate aka Hdez - [email protected]
* Wersja: 1.0
* copyright (c) 2010 Fragles.eu
* [email protected]
* http://opensource.org/licenses/gpl-license.php GNU Public License
* Zezwalam na użytkowanie, modyfikowanie ale nie na sprzedawanie!
*
*/
// sciezka do pliku z klasa
require_once('status/class.hlsocket.php');
// przykladowe czcionki
define('TEMPESTA', 'status/fonts/tempesta.ttf');
define('TAHOMA', 'status/fonts/tahoma.ttf');
define('VERDANA', 'status/fonts/verdana.ttf');
define('TAHOMA_BOLD', 'status/fonts/tahoma_bold.ttf');
// przyporządkowujemy zmienna do zmiennej globalnej
$server = $_GET['server'];
// Jesli jest pusty to nie zajmujemy sie ip oraz portem
if (isset($server) && !empty($server)) {
// podzielenie adresu na ip oraz port
list($ip, $port) = explode(":", $server);
// nowy obiekt klasy HLSocket oraz pobranie info z serwera
$s1_status = new HLSocket($ip, $port);
$s1_info = $s1_status->details();
/**
* rozpatrujemy dwa przypadki
* 1 - serwer offline bo nie ma nazwy serwera
* 2 - serwer online
*/
if($s1_info['hostname']=="")
{
$hostname = 'Serwer '.$server.' jest OFFLINE';
$players = "x";
$playersmax = "x";
$map = "OFFLINE";
$bg = "status/background.png";
}
else
{
$hostname = ( strlen( $s1_info['hostname'] ) > 29 ) ? substr( $s1_info['hostname'], 0, 27 ) . "..." : $s1_info['hostname'];
$players = $s1_info['players'];
$playersmax = $s1_info['max'];
$map = $s1_info['map'];
$bg = "status/background_online.png";
}
// utworzenie obrazka z tla
$im = imagecreatefrompng( $bg );
// kolor bialy
$white = imagecolorallocate($im, 255, 255, 255);
// polaczenie informacji do jednej zmiennej
$info = $server ." ". $players ." / ". $playersmax ." ". $map;
// gorny rzad, nazwa serwera
imagettftext($im, 7, 0, 30, 10, $white, VERDANA, $hostname);
// dolny rzad, ip serwera, gracze, mapa
imagettftext($im, 7, 0, 30, 21, $white, VERDANA, $info);
} else {
$im = imagecreatefrompng("status/background.png");
$white = imagecolorallocate($im, 255, 255, 255);
$info = "123.456:27015 31 / 32 de_inferno";
imagettftext($im, 7, 0, 30, 10, $white, VERDANA, "Fragles.eu [TESTOWY SERWER] @ fragles.eu");
imagettftext($im, 7, 0, 30, 21, $white, VERDANA, $info);
}
// okreslenie typu zawartosci
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>