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

[help] with my guild death list xd

Serginov

Onkonkoronkonk
Joined
Jun 28, 2008
Messages
1,321
Reaction score
18
Location
Sweden - Dalarna
Hello ^^


I need help with my death list on my website..
Here's a screenshoot:
fragsvi9.jpg



and here's my death list script
PHP:
<?PHP
$players_deaths_data = $SQL->query('SELECT * FROM guilds,guild_wars WHERE guilds.id = guild_wars.player_id ORDER BY time DESC LIMIT '.$config['site']['last_deaths_limit']);
$number_of_players_deaths = 0;
if(!empty($players_deaths_data)) {
$vowels = array("e", "y", "u", "i", "o", "a");
foreach($players_deaths_data as $dead) {
	$number_of_players_deaths++;
	if(is_int($number_of_players_deaths / 2))
		$bgcolor = $config['site']['darkborder'];
	else
		$bgcolor = $config['site']['lightborder'];
	$players_rows .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH="30"><center>'.$number_of_players_deaths.'.</center></TD><TD WIDTH="105"><a href="?subtopic=characters&name='.$dead['name'].'"><b>'.$dead['name'].'</TD><TD><a href="?subtopic=guilds&action=show&guild=name='.$dead['guild'].'"><b>'.$dead['guildid'].'</b></a> killed at level <b>'.$dead['level'].'</b> by ';
	if(is_numeric($dead['killed_by']))
	{
		$player_char = new OTS_Player();
		$player_char->load($dead['killed_by']);
		if($player_char->isLoaded())
			$players_rows .= '<a href="?subtopic=characters&name='.$player_char->getName().'"><b>'.$player_char->getName().'</b></a>';
		else
			$players_rows .= '<b>Something is wrong configured</b>';
	}
	else
		if($dead['killed_by'] == "-1")
		{
			$players_rows .= "item or field";
		}
		else
		{
			if(in_array(substr(strtolower($dead['killed_by']), 0, 1), $vowels))
			{
				$players_rows .= "the ";
			}
			else
			{
				$players_rows .= "the ";
			}
			$players_rows .= $dead['killed_by'];
		}
	$players_rows .= '.</TD></TR>';
}
}
if($number_of_players_deaths == 0) {
	//server status - server empty
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>War Frags</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>No war frags on '.$config['server']['serverName'].'.</TD></TR></TABLE></TD></TR></TABLE><BR>';
}
else
{
	//server status - someone is online
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>War Frags</B></TD></TR></TABLE>';
	//list of players
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>'.$players_rows.'</TABLE>';
}
?>
 
Last edited:
PHP:
<?PHP
$players_deaths_data = $SQL->query('SELECT * FROM players,player_deaths WHERE players.id = player_deaths.player_id ORDER BY time DESC LIMIT '.$config['site']['last_deaths_limit']);
$number_of_players_deaths = 0;
if(!empty($players_deaths_data)) {
$vowels = array("e", "y", "u", "i", "o", "a");
foreach($players_deaths_data as $dead) {
	$number_of_players_deaths++;
	if(is_int($number_of_players_deaths / 2))
		$bgcolor = $config['site']['darkborder'];
	else
		$bgcolor = $config['site']['lightborder'];
	$players_rows .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH="30"><center>'.$number_of_players_deaths.'.</center></TD><TD WIDTH="105"><small>'.date("j.m.Y, G:i:s",$dead['time']).'</small></TD><TD><a href="?subtopic=characters&name='.$dead['name'].'"><b>'.$dead['name'].'</b></a> killed at level <b>'.$dead['level'].'</b> by ';
	if(is_numeric($dead['killed_by']))
	{
		$player_char = new OTS_Player();
		$player_char->load($dead['killed_by']);
		if($player_char->isLoaded())
			$players_rows .= '<a href="?subtopic=characters&name='.$player_char->getName().'"><b>'.$player_char->getName().'</b></a>';
		else
			$players_rows .= '<b>DELETED PLAYER</b>';
	}
	else
		if($dead['killed_by'] == "-1")
		{
			$players_rows .= "item or field";
		}
		else
		{
			if(in_array(substr(strtolower($dead['killed_by']), 0, 1), $vowels))
			{
				$players_rows .= "an ";
			}
			else
			{
				$players_rows .= "a ";
			}
			$players_rows .= $dead['killed_by'];
		}
	$players_rows .= '.</TD></TR>';
}
}
if($number_of_players_deaths == 0) {
	//server status - server empty
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Last Deaths</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>No one died on '.$config['server']['serverName'].'.</TD></TR></TABLE></TD></TR></TABLE><BR>';
}
else
{
	//server status - someone is online
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Last Deaths</B></TD></TR></TABLE>';
	//list of players
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>'.$players_rows.'</TABLE>';
}
?>
Try this one!
 
I forgot to say that it will only show players killed by a guild
Will not show players killed by players with no guild.

Here's my script that adds the death into the database
PHP:
local config = {
	deathListEnabled = getBooleanFromString(getConfigInfo('deathListEnabled')),
	sqlType = getConfigInfo('sqlType'),
	maxDeathRecords = getConfigInfo('maxDeathRecords')
}

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
	if(config.deathListEnabled == TRUE) then
		local hitKillerName = ""
		local damageKillerName = ""
		if(lastHitKiller ~= FALSE) then
			if(isPlayer(lastHitKiller) == TRUE) then
				hitKillerName = getPlayerGuildId(lastHitKiller)
			else
				hitKillerName = getCreatureName(lastHitKiller)
			end
			
			if(mostDamageKiller ~= FALSE and mostDamageKiller ~= lastHitKiller and getCreatureName(mostDamageKiller) ~= getCreatureName(lastHitKiller)) then
				if(isPlayer(mostDamageKiller) == TRUE) then
					damageKillerName = getPlayerGUID(mostDamageKiller)
				else
					damageKillerName = getCreatureName(mostDamageKiller)
				end
			end
		end
			
		db.executeQuery("INSERT INTO `guild_wars` (`player_id`, `time`, `level`, `killed_by`, `altkilled_by`) VALUES (" .. getPlayerGuildId(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(hitKillerName) .. ", " .. db.escapeString(damageKillerName) .. ");")
		local rows = db.getResult("SELECT `player_id` FROM `guild_wars` WHERE `player_id` = " .. getPlayerGuildId(cid) .. ";")
		if(rows:getID() ~= -1) then
			local amount = (rows:numRows(true) - config.maxDeathRecords)
			if(amount > 0) then
				if(config.sqlType == "sqlite") then
					for i = 1, amount do
						db.executeQuery("DELETE FROM `guild_wars` WHERE `rowid` = (SELECT `rowid` FROM `guild_wars` WHERE `player_id` = " .. getPlayerGuildId(cid) .. " ORDER BY `time` LIMIT 1);")
					end
				else
					db.executeQuery("DELETE FROM `guild_wars` WHERE `player_id` = " .. getPlayerGuildId(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")
				end
			end
		end
	end
end

and when I die with a char it don't register it in database :s
 
Last edited:
Back
Top