\'' . $mintime . '\' OR session_endtime > \'' . $mintime . '\' ) AND player_id = ' . $playerid . ' ORDER BY session_starttime DESC LIMIT 0,100'; $res = mysql_query($sql) or print(mysql_error()); while ($row = mysql_fetch_assoc($res)) { if (strtotime($row['session_starttime']) > strtotime($mintime)) { $row['time'] = $row['session_starttime']; $events[] = $row; } if (strtotime($row['session_endtime']) > strtotime($mintime)) { $row['time'] = $row['session_endtime']; $events[] = $row; } } // Roles $sql = 'SELECT class_name, class_displayname, session_alias, roleperiod_team, roleperiod_starttime FROM roleperiods NATURAL JOIN sessions NATURAL JOIN classes WHERE player_id = ' . $playerid . ' AND roleperiod_starttime > \'' . $mintime . '\' ORDER BY roleperiod_starttime DESC LIMIT 0,100'; $res = mysql_query($sql); while ($row = mysql_fetch_assoc($res)) { $row['time'] = $row['roleperiod_starttime']; $events[] = $row; } usort($events, 'eventSort'); echo ''; $i = 0; foreach (array_slice($events, 0, 100) as $event) { echo ''; if (isset($event['kill_timestamp'])) { displayKill($event, $playerid); } else if (isset($event['session_starttime'])) { displaySession($event); } else if (isset($event['roleperiod_starttime'])) { displayRoleChange($event); } echo '', "\n"; } echo '
TimeEvent
', str_replace(' ', '
', $event['time']), '
'; } function displayRoleChange($event) { $text = getTeam($event['roleperiod_team']) . ' ' . strtolower($event['class_displayname']); echo '', $text, ' ', htmlentities($event['session_alias'], ENT_COMPAT, 'UTF-8'); echo ' changed to a ', $text, ''; } function displayKill($event, $playerid) { $me = null; if ($event['killerID'] == $playerid) { $me = 'killer'; } else if ($event['victimID'] == $playerid) { $me = 'victim'; } else { $me = 'assist'; } call_user_func('displayKill' . ucfirst($me), $event); } function getTeam($team) { switch ((int) $team) { case 1: return 'red'; case 2: return 'blue'; } } function displayPerson($event, $who, $link = true, $link2 = true) { echo '' , getTeam($event[$who . 'Team']), ' ', $event[$who . 'Class'], ' '; if ($link) { echo ''; } echo htmlentities($event[$who . 'Name'], ENT_COMPAT, 'UTF-8'); if ($link) { echo ''; } if ($who == 'killer' && $event['assistID'] > 0) { echo ',' , getTeam($event['assistTeam']), ' ', $event['assistClass'], ' '; if ($link2) { echo ''; } echo htmlentities($event['assistName'], ENT_COMPAT, 'UTF-8'); if ($link2) { echo ''; } } echo ''; } function displayWeapon($event) { echo ''; } function displayKillKiller($event) { displayPerson($event, 'killer', false); echo 'killed'; displayPerson($event, 'victim'); echo 'with'; displayWeapon($event); } function displayKillVictim($event) { displayPerson($event, 'killer'); echo 'killed'; displayPerson($event, 'victim', false); echo 'with'; displayWeapon($event); } function displayKillAssist($event) { displayPerson($event, 'killer', true, false); echo 'killed'; displayPerson($event, 'victim'); echo 'with'; displayWeapon($event); } function displaySession($event) { echo ''; echo '', $event['map_name'], ' '; if ($event['session_starttime'] == $event['time']) { echo htmlentities($event['session_alias'], ENT_COMPAT, 'UTF-8'), ' joined the server'; } else { echo htmlentities($event['session_alias'], ENT_COMPAT, 'UTF-8'), ' left the server'; } echo ''; } ?>