• 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!

MODERN AAC - Character Deaths, Character Frags, Latest Deaths.

EvulMastah

๏̯͡๏﴿
Premium User
Joined
Aug 19, 2007
Messages
4,941
Solutions
11
Reaction score
352
Credits to the original creators whos names I dont really recall. All I did was to rewrite and improve a bit.

Character Deaths (/injections/character_view/deaths/injection.php):
PHP:
<?php
    if(!defined('BASEPATH')) exit('No direct script access allowed');

    $player = $GLOBALS['player'];
    $config = $GLOBALS['config'];
    $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;");

    if($deaths->rowCount())
    {
        echo "<div class=\"bar\">Deaths</div>";

        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();

            echo "<tr class=\"highlight\"><td width=\"26%\">".date($config['dateFormat'], $death['date'])."</td><td><a href=\"".WEBSITE."/index.php/character/view/{$death['name']}\">{$death['name']}</a> ";

            foreach($killers as $killer)
            {
                $i++;
                if(!empty($killer['monster_name']) && !in_array($i, array(1, count($killers)))) $killer['monster_name'] = str_replace(array("an ", "a "), array("", ""), $killer['monster_name']);

                echo (!empty($killer['player_name']) ? ($i == 1 ? (count($killers) >= 20 ? "Annihilated" : (count($killers) >= 15 ? "Eliminated" : (count($killers) >= 10 ? "Crushed" : (count($killers) >= 5 ? "Slain" : "Killed"))))." 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></table>";
        }
    }
?>
Preview: http://evulmastah.ddl2.pl/cdeaths.PNG

Character Frags (/injections/character_view/frags/injection.php):
PHP:
<?php
    if(!defined('BASEPATH')) exit('No direct script access allowed');

    $accountId = (!empty($_SESSION['account_id']) ? $_SESSION['account_id'] : false);
    $player = $GLOBALS['player'];
    $config = $GLOBALS['config'];

    if($player->getAccount() == $accountId)
    {
        $SQL = POT::getInstance()->getDBHandle();
        $frags = $SQL->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,10;");

        if($frags->rowCount())
        {
            echo "<div class=\"bar\">Player Kills</div>";

            foreach($frags as $frag)
                echo "<table style=\"width: 100%;\"><tr class=\"highlight\"><td width=\"25%\">".date($config['dateFormat'], $frag['date'])."</td><td width=\"65%\">Killed <a href=\"".WEBSITE."/index.php/character/view/{$frag['name']}\">{$frag['name']}</a> at Level {$frag['level']}.</td><td width=\"10%\"><span style=\"color: ".($frag['unjustified'] ? "red;\">unjustified" : "green;\">ok")."</span></td></tr></table>";
        }
    }
?>
Preview: http://evulmastah.ddl2.pl/frags.PNG (visible only for account owner - must be logged in)

Latest Deaths (/system/pages/latestdeaths.php):
PHP:
<?php
    if(!defined('BASEPATH')) exit('No direct script access allowed');

    require("config.php");

    $ots = POT::getInstance();
    $ots->connect(POT::DB_MYSQL, connection());
    $SQL = $ots->getDBHandle();
    $deaths = $SQL->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 `player_deaths`.`date` DESC LIMIT 0,{$config['latestdeathlimit']};");

    echo "<div style=\"text-align: center; font-weight: bold;\">Latest Deaths</div><table border=\"0\" cellspacing=\"1\" cellpadding=\"4\" width=\"100%\">";

    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();

            echo "<tr class=\"highlight\"><td width=\"22%\">".date("j M Y, H:i", $death['date'])."</td><td><a href=\"".WEBSITE."/index.php/character/view/{$death['name']}\">{$death['name']}</a> ";

            foreach($killers as $killer)
            {
                $i++;
                if(!empty($killer['monster_name']) && !in_array($i, array(1, count($killers)))) $killer['monster_name'] = str_replace(array("an ", "a "), array("", ""), $killer['monster_name']);

                echo (!empty($killer['player_name']) ? ($i == 1 ? (count($killers) >= 20 ? "annihilated" : (count($killers) >= 15 ? "eliminated" : (count($killers) >= 10 ? "crushed" : (count($killers) >= 5 ? "slain" : "killed"))))." 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>";
        }
    }
    else
        echo "<tr class=\"highlight\"><td style=\"text-align: center;\">No one died on {$config['server_name']}.</td></tr>";

    echo "</table>";
?>
Preview: http://evulmastah.ddl2.pl/ldeaths.PNG

Add this variable to your config.php: $config['dateFormat'] = "M d Y, H:i:s T";
 
Last edited:
hey mAN

A PHP Error was encountered

Severity: Notice

Message: Undefined index: name

Filename: deaths/injection.php

Line Number: 20

what fix it ..
 
For some reason these aren't doing it for me.. I must be doing something wrong.. No errors, just the same ole "No one died on ___". (Yes I tested each one)
 
My bad, it all works, I didn't have deathlist enabled in config, make sure to enable that for it to work properly.

bosanel

rep++ for Evul
 
Character Frags
PHP:
<?php
    if(!defined('BASEPATH')) exit('No direct script access allowed');

    $accountId = (!empty($_SESSION['account_id']) ? $_SESSION['account_id'] : false);
    $player = $GLOBALS['player'];
    $config = $GLOBALS['config'];

    if($player->getAccount() == $accountId)
    {
        $SQL = POT::getInstance()->getDBHandle();
        $frags = $SQL->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,10;");

        if($frags->rowCount())
        {
            echo "<div class=\"bar\">Player Kills</div>";

            foreach($frags as $frag)
                echo "<table style=\"width: 100%;\"><tr class=\"highlight\"><td width=\"25%\">".date($config['dateFormat'], $frag['date'])."</td><td width=\"65%\">Killed <a href=\"".WEBSITE."/index.php/character/view/{$frag['name']}\">{$frag['name']}</a> at Level {$frag['level']}.</td><td width=\"10%\"><span style=\"color: ".($frag['unjustified'] ? "red;\">unjustified" : "green;\">ok")."</span></td></tr></table>";
        }
    }
?>


Error:
PHP:
A PHP Error was encountered

Severity: Notice

Message: Object of class OTS_Account could not be converted to int

Filename: frags/injection.php

Line Number: 8
 
A PHP Error was encountered

Severity: Notice

Message: Undefined index: name

Filename: deaths/injection.php

Line Number: 20
 
How can I implement it without the user having to be logged in to see the frags. I would like to have it public just like the death.
 
Back
Top