'unknown', 'mapFolder' => 'unknown', 'currentPlayers' => 0, 'maxPlayers' => 0, ); $cacheFile = APP . '/cache/currentData.txt'; if(!isset($_GET['refresh']) && is_file($cacheFile) && filesize($cacheFile) > 0 && filemtime($cacheFile) >= strtotime('-5 minutes')) { $data = unserialize(file_get_contents($cacheFile)); } else { /*$gametracker = file_get_contents('http://www.gametracker.com/server_info/216.40.220.186:16567/'); if(preg_match('/\
(.*?)\<\/div\>/ism', $gametracker, $matches)) { $data['map'] = trim($matches[1]); $data['mapFolder'] = preg_replace('/[^a-z0-9]+/i', '_', strtolower($data['map'])); } if(preg_match('/\(.*?)\<\/span\>\s*\/\s*\(.*?)\<\/span\>/ism', $gametracker, $matches)) { $data['currentPlayers'] = $matches[1]; $data['maxPlayers'] = $matches[2]; } $fp = fopen($cacheFile, 'w+'); fwrite($fp, serialize($data)); fclose($fp);*/ $gametracker = file_get_contents('http://www.game-monitor.com/bf2_GameServer/216.40.220.186:16567/'); if(preg_match('/\Map:\s*?\<\/b\>\(.*?)\<\/a\>/ism', $gametracker, $matches)) { $data['map'] = trim($matches[1]); $data['mapFolder'] = preg_replace('/[^a-z0-9]+/i', '_', strtolower($data['map'])); } if(preg_match('/(\d+)\/(\d+)/ism', $gametracker, $matches)) { $data['currentPlayers'] = $matches[1]; $data['maxPlayers'] = $matches[2]; } $fp = fopen($cacheFile, 'w+'); fwrite($fp, serialize($data)); fclose($fp); } $tmp = $data; unset($tmp['map']); $cacheImage = APP . '/cache/' . date('Y-m-d', $unixtime) . '-' . join('-', $tmp).'.png'; if(isset($_GET['refresh']) || !is_file($cacheImage)) { $dir = APP.'/maps/'.$data['mapFolder']; if(!is_dir($dir)) { $data['mapFolder'] = 'unknown'; $dir = APP.'/maps/unknown'; } $images = array(); $dh = opendir($dir); if($dh) { while($file = readdir($dh)) { if($file != '.' && $file != '..' && preg_match('/.png$/i', $file)) $images[] = $dir.'/'.$file; } } $image = $images[rand(0, count($images)-1)]; if(empty($image)) { $image = APP.'/maps/unknown/1.png'; # dirty... } $sig = imagecreatetruecolor(468, 100); $white = imagecolorallocate($sig, 255, 255, 255); $black = imagecolorallocate($sig, 0, 0, 0); $map = imagecreatefrompng($image); $overlay = imagecreatefrompng(APP.'/overlay.png'); imageAlphaBlending($overlay, false); imageSaveAlpha($overlay, true); imagecopy($sig, $map, 0, 0, 0, 0, imagesx($sig), imagesy($sig)); imagecopy($sig, $overlay, 0, 0, 0, 0, imagesx($sig), imagesy($sig)); // current players $text = $data['currentPlayers'].'/'.$data['maxPlayers']; $size = 11; $text_size = imagettfbbox($size, 0, $font, $text); $width = $text_size[2] - $text_size[0]; $height = $text_size[5] - $text_size[3]; imagettftext($sig, $size, 0, imagesx($sig) - $width - 6, imagesy($sig) - 6, $black, $font, $text); imagettftext($sig, $size, 0, imagesx($sig) - $width - 7, imagesy($sig) - 7, $white, $font, $text); // map name $text = $data['map']; $size = 14; $text_size = imagettfbbox($size, 0, $font, $text); $width = $text_size[2] - $text_size[0]; $height = $text_size[5] - $text_size[3]; imagettftext($sig, $size, 0, imagesx($sig) - $width - 54, imagesy($sig) - 5, $black, $font, $text); imagettftext($sig, $size, 0, imagesx($sig) - $width - 55, imagesy($sig) - 6, $white, $font, $text); // devils day $text = "Next Devils Day: ".date('F jS', $unixtime); $size = 8; $text_size = imagettfbbox($size, 0, $smallFont, $text); $dwidth = $text_size[2] - $text_size[0]; $dheight = $text_size[5] - $text_size[3]; imagettftext($sig, $size, 0, imagesx($sig) - $width - 54 - $dwidth - 12, imagesy($sig) - 6, $black, $smallFont, $text); imagettftext($sig, $size, 0, imagesx($sig) - $width - 55 - $dwidth - 12, imagesy($sig) - 7, $white, $smallFont, $text); imagepng($sig, $cacheImage, 5); } header('Location: '.str_replace($_SERVER['DOCUMENT_ROOT'], '', $cacheImage)); //header('Content-type: image/png'); //echo file_get_contents($cacheImage); ?>