query("
SELECT
hlstats_Players.lastName,
hlstats_Players.game
FROM
hlstats_Players
WHERE
playerId=$player
");
if ($db->num_rows() != 1)
error("No such player '$player'.");
$playerdata = $db->fetch_array();
$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));
$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, "Event History", $pl_name),
array(
$gamename=>$g_options["scripturl"] . "?game=$game",
"Player Rankings"=>$g_options["scripturl"] . "?mode=players&game=$game",
"Player Details"=>$g_options["scripturl"] . "?mode=playerinfo&player=$player",
"Event History"=>""
),
$playername
);
flush();
$table = new Table(
array(
new TableColumn(
"eventTime",
"Date",
"width=20"
),
new TableColumn(
"eventType",
"Type",
"width=10&align=center"
),
new TableColumn(
"eventDesc",
"Description",
"width=40&sort=no&append=.&embedlink=yes"
),
new TableColumn(
"serverName",
"Server",
"width=20"
),
new TableColumn(
"map",
"Map",
"width=10"
)
),
"eventTime",
"eventTime",
"eventType",
false,
50,
"page",
"sort",
"sortorder"
);
$surl = $g_options["scripturl"];
// This would be better done with a UNION query, I think, but MySQL doesn't
// support them yet. (NOTE you need MySQL 3.23 for temporary table support.)
$db->query("DROP TABLE IF EXISTS hlstats_EventHistory");
$db->query("
CREATE TEMPORARY TABLE hlstats_EventHistory
(
eventType VARCHAR(32) NOT NULL,
eventTime DATETIME NOT NULL,
eventDesc VARCHAR(255) NOT NULL,
serverName VARCHAR(32) NOT NULL,
map VARCHAR(32) NOT NULL
)
");
function insertEvents ($table, $select)
{
global $db;
$select = str_replace("
", "hlstats_Events_$table", $select);
$db->query("
INSERT INTO
hlstats_EventHistory
(
eventType,
eventTime,
eventDesc,
serverName,
map
)
$select
");
}
insertEvents("TeamBonuses", "
SELECT
'Team Bonus',
.eventTime,
CONCAT('My team received a points bonus of ', bonus, ' for triggering \"', hlstats_Actions.description, '\"'),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Actions ON
.actionId = hlstats_Actions.id
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
WHERE
.playerId=$player
");
if (MODE == "LAN")
$uqIdStr = "IP Address:";
else
$uqIdStr = "Unique ID:";
insertEvents("Connects", "
SELECT
'Connect',
.eventTime,
CONCAT('I connected to the server'),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
WHERE
.playerId=$player
");
insertEvents("Disconnects", "
SELECT
'Disconnect',
.eventTime,
'I left the game',
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
WHERE
.playerId=$player
");
insertEvents("Entries", "
SELECT
'Entry',
.eventTime,
'I entered the game',
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
WHERE
.playerId=$player
");
insertEvents("Frags", "
SELECT
'Kill',
.eventTime,
CONCAT('I killed %A%$surl?mode=playerinfo&player=', victimId, '%', hlstats_Players.lastName, '%/A%', ' with ', weapon),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Players ON
hlstats_Players.playerId = .victimId
WHERE
.killerId=$player
");
insertEvents("Frags", "
SELECT
'Death',
.eventTime,
CONCAT('%A%$surl?mode=playerinfo&player=', killerId, '%', hlstats_Players.lastName, '%/A%', ' killed me with ', weapon),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Players On
hlstats_Players.playerId = .killerId
WHERE
.victimId=$player
");
insertEvents("Teamkills", "
SELECT
'Team Kill',
.eventTime,
CONCAT('I killed teammate %A%$surl?mode=playerinfo&player=', victimId, '%', hlstats_Players.lastName, '%/A%', ' with ', weapon),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Players On
hlstats_Players.playerId = .victimId
WHERE
.killerId=$player
");
insertEvents("Teamkills", "
SELECT
'Friendly Fire',
.eventTime,
CONCAT('My teammate %A%$surl?mode=playerinfo&player=', killerId, '%', hlstats_Players.lastName, '%/A%', ' killed me with ', weapon),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Players On
hlstats_Players.playerId = .killerId
WHERE
.victimId=$player
");
insertEvents("ChangeRole", "
SELECT
'Role',
.eventTime,
CONCAT('I changed role to ', role),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
WHERE
.playerId=$player
");
insertEvents("ChangeName", "
SELECT
'Name',
.eventTime,
CONCAT('I changed my name from \"', oldName, '\" to \"', newName, '\"'),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
WHERE
.playerId=$player
");
insertEvents("PlayerActions", "
SELECT
'Action',
.eventTime,
CONCAT('I received a points bonus of ', bonus, ' for triggering \"', hlstats_Actions.description, '\"'),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Actions ON
hlstats_Actions.id = .actionId
WHERE
.playerId=$player
");
insertEvents("PlayerPlayerActions", "
SELECT
'Action',
.eventTime,
CONCAT('I received a points bonus of ', bonus, ' for triggering \"', hlstats_Actions.description, '\" against %A%$surl?mode=playerinfo&player=', victimId, '%', hlstats_Players.lastName, '%/A%'),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Actions ON
hlstats_Actions.id = .actionId
LEFT JOIN hlstats_Players ON
hlstats_Players.playerId = .victimId
WHERE
.playerId=$player
");
insertEvents("PlayerPlayerActions", "
SELECT
'Action',
.eventTime,
CONCAT('%A%$surl?mode=playerinfo&player=', .playerId, '%', hlstats_Players.lastName, '%/A% triggered \"', hlstats_Actions.description, '\" against me'),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Actions ON
hlstats_Actions.id = .actionId
LEFT JOIN hlstats_Players ON
hlstats_Players.playerId = .playerId
WHERE
.victimId=$player
");
insertEvents("Suicides", "
SELECT
'Suicide',
.eventTime,
CONCAT('I committed suicide with \"', weapon, '\"'),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
WHERE
.playerId=$player
");
insertEvents("ChangeTeam", "
SELECT
'Team',
.eventTime,
IF(hlstats_Teams.name IS NULL,
CONCAT('I joined team \"', team, '\"'),
CONCAT('I joined team \"', team, '\" (', hlstats_Teams.name, ')')
),
hlstats_Servers.name,
.map
FROM
LEFT JOIN hlstats_Servers ON
hlstats_Servers.serverId = .serverId
LEFT JOIN hlstats_Teams ON
hlstats_Teams.code = .team
WHERE
.playerId=$player
");
$result = $db->query("
SELECT
eventTime,
eventType,
eventDesc,
serverName,
map
FROM
hlstats_EventHistory
ORDER BY
$table->sort $table->sortorder,
$table->sort2 $table->sortorder
LIMIT
$table->startitem,$table->numperpage
");
$resultCount = $db->query("
SELECT
COUNT(*)
FROM
hlstats_EventHistory
");
list($numitems) = $db->fetch_row($resultCount);
?>
/downarrow.gif" width=9 height=6 border=0 align="middle" alt="downarrow.gif"> Player Event History (Last Days)
draw($result, $numitems, 100);
?> |