diff --git a/system/pages/characters.php b/system/pages/characters.php index c38a289c..3128daa3 100644 --- a/system/pages/characters.php +++ b/system/pages/characters.php @@ -8,6 +8,9 @@ * @copyright 2019 MyAAC * @link https://my-aac.org */ + +use MyAAC\Models\PlayerDeath; + defined('MYAAC') or die('Direct access not allowed!'); $title = 'Characters'; @@ -322,17 +325,35 @@ WHERE killers.death_id = '".$death['id']."' ORDER BY killers.final_hit DESC, kil $frags = array(); $frag_add_content = ''; - if($config['characters']['frags'] && $db->hasTable('killers')) { - //frags list by Xampy - $i = 0; + if ($config['characters']['frags']) { $frags_limit = 10; // frags limit to show? // default: 10 - $player_frags = $db->query('SELECT `player_deaths`.*, `players`.`name`, `killers`.`unjustified` FROM `player_deaths` LEFT JOIN `killers` ON `killers`.`death_id` = `player_deaths`.`id` LEFT JOIN `player_killers` ON `player_killers`.`kill_id` = `killers`.`id` LEFT JOIN `players` ON `players`.`id` = `player_deaths`.`player_id` WHERE `player_killers`.`player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,'.$frags_limit.';')->fetchAll(); - if(count($player_frags)) { - $row_count = 0; - foreach($player_frags as $frag) - { - $description = 'Fragged ' . $frag['name'] . ' at level ' . $frag['level']; - $frags[] = array('time' => $frag['date'], 'description' => $description, 'unjustified' => $frag['unjustified'] != 0); + + if ($db->hasTable('killers')) { + //frags list by Xampy + $i = 0; + $player_frags = $db->query('SELECT `player_deaths`.*, `players`.`name`, `killers`.`unjustified` FROM `player_deaths` LEFT JOIN `killers` ON `killers`.`death_id` = `player_deaths`.`id` LEFT JOIN `player_killers` ON `player_killers`.`kill_id` = `killers`.`id` LEFT JOIN `players` ON `players`.`id` = `player_deaths`.`player_id` WHERE `player_killers`.`player_id` = ' . $player->getId() . ' ORDER BY `date` DESC LIMIT 0,' . $frags_limit . ';')->fetchAll(); + if (count($player_frags)) { + $row_count = 0; + foreach ($player_frags as $frag) { + $description = 'Fragged ' . $frag['name'] . ' at level ' . $frag['level']; + $frags[] = array('time' => $frag['date'], 'description' => $description, 'unjustified' => $frag['unjustified'] != 0); + } + } + } + else if($db->hasTable('player_deaths') && $db->hasColumn('player_deaths', 'killed_by')) { + $i = 0; + $player_frags = PlayerDeath::where('player_deaths.killed_by', $player->getName()) + ->join('players', 'players.id', '=', 'player_deaths.player_id') + ->limit($frags_limit) + ->selectRaw('players.name, player_deaths.*') + ->get(); + + if ($player_frags->count()) { + $row_count = 0; + foreach ($player_frags as $frag) { + $description = 'Fragged ' . $frag->name . ' at level ' . $frag->level; + $frags[] = array('time' => $frag->time, 'description' => $description, 'unjustified' => $frag->unjustified != 0); + } } } }