Unsupported PHP app for analysing and displaying stats for Team Fortress 2
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?PHP
  2. require_once('inc/config.php');
  3. require_once('inc/ext.php');
  4. require_once('inc/classestable.php');
  5. require_once('inc/playertable.php');
  6. require_once('inc/weaponslist.php');
  7. require_once(STATS_DIR . '/inc/database.php');
  8. $sql = 'SELECT map_id FROM maps WHERE map_name = \'' . s($_GET['map']) . '\'';
  9. $res = mysql_query($sql);
  10. if (mysql_num_rows($res) == 0) {
  11. require('404.php');
  12. exit;
  13. }
  14. define('MAP', (int) mysql_result($res, 0));
  15. define('TITLE', 'Map information :: ' . htmlentities($_GET['map']));
  16. require_once('inc/header.php');
  17. echo '<h2>Map Information: ', htmlentities($_GET['map']), '</h2>';
  18. echo '<div class="left"><h3>Map Preview</h3>';
  19. echo '<div class="map large">';
  20. echo '<img src="', sprintf(URL_MAP, 'large', $_GET['map']), '" ';
  21. echo 'alt="Image of ', htmlentities($_GET['map']), '" class="map large">';
  22. echo htmlentities($_GET['map']) . '</div>';
  23. echo '<h3 class="extra">Map Statistics</h3>';
  24. $sql = 'SELECT COUNT(*) AS num, AVG(TIMESTAMPDIFF(MINUTE, game_starttime, game_endtime)) AS time FROM games WHERE map_id = ' . MAP;
  25. $sql .= ' GROUP BY map_id';
  26. $res = mysql_query($sql) or print(mysql_error());
  27. $row = mysql_fetch_assoc($res);
  28. $num = $row['num']; $time = $row['time'];
  29. echo '<ul class="stats">';
  30. echo '<li>Played <em>', $num, '</em> time', ($num != 1 ? 's' : ''), '.</li>';
  31. echo '<li>Average map length: <em>', round($time,0), '</em> mins.</li>';
  32. echo '</ul>';
  33. echo '<h3>Top Weapons</h3>';
  34. showWeaponsList('INNER JOIN roleperiods ON roleperiod_id = kill_killer NATURAL JOIN sessions NATURAL JOIN games WHERE map_id = ' . MAP);
  35. show_extra_map_info($_GET['map']);
  36. echo '</div>';
  37. echo '<div class="right"><h3>Top Players</h3>';
  38. showPlayerTable('NATURAL JOIN games NATURAL JOIN maps', 'map_id = ' . MAP, 10);
  39. if (ENABLE_DEATHMAPS && file_exists('deathmap.php') && file_exists('inc/deathmap.php')) {
  40. require('inc/deathmap.php');
  41. if (isset($coords[$_GET['map']])) {
  42. echo '<h3>Death Map</h3>';
  43. echo '<div class="deathmap">';
  44. echo ' <img src="deathmap.php', sprintf(DM_ARGS, htmlentities($_GET['map'])), '" alt="Death map">';
  45. echo '</div>';
  46. }
  47. }
  48. echo '<h3>Class Performance</h3>';
  49. $classes = array();
  50. $sql = 'SELECT class_id, class_name, COUNT(*) as num FROM classes NATURAL JOIN roleperiods NATURAL JOIN sessions NATURAL JOIN games WHERE map_id = ' . MAP . ' GROUP BY class_id ORDER BY class_name';
  51. $res = mysql_query($sql) or print(mysql_error());
  52. while ($row = mysql_fetch_assoc($res)) {
  53. $classes[$row['class_id']] = array(
  54. 'name' => $row['class_name'],
  55. 'data1' => $row['num']
  56. );
  57. }
  58. $sql = 'SELECT class_id, COUNT(*) AS num FROM roleperiods NATURAL JOIN classes NATURAL JOIN sessions NATURAL JOIN games INNER JOIN kills ON kill_killer = roleperiod_id WHERE map_id = ' . MAP . ' GROUP BY class_id';
  59. $res = mysql_query($sql) or print(mysql_error());
  60. while ($row = mysql_fetch_assoc($res)) {
  61. $classes[$row['class_id']]['data2'] = $row['num'];
  62. }
  63. showClassesTable($classes, 'Times played', 'Kills made');
  64. echo '</div>';
  65. require_once('inc/footer.php');
  66. ?>