diff --git a/system/pages/lastkills.php b/system/pages/lastkills.php index 5d915659..bc25a966 100644 --- a/system/pages/lastkills.php +++ b/system/pages/lastkills.php @@ -11,26 +11,26 @@ defined('MYAAC') or die('Direct access not allowed!'); $title = 'Last Kills'; +$deaths_list = array(); $players_deaths_count = 0; -$players_rows = ''; $tmp = null; if($cache->enabled() && $cache->fetch('lastkills', $tmp)) { $tmp = unserialize($tmp); - $players_rows = $tmp['rows']; - $players_deaths_count = $tmp['count']; + $deaths_list = $tmp['deaths_list']; } else { 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(); + $players_deaths_count++; + $killers_string = getPlayerLink($death['name']) . ' '; + $killer_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); @@ -39,72 +39,78 @@ else { if($killer['player_name'] != "") { if($i == 1) { if($count <= 4) - $players_rows .= 'killed'; + $killers_string .= 'killed'; else if($count > 4 and $count < 10) - $players_rows .= 'slain'; + $killers_string .= 'slain'; else if($count > 9 and $count < 15) - $players_rows .= 'crushed'; + $killers_string .= 'crushed'; else if($count > 14 and $count < 20) - $players_rows .= 'eliminated'; + $killers_string .= 'eliminated'; else if($count > 19) - $players_rows .= 'annihilated'; - - $players_rows .= 'at level ' . $death['level'] . ' by '; + $killers_string .= 'annihilated'; + $killers_string .= ' at level ' . $death['level'] . ' '; } else if($i == $count) - $players_rows .= ' and'; + $killers_string .= ' and'; else - $players_rows .= ','; + $killers_string .= ','; - $players_rows .= ' by '; + $killers_string .= ' by '; if($killer['monster_name'] != '') - $players_rows .= $killer['monster_name'] . ' summoned by '; + $killers_string .= $killer['monster_name'] . ' summoned by '; if($killer['player_exists'] == 0) - $players_rows .= getPlayerLink($killer['player_name']); + $killers_string .= getPlayerLink($killer['player_name']); } else { if($i == 1) - $players_rows .= 'died at level ' . $death['level'] . ''; + $killers_string .= 'died at level ' . $death['level'] . ''; else if($i == $count) - $players_rows .= ' and'; + $killers_string .= ' and'; else - $players_rows .= ','; + $killers_string .= ','; - $players_rows .= ' by ' . $killer['monster_name']; + $killers_string .= ' by ' . $killer['monster_name']; } } - $players_rows .= '.'; - if($config['multiworld']) - $player_rows .= '' . $config['worlds'][(int)$death['world_id']] . ''; + $killers_string .= '.'; - $players_rows .= ''; + $deaths_list[] = array( + 'id' => $players_deaths_count, + 'date' => $death['date'], + 'killers_string' => $killers_string, + 'world_id' => $config['worlds'][(int)$death['world_id']] + ); } } } 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 '; + $killers_string .= getPlayerLink($death['victim']) . ' died at level ' . $death['level'] . ' by '; if($death['is_player'] == '1') - $players_rows .= getPlayerLink($death['killed_by']); + $killers_string .= getPlayerLink($death['killed_by']); else - $players_rows .= $death['killed_by']; + $killers_string .= $death['killed_by']; - $players_rows .= '.'; + $killers_string .= '.'; + + $deaths_list[] = array( + 'id' => $players_deaths_count, + 'date' => $death['date'], + 'killers_string' => $killers_string, + ); } - } + } } if($cache->enabled()) { - $cache->set('lastkills', serialize(array('rows' => $players_rows, 'count' => $players_deaths_count)), 60); + $cache->set('lastkills', serialize(array('deaths_list' => $deaths_list)), 60); } } -if($players_deaths_count === 0) - echo '
Last Deaths
No one died on '.$config['lua']['serverName'].'.

'; -else - echo '
Last Deaths
'.$players_rows.'
'; -?> +$twig->display('lastkills.html.twig', array( + 'lastkills' => $deaths_list +)); +?> \ No newline at end of file diff --git a/system/templates/lastkills.html.twig b/system/templates/lastkills.html.twig new file mode 100644 index 00000000..d9970e9a --- /dev/null +++ b/system/templates/lastkills.html.twig @@ -0,0 +1,49 @@ +
+ +
+
+ + + + +
Last Kills
+ + + + +
+
+ + + +
+
+ + {% if lastkills|length <= 0 %} + + {% else %} + {% for lastkill in lastkills %} + + + + + {% if config.multiworld %} + + {% endif %} + + {% endfor %} + {% endif %} +
+ No one died on {{ config.lua.serverName }} +
+ {{ lastkill.id }} + + {{ lastkill.date|date("j.m.Y, G:i:s") }} + + {{ lastkill.killers_string|raw }} + + {{ lastkill.world_id }} +
+
+
+
\ No newline at end of file