Reupload after bitbucket wipe
This commit is contained in:
539
web/pages/livestats.php
Normal file
539
web/pages/livestats.php
Normal file
@ -0,0 +1,539 @@
|
||||
<?php
|
||||
/*
|
||||
HLstatsX Community Edition - Real-time player and clan rankings and statistics
|
||||
Copyleft (L) 2008-20XX Nicholas Hastings (nshastings@gmail.com)
|
||||
http://www.hlxcommunity.com
|
||||
|
||||
HLstatsX Community Edition is a continuation of
|
||||
ELstatsNEO - Real-time player and clan rankings and statistics
|
||||
Copyleft (L) 2008-20XX Malte Bayer (steam@neo-soft.org)
|
||||
http://ovrsized.neo-soft.org/
|
||||
|
||||
ELstatsNEO is an very improved & enhanced - so called Ultra-Humongus Edition of HLstatsX
|
||||
HLstatsX - Real-time player and clan rankings and statistics for Half-Life 2
|
||||
http://www.hlstatsx.com/
|
||||
Copyright (C) 2005-2007 Tobias Oetzel (Tobi@hlstatsx.com)
|
||||
|
||||
HLstatsX is an enhanced version of HLstats made by Simon Garner
|
||||
HLstats - Real-time player and clan rankings and statistics for Half-Life
|
||||
http://sourceforge.net/projects/hlstats/
|
||||
Copyright (C) 2001 Simon Garner
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
For support and installation notes visit http://www.hlxcommunity.com
|
||||
*/
|
||||
|
||||
if ( !defined('IN_HLSTATS') )
|
||||
{
|
||||
die('Do not access this file directly.');
|
||||
}
|
||||
|
||||
function printserverstats($server_id)
|
||||
{
|
||||
global $db, $g_options;
|
||||
$query= "
|
||||
SELECT
|
||||
SUM(kills),
|
||||
SUM(headshots),
|
||||
count(serverId)
|
||||
FROM
|
||||
hlstats_Servers
|
||||
WHERE
|
||||
serverId='$server_id'
|
||||
";
|
||||
$result = $db->query($query);
|
||||
list($total_kills, $total_headshots) = $db->fetch_row($result);
|
||||
$query= "
|
||||
SELECT
|
||||
serverId,
|
||||
name,
|
||||
IF(publicaddress != '',
|
||||
publicaddress,
|
||||
concat(address, ':', port)
|
||||
) AS addr,
|
||||
statusurl,
|
||||
kills,
|
||||
players,
|
||||
rounds, suicides,
|
||||
headshots,
|
||||
bombs_planted,
|
||||
bombs_defused,
|
||||
ct_wins,
|
||||
ts_wins,
|
||||
ct_shots,
|
||||
ct_hits,
|
||||
ts_shots,
|
||||
ts_hits,
|
||||
act_players,
|
||||
max_players,
|
||||
act_map,
|
||||
map_started,
|
||||
map_ct_wins,
|
||||
map_ts_wins,
|
||||
game
|
||||
FROM
|
||||
hlstats_Servers
|
||||
WHERE
|
||||
serverId='$server_id'
|
||||
";
|
||||
$result = $db->query($query);
|
||||
$servers = array();
|
||||
$servers[] = $db->fetch_array($result);
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$i=0;
|
||||
for ($i=0; $i<count($servers); $i++)
|
||||
{
|
||||
$rowdata = $servers[$i];
|
||||
|
||||
$server_id = $rowdata['serverId'];
|
||||
$game = $rowdata['game'];
|
||||
$c = ($i % 2) + 1;
|
||||
|
||||
$addr = $rowdata["addr"];
|
||||
$kills = $rowdata['kills'];
|
||||
$headshots = $rowdata['headshots'];
|
||||
$player_string = $rowdata['act_players']."/".$rowdata['max_players'];
|
||||
$map_teama_wins = $rowdata['map_ct_wins'];
|
||||
$map_teamb_wins = $rowdata['map_ts_wins'];
|
||||
$mode = 'playerinfo';
|
||||
if (strpos($_SERVER['PHP_SELF'], 'ingame') !== FALSE)
|
||||
{
|
||||
$mode = 'statsme';
|
||||
}
|
||||
//style="border:1px solid; margin-bottom:40px;margin-left:auto;margin-right:auto;"
|
||||
?>
|
||||
|
||||
<table class="livestats-table">
|
||||
<tr class="data-table-head">
|
||||
<td class="fSmall" style="width:2%;"> #</td>
|
||||
<td class="fSmall" style="width:42%;text-align:left;"> Player</td>
|
||||
<td class="fSmall" colspan="3" style="width:5%;"> Kills</td>
|
||||
<td class="fSmall" style="width:4%;"> Hs</td>
|
||||
<td class="fSmall" style="width:8%;"> HS:K</td>
|
||||
<td class="fSmall" style="width:6%;"> Acc</td>
|
||||
<td class="fSmall" style="width:6%;"> Lat</td>
|
||||
<td class="fSmall" style="width:10%;"> Time</td>
|
||||
<td class="fSmall" style="width:6%;"> +/-</td>
|
||||
<td class="fSmall" style="width:6%;"> Skill</td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
unset($team_colors);
|
||||
$statsdata = $db->query("
|
||||
SELECT
|
||||
team,
|
||||
name,
|
||||
teamkills,
|
||||
teamdeaths,
|
||||
teamheadshots,
|
||||
teamping,
|
||||
teamskill,
|
||||
teamshots,
|
||||
teamhits,
|
||||
teamjointime,
|
||||
IFNULL(playerlist_bgcolor,'#D5D5D5') as playerlist_bgcolor,
|
||||
IFNULL(playerlist_color,'#050505') AS playerlist_color,
|
||||
IFNULL( playerlist_index, 99 ) AS playerlist_index
|
||||
FROM
|
||||
hlstats_Teams
|
||||
RIGHT JOIN
|
||||
(SELECT
|
||||
team,
|
||||
sum( kills ) AS teamkills,
|
||||
sum( deaths ) AS teamdeaths,
|
||||
sum( headshots ) AS teamheadshots,
|
||||
avg( ping /2 ) AS teamping,
|
||||
avg( skill ) AS teamskill,
|
||||
sum( shots ) AS teamshots,
|
||||
sum( hits ) AS teamhits,
|
||||
sum( unix_timestamp( NOW( ) ) - connected ) AS teamjointime
|
||||
FROM
|
||||
hlstats_Livestats
|
||||
WHERE
|
||||
server_id = $server_id
|
||||
AND connected >0
|
||||
GROUP BY
|
||||
team
|
||||
ORDER BY
|
||||
teamkills
|
||||
) teaminfo
|
||||
ON
|
||||
code = team
|
||||
AND
|
||||
hlstats_Teams.game = '$game'
|
||||
ORDER BY
|
||||
playerlist_index
|
||||
LIMIT 0 , 30
|
||||
");
|
||||
$teamdata = array();
|
||||
$playerdata = array();
|
||||
$teamno = 0;
|
||||
while ($thisteam = $db->fetch_array($statsdata))
|
||||
{
|
||||
$teamname = $db->escape($thisteam['team']);
|
||||
$teamdata[$teamno] = $thisteam;
|
||||
$pldata = $db->query("
|
||||
SELECT
|
||||
player_id,
|
||||
name,
|
||||
kills,
|
||||
deaths,
|
||||
headshots,
|
||||
ping,
|
||||
skill,
|
||||
shots,
|
||||
hits,
|
||||
connected,
|
||||
skill_change,
|
||||
cli_flag
|
||||
FROM
|
||||
hlstats_Livestats
|
||||
WHERE
|
||||
server_id = $server_id
|
||||
AND team = '$teamname'
|
||||
ORDER BY
|
||||
kills DESC
|
||||
");
|
||||
while ($thisplayer = $db->fetch_array($pldata))
|
||||
{
|
||||
$playerdata[$teamno][] = $thisplayer;
|
||||
}
|
||||
$teamno++;
|
||||
}
|
||||
$curteam = 0;
|
||||
while (isset($teamdata[$curteam]))
|
||||
{
|
||||
$j=0;
|
||||
$thisteam = $teamdata[$curteam];
|
||||
$teamcolor = 'background:'.$thisteam['playerlist_bgcolor'].';color:'.$thisteam['playerlist_color'];
|
||||
$bordercolor = 'background:'.$$thisteam['playerlist_bgcolor'].';color:'.$thisteam['playerlist_color'].';border-top:1px '.$thisteam['playerlist_color'].' solid';
|
||||
$team_display_name = htmlspecialchars($thisteam['name']);
|
||||
while (isset($playerdata[$curteam][$j]))
|
||||
{
|
||||
$thisplayer = $playerdata[$curteam][$j];
|
||||
|
||||
?>
|
||||
<tr style="<?php echo $teamcolor ?>">
|
||||
<td class="fSmall"><?php
|
||||
if (isset($thisplayer) && $team_display_name)
|
||||
{
|
||||
echo ($j+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="text-align:left;<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
if (strlen($thisplayer['name'])>50)
|
||||
{
|
||||
$thisplayer['name'] = substr($thisplayer['name'], 0, 50);
|
||||
}
|
||||
if ($g_options['countrydata'] == 1)
|
||||
{
|
||||
echo '<img src="'.getFlag($thisplayer['cli_flag']).'" alt="'.ucfirst(strtolower($thisplayer['cli_country'])).'" title="'.ucfirst(strtolower($thisplayer['cli_country'])).'" /> ';
|
||||
}
|
||||
echo '<a style="color:'.$thisteam['playerlist_color'].'" href="'.$g_options['scripturl'].'?mode='.$mode.'&player='.$thisplayer['player_id'].'">';
|
||||
echo htmlspecialchars($thisplayer['name'], ENT_COMPAT).'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="text-align:right;width:2%;<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
echo $thisplayer['kills'];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="width:1%;<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
echo ':';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="text-align:left;width:2%;<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
echo $thisplayer['deaths'];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
echo $thisplayer['headshots'];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
$hpk = sprintf('%.2f', 0);
|
||||
if ($thisplayer['kills'] > 0)
|
||||
{
|
||||
$hpk = sprintf('%.2f', $thisplayer['headshots']/$thisplayer['kills']);
|
||||
}
|
||||
echo $hpk;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
$acc = sprintf('%.0f', 0);
|
||||
if ($thisplayer['shots'] > 0)
|
||||
{
|
||||
$acc = sprintf('%.0f', ($thisplayer['hits']/$thisplayer['shots'])*100);
|
||||
}
|
||||
echo "$acc%";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
echo sprintf('%.0f', $thisplayer['ping'] / 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
if ($thisplayer['connected']>0)
|
||||
{
|
||||
$stamp = time()-$thisplayer['connected'];
|
||||
$hours = sprintf('%02d', floor($stamp / 3600));
|
||||
$min = sprintf('%02d', floor(($stamp % 3600) / 60));
|
||||
$sec = sprintf('%02d', floor($stamp % 60));
|
||||
echo $hours.':'.$min.':'.$sec;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Unknown';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
echo $thisplayer['skill_change'];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $teamcolor ?>" class="fSmall"><?php
|
||||
if (isset($thisplayer))
|
||||
{
|
||||
echo number_format($thisplayer['skill']);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
$j++;
|
||||
}
|
||||
|
||||
if ($team_display_name)
|
||||
{
|
||||
?>
|
||||
<tr style="<?php echo $teamcolor ?>">
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall"> </td>
|
||||
<td style="text-align:left;<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
echo "<strong>$team_display_name</strong>";
|
||||
if (($map_teama_wins > 0) || ($map_teamb_wins > 0))
|
||||
{
|
||||
echo ' ('.$map_teama_wins.' wins)';
|
||||
}
|
||||
?> </td>
|
||||
<td style="width:2%;text-align:right;<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
echo $teamdata[$curteam]['teamkills'];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="width:1%;<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
echo ':';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="width:2%;text-align:left;<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
echo $teamdata[$curteam]['teamdeaths'];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
echo $teamdata[$curteam]['teamheadshots'];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
$hpk = sprintf('%.2f', 0);
|
||||
if ($teama_kills > 0)
|
||||
{
|
||||
$hpk = sprintf('%.2f', $teamdata[$curteam]['headshots']/$teamdata[$curteam]['kills']);
|
||||
}
|
||||
echo $hpk;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
$acc = sprintf('%.0f', 0);
|
||||
if ($teama_shots > 0)
|
||||
{
|
||||
$acc = sprintf('%.0f', ($teamdata[$curteam]['teamhits']/$teamdata[$curteam]['teamshots'])*100);
|
||||
}
|
||||
echo "$acc%";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?></td>
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
echo sprintf('%.0f', $teamdata[$curteam]['teamping'] / count($teamdata[$curteam]));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam]) > 0)
|
||||
{
|
||||
if ($teamdata[$curteam]['teamjointime'] > 0)
|
||||
{
|
||||
$stamp = $teamdata[$curteam]['teamjointime'];
|
||||
$hours = sprintf('%02d', floor($stamp / 3600));
|
||||
$min = sprintf('%02d', floor(($stamp % 3600) / 60));
|
||||
$sec = sprintf('%02d', floor($stamp % 60));
|
||||
echo $hours.':'.$min.':'.$sec;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Unknown';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall">-</td>
|
||||
<td style="<?php echo $bordercolor ?>" class="fSmall"><?php
|
||||
if (count($teamdata[$curteam])>0)
|
||||
{
|
||||
echo number_format(sprintf('%.0f', $teamdata[$curteam]['teamskill']));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' ';
|
||||
}
|
||||
?> </td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
}
|
||||
$curteam++;
|
||||
} //while i for teams
|
||||
if (count($teamdata) == 0)
|
||||
{
|
||||
?>
|
||||
<tr>
|
||||
<td style="background:#EFEFEF;color:black"><?php
|
||||
echo ' ';
|
||||
?> </td>
|
||||
<td colspan="11" style="text-align:left;background:#EFEFEF;color:black"><?php
|
||||
echo "No Players";
|
||||
?> </td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<?php
|
||||
} // for servers
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user