593 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			593 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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
 | |
| */
 | |
| 
 | |
| define('IN_HLSTATS', true);
 | |
| 
 | |
| foreach ($_SERVER as $key => $entry) {
 | |
| 	if ($key !== 'HTTP_COOKIE') {
 | |
| 		$search_pattern  = array('/<script>/', '/<\/script>/', '/[^A-Za-z0-9.\-\/=:;_?#&~]/');
 | |
| 		$replace_pattern = array('', '', '');
 | |
| 		$entry = preg_replace($search_pattern, $replace_pattern, $entry);
 | |
| 
 | |
| 		if ($key == 'PHP_SELF') {
 | |
| 			if ((strrchr($entry, '/') !== '/hlstats.php') &&
 | |
| 				(strrchr($entry, '/') !== '/ingame.php') &&
 | |
| 				(strrchr($entry, '/') !== '/show_graph.php') &&
 | |
| 				(strrchr($entry, '/') !== '/sig.php') &&
 | |
| 				(strrchr($entry, '/') !== '/sig2.php') &&
 | |
| 				(strrchr($entry, '/') !== '/index.php') &&
 | |
| 				(strrchr($entry, '/') !== '/status.php') &&
 | |
| 				(strrchr($entry, '/') !== '/top10.php') &&
 | |
| 				(strrchr($entry, '/') !== '/config.php') &&
 | |
| 				(strrchr($entry, '/') !== '/') &&
 | |
| 				($entry !== '')) {
 | |
| 				header('Location: http://'.$_SERVER['HTTP_HOST'].'/hlstats.php');    
 | |
| 				exit;
 | |
| 			} 
 | |
| 		}
 | |
| 		$_SERVER[$key] = $entry;
 | |
| 	}
 | |
| }
 | |
|  
 | |
| require('config.php');
 | |
| header('Content-Type: text/html; charset=utf-8');
 | |
| 
 | |
| // Check PHP configuration
 | |
| 
 | |
| if (version_compare(phpversion(), "4.1.0", "<"))
 | |
| {
 | |
| 	error("HLstats requires PHP version 4.1.0 or newer (you are running PHP version " . phpversion() . ").");
 | |
| }
 | |
| 
 | |
| // do not report NOTICE warnings
 | |
| error_reporting(E_ALL ^ E_NOTICE);
 | |
| 
 | |
| ///
 | |
| /// Classes
 | |
| ///
 | |
| 
 | |
| // Load database classes
 | |
| require(INCLUDE_PATH . "/class_db.php");
 | |
| require(INCLUDE_PATH . "/functions.php");
 | |
| 
 | |
| ////
 | |
| //// Initialisation
 | |
| ////
 | |
| 
 | |
| $db_classname = 'DB_' . DB_TYPE;
 | |
| if ( class_exists($db_classname) )
 | |
| {
 | |
| 	$db = new $db_classname(DB_ADDR, DB_USER, DB_PASS, DB_NAME, DB_PCONNECT);
 | |
| }
 | |
| else
 | |
| {
 | |
| 	error('Database class does not exist.  Please check your config.php file for DB_TYPE');
 | |
| }
 | |
| 
 | |
| $g_options = getOptions();
 | |
| 
 | |
| if (!isset($g_options['scripturl']))
 | |
| 	$g_options['scripturl'] = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
 | |
| 
 | |
| $g_options['scriptbase'] = str_replace('/status.php', '', $g_options['scripturl']);
 | |
| 
 | |
| ////
 | |
| //// Main Config
 | |
| ////
 | |
| 
 | |
| $game = 'css';  
 | |
| if ((isset($_GET['game'])) && (is_string($_GET['game'])))
 | |
| 	$game = valid_request($_GET['game'], 0);
 | |
| $game_escaped = $db->escape($game);
 | |
| $server_id = '1';
 | |
| if ((isset($_GET['server_id'])) && (is_numeric($_GET['server_id'])))
 | |
| 	$server_id = valid_request($_GET['server_id'], 1);
 | |
| $width = '218';
 | |
| if ((isset($_GET['width'])) && (is_numeric($_GET['width'])))
 | |
| 	$width = valid_request($_GET['width'], 1);
 | |
| $body_color = 'ECF8FF';
 | |
| if ((isset($_GET['body_color'])) && (is_string($_GET['body_color'])))
 | |
| 	$body_color = valid_request($_GET['body_color'], 0);
 | |
| $background_color = 'ABCCD6';
 | |
| if (isset($_GET['bg_color']))
 | |
| 	$background_color = valid_request($_GET['bg_color'], 0);
 | |
| $color = '000000';
 | |
| if ((isset($_GET['color'])) && (is_string($_GET['color'])))
 | |
| 	$color = valid_request($_GET['color'], 0);
 | |
| $border_width = '1';
 | |
| if (isset($_GET['border_width']))
 | |
| 	$border_width = valid_request($_GET['border_width'], 1);
 | |
| $border_color = 'ABCCD6';
 | |
| if (isset($_GET['border_color']))
 | |
| 	$border_color = valid_request($_GET['border_color'], 0);
 | |
| $show_logo = '1';
 | |
| if ((isset($_GET['show_logo'])) && (is_string($_GET['show_logo'])))
 | |
| 	$show_logo = valid_request($_GET['show_logo'], 1);
 | |
| $small_fonts = '1';
 | |
| if ((isset($_GET['small_fonts'])) && (is_numeric($_GET['small_fonts'])))
 | |
| 	$small_fonts = valid_request($_GET['small_fonts'], 1);
 | |
| $server_name = '1';
 | |
| if ((isset($_GET['server_name'])) && (is_string($_GET['server_name'])))
 | |
| 	$server_name = valid_request($_GET['server_name'], 1);
 | |
| $server_url = '1';
 | |
| if ((isset($_GET['server_url'])) && (is_string($_GET['server_url'])))
 | |
| 	$server_url = valid_request($_GET['server_url'], 1);
 | |
| $map_image = '1';
 | |
| if ((isset($_GET['map_image'])) && (is_numeric($_GET['map_image'])))
 | |
| 	$map_image = valid_request($_GET['map_image'], 1);
 | |
| $show_summary = '1';
 | |
| if ((isset($_GET['show_summary'])) && (is_numeric($_GET['show_summary'])))
 | |
| 	$show_summary = valid_request($_GET['show_summary'], 1);
 | |
| $map_name = '1';
 | |
| if ((isset($_GET['map_name'])) && (is_numeric($_GET['map_name'])))
 | |
| 	$map_name = valid_request($_GET['map_name'], 1);
 | |
| $show_flags = '1';  
 | |
| if ((isset($_GET['show_flags'])) && (is_numeric($_GET['show_flags'])))
 | |
| 	$show_flags = valid_request($_GET['show_flags'], 1);
 | |
| $show_players = '1';
 | |
| if ((isset($_GET['show_players'])) && (is_numeric($_GET['show_players'])))
 | |
| 	$show_players = valid_request($_GET['show_players'], 1);
 | |
| $show_teams = '1';
 | |
| if ((isset($_GET['show_teams'])) && (is_numeric($_GET['show_teams'])))
 | |
| 	$show_teams = valid_request($_GET['show_teams'], 1);
 | |
| $show_team_wins = '1';
 | |
| if ((isset($_GET['show_team_wins'])) && (is_numeric($_GET['show_team_wins'])))
 | |
| 	$show_team_wins = valid_request($_GET['show_team_wins'], 1);
 | |
| $show_map_wins = '1';
 | |
| if ((isset($_GET['show_map_wins'])) && (is_numeric($_GET['show_map_wins'])))
 | |
| 	$show_map_wins = valid_request($_GET['show_map_wins'], 1);
 | |
| $top_players = '10';
 | |
| if ((isset($_GET['top_players'])) && (is_numeric($_GET['top_players'])))
 | |
| 	$top_players = valid_request($_GET['top_players'], 1);
 | |
| $players_images = '1';
 | |
| if ((isset($_GET['players_images'])) && (is_numeric($_GET['players_images'])))
 | |
| 	$players_images = valid_request($_GET['players_images'], 1);
 | |
| $show_password = '';
 | |
| if ((isset($_GET['show_password'])) && (is_string($_GET['show_password'])))
 | |
| 	$show_password = valid_request($_GET['show_password'], 1);
 | |
| 
 | |
| //// Entries
 | |
| $result = $db->query("
 | |
| 	SELECT
 | |
| 		IF(publicaddress != '', publicaddress, concat(address, ':', port)) AS addr,
 | |
| 		name, 
 | |
| 		publicaddress, 
 | |
| 		act_map, 
 | |
| 		players, 
 | |
| 		kills, 
 | |
| 		headshots, 
 | |
| 		map_started, 
 | |
| 		act_players, 
 | |
| 		max_players, 
 | |
| 		map_ct_wins, 
 | |
| 		map_ts_wins
 | |
| 	FROM 
 | |
| 		hlstats_Servers
 | |
| 	WHERE 
 | |
| 		serverId=$server_id");
 | |
| $server_data = $db->fetch_array($result);
 | |
| 
 | |
| if ($small_fonts == 1)
 | |
| {
 | |
| 	$fsize = 'fSmall';
 | |
| }
 | |
| else
 | |
| {
 | |
| 	$fsize = 'fNormal';
 | |
| }
 | |
| 
 | |
| if ($server_data['addr'] != '')  {
 | |
| 	echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
 | |
| 	echo '<html>';
 | |
| 	echo '<head>';
 | |
| 	echo '<title>'.$g_options["sitename"].'</title>';
 | |
| 	echo '<style type="text/css">{margin:0px;padding:0px;}</style>';
 | |
| 	echo '<link rel="stylesheet" type="text/css" href="hlstats.css">';
 | |
| 	echo '<link rel="stylesheet" type="text/css" href="styles/'.$g_options['style'].'">';
 | |
| 	echo '</head>';
 | |
| 	echo '<body style="background:#'.$body_color.';color:#'.$color.';"  class="'.$fsize.'">';
 | |
| 	echo '<table border="0" cellpadding="0" cellspacing="0" style="border:'.$border_width.'px solid #'.$border_color.';background:#'.$background_color.';color:#'.$color.';width:'.$width.'px;">';
 | |
| 
 | |
| 	if ($show_logo == 1)
 | |
| 	{
 | |
| 		echo '<tr style="background-image:url('.IMAGE_PATH.'/icons/title-background.gif);"><td align="center" colspan="2" class="'.$fsize.'">';
 | |
| 		$logo = file_exists(IMAGE_PATH.'/icons/shorttitle-'.$game.'.png');
 | |
| 		if ($logo) {
 | |
| 			if ($server_name == 1)
 | |
| 			{
 | |
| 				echo '<a target="_blank" href="'.$g_options["siteurl"].'"><img src="'.IMAGE_PATH.'/icons/shorttitle-'.$game.'.png" style="width:'.$width.'px;border:0px;" alt="'.$g_options['sitename'].'" title="'.$g_options['sitename'].'" /></a>';
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				echo '<a target="_blank" href="'.$g_options["siteurl"].'"><img src="'.IMAGE_PATH.'/icons/shorttitle-'.$game.'.png" style="width:'.$width.'px;border:0px;" alt="'.$server_data['name'].'" title="'.$server_data['name'].'" /></a>';
 | |
| 			}
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			echo '<a target="_blank" href="http://www.hlxcommunity.com" style="display:block;"><img src="'.IMAGE_PATH.'/icons/title-short.png" style="width:'.$width.'px;border:0px;" alt="Realtime player statistics for Halflife2 Source Engine" title="Realtime player statistics for Halflife2 Source Engine" /></a>';
 | |
| 		}
 | |
| 	echo '</td></tr>';
 | |
| 	}
 | |
| 
 | |
| 	if ($server_name == 1)
 | |
| 	{
 | |
| 		echo '<tr><td align="center" colspan="2" class="'.$fsize.'">';
 | |
| 		echo '<a target="_blank" href="'.$g_options['scriptbase'].'" title="View statistics"><b>'.$server_data['name'].'</b></a>';
 | |
| 		echo '</td></tr>';
 | |
| 	}
 | |
| 
 | |
| 	if ($server_url == 1)
 | |
| 	{
 | |
| 		echo '<tr><td align="center" colspan="2" class="'.$fsize.'">';
 | |
| 		echo '<a href="steam://connect/'.$server_data['addr'].'" title="Connent to Server"><b>'.$server_data['addr'].'</b></a>';
 | |
| 		echo '</td></tr>';
 | |
| 	}
 | |
| 
 | |
| 	if ($show_password != '')
 | |
| 	{
 | |
| 		echo '<tr><td align="center" colspan="2" class="'.$fsize.'">';
 | |
| 		echo '<b>Password: '.$show_password.'</b>';
 | |
| 		echo '</td></tr>';
 | |
| 	}    
 | |
| 
 | |
| 	if ($map_image == 1)
 | |
| 	{
 | |
| 		$mapimg = getImage("/games/{$game}/maps/{$server_data['act_map']}");
 | |
| 		if (!file_exists($mapimg['path'])) {
 | |
| 			$mapimg = getImage("/games/{$game}/maps/default");
 | |
| 			if (!file_exists($mapimg['path'])) {
 | |
| 				$mapimg = getImage("/nomap");
 | |
| 			}
 | |
| 		}
 | |
| 		
 | |
| 		echo '<tr><td align="center" colspan="2">';
 | |
| 		echo '<a target="_blank" href="'.$g_options['scriptbase'].'/hlstats.php?mode=mapinfo&map='.$server_data['act_map'].'&game='.$game.'"><img src="'.$mapimg['url'].'" style="width:'.$width.'px;border:0px" alt="'.$server_data['act_map'].'" title="'.$server_data['act_map'].'" /></a>'; 
 | |
| 		echo '</td></tr>';
 | |
| 	}
 | |
| 
 | |
| 	if ($show_summary == 1)
 | |
| 	{
 | |
| 		echo '<tr><td align="left" style="padding-left:2px" class="'.$fsize.'">';
 | |
| 		echo 'Players:'; 
 | |
| 		echo '</td><td align="right" style="padding-right:2px;" class="'.$fsize.'">';
 | |
| 		echo number_format($server_data['players']); 
 | |
| 		echo '</td></tr>';
 | |
| 
 | |
| 		echo '<tr><td align="left" style="padding-left:2px" class="'.$fsize.'">';
 | |
| 		echo 'Kills:'; 
 | |
| 		echo '</td><td align="right" style="padding-right:2px;" class="'.$fsize.'">';
 | |
| 		echo number_format($server_data['kills']); 
 | |
| 		echo '</td></tr>';
 | |
| 
 | |
| 		if ($server_data['headshots'] > 0)
 | |
| 		{
 | |
| 			echo '<tr><td align="left" style="padding-left:2px" class="'.$fsize.'">';
 | |
| 			echo 'Headshots:'; 
 | |
| 			echo '</td><td align="right" style="padding-right:2px;" class="'.$fsize.'">';
 | |
| 			echo number_format($server_data['headshots']); 
 | |
| 			echo '</td></tr>';
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	if ($map_name == 1) {
 | |
| 		echo '<tr><td align="left" style="padding-left:2px" class="'.$fsize.'">';
 | |
| 		echo 'Map:'; 
 | |
| 		echo '</td><td align="right" style="padding-right:2px;" class="'.$fsize.'">';
 | |
| 		echo $server_data['act_map']; 
 | |
| 		echo '</td></tr>';
 | |
| 	}
 | |
| 	$stamp = $server_data['map_started']==0?0:time() - $server_data['map_started'];
 | |
| 	$hours = sprintf("%02d", floor($stamp / 3600));
 | |
| 	$min   = sprintf("%02d", floor(($stamp % 3600) / 60));
 | |
| 	$sec   = sprintf("%02d", floor($stamp % 60)); 
 | |
| 	echo '<tr><td align="left" style="padding-left:2px" class="'.$fsize.'">';
 | |
| 	echo 'Map Time:'; 
 | |
| 	echo '</td><td align="right" style="padding-right:2px;" class="'.$fsize.'">';
 | |
| 	echo $hours.':'.$min.':'.$sec; 
 | |
| 	echo '</td></tr>';
 | |
| 	echo '<tr><td align="left" style="padding-left:2px;border-bottom:1px solid #000000;" class="'.$fsize.'">';
 | |
| 	echo 'Online:'; 
 | |
| 	echo '</td><td align="right" style="padding-right:2px;border-bottom:1px solid #000000;" class="'.$fsize.'">';
 | |
| 	echo $server_data['act_players'].'/'.$server_data['max_players']; 
 | |
| 	echo '</td></tr>';
 | |
| 
 | |
| 	if ($show_players == 1)
 | |
| 	{
 | |
| 		echo '<tr><td colspan="2"><table width="100%" border="0" cellpadding="0" cellspacing="0">';
 | |
| 
 | |
| 		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_escaped}'
 | |
| 			ORDER BY 
 | |
| 				playerlist_index
 | |
| 			LIMIT 0 , 30
 | |
| 			");
 | |
| 
 | |
| 		$teamdata = array();
 | |
| 		$playerdata = array();
 | |
| 		$teamno = 0;
 | |
| 
 | |
| 		while ($thisteam = $db->fetch_array($statsdata))
 | |
| 		{
 | |
| 			$teamdata[$teamno] = $thisteam;
 | |
| 			$thisteam_escaped = $db->escape($thisteam['team']);
 | |
| 			$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 = '{$thisteam_escaped}'
 | |
| 				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];
 | |
| 			echo '<tr style="'.$teamcolor.'">';
 | |
| 			echo '<td align="left" width="85%" style="'.$teamcolor.';padding-left:3px;" class="'.$fsize.'">';
 | |
| 				if (isset($thisplayer))
 | |
| 				{
 | |
| 					if (strlen($thisplayer['name'])>50)
 | |
| 					{
 | |
| 						$thisplayer['name'] = substr($thisplayer['name'], 0, 50);
 | |
| 					}
 | |
| 					echo '<a target="_blank" style="color:'.$thisteam['playerlist_color'].';" href="'.$g_options['scriptbase'].'/hlstats.php?mode=playerinfo&player='.$thisplayer['player_id'].'" title="Player Details">';
 | |
| 					if ($show_flags == 1)
 | |
| 					{
 | |
| 					echo '<img src="'.getFlag($thisplayer['cli_flag']).'" alt="'.ucfirst(strtolower($thisplayer['cli_country'])).'" title="'.ucfirst(strtolower($thisplayer['cli_country'])).'"> ';
 | |
| 					}
 | |
| 					echo '<span style="vertical-align:middle;">'.htmlspecialchars($thisplayer['name'], ENT_COMPAT).'</span></a>';
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					echo ' ';
 | |
| 				}
 | |
| 			echo '</td>';
 | |
| 			echo '<td align="right" width="15%" style="'.$teamcolor.';padding-right:3px" class="'.$fsize.'">';
 | |
| 				if (isset($thisplayer))
 | |
| 				{
 | |
| 					echo $thisplayer['kills'];
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					echo ' ';
 | |
| 				}
 | |
| 			echo ' : ';
 | |
| 				if (isset($thisplayer))
 | |
| 				{
 | |
| 					echo $thisplayer['deaths'];
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					echo ' ';
 | |
| 				}
 | |
| 			echo '</td>';
 | |
| 			echo '</tr>';
 | |
| 			$j++;	
 | |
| 			}
 | |
| 
 | |
| 			if ($show_teams == 1)
 | |
| 			{
 | |
| 				if ($team_display_name)
 | |
| 				{
 | |
| 					echo '<tr style="'.$teamcolor.'">';
 | |
| 					echo '<td align="left" width="85%" style="'.$bordercolor.';'.$teamcolor.';padding-left:3px;" class="'.$fsize.'">';
 | |
| 					echo ' <b>'.$team_display_name.'</b>';
 | |
| 					if ($show_team_wins == 1) {
 | |
| 						if (($map_teama_wins > 0) || ($map_teamb_wins > 0))
 | |
| 						{
 | |
| 							echo ' ('.$map_teama_wins.' wins)';
 | |
| 						}
 | |
| 					}
 | |
| 					echo '</td>';
 | |
| 					echo '<td align="right" width="15%" style="'.$bordercolor.';'.$teamcolor.';padding-right:3px" class="'.$fsize.'">';
 | |
| 					if (count($teamdata[$curteam]) > 0)
 | |
| 					{
 | |
| 						echo $teamdata[$curteam]['teamkills'];
 | |
| 					}
 | |
| 					else
 | |
| 					{
 | |
| 						echo ' ';
 | |
| 					}
 | |
| 					echo ' : ';
 | |
| 					if (count($teamdata[$curteam]) > 0)
 | |
| 					{
 | |
| 						echo $teamdata[$curteam]['teamdeaths'];
 | |
| 					}
 | |
| 					else
 | |
| 					{
 | |
| 						echo ' ';
 | |
| 					}
 | |
| 					echo '</td>';
 | |
| 					echo '</tr>';
 | |
| 				}
 | |
| 			}
 | |
| 		$curteam++;
 | |
| 		}
 | |
| // these variables are not set - so removing it
 | |
| /*
 | |
| 		if ((count($teama_players) > 0) || (count($teamb_players) > 0))
 | |
| 		{
 | |
| 			if ($show_map_wins == 1) {
 | |
| 				echo '<tr><td align="center" colspan="2" class="'.$fsize.'">';
 | |
| 				echo '<span style="color:'.$teamcolor.';font-weight:bold;">'.$teama_display_name.' '.$server_data['map_ct_wins'].' </span><span style="color:black;">: </span><span style="color:'.$teamcolor.';font-weight:bold;">'.$server_data['map_ts_wins'].' '.$teamb_display_name.'</span>';
 | |
| 				echo '</td></tr>';
 | |
| 			}
 | |
| 		}
 | |
| */
 | |
| 		if (count($teamdata) == 0)
 | |
| 		{
 | |
| 			echo '<tr><td colspan="2" align="left" style="background:#EFEFEF;color:black" class="'.$fsize.'">';
 | |
| 			echo ' No Players';
 | |
| 			echo '</td></tr>';
 | |
| 		}
 | |
| 	echo '</table></td></tr>';
 | |
| 	}
 | |
| 
 | |
| 	if ($top_players > 0)
 | |
| 	{
 | |
| 		$db->query("
 | |
| 			SELECT 
 | |
| 				playerId, 
 | |
|                                 unhex(replace(hex(lastName), 'E280AE', '')) as lastName,
 | |
| 				flag, 
 | |
| 				country, 
 | |
| 				skill, 
 | |
| 				IFNULL(kills/deaths, '-') AS kpd, 
 | |
| 				IFNULL(ROUND((hits / shots * 100), 1), 0.0) AS acc
 | |
| 			FROM 
 | |
| 				hlstats_Players 
 | |
| 			WHERE 
 | |
| 				game='{$game_escaped}'
 | |
| 				AND hideranking=0
 | |
| 			ORDER BY
 | |
| 				skill DESC, 
 | |
| 				kpd DESC 
 | |
| 			LIMIT 0,$top_players
 | |
| 		");
 | |
| 		echo '<tr><td colspan="2"><table border="0" cellpadding="0" cellspacing="0" style="width:100%">';
 | |
| 		echo '<tr><td align="center" colspan="2" style="border:1px solid #000000;" class="'.$fsize.'">';
 | |
| 		echo '<b>TOP '.$top_players.' Players</b>';
 | |
| 		echo '</td></tr>';
 | |
| 
 | |
| 		while ($player = $db->fetch_array())
 | |
| 		{
 | |
| 			echo '<tr><td align="left" width="85%" style="padding-left:2px" class="'.$fsize.'">';
 | |
| 			$cut_pos = 15;
 | |
| 			if ($small_fonts == 1)
 | |
| 				$cut_pos += 10;
 | |
| 			$display_name = $player['lastName'];
 | |
| 			if (strlen($player['lastName']) > $cut_pos)
 | |
| 				$display_name = substr($player['lastName'], 0, $cut_pos);
 | |
| 			echo '<a target="_blank" href="'.$g_options["scriptbase"].'/hlstats.php?mode=playerinfo&player='.$player['playerId'].'" title="Player Details">';
 | |
| 			if ($show_flags == 1)
 | |
| 			{
 | |
| 				if ($player['country'] == '')
 | |
| 					$player['country'] = 'Unknown Country';
 | |
| 				echo '<img src="'.getFlag($player['flag']).'" alt="'.ucfirst($player['country']).'" title="'.ucfirst($player['country']).'"> ';
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				if ($players_images == 1)
 | |
| 				{
 | |
| 					echo '<img src="'.IMAGE_PATH.'/player.gif" /> ';
 | |
| 				}
 | |
| 			}
 | |
| 			echo '<span style="vertical-align:middle;">'.htmlspecialchars($display_name, ENT_COMPAT).'</span></a>';
 | |
| 			echo '</td><td align="right" width="15%" style="padding-right:2px;" class="'.$fsize.'">';
 | |
| 			echo $player['skill'];
 | |
| 			echo '</td></tr>'; 
 | |
| 		}
 | |
| 		echo '</table></td></tr>';
 | |
| 	}
 | |
| 	echo '</table>';
 | |
| 	echo '</body>';
 | |
| 	echo '</html>';
 | |
| } 
 | |
| ?>
 |