PageRenderTime 39ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/html/includes/teamstats.php

https://github.com/graywh/utstats
PHP | 186 lines | 160 code | 26 blank | 0 comment | 27 complexity | fcfcb668db9548504045f74982732dc6 MD5 | raw file
  1. <?php
  2. function teamstats($mid, $title, $extra = NULL, $extratitle = NULL, $order = 'gamescore DESC') {
  3. global $gamename, $gid;
  4. $r_info = small_query("SELECT teamgame, t0score, t1score, t2score, t3score FROM uts_match WHERE id = '$mid'");
  5. if (!$r_info) die("Match not found");
  6. $teams = ($r_info[teamgame] == 'True') ? true : false;
  7. $teamscore[-1] = 0;
  8. $teamscore[0] = $r_info[t0score];
  9. $teamscore[1] = $r_info[t1score];
  10. $teamscore[2] = $r_info[t2score];
  11. $teamscore[3] = $r_info[t3score];
  12. $cols = 11;
  13. if ($teams) $cols++;
  14. if ($extra) $cols++;
  15. $oldteam = -1;
  16. echo'
  17. <table border="0" cellpadding="0" cellspacing="2" width="600">
  18. <tbody><tr>
  19. <td class="heading" colspan="'.$cols.'" align="center">'.htmlentities($title).'</td>
  20. </tr>';
  21. $sql_players = "SELECT pi.name, pi.banned, p.pid, p.team, p.country, p.gamescore, p.frags, p.kills, p.deaths, p.suicides, p.teamkills, p.eff, p.accuracy, p.rank".(($extra) ? ', p.'.$extra.' AS '.$extra : '').", p.gametime
  22. FROM uts_player AS p, uts_pinfo AS pi WHERE p.pid = pi.id AND matchid = $mid
  23. ORDER BY".(($teams) ? ' team ASC,' : '')." $order";
  24. $q_players = mysql_query($sql_players) or die(mysql_error());
  25. $header = true;
  26. teamstats_init_totals($totals, $num);
  27. while ($r_players = zero_out(mysql_fetch_array($q_players))) {
  28. $r_players[dom_cp] = $r_players[gamescore] - $r_players[frags];
  29. $r_players[team] = intval($r_players[team]);
  30. if ($teams and $oldteam != $r_players[team]) {
  31. if ($r_players[team] != 0) teamstats_team_totals($totals, $num, $teams, $extra, $teamscore[$oldteam]);
  32. $oldteam = $r_players[team];
  33. teamstats_init_totals($totals, $num, $extra);
  34. switch(intval($r_players[team])) {
  35. case 0: $teamname = 'Red'; break;
  36. case 1: $teamname = 'Blue'; break;
  37. case 2: $teamname = 'Green'; break;
  38. case 3: $teamname = 'Gold'; break;
  39. }
  40. echo'<tr><td class="hlheading" colspan="'.$cols.'" align="center">Team: '.$teamname.'</td></tr>';
  41. $header = true;
  42. }
  43. if ($header) {
  44. $header = false;
  45. echo '
  46. <tr>
  47. <td class="smheading" align="center">Player</td>
  48. <td class="smheading" align="center" width="50">Score</td>';
  49. if ($extra) echo' <td class="smheading" align="center" width="50">'.htmlentities($extratitle).'</td>';
  50. echo'
  51. <td class="smheading" align="center" width="40" '.OverlibPrintHint('F').'>F</td>
  52. <td class="smheading" align="center" width="40" '.OverlibPrintHint('K').'>K</td>
  53. <td class="smheading" align="center" width="40" '.OverlibPrintHint('D').'>D</td>
  54. <td class="smheading" align="center" width="40" '.OverlibPrintHint('S').'>S</td>';
  55. if ($teams) echo '<td class="smheading" align="center" width="40" '.OverlibPrintHint('TK').'>TK</td>';
  56. echo '
  57. <td class="smheading" align="center" width="55" '.OverlibPrintHint('EFF').'>Eff.</td>
  58. <td class="smheading" align="center" width="55" '.OverlibPrintHint('FPH').'>FPH</td>
  59. <td class="smheading" align="center" width="55" '.OverlibPrintHint('ACC').'>Acc.</td>
  60. <td class="smheading" align="center" width="50" '.OverlibPrintHint('TTL').'>Avg TTL</td>
  61. <td class="smheading" align="center" width="50">Time</td>
  62. </tr>';
  63. }
  64. $eff = get_dp($r_players[eff]);
  65. $acc = get_dp($r_players[accuracy]);
  66. $fph = get_dp($r_players[frags] / $r_players[gametime] * 3600);
  67. $ttl = GetMinutes($r_players[gametime] / ($r_players[deaths] + $r_players[suicides] + 1));
  68. $time = GetMinutes($r_players[gametime]);
  69. $pname = $r_players[name];
  70. $totals[gamescore] += $r_players[gamescore];
  71. if ($extra) $totals[extra] += $r_players[$extra];
  72. $totals[frags] += $r_players[frags];
  73. $totals[kills] += $r_players[kills];
  74. $totals[deaths] += $r_players[deaths];
  75. $totals[suicides] += $r_players[suicides];
  76. $totals[teamkills] += $r_players[teamkills];
  77. $totals[eff] += $r_players[eff];
  78. $totals[acc] += $r_players[accuracy];
  79. $totals[ttl] += $r_players[gametime];
  80. $num++;
  81. if ($r_players[banned] == 'Y') {
  82. $eff = '-';
  83. $acc = '-';
  84. $ttl = '-';
  85. $fph = '-';
  86. $time = '-';
  87. $r_players[gamescore] = '-';
  88. $r_players[$extra] = '-';
  89. $r_players[frags] = '-';
  90. $r_players[kills] = '-';
  91. $r_players[deaths] = '-';
  92. $r_players[suicides] = '-';
  93. $r_players[teamkills] = '-';
  94. $r_players[gametime] = '-';
  95. }
  96. $class = ($num % 2) ? 'grey' : 'grey2';
  97. echo '<tr>';
  98. if ($r_players[banned] != 'Y') {
  99. echo '<td nowrap class="darkhuman" align="left"><a class="darkhuman" href="./?p=matchp&amp;mid='.$mid.'&amp;pid='.$r_players[pid].'">'.FormatPlayerName($r_players[country], $r_players[pid], $r_players[name], $gid, $gamename, true, $r_players[rank]).'</a></td>';
  100. } else {
  101. echo '<td nowrap class="darkhuman" align="left"><span style="text-decoration: line-through;">'.FormatPlayerName($r_players[country], $r_players[pid], $r_players[name], $gid, $gamename, true, $r_players[rank]).'</span></td>';
  102. }
  103. echo '<td class="'.$class.'" align="center">'.$r_players[gamescore].'</td>';
  104. if ($extra) echo '<td class="'.$class.'" align="center">'.$r_players[$extra].'</td>';
  105. echo '<td class="'.$class.'" align="center">'.$r_players[frags].'</td>';
  106. echo '<td class="'.$class.'" align="center">'.$r_players[kills].'</td>';
  107. echo '<td class="'.$class.'" align="center">'.$r_players[deaths].'</td>';
  108. echo '<td class="'.$class.'" align="center">'.$r_players[suicides].'</td>';
  109. if ($teams) echo '<td class="'.$class.'" align="center">'.$r_players[teamkills].'</td>';
  110. echo '<td class="'.$class.'" align="center">'.$eff.'</td>';
  111. echo '<td class="'.$class.'" align="center">'.$fph.'</td>';
  112. echo '<td class="'.$class.'" align="center">'.$acc.'</td>';
  113. echo '<td class="'.$class.'" align="center">'.$ttl.'</td>';
  114. echo '<td class="'.$class.'" align="center">'.$time.'</td>';
  115. echo '</tr>';
  116. }
  117. teamstats_team_totals($totals, $num, $teams, $extra, $teamscore[$oldteam]);
  118. echo '</tbody></table><br>';
  119. }
  120. function teamstats_init_totals(&$totals, &$num, $extra = null) {
  121. $totals[gamescore] = 0;
  122. if ($extra) $totals[$extra] = 0;
  123. $totals[frags] = 0;
  124. $totals[kills] = 0;
  125. $totals[deaths] = 0;
  126. $totals[suicides] = 0;
  127. $totals[teamkills] = 0;
  128. $totals[eff] = 0;
  129. $totals[acc] = 0;
  130. $totals[ttl] = 0;
  131. $num = 0;
  132. }
  133. function teamstats_team_totals(&$totals, $num, $teams, $extra, $teamscore) {
  134. if ($num == 0) $num = 1;
  135. $eff = get_dp($totals[eff] / $num);
  136. $acc = get_dp($totals[acc] / $num);
  137. $ttl = GetMinutes($totals[ttl] / ($totals[deaths] + $totals[suicides] + $num));
  138. $time = GetMinutes($totals[ttl]);
  139. $fph = get_dp($totals[frags] / $totals[ttl] * 3600);
  140. echo '<tr>';
  141. echo '<td nowrap class="dark" align="center">Totals</td>';
  142. if ($teams) {
  143. echo '<td class="darkgrey" align="center"><strong>'.$teamscore.'</strong> ('.$totals[gamescore].')</td>';
  144. } else {
  145. echo '<td class="darkgrey" align="center">'.$totals[gamescore].'</td>';
  146. }
  147. if ($extra) echo '<td class="darkgrey" align="center">'.$totals[extra].'</td>';
  148. echo '<td class="darkgrey" align="center">'.$totals[frags].'</td>';
  149. echo '<td class="darkgrey" align="center">'.$totals[kills].'</td>';
  150. echo '<td class="darkgrey" align="center">'.$totals[deaths].'</td>';
  151. echo '<td class="darkgrey" align="center">'.$totals[suicides].'</td>';
  152. if ($teams) echo '<td class="darkgrey" align="center">'.$totals[teamkills].'</td>';
  153. echo '<td class="darkgrey" align="center">'.$eff.'</td>';
  154. echo '<td class="darkgrey" align="center">'.$fph.'</td>';
  155. echo '<td class="darkgrey" align="center">'.$acc.'</td>';
  156. echo '<td class="darkgrey" align="center">'.$ttl.'</td>';
  157. echo '<td class="darkgrey" align="center">'.$time.'</td>';
  158. echo '</tr>';
  159. }
  160. ?>