90, 'green' => 90, 'blue' => 90); if ((isset($_GET['bgcolor'])) && (is_string($_GET['bgcolor']))) $bg_color = hex2rgb(valid_request($_GET['bgcolor'], 0)); $color = array('red' => 213, 'green' => 217, 'blue' => 221); if ((isset($_GET['color'])) && (is_string($_GET['color']))) $color = hex2rgb(valid_request($_GET['color'], 0)); if (isset($_GET['player'])) $player = (int)$_GET['player']; if (!$player) exit(); $res = $db->query("SELECT UNIX_TIMESTAMP(eventTime) AS ts, skill, skill_change FROM hlstats_Players_History WHERE playerId = '$player' ORDER BY eventTime DESC LIMIT 30"); $skill = array(); $skill_change = array(); $date = array(); $rowcnt = $db->num_rows(); $last_time = 0; for ($i = 1; $i <= $rowcnt; $i++) { $row = $db->fetch_array($res); array_unshift($skill, ($row['skill']==0)?0:($row['skill']/1000)); array_unshift($skill_change, $row['skill_change']); if ($i == 1 || $i == round($rowcnt/2) || $i == $rowcnt) { array_unshift($date, date("M-j", $row['ts'])); $last_time = $row['ts']; } else { array_unshift($date, ''); } } $cache_image = IMAGE_PATH . "/progress/trend_{$player}_{$last_time}.png"; if (file_exists($cache_image)) { header('Content-type: image/png'); readfile($cache_image); exit(); } $Chart = new pChart(400, 200); $Chart->drawBackground($bg_color['red'], $bg_color['green'], $bg_color['blue']); $Chart->setGraphArea(40, 28, 339, 174); $Chart->drawGraphAreaGradient(40, 40, 40, -50); if (count($date) < 2) { $Chart->setFontProperties(IMAGE_PATH . '/sig/font/DejaVuSans.ttf', 11); $Chart->drawTextBox(100, 90, 180, 110, "Not Enough Session Data", 0, 0, 0, 0, ALIGN_LEFT, FALSE, 255, 255, 255, 0); } else { $DataSet = new pData; $DataSet->AddPoint($skill, 'SerieSkill'); $DataSet->AddPoint($skill_change, 'SerieSession'); $DataSet->AddPoint($date, 'SerieDate'); $DataSet->AddSerie('SerieSkill'); $DataSet->SetAbsciseLabelSerie('SerieDate'); $DataSet->SetSerieName('Skill', 'SerieSkill'); $DataSet->SetSerieName('Session', 'SerieSession'); $Chart->setFontProperties(IMAGE_PATH . '/sig/font/DejaVuSans.ttf', 7); $DataSet->SetYAxisName('Skill'); $DataSet->SetYAxisUnit('K'); $Chart->setColorPalette(0, 255, 255, 0); $Chart->drawRightScale($DataSet->GetData(), $DataSet->GetDataDescription(), SCALE_NORMAL, $color['red'], $color['green'], $color['blue'], TRUE, 0, 0); $Chart->drawGrid(1, FALSE, 55, 55, 55, 100); $Chart->setShadowProperties(3, 3, 0, 0, 0, 30, 4); $Chart->drawCubicCurve($DataSet->GetData(), $DataSet->GetDataDescription()); $Chart->clearShadow(); $Chart->drawFilledCubicCurve($DataSet->GetData(), $DataSet->GetDataDescription(), .1, 30); $Chart->drawPlotGraph($DataSet->GetData(), $DataSet->GetDataDescription(), 1, 1, 255, 255, 255); $Chart->clearScale(); $DataSet->RemoveSerie('SerieSkill'); $DataSet->AddSerie('SerieSession'); $DataSet->SetYAxisName('Session'); $DataSet->SetYAxisUnit(''); $Chart->setColorPalette(1, 255, 0, 0); $Chart->setColorPalette(2, 0, 0, 255); $Chart->drawScale($DataSet->GetData(), $DataSet->GetDataDescription(), SCALE_NORMAL, $color['red'], $color['green'], $color['blue'], TRUE, 0, 0); $Chart->setShadowProperties(3, 3, 0, 0, 0, 30, 4); $Chart->drawCubicCurve($DataSet->GetData(), $DataSet->GetDataDescription()); $Chart->clearShadow(); $Chart->drawPlotGraph($DataSet->GetData(), $DataSet->GetDataDescription(), 1, 1, 255, 255, 255); $Chart->setFontProperties(IMAGE_PATH . '/sig/font/DejaVuSans.ttf',7); $Chart->drawHorizontalLegend(235, -1, $DataSet->GetDataDescription(), 0, 0, 0, 0, 0, 0, $color['red'], $color['green'], $color['blue'], FALSE); } $cache_image = IMAGE_PATH . "/progress/trend_{$player}_{$last_time}.png"; $Chart->Render($cache_image); header("Location: $cache_image"); ?>