query(" SELECT playerId FROM hlstats_PlayerUniqueIds WHERE uniqueId='$uniqueid' AND game='$game' "); if ($db->num_rows() > 1) { header("Location: " . $g_options["scripturl"] . "?mode=search&st=uniqueid&q=$uniqueid&game=$game"); exit; } elseif ($db->num_rows() < 1) { error("No players found matching uniqueId '$uniqueid'"); } else { list($player) = $db->fetch_row(); $player = intval($player); } } elseif (!$player && !$uniqueid) { error("No player ID specified."); } $db->query(" SELECT hlstats_Players.lastName, hlstats_Players.clan, hlstats_Players.fullName, hlstats_Players.email, hlstats_Players.homepage, hlstats_Players.icq, hlstats_Players.game, hlstats_Players.skill, hlstats_Players.kills, hlstats_Players.deaths, IFNULL(kills/deaths, '-') AS kpd, hlstats_Players.suicides, CONCAT(hlstats_Clans.tag, ' ', hlstats_Clans.name) AS clan_name FROM hlstats_Players LEFT JOIN hlstats_Clans ON hlstats_Clans.clanId = hlstats_Players.clan WHERE playerId='$player' "); if ($db->num_rows() != 1) error("No such player '$player'."); $playerdata = $db->fetch_array(); $db->free_result(); $pl_name = $playerdata["lastName"]; if (strlen($pl_name) > 10) { $pl_shortname = substr($pl_name, 0, 8) . "..."; } else { $pl_shortname = $pl_name; } $pl_name = ereg_replace(" ", " ", htmlspecialchars($pl_name)); $pl_shortname = ereg_replace(" ", " ", htmlspecialchars($pl_shortname)); $pl_urlname = urlencode($playerdata["lastName"]); $game = $playerdata["game"]; $db->query("SELECT name FROM hlstats_Games WHERE code='$game'"); if ($db->num_rows() != 1) $gamename = ucfirst($game); else list($gamename) = $db->fetch_row(); pageHeader( array($gamename, "Player Details", $pl_name), array( $gamename=>$g_options["scripturl"] . "?game=$game", "Player Rankings"=>$g_options["scripturl"] . "?mode=players&game=$game", "Player Details"=>"" ), $pl_name ); ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Player Profile  /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Statistics Summary
   
">
"> "> "> "> "> "> "> "> "> ">
\"clan.gif\"" . htmlspecialchars($playerdata["clan_name"]) . ""; } else { echo "(None.)"; } echo $g_options["fontend_normal"]; ?>
" . htmlspecialchars($playerdata["fullName"]) . ""; } else { echo "(Unknown.)"; } echo $g_options["fontend_normal"]; ?>
" . htmlspecialchars($playerdata["icq"]) . ""; } else { echo "(Not specified.)"; } echo $g_options["fontend_normal"]; ?>
query(" SELECT uniqueId FROM hlstats_PlayerUniqueIds WHERE playerId='$player' "); $i=0; while (list($uqid) = $db->fetch_row()) { if ($i > 0) echo ", "; echo $uqid; $i++; } } echo $g_options["fontend_normal"]; ?>
query(" SELECT DATE_FORMAT(MAX(eventTime), '%r, %a. %D %b.') FROM hlstats_Events_Connects LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Connects.serverId WHERE hlstats_Servers.game='$game' AND playerId='$player' "); list($lastevent) = $db->fetch_row(); if ($lastevent) { echo $lastevent; } else { echo "(Unknown.)"; } ?>
query(" SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time))) AS tTime FROM hlstats_Events_StatsmeTime LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_StatsmeTime.serverId WHERE hlstats_Servers.game='$game' AND playerId='$player' "); list($tTime) = $db->fetch_row(); if ($tTime) { echo $tTime; } else { echo "(Unknown.)"; } ?>
query(" SELECT ROUND(SUM(ping) / COUNT(ping), 1) AS av_ping FROM hlstats_Events_StatsmeLatency LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_StatsmeLatency.serverId WHERE hlstats_Servers.game='$game' AND playerId='$player' "); list($av_ping) = $db->fetch_row(); if ($av_ping) { echo $av_ping; } else { echo "(Unknown.)"; } ?>
   
">
"> "> "> "> "> "> ">
" . $playerdata["skill"] . ""; echo $g_options["fontend_normal"]; ?>
query(" SELECT COUNT(*) FROM hlstats_Events_Frags LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Frags.serverId WHERE hlstats_Servers.game='$game' AND killerId='$player' "); list($realkills) = $db->fetch_row(); echo " ($realkills)"; echo $g_options["fontend_normal"]; ?>
query(" SELECT COUNT(*) FROM hlstats_Events_Teamkills LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Teamkills.serverId WHERE hlstats_Servers.game='$game' AND killerId='$player' "); list($playerdata["teamkills"]) = $db->fetch_row(); echo $playerdata["teamkills"]; echo $g_options["fontend_normal"]; ?>
query(" SELECT IFNULL(ROUND((SUM(hlstats_Events_Statsme.hits) / SUM(hlstats_Events_Statsme.shots) * 100), 1), 0.0) AS accuracy FROM hlstats_Events_Statsme LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Statsme.serverId WHERE hlstats_Servers.game='$game' AND playerId='$player' "); list($playerdata["accuracy"]) = $db->fetch_row(); if ($playerdata["accuracy"] == 0) { echo "(Unknown.)"; } else { echo $playerdata["accuracy"] . "%"; } echo $g_options["fontend_normal"]; ?>

\"history.gif\"" . htmlspecialchars($playerdata["lastName"]) . "'s Event History
\n"; ?> ?mode=search&st=player&q=">/search.gif" width=16 height=16 hspace=3 border=0 align="middle" alt="search.gif">Find other players with the same name

query(" SELECT name, lastuse, numuses, kills, deaths, IFNULL( kills / deaths, '-' ) AS kpd, suicides FROM hlstats_PlayerNames WHERE playerId=$player ORDER BY $tblAliases->sort $tblAliases->sortorder LIMIT $tblAliases->startitem,$tblAliases->numperpage "); $resultCount = $db->query(" SELECT COUNT(*) FROM hlstats_PlayerNames WHERE playerId=$player "); list($numitems) = $db->fetch_row($resultCount); if ($numitems > 1) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Aliases
   
draw($result, $numitems, 100); ?>

query(" SELECT hlstats_Actions.description, COUNT(hlstats_Events_PlayerActions.id) AS obj_count, COUNT(hlstats_Events_PlayerActions.id) * hlstats_Actions.reward_player AS obj_bonus FROM hlstats_Actions LEFT JOIN hlstats_Events_PlayerActions ON hlstats_Events_PlayerActions.actionId = hlstats_Actions.id LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_PlayerActions.serverId WHERE hlstats_Servers.game='$game' AND hlstats_Events_PlayerActions.playerId=$player GROUP BY hlstats_Actions.id ORDER BY $tblPlayerActions->sort $tblPlayerActions->sortorder, $tblPlayerActions->sort2 $tblPlayerActions->sortorder "); $numitems = $db->num_rows($result); if ($numitems > 0) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Player Actions (Last Days)
   
draw($result, $numitems, 100); ?>

query(" SELECT hlstats_Actions.description, COUNT(hlstats_Events_PlayerPlayerActions.id) AS obj_count, COUNT(hlstats_Events_PlayerPlayerActions.id) * hlstats_Actions.reward_player AS obj_bonus FROM hlstats_Actions LEFT JOIN hlstats_Events_PlayerPlayerActions ON hlstats_Events_PlayerPlayerActions.actionId = hlstats_Actions.id LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_PlayerPlayerActions.serverId WHERE hlstats_Servers.game='$game' AND hlstats_Events_PlayerPlayerActions.playerId=$player GROUP BY hlstats_Actions.id ORDER BY $tblPlayerPlayerActions->sort $tblPlayerPlayerActions->sortorder, $tblPlayerPlayerActions->sort2 $tblPlayerPlayerActions->sortorder "); $numitems = $db->num_rows($result); if ($numitems > 0) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Player-Player Actions (Last Days)
   
draw($result, $numitems, 100); ?>

query(" SELECT COUNT(*) FROM hlstats_Events_ChangeTeam WHERE playerId=$player "); list($numteamjoins) = $db->fetch_row(); $result = $db->query(" SELECT IFNULL(hlstats_Teams.name, hlstats_Events_ChangeTeam.team) AS name, COUNT(hlstats_Events_ChangeTeam.id) AS teamcount, COUNT(hlstats_Events_ChangeTeam.id) / $numteamjoins * 100 AS percent FROM hlstats_Events_ChangeTeam LEFT JOIN hlstats_Teams ON hlstats_Events_ChangeTeam.team=hlstats_Teams.code LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_ChangeTeam.serverId WHERE hlstats_Teams.game='$game' AND hlstats_Servers.game='$game' AND hlstats_Events_ChangeTeam.playerId=$player AND (hidden <>'1' OR hidden IS NULL) GROUP BY hlstats_Events_ChangeTeam.team ORDER BY $tblTeams->sort $tblTeams->sortorder, $tblTeams->sort2 $tblTeams->sortorder "); $numitems = $db->num_rows($result); if ($numitems > 0) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Team Selection (Last Days)
   
draw($result, $numitems, 100); ?>

query(" SELECT COUNT(*) FROM hlstats_Events_ChangeRole WHERE playerId=$player "); list($numrolejoins) = $db->fetch_row(); $result = $db->query(" SELECT IFNULL(hlstats_Roles.name, hlstats_Events_ChangeRole.role) AS name, COUNT(hlstats_Events_ChangeRole.id) AS rolecount, COUNT(hlstats_Events_ChangeRole.id) / $numrolejoins * 100 AS percent FROM hlstats_Events_ChangeRole LEFT JOIN hlstats_Roles ON hlstats_Events_ChangeRole.role=hlstats_Roles.code LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_ChangeRole.serverId WHERE hlstats_Servers.game='$game' AND hlstats_Events_ChangeRole.playerId=$player AND (hidden <>'1' OR hidden IS NULL) GROUP BY hlstats_Events_ChangeRole.role ORDER BY $tblRoles->sort $tblRoles->sortorder, $tblRoles->sort2 $tblRoles->sortorder "); $numitems = $db->num_rows($result); if ($numitems > 0) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Role Selection (Last Days)
   
draw($result, $numitems, 100); ?>

query(" SELECT hlstats_Events_Frags.weapon, IFNULL(hlstats_Weapons.modifier, 1.00) AS modifier, COUNT(hlstats_Events_Frags.weapon) AS kills, COUNT(hlstats_Events_Frags.weapon) / $realkills * 100 AS percent FROM hlstats_Events_Frags LEFT JOIN hlstats_Weapons ON hlstats_Weapons.code = hlstats_Events_Frags.weapon LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Frags.serverId WHERE hlstats_Servers.game='$game' AND hlstats_Events_Frags.killerId=$player AND (hlstats_Weapons.game='$game' OR hlstats_Weapons.weaponId IS NULL) GROUP BY hlstats_Events_Frags.weapon ORDER BY $tblWeapons->sort $tblWeapons->sortorder, $tblWeapons->sort2 $tblWeapons->sortorder "); ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Weapon Usage (Last Days)
   
draw($result, $db->num_rows($result), 100); ?>

query(" SELECT hlstats_Events_Statsme.weapon AS smweapon, SUM(hlstats_Events_Statsme.kills) AS smkills, SUM(hlstats_Events_Statsme.hits) AS smhits, SUM(hlstats_Events_Statsme.shots) AS smshots, SUM(hlstats_Events_Statsme.headshots) AS smheadshots, SUM(hlstats_Events_Statsme.deaths) AS smdeaths, SUM(hlstats_Events_Statsme.damage) AS smdamage, IFNULL((ROUND((SUM(hlstats_Events_Statsme.damage) / SUM(hlstats_Events_Statsme.hits)), 1)), '-') as smdhr, SUM(hlstats_Events_Statsme.kills) / IF((SUM(hlstats_Events_Statsme.deaths)=0), 1, (SUM(hlstats_Events_Statsme.deaths))) as smkdr, ROUND((SUM(hlstats_Events_Statsme.hits) / SUM(hlstats_Events_Statsme.shots) * 100), 1) as smaccuracy, IFNULL((ROUND((SUM(hlstats_Events_Statsme.shots) / SUM(hlstats_Events_Statsme.kills)), 1)), '-') as smspk FROM hlstats_Events_Statsme LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Statsme.serverId WHERE hlstats_Servers.game='$game' AND hlstats_Events_Statsme.PlayerId=$player GROUP BY hlstats_Events_Statsme.weapon ORDER BY $tblWeaponstats->sort $tblWeaponstats->sortorder, $tblWeaponstats->sort2 $tblWeaponstats->sortorder "); if ($db->num_rows($result) != 0) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Weapon Stats (Last Days)
   
draw($result, $db->num_rows($result), 100); ?>

query(" SELECT hlstats_Events_Statsme2.weapon AS smweapon, SUM(hlstats_Events_Statsme2.head) AS smhead, SUM(hlstats_Events_Statsme2.chest) AS smchest, SUM(hlstats_Events_Statsme2.stomach) AS smstomach, SUM(hlstats_Events_Statsme2.leftarm) AS smleftarm, SUM(hlstats_Events_Statsme2.rightarm) AS smrightarm, SUM(hlstats_Events_Statsme2.leftleg) AS smleftleg, SUM(hlstats_Events_Statsme2.rightleg) AS smrightleg, IFNULL(ROUND((SUM(hlstats_Events_Statsme2.leftarm) + SUM(hlstats_Events_Statsme2.leftleg)) / (SUM(hlstats_Events_Statsme2.head) + SUM(hlstats_Events_Statsme2.chest) + SUM(hlstats_Events_Statsme2.stomach) + SUM(hlstats_Events_Statsme2.leftarm ) + SUM(hlstats_Events_Statsme2.rightarm) + SUM(hlstats_Events_Statsme2.leftleg) + SUM(hlstats_Events_Statsme2.rightleg)) * 100, 1), 0.0) AS smleft, IFNULL(ROUND((SUM(hlstats_Events_Statsme2.rightarm) + SUM(hlstats_Events_Statsme2.rightleg)) / (SUM(hlstats_Events_Statsme2.head) + SUM(hlstats_Events_Statsme2.chest) + SUM(hlstats_Events_Statsme2.stomach) + SUM(hlstats_Events_Statsme2.leftarm ) + SUM(hlstats_Events_Statsme2.rightarm) + SUM(hlstats_Events_Statsme2.leftleg) + SUM(hlstats_Events_Statsme2.rightleg)) * 100, 1), 0.0) AS smright, IFNULL(ROUND((SUM(hlstats_Events_Statsme2.head) + SUM(hlstats_Events_Statsme2.chest) + SUM(hlstats_Events_Statsme2.stomach)) / (SUM(hlstats_Events_Statsme2.head) + SUM(hlstats_Events_Statsme2.chest) + SUM(hlstats_Events_Statsme2.stomach) + SUM(hlstats_Events_Statsme2.leftarm ) + SUM(hlstats_Events_Statsme2.rightarm) + SUM(hlstats_Events_Statsme2.leftleg) + SUM(hlstats_Events_Statsme2.rightleg)) * 100, 1), 0.0) AS smmiddle FROM hlstats_Events_Statsme2 LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Statsme2.serverId WHERE hlstats_Servers.game='$game' AND hlstats_Events_Statsme2.PlayerId=$player GROUP BY hlstats_Events_Statsme2.weapon ORDER BY $tblWeaponstats2->sort $tblWeaponstats2->sortorder, $tblWeaponstats2->sort2 $tblWeaponstats2->sortorder "); if ($db->num_rows($result) != 0) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Weapon Target (Last Days)
   
draw($result, $db->num_rows($result), 100); ?>

query(" SELECT IF(map='', '(Unaccounted)', map) AS map, SUM(killerId=$player) AS kills, SUM(victimId=$player) AS deaths, IFNULL(SUM(killerId=$player) / SUM(victimId=$player), '-') AS kpd, ROUND(CONCAT(SUM(killerId=$player)) / $realkills * 100, 2) AS percentage # workaround weird mysql bug FROM hlstats_Events_Frags LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Frags.serverId WHERE hlstats_Servers.game='$game' AND killerId='$player' OR victimId='$player' GROUP BY map ORDER BY $tblMaps->sort $tblMaps->sortorder, $tblMaps->sort2 $tblMaps->sortorder "); ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Map Performance (Last Days)
   
draw($result, $db->num_rows($result), 100); ?>

query("DROP TABLE IF EXISTS hlstats_Frags_Kills"); $db->query(" CREATE TEMPORARY TABLE hlstats_Frags_Kills ( playerId INT(10), kills INT(10), deaths INT(10) ) "); $db->query(" INSERT INTO hlstats_Frags_Kills ( playerId, kills ) SELECT victimId, killerId FROM hlstats_Events_Frags LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Frags.serverId WHERE hlstats_Servers.game='$game' AND killerId = $player "); $db->query(" INSERT INTO hlstats_Frags_Kills ( playerId, deaths ) SELECT killerId, victimId FROM hlstats_Events_Frags LEFT JOIN hlstats_Servers ON hlstats_Servers.serverId=hlstats_Events_Frags.serverId WHERE hlstats_Servers.game='$game' AND victimId = $player "); $result = $db->query(" SELECT hlstats_Players.lastName AS name, Count(hlstats_Frags_Kills.kills) AS kills, Count(hlstats_Frags_Kills.deaths) AS deaths, hlstats_Frags_Kills.playerId as victimId, IFNULL(Count(hlstats_Frags_Kills.kills)/Count(hlstats_Frags_Kills.deaths), IFNULL(FORMAT(Count(hlstats_Frags_Kills.kills), 2), '-')) AS kpd FROM hlstats_Frags_Kills INNER JOIN hlstats_Players ON hlstats_Frags_Kills.playerId = hlstats_Players.playerId GROUP BY hlstats_Frags_Kills.playerId HAVING Count(hlstats_Frags_Kills.kills) >= $killLimit ORDER BY $tblPlayerKillStats->sort $tblPlayerKillStats->sortorder, $tblPlayerKillStats->sort2 $tblPlayerKillStats->sortorder "); $numitems = $db->num_rows($result); if ($numitems > 0) { ?>
 /downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Player Kill Statistics ( or more kills) (Last Days)
   
draw($result, $numitems, 100); ?>
 
"> Show people this person has killed or more times in the last days



Note Player event histories cover only the last days. Items marked "Last Days" or "*" above are generated from the player's Event History. Player kill, death and suicide totals and points ratings cover the entire recorded period.


Admin Options: ">Edit Player Details