diff --git a/system/pages/lastkills.php b/system/pages/lastkills.php
index bea4b9a4..5d915659 100644
--- a/system/pages/lastkills.php
+++ b/system/pages/lastkills.php
@@ -13,95 +13,97 @@ $title = 'Last Kills';
$players_deaths_count = 0;
$players_rows = '';
-if($db->hasTable('player_killers')) // tfs 0.3
-{
- $players_deaths = $db->query('SELECT `player_deaths`.`id`, `player_deaths`.`date`, `player_deaths`.`level`, `players`.`name`' . ($db->hasColumn('players', 'world_id') ? ', `players`.`world_id`' : '') . ' FROM `player_deaths` LEFT JOIN `players` ON `player_deaths`.`player_id` = `players`.`id` ORDER BY `date` DESC LIMIT 0, ' . $config['last_kills_limit']);
- if(!empty($players_deaths))
- {
- foreach($players_deaths as $death)
- {
- $players_rows .= '
'.$players_deaths_count.'. | '.date("j.m.Y, G:i:s",$death['date']).' | ' . getPlayerLink($death['name']). ' ';
- $killers = $db->query("SELECT environment_killers.name AS monster_name, players.name AS player_name, players.deleted AS player_exists
- FROM killers LEFT JOIN environment_killers ON killers.id = environment_killers.kill_id
- LEFT JOIN player_killers ON killers.id = player_killers.kill_id LEFT JOIN players ON players.id = player_killers.player_id
- WHERE killers.death_id = '".$death['id']."' ORDER BY killers.final_hit DESC, killers.id ASC")->fetchAll();
- $i = 0;
- $count = count($killers);
- foreach($killers as $killer)
- {
- $i++;
- if($killer['player_name'] != "")
- {
- if($i == 1)
- {
- if($count <= 4)
- $players_rows .= 'killed';
- elseif($count > 4 and $count < 10)
- $players_rows .= 'slain';
- elseif($count > 9 and $count < 15)
- $players_rows .= 'crushed';
- elseif($count > 14 and $count < 20)
- $players_rows .= 'eliminated';
- elseif($count > 19)
- $players_rows .= 'annihilated';
-
- $players_rows .= 'at level ' . $death['level'] . ' by ';
- }
- else if($i == $count)
- $players_rows .= ' and';
- else
- $players_rows .= ',';
-
- $players_rows .= ' by ';
- if($killer['monster_name'] != '')
- $players_rows .= $killer['monster_name'] . ' summoned by ';
-
- if($killer['player_exists'] == 0)
- $players_rows .= getPlayerLink($killer['player_name']);
- }
- else
- {
- if($i == 1)
- $players_rows .= 'died at level ' . $death['level'] . '';
- else if($i == $count)
- $players_rows .= ' and';
- else
- $players_rows .= ',';
-
- $players_rows .= ' by ' . $killer['monster_name'];
- }
- }
-
- $players_rows .= '. | ';
- if($config['multiworld'])
- $player_rows .= ''.$config['worlds'][(int)$death['world_id']].' | ';
-
- $players_rows .= '
';
- }
- }
+$tmp = null;
+if($cache->enabled() && $cache->fetch('lastkills', $tmp)) {
+ $tmp = unserialize($tmp);
+ $players_rows = $tmp['rows'];
+ $players_deaths_count = $tmp['count'];
}
else {
- //$players_deaths = $db->query("SELECT `p`.`name` AS `victim`, `player_deaths`.`killed_by` as `killed_by`, `player_deaths`.`time` as `time`, `player_deaths`.`is_player` as `is_player`, `player_deaths`.`level` as `level` FROM `player_deaths`, `players` as `d` INNER JOIN `players` as `p` ON player_deaths.player_id = p.id WHERE player_deaths.`is_player`='1' ORDER BY `time` DESC LIMIT " . $config['last_kills_limit'] . ";");
-
-$players_deaths = $db->query("SELECT `p`.`name` AS `victim`, `d`.`killed_by` as `killed_by`, `d`.`time` as `time`, `d`.`level`, `d`.`is_player` FROM `player_deaths` as `d` INNER JOIN `players` as `p` ON d.player_id = p.id ORDER BY `time` DESC LIMIT 20;");
-
- if(!empty($players_deaths))
+ if($db->hasTable('player_killers')) // tfs 0.3
{
- foreach($players_deaths as $death)
- {
- $players_rows .= ''.$players_deaths_count.'. | '.date("j.m.Y, G:i:s",$death['time']).' | ' . getPlayerLink($death['victim']). ' died at level ' . $death['level'] . ' by ';
- if($death['is_player'] == '1')
- $players_rows .= getPlayerLink($death['killed_by']);
- else
- $players_rows .= $death['killed_by'];
+ $players_deaths = $db->query('SELECT `player_deaths`.`id`, `player_deaths`.`date`, `player_deaths`.`level`, `players`.`name`' . ($db->hasColumn('players', 'world_id') ? ', `players`.`world_id`' : '') . ' FROM `player_deaths` LEFT JOIN `players` ON `player_deaths`.`player_id` = `players`.`id` ORDER BY `date` DESC LIMIT 0, ' . $config['last_kills_limit']);
+ if(!empty($players_deaths)) {
+ foreach($players_deaths as $death) {
+ $players_rows .= ' |
' . $players_deaths_count . '. | ' . date("j.m.Y, G:i:s", $death['date']) . ' | ' . getPlayerLink($death['name']) . ' ';
+ $killers = $db->query("SELECT environment_killers.name AS monster_name, players.name AS player_name, players.deleted AS player_exists
+ FROM killers LEFT JOIN environment_killers ON killers.id = environment_killers.kill_id
+ LEFT JOIN player_killers ON killers.id = player_killers.kill_id LEFT JOIN players ON players.id = player_killers.player_id
+ WHERE killers.death_id = '" . $death['id'] . "' ORDER BY killers.final_hit DESC, killers.id ASC")->fetchAll();
- $players_rows .= '. |
';
+ $i = 0;
+ $count = count($killers);
+ foreach($killers as $killer) {
+ $i++;
+ if($killer['player_name'] != "") {
+ if($i == 1) {
+ if($count <= 4)
+ $players_rows .= 'killed';
+ else if($count > 4 and $count < 10)
+ $players_rows .= 'slain';
+ else if($count > 9 and $count < 15)
+ $players_rows .= 'crushed';
+ else if($count > 14 and $count < 20)
+ $players_rows .= 'eliminated';
+ else if($count > 19)
+ $players_rows .= 'annihilated';
+
+ $players_rows .= 'at level ' . $death['level'] . ' by ';
+ } else if($i == $count)
+ $players_rows .= ' and';
+ else
+ $players_rows .= ',';
+
+ $players_rows .= ' by ';
+ if($killer['monster_name'] != '')
+ $players_rows .= $killer['monster_name'] . ' summoned by ';
+
+ if($killer['player_exists'] == 0)
+ $players_rows .= getPlayerLink($killer['player_name']);
+ } else {
+ if($i == 1)
+ $players_rows .= 'died at level ' . $death['level'] . '';
+ else if($i == $count)
+ $players_rows .= ' and';
+ else
+ $players_rows .= ',';
+
+ $players_rows .= ' by ' . $killer['monster_name'];
+ }
+ }
+
+ $players_rows .= '.';
+ if($config['multiworld'])
+ $player_rows .= '' . $config['worlds'][(int)$death['world_id']] . ' | ';
+
+ $players_rows .= '';
+ }
}
+ } else {
+ //$players_deaths = $db->query("SELECT `p`.`name` AS `victim`, `player_deaths`.`killed_by` as `killed_by`, `player_deaths`.`time` as `time`, `player_deaths`.`is_player` as `is_player`, `player_deaths`.`level` as `level` FROM `player_deaths`, `players` as `d` INNER JOIN `players` as `p` ON player_deaths.player_id = p.id WHERE player_deaths.`is_player`='1' ORDER BY `time` DESC LIMIT " . $config['last_kills_limit'] . ";");
+
+ $players_deaths = $db->query("SELECT `p`.`name` AS `victim`, `d`.`killed_by` as `killed_by`, `d`.`time` as `time`, `d`.`level`, `d`.`is_player` FROM `player_deaths` as `d` INNER JOIN `players` as `p` ON d.player_id = p.id ORDER BY `time` DESC LIMIT 20;");
+
+ if(!empty($players_deaths)) {
+ foreach($players_deaths as $death) {
+ $players_rows .= '' . $players_deaths_count . '. | ' . date("j.m.Y, G:i:s", $death['time']) . ' | ' . getPlayerLink($death['victim']) . ' died at level ' . $death['level'] . ' by ';
+ if($death['is_player'] == '1')
+ $players_rows .= getPlayerLink($death['killed_by']);
+ else
+ $players_rows .= $death['killed_by'];
+
+ $players_rows .= '. |
';
+ }
+ }
+ }
+
+ if($cache->enabled()) {
+ $cache->set('lastkills', serialize(array('rows' => $players_rows, 'count' => $players_deaths_count)), 60);
}
}
-if($players_deaths_count == 0)
+if($players_deaths_count === 0)
echo 'Last Deaths |
No one died on '.$config['lua']['serverName'].'. |
|
';
else
echo '';