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

Znote Deathlist Error!

Zaggyzigzig

plx itens menz
Joined
Aug 25, 2014
Messages
386
Reaction score
50
Location
Canada Ontario
Can some one tell me why or even help me on why this is not working?
The deathlist timestamp is updating to real time not deathtime

(Server) Deaths.lua
Code:
local config = {
    deathListEnabled = getConfigInfo('deathListEnabled'),
    sqlType = getConfigInfo('sqlType'),
    maxDeathRecords = getConfigInfo('maxDeathRecords')
}

function onDeath(cid, corpse, killer)
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You are dead, You will respawn in your hometown.")
    if(config.deathListEnabled) then
        if(killer ~= FALSE) then
            if(isPlayer(killer) == TRUE) then
                killerName = getPlayerGUID(killer)
            else
                killerName = getCreatureName(killer)
            end
        else
            killerName = "field item"
        end

        db.executeQuery("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `lasthit_killer`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(killerName) .. ");")
        local rows = db.getResult("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";")
        if(rows:getID() ~= -1) then
            local deathRecords = rows:numRows(true)
            if(config.sqlType == "sqlite") then
                while(deathRecords > config.maxDeathRecords) do
                    db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")
                    deathRecords = deathRecords - 1
                end
            else
                while(deathRecords > config.maxDeathRecords) do
                    db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1;")
                    deathRecords = deathRecords - 1
                end
            end
        end
    end
end

Character Search @ Znote - Player_Deaths.
PHP:
                    <b>Death List:</b><br>
                    <?php
                    if ($config['TFSVersion'] == 'TFS_02' || $config['TFSVersion'] == 'TFS_10') {
                        $array = user_fetch_deathlist($user_id);
                        if ($array) {
                            //data_dump($array, false, "Data:");
                            ?>
                            <ul>
                                <?php
                                // Design and present the list
                                foreach ($array as $death) {
                                    echo '<li>';
                                    // $value[0]
                                    $death['time'] = getClock($death['time'], true);                              
                                    if (user_character_exist($death[4]) == 1) {
                                        $death[3] = 'player: <a href="characterprofile.php?name='. $death[3] .'">'. $death[3] .'</a>';
                                    } else {
                                        $death[3] = 'monster: '. $death[3] .'.';
                                    }
                                  
                                    echo '['. $death['time'] .'] Killed at level '. $death[2] .' by '. $death[3];
                                    echo '</li>';
                                }
                            ?>
                            </ul>
                            <?php
                            } else {
                                echo '<b><font color="green">This player has never died.</font></b>';
                            }
                            //Done.
                        } else if ($config['TFSVersion'] == 'TFS_03') {
                            $array = user_fetch_deathlist03($user_id);
                            if ($array) {
                            ?>
                            <ul>
                                <?php
                                // Design and present the list
                                foreach ($array as $value) {
                                    echo '<li>';
                                    $value[3] = user_get_killer_id(user_get_kid($value['id']));
                                    if ($value[3] !== false && $value[3] >= 1) {
                                        $namedata = user_character_data((int)$value[3], 'name');
                                        if ($namedata !== false) {
                                            $value[3] = $namedata['name'];
                                            $value[3] = 'player: <a href="characterprofile.php?name='. $value[3] .'">'. $value[3] .'</a>';
                                        } else {
                                            $value[3] = 'deleted player.';
                                        }
                                    } else {
                                        $value[3] = user_get_killer_m_name(user_get_kid($value['id']));
                                        if ($value[3] === false) $value[3] = 'deleted player.';
                                    }
                                    echo '['. getClock($value['date'], true) .'] Killed at level '. $value['level'] .' by '. $value[3];
                                    echo '</li>';
                                }
                            ?>
                            </ul>
                            <?php
                            } else {
                                echo '<b><font color="green">This player has never died.</font></b>';
                            }
                        }
                        ?>
                </li>
                <!-- END DEATH LIST -->
 
Last edited:
PHP:
// Fetch deathlist
function user_fetch_deathlist($char_id) {
    $char_id = (int)$char_id;
   
    $query = mysql_query("SELECT * FROM `player_deaths` WHERE `player_id`='$char_id' order by `time` DESC LIMIT 0, 10") or die(mysql_error());
    $count = mysql_num_rows($query);
    for ($i = 0; $i < $count; $i++) {
        $row = mysql_fetch_row($query);
        $array[] = $row;
    }
   
    if (isset($array)) {return $array; } else {return false;}
}

// TFS .3 compatibility
function user_fetch_deathlist03($char_id) {
    $char_id = (int)$char_id;
    $query = mysql_query("SELECT * FROM `player_deaths` WHERE `player_id`='$char_id' order by `date` DESC LIMIT 0, 10") or die(mysql_error());
   
    while($row = mysql_fetch_assoc($query)) {
        $row['time'] = $row['date'];
        $array[] = $row;
    } 
    return !empty($array) ? $array : false;
}

// same (death id ---> killer id)
function user_get_kid($did) {
    $did = (int)$did;
    return mysql_result(mysql_query("SELECT `id` FROM `killers` WHERE `death_id`='$did';"), 0, 'id');
}
// same (killer id ---> player id)
function user_get_killer_id($kn) {
    $kn = (int)$kn;
    $query = mysql_query("SELECT `player_id` FROM `player_killers` WHERE `kill_id`='$kn';") or die(mysql_error());
    $count = mysql_num_rows($query);
    for ($i = 0; $i < $count; $i++) {
        $row = mysql_fetch_row($query);
    }
   
    if (isset($row)) { return $row[0]; } else {return false;}
}
// same (killer id ---> monster name)
function user_get_killer_m_name($mn) {
    $mn = (int)$mn;
   
    $query = mysql_query("SELECT `name` FROM `environment_killers` WHERE `kill_id`='$mn';");
    $data = mysql_fetch_assoc($query);
   
    //return $data;
    return mysql_num_rows($query) !== 1 ? false : $data['name'];
}

// Count character deaths. Counts up 10.
function user_count_deathlist($char_id) {
    $char_id = (int)$char_id;
    return mysql_result(mysql_query("SELECT COUNT('id') FROM `player_deaths` WHERE `player_id`='$char_id' order by `time` DESC LIMIT 0, 10"), 0);
}
 
Back
Top