mirror of
https://github.com/Xkeeper0/jul.git
synced 2025-08-01 12:41:59 -07:00
First (re-)commit
This commit is contained in:
7
ext/ajaxen.php
Normal file
7
ext/ajaxen.php
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
header("content-type: text/plain");
|
||||
|
||||
// @Xkeeper: ignore this file entirely.
|
||||
if (!IS_AJAX_REQUEST) {
|
||||
die("Dude, no. Seriously.");
|
||||
}
|
12
ext/hydra.php
Normal file
12
ext/hydra.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
header("Content-type: text/plain");
|
||||
$userid = intval($_GET['u']);
|
||||
|
||||
if (!$userid) die("No userid specified.");
|
||||
chdir("..");
|
||||
require 'lib/function.php';
|
||||
|
||||
print $sql -> resultq("SELECT `posts` FROM `users` WHERE `id` = '$userid'");
|
||||
|
||||
|
9
ext/mmdoom.php
Normal file
9
ext/mmdoom.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
$x_hacks['mmdeath'] = (1277820000 + 3600) - time();
|
||||
if (!$getdoom) {
|
||||
$x_hacks['mmdeath'] = max(0, $x_hacks['mmdeath']);
|
||||
print $x_hacks['mmdeath'];
|
||||
exit;
|
||||
}
|
||||
|
43
ext/ninesitter.php
Normal file
43
ext/ninesitter.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
chdir("../");
|
||||
// require 'lib/config.php';
|
||||
require 'lib/function.php';
|
||||
// require 'lib/config.php';
|
||||
header("Content-type: text/plain");
|
||||
|
||||
@mysql_connect($sqlhost, $sqluser, $sqlpass) or
|
||||
die('Database error.');
|
||||
@mysql_select_db($dbname) or
|
||||
die('Database error.');
|
||||
|
||||
$threads = explode(",", $_GET['data']);
|
||||
$ta = array();
|
||||
foreach($threads as $thread) {
|
||||
$thread = intval($thread);
|
||||
if ($thread && count($ta) < 5) $ta[] = $thread;
|
||||
else die("Error!!");
|
||||
}
|
||||
|
||||
$out = null;
|
||||
|
||||
if ($ta) {
|
||||
|
||||
$query = "SELECT `id`, `forum`, `title` FROM `threads` WHERE `id` IN (". implode(", ", $ta) .")";
|
||||
$sql = mysql_query($query);
|
||||
while ($thread = mysql_fetch_array($sql, MYSQL_ASSOC)) {
|
||||
$minpower = mysql_result(mysql_query("SELECT `minpower` FROM `forums` WHERE `id` = '". $thread['forum'] ."'"), 0);
|
||||
if ($minpower <= 0) {
|
||||
|
||||
$dat = mysql_query("SELECT `p`.`id`, `p`.`date`, `u`.`name` FROM `posts` `p` LEFT JOIN `users` `u` ON `u`.`id` = `p`.`user` WHERE `p`.`thread` = '". $thread['id'] ."' ORDER BY `p`.`date` DESC LIMIT 5") or print mysql_error();
|
||||
|
||||
while($info = mysql_fetch_array($dat, MYSQL_ASSOC)) {
|
||||
$out .= "$info[id]|$thread[id]|$info[name]|$thread[title]|". date("m-d-y H:i:s", $info['date']) ."\r\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
} else die("Error!!");
|
||||
|
||||
print "OK\r\n$out";
|
||||
|
||||
?>
|
81
ext/rendertime.php
Normal file
81
ext/rendertime.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
chdir("../");
|
||||
require "lib/function.php";
|
||||
|
||||
set_time_limit(0);
|
||||
ini_set("memory_limit", "256M");
|
||||
|
||||
$mintime = ctime() - (($_GET['d'] ? min($_GET['d'], 14) : 7) * 24 * 3600);
|
||||
// $rangemin = floor($sql -> resultq("SELECT MIN(`time` / 3600) FROM `rendertimes`"));
|
||||
$rangemin = floor($sql -> resultq("SELECT MIN(`time` / 3600) FROM `rendertimes` WHERE `time` > $mintime"));
|
||||
$num = ceil(ctime() / 3600) - $rangemin;
|
||||
|
||||
$image = imagecreatetruecolor(1100, $num * 10);
|
||||
$col['bg'] = imagecolorallocate($image, 0, 0, 0);
|
||||
$col['text'] = imagecolorallocate($image, 255, 255, 255);
|
||||
$col['bar1'] = imagecolorallocatealpha($image, 128, 128, 128, 30);
|
||||
$col['bar2'] = imagecolorallocatealpha($image, 255, 255, 255, 30);
|
||||
$col['bar3'] = imagecolorallocatealpha($image, 170, 100, 100, 30);
|
||||
$col['sca1'] = imagecolorallocate($image, 55, 55, 75);
|
||||
$col['sca2'] = imagecolorallocate($image, 80, 80, 125);
|
||||
// $col['bg1'] = imagecolorallocate($image, 10, 10, 30);
|
||||
// $col['bg2'] = imagecolorallocate($image, 15, 15, 35);
|
||||
|
||||
|
||||
for ($i = 0; $i <= 40; $i++) {
|
||||
$mx = $i * 25;
|
||||
$c1 = (!($i % 4) ? 2 : 1);
|
||||
$c2 = (!($i % 2) ? 2 : 1);
|
||||
$col['sca1'] = imagecolorallocate($image, 55 + $i * 2, 55, 75);
|
||||
$col['sca2'] = imagecolorallocate($image, 80 + $i * 2, 80, 125);
|
||||
$col['bg1'] = imagecolorallocate($image, 10 + $i * 2, 10, 30);
|
||||
$col['bg2'] = imagecolorallocate($image, 15 + $i * 2, 15, 35);
|
||||
imagefilledrectangle($image, 76 + $mx, 0, 100 + $mx, $num * 10, $col['bg'. $c2]);
|
||||
imageline ($image, 100 + $mx, 0, 100 + $mx, $num * 10, $col['sca'. $c1]);
|
||||
}
|
||||
|
||||
|
||||
$data = $sql -> query("SELECT FLOOR(`time` / 3600) AS time, ".
|
||||
"COUNT( `rendertime` ) AS readings, ".
|
||||
"ROUND(AVG( `rendertime` ), 4) AS average, ".
|
||||
"ROUND(MIN( `rendertime` ), 4) AS minimum, ".
|
||||
"ROUND(MAX( `rendertime` ), 4) AS maximum ".
|
||||
"FROM `rendertimes` ".
|
||||
"WHERE `page` = '/index.php' ".
|
||||
"AND `time` > $mintime ".
|
||||
"GROUP BY FLOOR(`time` / 3600)") or die(mysql_error());
|
||||
|
||||
while ($rt = $sql -> fetch($data)) {
|
||||
$y = ($rt['time'] - $rangemin) * 10;
|
||||
$date = date("m.d ha", $rt['time'] * 3600);
|
||||
imagestring($image, 2, 2, $y - 2, $date ." ". str_pad($rt['readings'], 4, " ", STR_PAD_LEFT), $col['text']);
|
||||
$datenew = substr($date, 3, 2);
|
||||
if ($dateold != $datenew) {
|
||||
imageline ($image, 0, $y, 1100, $y, $col['sca2']);
|
||||
}
|
||||
$dateold = $datenew;
|
||||
|
||||
$bmin = $rt['minimum'] * 100;
|
||||
$bmax = $rt['maximum'] * 100;
|
||||
$bavg = $rt['average'] * 100;
|
||||
$c1 = ($bmax >= 1000 ? 3 : 1);
|
||||
|
||||
imagefilledrectangle($image, 100 + $bmin, $y, 100 + $bmax, $y + 8, $col['bar'. $c1]);
|
||||
imageline ($image, 100 + $bavg, $y, 100 + $bavg, $y + 8, $col['bar2']);
|
||||
|
||||
$tx = min($bmax - 39, 961);
|
||||
if ($tx <= 33) $tx = $bmax;
|
||||
|
||||
imagestring($image, 1, $tx + 102, $y + 1, str_pad(number_format($rt['maximum'], 3), 7, " ", STR_PAD_LEFT), $col['bg']);
|
||||
imagestring($image, 1, $tx + 103, $y , str_pad(number_format($rt['maximum'], 3), 7, " ", STR_PAD_LEFT), $col['bg']);
|
||||
imagestring($image, 1, $tx + 103, $y + 1, str_pad(number_format($rt['maximum'], 3), 7, " ", STR_PAD_LEFT), $col['bg']);
|
||||
imagestring($image, 1, $tx + 102, $y, str_pad(number_format($rt['maximum'], 3), 7, " ", STR_PAD_LEFT), $col['text']);
|
||||
|
||||
}
|
||||
|
||||
header("Content-type: image/png");
|
||||
imagepng($image);
|
||||
imagedestroy($image);
|
||||
|
||||
?>
|
179
ext/rendertime2.php
Normal file
179
ext/rendertime2.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
chdir("../");
|
||||
require "lib/function.php";
|
||||
|
||||
set_time_limit(0);
|
||||
ini_set("memory_limit", "256M");
|
||||
|
||||
$mintime = ctime() - (86400 * 14);
|
||||
|
||||
$rangemin = floor($sql -> resultq("SELECT MIN(`time` / 3600) FROM `rendertimes`". ($_GET['all'] ? "" : "WHERE `time` > $mintime ")));
|
||||
$num = ceil(ctime() / 3600) - $rangemin;
|
||||
|
||||
$maxy = 500;
|
||||
$scaley = $maxy / 10;
|
||||
$scalex = 3;
|
||||
$image = imagecreatetruecolor($num * $scalex, $maxy);
|
||||
$col['bg'] = imagecolorallocate ($image, 0, 0, 0);
|
||||
$col['bg1'] = imagecolorallocate ($image, 30, 0, 30);
|
||||
$col['bg2'] = imagecolorallocate ($image, 50, 0, 50);
|
||||
$col['bg3'] = imagecolorallocatealpha ($image, 150, 0, 150, 90);
|
||||
$col['line'] = imagecolorallocate ($image, 255, 200, 50);
|
||||
$col['line2'] = imagecolorallocate ($image, 255, 100, 25);
|
||||
$col['line2f'] = imagecolorallocate ($image, 200, 0, 0);
|
||||
$col['line3'] = imagecolorallocatealpha ($image, 255, 100, 25, 100);
|
||||
$col['avgt'] = imagecolorallocate ($image, 255, 200, 100);
|
||||
$col['avgf'] = imagecolorallocatealpha ($image, 255, 50, 50, 90);
|
||||
$col['avgt2'] = imagecolorallocatealpha ($image, 255, 200, 100, 110);
|
||||
$col['avgf2'] = imagecolorallocatealpha ($image, 255, 50, 50, 110);
|
||||
$col['text'] = imagecolorallocate ($image, 255, 255, 255);
|
||||
$col['text2'] = imagecolorallocatealpha ($image, 255, 255, 255, 90);
|
||||
|
||||
$alldata = $sql -> query("SELECT FLOOR(`time` / 3600) AS time, ".
|
||||
"AVG( `rendertime` ) AS average, ".
|
||||
"MAX( `rendertime` ) AS max ".
|
||||
"FROM `rendertimes` ".
|
||||
"WHERE `page` = '/index.php' ".
|
||||
($_GET['all'] ? "" : "AND `time` > $mintime ").
|
||||
"GROUP BY FLOOR(`time` / 3600)") or die(mysql_error());
|
||||
|
||||
$d = floor($rangemin / 24) * 24 - 16;
|
||||
for ($i = $d; $i <= ($rangemin + $num); $i+=24) {
|
||||
$x = $i - $rangemin;
|
||||
if (floor($i / 24) % 2) {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 24) * $scalex - 1, 0, $col['bg2']);
|
||||
} else {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 24) * $scalex - 1, 0, $col['bg1']);
|
||||
}
|
||||
imageline($image, $x * $scalex, $maxy, $x * $scalex, 0, $col['bg3']);
|
||||
imagestring($image, 2, $x * $scalex + 10, 3, date("m/d", $i * 3600), $col['text2']);
|
||||
}
|
||||
// imagestring($image, 5, 5, 5, ($maxy / $scaley) ."sec", $col['text']);
|
||||
|
||||
for ($i = 0; $i <= ($maxy / $scaley); $i++) {
|
||||
imagestring($image, 2, 3, $i * $scaley - 13, (($maxy / $scaley) - $i) ."s", $col['text2']);
|
||||
imageline($image, 0, $i * $scaley, $num * $scalex, $i * $scaley, $col['bg3']);
|
||||
}
|
||||
|
||||
|
||||
while ($data = $sql -> fetch($alldata)) {
|
||||
|
||||
$x = $data['time'] - $rangemin;
|
||||
$linedata[$x]['a'] = $data['average'];
|
||||
$linedata[$x]['m'] = $data['max'];
|
||||
}
|
||||
|
||||
|
||||
$averages[] = 0;
|
||||
$averages[] = $maxy;
|
||||
$averages2 = $averages;
|
||||
|
||||
$avglen = 24;
|
||||
for ($i = -1; $i <= $num; $i++) {
|
||||
|
||||
$oldavg = $avgpos;
|
||||
$oldavg2 = $avgpos2;
|
||||
$avgtotal = 0;
|
||||
$avgtotal2 = 0;
|
||||
$div = 0;
|
||||
$avgofs = $avglen;
|
||||
|
||||
|
||||
for ($avgpos = -$avgofs; $avgpos <= $avgofs; ++$avgpos) {
|
||||
$sinc = sinc($avgpos/$avgofs);
|
||||
$thisavg = $linedata[$i + $avgpos]['a'];
|
||||
$thisavg2 = $linedata[$i + $avgpos]['m'];
|
||||
if (($i + $avgpos) <= $num && ($i + $avgpos) >= 0) {
|
||||
$avgtotal += $thisavg * $sinc;
|
||||
$avgtotal2 += $thisavg2 * $sinc;
|
||||
$div += $sinc;
|
||||
}
|
||||
}
|
||||
|
||||
$avgpos = $avgtotal / $div;
|
||||
$yposavg = $maxy - ($avgpos * $scaley);
|
||||
$avgpos2 = $avgtotal2 / $div;
|
||||
$yposavg2 = $maxy - ($avgpos2 * $scaley);
|
||||
$xpos = $i * $scalex;
|
||||
|
||||
$averages[] = $xpos;
|
||||
$averages[] = round($yposavg);
|
||||
|
||||
if ($overtop && $yposavg2 < 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
$averages2f[] = round($yposavg2) + $maxy;
|
||||
$averages2f[] = $xpos;
|
||||
|
||||
} elseif (!$overtop && $yposavg2 < 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
$averages2f[] = round($yposavg2) + $maxy;
|
||||
$averages2f[] = $xpos;
|
||||
$averages2f[] = $maxy;
|
||||
$averages2f[] = $xpos - $scalex;
|
||||
$overtop = true;
|
||||
|
||||
} elseif ($overtop && $yposavg2 >= 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
$averages2f[] = $maxy;
|
||||
$averages2f[] = $xpos + $scalex;
|
||||
$overtop = false;
|
||||
|
||||
} elseif (!$overtop && $yposavg2 >= 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
}
|
||||
}
|
||||
|
||||
$averages[] = $num * $scalex;
|
||||
$averages[] = $maxy;
|
||||
$averages2[]= $num * $scalex;
|
||||
$averages2[]= $maxy;
|
||||
if ($averages2f) {
|
||||
$averages2f = array_reverse($averages2f);
|
||||
$averages2 = array_merge($averages2, $averages2f);
|
||||
}
|
||||
|
||||
imagefilledpolygon($image, $averages2, (count($averages2) / 2), $col['avgf2']);
|
||||
imagepolygon($image, $averages2, (count($averages2) / 2), $col['avgt2']);
|
||||
|
||||
|
||||
foreach ($linedata as $x => $nums) {
|
||||
|
||||
$y = $maxy - ($nums['a'] * $scaley);
|
||||
$y2 = $maxy - ($nums['m'] * $scaley);
|
||||
|
||||
// imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 1, $y2, $col['line3']);
|
||||
|
||||
if ($y < 0) {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 2, $y, $col['line2']);
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 2, $y + $maxy, $col['line2f']);
|
||||
imagestring($image, 1, $x * $scalex - 41, 3, number_format($nums['a'], 2) ."sec", $col['line2']);
|
||||
} else {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 2, $y, $col['line']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
imagefilledpolygon($image, $averages, (count($averages) / 2), $col['avgf']);
|
||||
imagepolygon($image, $averages, (count($averages) / 2), $col['avgt']);
|
||||
|
||||
|
||||
|
||||
header("Content-type: image/png");
|
||||
imagepng($image);
|
||||
imagedestroy($image);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function sinc($x) {
|
||||
$ret = ($x ? sin($x*pi())/($x*pi()) : 1);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
?>
|
179
ext/rendertime3.php
Normal file
179
ext/rendertime3.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
chdir("../");
|
||||
require "lib/function.php";
|
||||
|
||||
set_time_limit(0);
|
||||
ini_set("memory_limit", "256M");
|
||||
|
||||
$mintime = ctime() - (86400 * 30);
|
||||
|
||||
$rangemin = floor($sql -> resultq("SELECT MIN(`time` / 3600) FROM `rendertimes`". ($_GET['all'] ? "" : "WHERE `time` > $mintime ")));
|
||||
$num = ceil(ctime() / 3600) - $rangemin;
|
||||
|
||||
$maxy = 500;
|
||||
$scaley = $maxy / 25;
|
||||
$scalex = 3;
|
||||
$image = imagecreatetruecolor($num * $scalex, $maxy);
|
||||
$col['bg'] = imagecolorallocate ($image, 0, 0, 0);
|
||||
$col['bg1'] = imagecolorallocate ($image, 30, 0, 30);
|
||||
$col['bg2'] = imagecolorallocate ($image, 50, 0, 50);
|
||||
$col['bg3'] = imagecolorallocatealpha ($image, 150, 0, 150, 90);
|
||||
$col['line'] = imagecolorallocate ($image, 255, 200, 50);
|
||||
$col['line2'] = imagecolorallocate ($image, 255, 100, 25);
|
||||
$col['line2f'] = imagecolorallocate ($image, 200, 0, 0);
|
||||
$col['line3'] = imagecolorallocatealpha ($image, 255, 100, 25, 100);
|
||||
$col['avgt'] = imagecolorallocate ($image, 255, 200, 100);
|
||||
$col['avgf'] = imagecolorallocatealpha ($image, 255, 50, 50, 90);
|
||||
$col['avgt2'] = imagecolorallocatealpha ($image, 255, 200, 100, 110);
|
||||
$col['avgf2'] = imagecolorallocatealpha ($image, 255, 50, 50, 110);
|
||||
$col['text'] = imagecolorallocate ($image, 255, 255, 255);
|
||||
$col['text2'] = imagecolorallocatealpha ($image, 255, 255, 255, 90);
|
||||
|
||||
$alldata = $sql -> query("SELECT FLOOR(`time` / 3600) AS time, ".
|
||||
"AVG( `rendertime` ) AS average, ".
|
||||
"MAX( `rendertime` ) AS max ".
|
||||
"FROM `rendertimes` ".
|
||||
"WHERE `page` = '/index.php' ".
|
||||
($_GET['all'] ? "" : "AND `time` > $mintime ").
|
||||
"GROUP BY FLOOR(`time` / 3600)") or die(mysql_error());
|
||||
|
||||
$d = floor($rangemin / 24) * 24 - 16;
|
||||
for ($i = $d; $i <= ($rangemin + $num); $i+=24) {
|
||||
$x = $i - $rangemin;
|
||||
if (floor($i / 24) % 2) {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 24) * $scalex - 1, 0, $col['bg2']);
|
||||
} else {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 24) * $scalex - 1, 0, $col['bg1']);
|
||||
}
|
||||
imageline($image, $x * $scalex, $maxy, $x * $scalex, 0, $col['bg3']);
|
||||
imagestring($image, 2, $x * $scalex + 10, 3, date("m/d", $i * 3600), $col['text2']);
|
||||
}
|
||||
// imagestring($image, 5, 5, 5, ($maxy / $scaley) ."sec", $col['text']);
|
||||
|
||||
for ($i = 0; $i <= ($maxy / $scaley); $i++) {
|
||||
imagestring($image, 2, 3, $i * $scaley - 13, (($maxy / $scaley) - $i) ."s", $col['text2']);
|
||||
imageline($image, 0, $i * $scaley, $num * $scalex, $i * $scaley, $col['bg3']);
|
||||
}
|
||||
|
||||
|
||||
while ($data = $sql -> fetch($alldata)) {
|
||||
|
||||
$x = $data['time'] - $rangemin;
|
||||
$linedata[$x]['a'] = $data['average'];
|
||||
$linedata[$x]['m'] = $data['max'];
|
||||
}
|
||||
|
||||
|
||||
$averages[] = 0;
|
||||
$averages[] = $maxy;
|
||||
$averages2 = $averages;
|
||||
|
||||
$avglen = 12;
|
||||
for ($i = -1; $i <= $num; $i++) {
|
||||
|
||||
$oldavg = $avgpos;
|
||||
$oldavg2 = $avgpos2;
|
||||
$avgtotal = 0;
|
||||
$avgtotal2 = 0;
|
||||
$div = 0;
|
||||
$avgofs = $avglen;
|
||||
|
||||
|
||||
for ($avgpos = -$avgofs; $avgpos <= $avgofs; ++$avgpos) {
|
||||
$sinc = sinc($avgpos/$avgofs);
|
||||
$thisavg = $linedata[$i + $avgpos]['a'];
|
||||
$thisavg2 = $linedata[$i + $avgpos]['m'];
|
||||
if (($i + $avgpos) <= $num && ($i + $avgpos) >= 0) {
|
||||
$avgtotal += $thisavg * $sinc;
|
||||
$avgtotal2 += $thisavg2 * $sinc;
|
||||
$div += $sinc;
|
||||
}
|
||||
}
|
||||
|
||||
$avgpos = $avgtotal / $div;
|
||||
$yposavg = $maxy - ($avgpos * $scaley);
|
||||
$avgpos2 = $avgtotal2 / $div;
|
||||
$yposavg2 = $maxy - ($avgpos2 * $scaley);
|
||||
$xpos = $i * $scalex;
|
||||
|
||||
$averages[] = $xpos;
|
||||
$averages[] = round($yposavg);
|
||||
|
||||
if ($overtop && $yposavg2 < 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
$averages2f[] = round($yposavg2) + $maxy;
|
||||
$averages2f[] = $xpos;
|
||||
|
||||
} elseif (!$overtop && $yposavg2 < 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
$averages2f[] = round($yposavg2) + $maxy;
|
||||
$averages2f[] = $xpos;
|
||||
$averages2f[] = $maxy;
|
||||
$averages2f[] = $xpos - $scalex;
|
||||
$overtop = true;
|
||||
|
||||
} elseif ($overtop && $yposavg2 >= 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
$averages2f[] = $maxy;
|
||||
$averages2f[] = $xpos + $scalex;
|
||||
$overtop = false;
|
||||
|
||||
} elseif (!$overtop && $yposavg2 >= 0) {
|
||||
$averages2[] = $xpos;
|
||||
$averages2[] = round($yposavg2);
|
||||
}
|
||||
}
|
||||
|
||||
$averages[] = $num * $scalex;
|
||||
$averages[] = $maxy;
|
||||
$averages2[]= $num * $scalex;
|
||||
$averages2[]= $maxy;
|
||||
if ($averages2f) {
|
||||
$averages2f = array_reverse($averages2f);
|
||||
$averages2 = array_merge($averages2, $averages2f);
|
||||
}
|
||||
|
||||
imagefilledpolygon($image, $averages2, (count($averages2) / 2), $col['avgf2']);
|
||||
imagepolygon($image, $averages2, (count($averages2) / 2), $col['avgt2']);
|
||||
|
||||
|
||||
foreach ($linedata as $x => $nums) {
|
||||
|
||||
$y = $maxy - ($nums['a'] * $scaley);
|
||||
$y2 = $maxy - ($nums['m'] * $scaley);
|
||||
|
||||
// imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 1, $y2, $col['line3']);
|
||||
|
||||
if ($y < 0) {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 2, $y, $col['line2']);
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 2, $y + $maxy, $col['line2f']);
|
||||
imagestring($image, 1, $x * $scalex - 41, 3, number_format($nums['a'], 2) ."sec", $col['line2']);
|
||||
} else {
|
||||
imagefilledrectangle($image, $x * $scalex, $maxy, ($x + 1) * $scalex - 2, $y, $col['line']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
imagefilledpolygon($image, $averages, (count($averages) / 2), $col['avgf']);
|
||||
imagepolygon($image, $averages, (count($averages) / 2), $col['avgt']);
|
||||
|
||||
|
||||
|
||||
header("Content-type: image/png");
|
||||
imagepng($image);
|
||||
imagedestroy($image);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function sinc($x) {
|
||||
$ret = ($x ? sin($x*pi())/($x*pi()) : 1);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
?>
|
6
ext/rpgext.php
Normal file
6
ext/rpgext.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
require 'ajaxen.php';
|
||||
chdir("../");
|
||||
require 'lib/function.php';
|
||||
|
||||
print '{test: "test"}';
|
46
ext/rpgstats.php
Normal file
46
ext/rpgstats.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
chdir("../");
|
||||
require 'lib/function.php';
|
||||
require 'lib/rpg.php';
|
||||
|
||||
|
||||
if(!intval($u)) die("Missing ?u=<id> parameter");
|
||||
$user=mysql_fetch_array(mysql_query("SELECT name,posts,regdate,users_rpg.* FROM users,users_rpg WHERE id='$u' AND uid=id")) or die("User doesn't exist");
|
||||
$p=$user[posts];
|
||||
$d=(ctime()-$user[regdate])/86400;
|
||||
if(!$it) $it=0;
|
||||
if(!$ne) {
|
||||
$eqitems=mysql_query("SELECT * FROM items WHERE id=$user[eq1] OR id=$user[eq2] OR id=$user[eq3] OR id=$user[eq4] OR id=$user[eq5] OR id=$user[eq6] OR id=$it") or print mysql_error();
|
||||
while($item=mysql_fetch_array($eqitems)) $items[$item[id]]=$item;
|
||||
}
|
||||
if($ct){
|
||||
$GPdif=floor($items[$user['eq'.$ct]][coins]*0.6)-$items[$it][coins];
|
||||
$user['eq'.$ct]=$it;
|
||||
}
|
||||
|
||||
$st=getstats($user,$items,$class);
|
||||
$st[GP]+=$GPdif;
|
||||
if($st[lvl]>0) $pct=1-calcexpleft($st[exp])/totallvlexp($st[lvl]);
|
||||
|
||||
|
||||
|
||||
$st['tonext'] = calcexpleft($st['exp']);
|
||||
$st['GP2'] = $user['gcoins'];
|
||||
$st['id'] = $u;
|
||||
$st['name'] = $user['name'];
|
||||
|
||||
if (isset($_REQUEST['s'])) {
|
||||
if ($_REQUEST['s'] == "json") {
|
||||
header("Content-type: application/json;");
|
||||
print json_encode($st);
|
||||
|
||||
} else {
|
||||
header("Content-type: text/plain;");
|
||||
print serialize($st);
|
||||
}
|
||||
} else {
|
||||
header("Content-type: text/plain;");
|
||||
foreach ($st as $k => $v) {
|
||||
print "$k=$v\n";
|
||||
}
|
||||
}
|
60
ext/xstats.php
Normal file
60
ext/xstats.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
chdir("../");
|
||||
require "lib/function.php";
|
||||
|
||||
$img = imagecreate(45, 37);
|
||||
$bg = imagecolorallocate($img, 100, 100, 100);
|
||||
$num = imagecreatefrompng("digitstiny.png");
|
||||
|
||||
$xk = $sql -> fetchq("SELECT * FROM `users` WHERE `id` = '1'");
|
||||
$thread = $sql -> resultq("SELECT COUNT(`id`) FROM `threads` WHERE `user` = '1'");
|
||||
|
||||
$exp = calcexp($xk['posts'], (ctime() - $xk['regdate']) / 86400);
|
||||
$level = calclvl($exp);
|
||||
$expt = totallvlexp($level);
|
||||
$expl = $expt - calcexpleft($exp);
|
||||
|
||||
drawnum($img, $num, 0, 0 + ( 0 * 6), $thread , 9);
|
||||
drawnum($img, $num, 0, 0 + ( 1 * 6), $xk['posts'] , 9);
|
||||
drawnum($img, $num, 0, 1 + ( 2 * 6), $level , 9);
|
||||
drawnum($img, $num, 0, 1 + ( 3 * 6), $expl , 9);
|
||||
drawnum($img, $num, 0, 1 + ( 4 * 6), "/". $expt , 9);
|
||||
drawnum($img, $num, 0, 1 + ( 5 * 6), $exp , 9);
|
||||
|
||||
|
||||
|
||||
imagecolortransparent($img, $bg);
|
||||
header("Content-type: image/png");
|
||||
imagepng($img);
|
||||
imagedestroy($img);
|
||||
imagedestroy($num);
|
||||
|
||||
|
||||
function drawnum($img, $num, $x, $y, $n, $l = 0, $z = false, $dx = 5, $dy = 6) {
|
||||
|
||||
$p = 0;
|
||||
|
||||
if ($z) {
|
||||
$n = str_pad($n, $l, "0", STR_PAD_LEFT);
|
||||
}
|
||||
|
||||
if (strlen($n) > $l) $l = strlen($n);
|
||||
elseif (strlen($n) < $l) $p = $l - strlen($n);
|
||||
|
||||
$o = $p;
|
||||
|
||||
$na = str_split($n);
|
||||
foreach ($na as $digit) {
|
||||
$xd = intval($digit);
|
||||
if ($digit == "/") $xd = 10;
|
||||
if ($digit == " ") {
|
||||
$o++;
|
||||
continue;
|
||||
}
|
||||
|
||||
imagecopy($img, $num, $x + $o * $dx, $y, $xd * $dx, 0, $dx, $dy);
|
||||
$o++;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user