• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Players Death

president vankk

Web Developer & AuraOT Owner
Joined
Jul 10, 2009
Messages
5,719
Solutions
9
Reaction score
339
PHP:
	<div class="message">
    <div class="title">
    Player Deaths</div>	
    <div class="content">
<?php
	if(!defined('BASEPATH')) exit('No direct script access allowed');

	$player = $GLOBALS['player'];
	$SQL = POT::getInstance()->getDBHandle();
	$deaths = $SQL->query("SELECT `player_deaths`.`id`, `player_deaths`.`date`, `player_deaths`.`level` FROM `player_deaths` WHERE `player_deaths`.`player_id` = {$player->getId()} ORDER BY `player_deaths`.`date` DESC LIMIT 0,10;");
    
    echo '<table style="width: 100%; margin: 10px 0px 10px 0px;" cellspacing="0" cellpadding="10" class="cellspadding">';

	if($deaths->rowCount())
	{
		foreach($deaths as $death)
		{
			$i = 0;
			$killers = $SQL->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` = {$SQL->quote($death['id'])} ORDER BY `killers`.`final_hit` DESC, `killers`.`id` ASC")->fetchAll();


			foreach($killers as $killer)
			{
				$i++;
				$str = (count($killers) >= 20 ? "Annihilated" : (count($killers) >= 15 ? "Eliminated" : (count($killers) >= 10 ? "Crushed" : (count($killers) >= 5 ? "Slain" : "Killed"))));
				if(!empty($killer['monster_name']))
					$killer['monster_name'] = (!in_array($i, array(1, count($killers))) ? str_replace(array("an ", "a "), array("", ""), $killer['monster_name']) : $killer['monster_name']);
                echo'<tr class="tablerow">
			<td width="25%"><strong>'.date("j M Y, H:i", $death['date']).'</strong></td>
			<td>';
				echo (!empty($killer['player_name']) ? ($i == 1 ? "{$str} at Level {$death['level']} by " : ($i == count($killers) ? " and " : ", ")).(!empty($killer['monster_name']) ? "{$killer['monster_name']} of " : "").($killer['player_exists'] == 0 ? "<a href=\"".WEBSITE."/index.php/character/view/{$killer['player_name']}\">{$killer['player_name']}</a>" : $killer['player_name']) : ($i == 1 ? "Died at Level {$death['level']} by {$killer['monster_name']}" : ($i == count($killers) ? " and {$killer['monster_name']}" : ", {$killer['monster_name']}")));
			}

			echo ".</td></tr>";
		}
	}
		echo '</table>';
?>
</div></div>

ERROR:

ECy9alcjzz.png
 
Hmmm, what's weird is that both "and a juggernaut" death and the one above are both at the same time.
The problem is in the actual page .. It's bringing the "and" to another row. They are both the same kill.
 
I just had a really quick look, but it appears that you are fetching each and every row as an independent kill, thus the 'issue'. What you can do to fix it is to either use concat through the SQL query and then split the killers in the PHP loop - or you could sort it through PHP by creating a new array and organising them.

Correct me if I'm wrong, as I stated above - I only had a really quick look.
 
PHP:
<div class="message">
    <div class="title">
    Player Deaths</div>    
    <div class="content">
<?php
    if(!defined('BASEPATH')) exit('No direct script access allowed');

    $player = $GLOBALS['player'];
    $SQL = POT::getInstance()->getDBHandle();
    $deaths = $SQL->query("SELECT `player_deaths`.`id`, `player_deaths`.`date`, `player_deaths`.`level` FROM `player_deaths` WHERE `player_deaths`.`player_id` = {$player->getId()} ORDER BY `player_deaths`.`date` DESC LIMIT 0,10;");
    
    echo '<table style="width: 100%; margin: 10px 0px 10px 0px;" cellspacing="0" cellpadding="10" class="cellspadding">';

    if($deaths->rowCount())
    {
        foreach($deaths as $death)
        {
            $i = 0;
            $killers = $SQL->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` = {$SQL->quote($death['id'])} ORDER BY `killers`.`final_hit` DESC, `killers`.`id` ASC")->fetchAll();


            foreach($killers as $killer)
            {
                $i++;
                $str = (count($killers) >= 20 ? "Annihilated" : (count($killers) >= 15 ? "Eliminated" : (count($killers) >= 10 ? "Crushed" : (count($killers) >= 5 ? "Slain" : "Killed"))));
                if(!empty($killer['monster_name']))
                    $killer['monster_name'] = (!in_array($i, array(1, count($killers))) ? str_replace(array("an ", "a "), array("", ""), $killer['monster_name']) : $killer['monster_name']);
                echo'<tr class="tablerow">
            <td width="25%"><strong>'.date("j M Y, H:i", $death['date']).'</strong></td>
            <td>';
                echo (!empty($killer['player_name']) ? ($i == 1 ? "{$str} at Level {$death['level']} by " : ($i == count($killers) ? " and " : ", ")).(!empty($killer['monster_name']) ? "{$killer['monster_name']} of " : "").($killer['player_exists'] == 0 ? "<a href=\"".WEBSITE."/index.php/character/view/{$killer['player_name']}\">{$killer['player_name']}</a>" : $killer['player_name']) : ($i == 1 ? "Died at Level {$death['level']} by {$killer['monster_name']}" : ($i == count($killers) ? " by {$killer['monster_name']}" : ", {$killer['monster_name']}")));
            }

            echo ".</td></tr>";
        }
    }
        echo '</table>';
?>
</div></div>
 
same problem here :S
The problem is that when you are in the character comes out looking like that deaths in this image.
how I can fix it?
is this file?
ECy9alcjzz.png


This is my www\system\application\controllers/death.php

<?php
// Controller for latestdeaths.
class Deaths extends Controller {
public function index() {
require("config.php");
$this->load->database();
if(@$_REQUEST['world'] == 0)
$world = 0;
else
$world = (int)@$_REQUEST['world'];

$world_name = ($config['worlds'] == $world);

$players_deaths = $this->db->query('SELECT `player_deaths`.`id`, `player_deaths`.`date`, `player_deaths`.`level`, `players`.`name`, `players`.`world_id` FROM `player_deaths` LEFT JOIN `players` ON `player_deaths`.`player_id` = `players`.`id` ORDER BY `date` DESC LIMIT 0,'.$config['latestdeathlimit'])->result();
if (!empty($players_deaths))
{
foreach ($players_deaths as $death)
{
$sql = $this->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')->result();
$players_rows = '<td><a href="?subtopic=characters&name='.urlencode($death->name).'"><b>'.$death->name.'</b></a> ';
$i = 0;
$count = count($death);
foreach($sql as $deaths)
{
$i++;
if($deaths->player_name != "")
{
if($i == 1)
$players_rows .= "killed at level <b>".$death->level."</b>";
else if($i == $count)
$players_rows .= " and";
else
$players_rows .= ",";

$players_rows .= " by ";
if($deaths->monster_name != "")
$players_rows .= $deaths->monster_name." summoned by ";

if($deaths->player_exists == 0)
$players_rows .= "<a href=\"index.php?subtopic=characters&name=".urlencode($deaths->player_name)."\">";

$players_rows .= $deaths->player_name;
if($deaths->player_exists == 0)
$players_rows .= "</a>";
}
else
{
if($i == 1)
$players_rows .= "died at level <b>".$death->level."</b>";
else if($i == $count)
$players_rows .= " and";
else
$players_rows .= ",";

$players_rows .= " by ".$deaths->monster_name;
}
$players_rows .= "</td>";
$data['deaths'][] = array('players_rows'=>$players_rows,'date'=>$death->date,'name'=>$death->name,'player_name'=>$deaths->player_name,'monster_name'=>$deaths->monster_name,'player_exists'=>$deaths->player_exists);
$players_rows = "";
}
}
$this->load->helper("form");
$this->load->view("deaths", $data);
}
else
{
echo "<h1>There are no players killed yet.</h1>";
}

}
}
?>
 
Back
Top