Witam !
Kombinuję sobie, jak połączyć cache ze statusem serwer, tak aby status odświeżał się co 30 sekund, więc tak aktualnie to statusik pojawia się za pierwszym razem, po odświeżeniu pojawia się link do statusu. 1 wejście obrazek, potem
http://www.efrags.pl/status/cs/ffa.efrags.pl:27015.png, a nie obrazek. (IMG:
style_emoticons/default/worriedsmiley.gif) Proszę nie krzyczeć, że coś źle bo jestem zielony, chciałem połączyć dwa skrypty ze sobą ale coś trochę nie wyszło.
To co wyskrobałem:
<?php
/*
*
* Copyright 2010 by Fragles.eu
* Nie zezwalam na sprzedawanie tego skryptu, o czym mowi rowniez licencja GNU
*
*/
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'];
$cachefile = "./cache/server_".$_SERVER['QUERY_STRING'].$ext;
$cachetime = 30; //czas cache'owania
// cachowanie
{
send_headers();
}
// 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/bg.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 = "xx.xxx.xxx:xxxxx xx / xx OFFLINE";
imagettftext($im, 7, 0, 30, 10, $white, VERDANA, "Serwer OFFLINE");
imagettftext($im, 7, 0, 30, 21, $white, VERDANA, $info);
}
function send_headers() {
if($ext == '.png') {
header ('Content-type: image/png'); } else {
header ('Content-type: image/jpeg'); }
}
// okreslenie typu zawartosci
header('Content-type: image/png'); imagepng($im);
imagedestroy($im);
$fp = fopen($cachefile, 'wb'); ?>
refresh
Ten post edytował Duo 16.11.2010, 21:44:46