=")) ? true : false;
if ($use_fgets and $compression == 'none') {
if ($length == -1) {
return(fgets($fp));
} else {
return(fgets($fp, $length));
}
}
$buffer = '';
$i = 0;
while(!feof($fp)) {
if ($length != -1 and $i >= $length) break;
$i++;
switch($compression) {
case 'bz2': $char = bzread($fp, 1); break;
case 'zlib': $char = gzread($fp, 1); break;
default: $char = fread($fp, 1);
}
$buffer .= $char;
if ($char == "\n") break;
}
if (empty($buffer) and feof($fp)) return(false);
return($buffer);
}
function my_fopen($filename, $mode, &$compression) {
if ($compression === NULL) {
$compression = 'none';
if (substr($filename, -4) == '.bz2') {
if (check_extension('bz2')) {
$compression = 'bz2';
} else {
return(false);
}
}
if (substr($filename, -3) == '.gz') {
if (check_extension('zlib')) {
$compression = 'zlib';
} else {
return(false);
}
}
}
switch($compression) {
case 'bz2': $fp = @bzopen($filename, $mode); break;
case 'zlib': $fp = @gzopen($filename, $mode); break;
default: $fp = @fopen($filename, $mode); break;
}
return($fp);
}
function my_fclose($fp, $compression) {
switch($compression) {
case 'bz2': return(@bzclose($fp));
case 'zlib': return(@gzclose($fp));
default: return(@fclose($fp));
}
}
// Small query
function small_query($query) {
$sql_small = "$query";
$q_small = mysqli_query($GLOBALS["___mysqli_link"], $sql_small) or die(mysqli_error($GLOBALS["___mysqli_link"]));
$r_small = mysqli_fetch_array($q_small);
return $r_small;
}
// Small query count
function small_count($query) {
$sql_small = "$query";
$q_small = mysqli_query($GLOBALS["___mysqli_link"], $sql_small) or die(mysqli_error($GLOBALS["___mysqli_link"]));
$r_small = mysqli_num_rows($q_small);
return $r_small;
}
// uid generator
function str_rand($length = 8, $seeds = 'abcdefghijklmnopqrstuvwxyz0123456789') {
$str = '';
$seeds_count = strlen($seeds);
// Seed
list($usec, $sec) = explode(' ', microtime());
$seed = (float) $sec + ((float) $usec * 100000);
mt_srand($seed);
// Generate
for ($i = 0; $length > $i; $i++) {
$str .= $seeds{mt_rand(0, $seeds_count - 1)};
}
return $str;
}
function zero_out($data) {
if (!is_array($data)) return($data);
foreach($data as $key => $value) {
if ($value == '0') $data[$key] = '';
}
return($data);
}
function get_dp($number) {
$dp = number_format($number, 2, '.', '');
return ($dp);
}
function sec2min($number) {
$dp = $number/60;
$dp = number_format($dp, 2, '.', '');
return ($dp);
}
function sec2hour($number) {
$dp = $number/3600;
$dp = number_format($dp, 2, '.', '');
return ($dp);
}
function un_ut($name) {
$gname = str_replace("Botpack.", "", "$name");
$gname = str_replace("Class ", "", "$gname");
$gname = str_replace("CTFGame", "Capture The Flag", "$gname");
$gname = str_replace(".unr", "", "$gname");
return ($gname);
}
function mtimestamp($date) {
$hour = substr($date, 8, 2);
$minute = substr($date, 10, 2);
$second = 00;
$day = substr($date, 6, 2);
$month = substr($date, 4, 2);
$year = substr($date, 0, 4);
return(mktime($hour,$minute,$second,$month,$day,$year));
}
function mdate($date) {
$ourdate = date('D, M j Y \a\t g:i a', mtimestamp($date));
return ($ourdate);
}
function mdate2($date) {
$hour = substr("$date", 8, 2);
$minute = substr("$date", 10, 2);
$second = "00";
$day = substr("$date", 6, 2);
$month = substr("$date", 4, 2);
$year = substr("$date", 0, 4);
$ourdate = mktime($hour,$minute,$second,$month,$day,$year);
$ourdate = date('Y-m-d g:i a', $ourdate);
return ($ourdate);
}
function utdate($gametime) {
$year = substr("$gametime", 0, 4);
$month = substr("$gametime", 5, 2);
$day = substr("$gametime", 8, 2);
$hour = substr("$gametime", 11, 2);
$minute = substr("$gametime", 14, 2);
$second = substr("$gametime", 17, 2);
$gametime = $year . $month . $day . $hour . $minute . $second;
return ($gametime);
}
function btcaptime($time) {
if (empty($time)) {
return;
}
if ($time < 0) {
return "-:--";
}
$minutes = intval($time / 60);
$seconds = intval($time % 60);
$hundreds = substr($time, -2, 2);
if (substr($hundreds, 0, 1) == '.') {
$hundreds = substr($hundreds, 1, 1) . 0;
}
if ((substr($hundreds, 1, 1) == '.') or (!preg_match("/\./", $time))) {
$hundreds = "00";
}
if ($seconds < 10) {
$seconds = "0" . $seconds;
}
return $minutes . ":" . $seconds . ":" . $hundreds;
}
// UT Server Query Functions
function GetItemInfo ($itemname, $itemchunks) {
$retval = "N/A";
for ($i = 0; $i < count($itemchunks); $i++) {
//Found this item
if (strcasecmp($itemchunks[$i], $itemname) == 0) {
$retval = $itemchunks[$i+1];
}
}
return $retval;
}
function GetMinutes($seconds) {
$timemins = intval($seconds / 60);
$timesecs = ($seconds % 60);
$Reqlength = 2; //Amount of digits we need
if ($Reqlength-strlen($timemins) > 0) $timemins = str_repeat("0",($Reqlength-strlen($timemins))) . $timemins;
if ($Reqlength-strlen($timesecs) > 0) $timesecs = str_repeat("0",($Reqlength-strlen($timesecs))) . $timesecs;
return $timemins . ":" . $timesecs;
}
function FlagImage($country, $mini = true) {
global $a_countries;
$width = ($mini) ? 20 : 20;
$height = ($mini) ? 14 : 14;
if (empty($country)) return('');
if (!file_exists("assets/images/flags/$country.png")) return(''); //18*12
$countryname = (isset($a_countries[$country])) ? $a_countries[$country] : '';
return('');
}
function RankMovement($diff) {
$diff = round($diff, 2);
if ($diff == 0) {
$chimg = 'same';
$chtext = "ranking not affected";
}
if ($diff > 0) {
$chimg = 'up';
$chtext = "gained ". get_dp($diff) ." ranking points";
}
if ($diff < 0) {
$chimg = 'down';
$chtext = "lost ". get_dp($diff * -1) ." ranking points";
}
$moveimg = '';
if (file_exists("assets/images/ranks/$chimg.png")) {
$infos = getimagesize("assets/images/ranks/$chimg.png");
$width = $infos[0];
$height = $infos[1];
$moveimg = '
';
}
return($moveimg);
}
function ordinal($number) {
// when fed a number, adds the English ordinal suffix. Works for any number, even negatives
if ($number % 100 > 10 && $number %100 < 14) {
$suffix = "th";
} else {
switch($number % 10) {
case 0:
$suffix = "th";
break;
case 1:
$suffix = "st";
break;
case 2:
$suffix = "nd";
break;
case 3:
$suffix = "rd";
break;
default:
$suffix = "th";
break;
}
}
return $suffix;
}
function RankImageOrText($pid, $name, $rank, $gid, $gamename, $mini = true, $format = NULL, $rankchange = NULL) {
$points = 0;
if (empty($rank)) {
$r_rank = small_query("SELECT rank FROM uts_rank WHERE pid = '$pid' AND gid= '$gid';");
if (!$r_rank) return('');
$points = get_dp($r_rank['rank']);
$r_no = small_query("SELECT (COUNT(*) + 1) AS no FROM uts_rank WHERE gid = '$gid' and rank > ${points}9");
$rank = $r_no['no'];
}
$img = '';
$ranktext = $rank.ordinal($rank);
if (file_exists("assets/images/ranks/$rank.png")) {
$img = '
';
}
$moveimg = '';
if ($rankchange !== null) {
$moveimg = ' '. RankMovement($rankchange);
}
if (empty($format)) {
if ($img) {
return($img.$moveimg);
} else {
return('('.$ranktext.$moveimg.')');
}
}
$imageortext = ($img) ? $img : $ranktext;
$search = array('%RT%', '%RN%', '%RP%', '%RI%', '%GN%', '%PN%', '%IT%');
$replace = array($ranktext, $rank, $points, $img, $gamename, $name, $imageortext);
return(str_replace($search, $replace, $format));
}
function FormatPlayerName($country, $pid, $name, $gid = NULL, $gamename = NULL, $mini = true, $rankchange = NULL) {
static $cache = array();
if (isset($cache[$pid])) return($cache[$pid]);
$ranktext = false;
if (!empty($gamename) and $pid !== NULL) {
$ranktext = RankImageOrText($pid, $name, 0, $gid, $gamename, $mini, NULL, $rankchange);
}
$ret = '';
if (!empty($country)) $ret .= FlagImage($country, $mini) ." ";
$ret .= htmlentities($name);
if ($ranktext) $ret .= " " . $ranktext;
$cache[$pid] = $ret;
return($ret);
}
function QuoteHintText($text) {
$search = array('\\', '\'', '(', ')');
$replace = array('\\\\', '\\\'', '\\(', '\\)');
return(str_replace($search, $replace, $text));
}
function OverlibPrintHint($name, $text = NULL, $caption = NULL) {
include(dirname(__FILE__) .'/hints.php');
if (!isset($hint[$name]) and empty($text)) return('');
if ($text === NULL) $text = $hint[$name]['text'];
if ($caption === NULL and isset($hint[$name]['caption'])) $caption = $hint[$name]['caption'];
$rv = 'onmouseover="return overlib(\''. QuoteHintText($text) .'\'';
if ($caption !== NULL) $rv .= ', CAPTION, \''. QuoteHintText($caption) .'\'';
$rv .= ');" ';
$rv .= 'onmouseout="return nd();"';
return($rv);
}
function debug_output($desc, $data) {
echo '
'; echo $desc .": "; $len = strlen($data); for ($i = 0; $i < $len; $i++) { echo substr($data, $i, 1) .' '; } echo "\n"; echo str_repeat(' ', (strlen($desc) + 2)); for ($i = 0; $i < $len; $i++) { echo ord(substr($data, $i, 1)) .' '; } echo "
'; echo "Debugging Output:\n"; if ($html) echo ' |
---|
'; echo $message . "\n"; if ($html) echo ' |