0) { $t = " "; while ($t != "\n") { if(fseek($handle, $pos, SEEK_END) == -1) { $beginning = true; break; } $t = fgetc($handle); $pos --; } $linecounter --; if ($beginning) { rewind($handle); } $text[$lines-$linecounter-1] = fgets($handle); if ($beginning) break; } fclose ($handle); return array_reverse($text); } function formatChartData($lines) { $chartdata = array(); foreach($lines as $line) { $s = explode(" ", $line); if(count($s) >= 2) { array_push($chartdata, array("x" => 1000 * (int)$s[0], "y" => (int)trim($s[1]))); } } return $chartdata; } function formatWorldChartData($lines) { $cda = array(); $cdb = array(); foreach($lines as $line) { $s = explode(" ", $line); if(count($s) >= 3) { array_push($cda, array("x" => 1000 * (int)$s[0], "y" => (int)trim($s[1]))); array_push($cdb, array("x" => 1000 * (int)$s[0], "y" => (int)trim($s[2]))); } } return array("a" => $cda, "b" => $cdb); } function render() { $zonecount = array(); $playercount = 0; $tradercount = 0; $telnet = new telnet; $telnet->show_connect_error = 0; if ($telnet->connect()) { $players = $telnet->whoall(); //print_r($players); foreach($players as $player) { if($player['Anon'] != "") { //print("Skipping anon player ${player['Name']}\n"); continue; } $playercount++; if($player['Trader'] != "") $tradercount++; if(!array_key_exists($player['Zone'], $zonecount)) $zonecount[$player['Zone']] = 1; else $zonecount[$player['Zone']]++; //print_r($player); } } global $zonedata; //print_r($zonedata); $jsvars = ""; print("
\n"); if($tradercount >0 ) print("

There are ${playercount} players online including ${tradercount} traders.

\n"); else print("

There are ${playercount} players online.

\n"); print("
\n"); global $ts; appendData("world", "${ts} ${playercount} ${tradercount}"); print("
\n"); print("
\n"); $wd = formatWorldChartData(loadChartData("world", 360)); $wdjson = json_encode($wd); $jsvars .= "var chartdata_world = ${wdjson};\n"; //print("\n"); for($expansion = 0; $expansion <= 4; $expansion++) { $exp_names = array('EverQuest', 'The Ruins of Kunark', 'The Scars of Velious', 'The Shadows of Luclin', 'The Planes of Power'); print("
\n"); print("

${exp_names[$expansion]}

\n"); $expansion_zones = array_filter($zonedata, function ($z) use($expansion) { return $z['expansion'] == $expansion; }); usort($expansion_zones, function ($z1, $z2) { $a = $z1['zone_id']; $b = $z2['zone_id']; return $a == $b ? 0 : ($a < $b ? -1 : 1); }); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); foreach($expansion_zones as $zone) { if(!array_key_exists($zone['shortname'], $zonecount)) { //$zonecount[$zone['shortname']] = 0; appendData($zone['shortname'], "${ts} 0"); continue; } appendData($zone['shortname'], "${ts} ${zonecount[$zone['shortname']]}"); $cd = formatChartData(loadChartData($zone['shortname'])); $cdjson = json_encode($cd); print("\n"); print("\n"); print("\n"); print("\n"); print("\n"); //print("\n"); $jsvars .= "var chartdata_${zone['shortname']} = ${cdjson};\n"; print("\n"); } print("\n"); print("
${zone['longname']}${zone['shortname']}${zonecount[$zone['shortname']]}
\n"); print("
\n"); } print("\n"); print("\n"); } ?> TAKP Zone Population

TAKP Zone Population