WITAM! mam pewien skrypcik, który monitoruje pewien serwer ventrilo.. gdy jest 0 osób na serwerze to zamiast pokazywać 0/100 pokazuje /100 Wiem, że powinienem sprawdzić czy players = 0 jezeli tak to wyświetlic 0 jezeli nie to nic nie robic , ale gdy byle co zmienie pluje błędami na całą stronę...
Przykład jak pluje błędami:
http://monitoring.xaa.pl/status_ventrilo/x...p;game=ventriloPrzyklad jak nie wyświetla zera:
http://monitoring.xaa.pl/status_ventrilo/i...p;game=ventriloKod:
<?php
require_once 'GameQ.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'];
$game = $_GET['game'];
// Jesli nie podano ip lub gry
{
// podzielenie adresu na ip oraz port
list
($ip, $port) = explode(":", $server);
$gq = new GameQ();
// dodajemy serwer
$gq->addServer('serwer', array($game, $ip, $port)); $gq->setOption('timeout', 200);
$gq->setFilter('normalise');
$gq->setFilter('sortplayers', 'gq_ping');
$results = $gq->requestData();
/**
* rozpatrujemy dwa przypadki
* 1 - serwer offline bo nie ma nazwy serwera
* 2 - serwer online
*/
if($results['serwer']['gq_hostname']=="")
{
$hostname = "Serwer OFFLINE";
$players = "x";
$playersmax = "x";
$map = "Offline";
}
else
{
$hostname = $results['serwer']['gq_hostname'];
$players = $results['serwer']['gq_numplayers'];
$playersmax = $results['serwer']['gq_maxplayers'];
$map = $results['serwer']['gq_mapname'];
}
// utworzenie obrazka z tla
$im = imagecreatefrompng("status/background.png");
// 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);
// nie podano adresu w zmiennej $_GET
} 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);
?>