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

I need help with last deaths

omarwsk

New Member
Joined
Mar 8, 2009
Messages
16
Reaction score
0
i was under attack of DDOS hacker and finally he hurts my web

so i make it from 0 again
i use the same system of gesior acc 0.3.4
but now! the last deaths dont works
how this look?
here an example
31 Dec 1969, 16:00 Killed at Level 293 by a .
31 Dec 1969, 16:00 Killed at Level 290 by a .
31 Dec 1969, 16:00 Killed at Level 289 by a .
31 Dec 1969, 16:00 Killed at Level 282 by a .

how can i fix it? the days, age, hour and the name of the killer.


help D:



EDIT: i see something bad in my xampp (the table of player_deaths have a error the column date and time its changed!) if someone give me a command to change the date for the time column i will fix one of this bugs
 
Last edited:
PHP:
local config = {
	deathAssistCount = getConfigValue('deathAssistCount') + 1,
	maxDeathRecords = getConfigValue('maxDeathRecords'),
	limit = ""
}
if(config.deathAssistCount > 0) then
	config.limit = " LIMIT 0, " .. config.deathAssistCount
end

function onSay(cid, words, param, channel)
	local target = db.getResult("SELECT `name`, `id` FROM `players` WHERE `name` = " .. db.escapeString(param) .. ";")
	if(target:getID() == -1) then
		doPlayerSendCancel(cid, "A player with that name does not exist.")
		return true
	end

	local targetName, targetId = target:getDataString("name"), target:getDataInt("id")
	target:free()

	local str, deaths = "", db.getResult("SELECT `id`, `date`, `level` FROM `player_deaths` WHERE `player_id` = " .. targetId .." ORDER BY `date` DESC LIMIT 0, " .. config.maxDeathRecords)
	if(deaths:getID() ~= -1) then
		repeat
			local killers = db.getResult("SELECT environment_killers.name AS monster_name, players.name AS player_name 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 = " .. deaths:getDataInt("id") .. " ORDER BY killers.final_hit DESC, killers.id ASC" .. config.limit)
			if(killers:getID() ~= -1) then
				if(str ~= "") then
					str = str .. "\n" .. os.date("%d %B %Y %X ", deaths:getDataLong("date"))
				else
					str = os.date("%d %B %Y %X ", deaths:getDataLong("date"))
				end

				local count, i = killers:getRows(false), 0
				repeat
					local monster = killers:getDataString("monster_name")
					if(i == 0 or i == (count - 1)) then
						monster = string.gsub(monster:gsub("an ", ""), "a ", "")
					end

					if(killers:getDataString("player_name") ~= "") then
						if(i == 0) then
							str = str .. "Killed at level " .. deaths:getDataInt("level") .. " by:\n  "
						elseif(i == count) then
							str = str .. " and by "
						elseif(i % 4 == 0) then
							str = str .. ",\n  "
						else
							str = str .. ", "
						end

						if(monster ~= "") then
							str = str .. monster .. " summoned by "
						end

						str = str .. killers:getDataString("player_name")
					else
						if(i == 0) then
							str = str .. "Died at level " .. deaths:getDataInt("level") .. " by:\n  "
						elseif(i == count) then
							str = str .. " and by "
						elseif(i % 4 == 0) then
							str = str .. ",\n  "
						else
							str = str .. ", "
						end

						str = str .. monster
					end

					i = i + 1
					if(i == count) then
						str = str .. "."
					end
				until not(killers:next())
				killers:free()
			end
		until not(deaths:next())
		deaths:free()
	else
		str = "No deaths recorded."
	end

	doPlayerPopupFYI(cid, "Deathlist for player: " .. targetName .. ".\n\n" .. str)
	return true
end


Rep me :s
 
PHP:
local config = {
	deathAssistCount = getConfigValue('deathAssistCount') + 1,
	maxDeathRecords = getConfigValue('maxDeathRecords'),
	limit = ""
}
if(config.deathAssistCount > 0) then
	config.limit = " LIMIT 0, " .. config.deathAssistCount
end

function onSay(cid, words, param, channel)
	local target = db.getResult("SELECT `name`, `id` FROM `players` WHERE `name` = " .. db.escapeString(param) .. ";")
	if(target:getID() == -1) then
		doPlayerSendCancel(cid, "A player with that name does not exist.")
		return true
	end

	local targetName, targetId = target:getDataString("name"), target:getDataInt("id")
	target:free()

	local str, deaths = "", db.getResult("SELECT `id`, `date`, `level` FROM `player_deaths` WHERE `player_id` = " .. targetId .." ORDER BY `date` DESC LIMIT 0, " .. config.maxDeathRecords)
	if(deaths:getID() ~= -1) then
		repeat
			local killers = db.getResult("SELECT environment_killers.name AS monster_name, players.name AS player_name 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 = " .. deaths:getDataInt("id") .. " ORDER BY killers.final_hit DESC, killers.id ASC" .. config.limit)
			if(killers:getID() ~= -1) then
				if(str ~= "") then
					str = str .. "\n" .. os.date("%d %B %Y %X ", deaths:getDataLong("date"))
				else
					str = os.date("%d %B %Y %X ", deaths:getDataLong("date"))
				end

				local count, i = killers:getRows(false), 0
				repeat
					local monster = killers:getDataString("monster_name")
					if(i == 0 or i == (count - 1)) then
						monster = string.gsub(monster:gsub("an ", ""), "a ", "")
					end

					if(killers:getDataString("player_name") ~= "") then
						if(i == 0) then
							str = str .. "Killed at level " .. deaths:getDataInt("level") .. " by:\n  "
						elseif(i == count) then
							str = str .. " and by "
						elseif(i % 4 == 0) then
							str = str .. ",\n  "
						else
							str = str .. ", "
						end

						if(monster ~= "") then
							str = str .. monster .. " summoned by "
						end

						str = str .. killers:getDataString("player_name")
					else
						if(i == 0) then
							str = str .. "Died at level " .. deaths:getDataInt("level") .. " by:\n  "
						elseif(i == count) then
							str = str .. " and by "
						elseif(i % 4 == 0) then
							str = str .. ",\n  "
						else
							str = str .. ", "
						end

						str = str .. monster
					end

					i = i + 1
					if(i == count) then
						str = str .. "."
					end
				until not(killers:next())
				killers:free()
			end
		until not(deaths:next())
		deaths:free()
	else
		str = "No deaths recorded."
	end

	doPlayerPopupFYI(cid, "Deathlist for player: " .. targetName .. ".\n\n" .. str)
	return true
end


Rep me :s




sry for my noob mind but where i put this script? global, creature? askdmlams?
 
i see something bad in my xampp (the table of player_deaths have a error the column date and time its changed!) if someone give me a command to change the date for the time column i will fix one of this bugs
 
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\killstatistics.php on line 2

my second line : local config = {

What is wrong? :O

Maybe someone can paste a working php.killstatistics, thx anyway.
 
L1nker his problem got solved after using a new killstatics.php..

PHP:
<?PHP
$players_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 `date` DESC LIMIT 0,'.$config['site']['last_deaths_limit']);
$players_deaths_count = 0;
if(!empty($players_deaths))
{
	foreach($players_deaths as $death)
	{
		$players_deaths_count++;
		if(is_int($players_deaths_count / 2))
			$bgcolor = $config['site']['darkborder'];
		else
			$bgcolor = $config['site']['lightborder'];

		$players_rows .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH="30"><center>'.$players_deaths_count.'.</center></TD><TD WIDTH="125"><small>'.date("j.m.Y, G:i:s",$death['date']).'</small></TD><TD><a href="?subtopic=characters&name='.urlencode($death['name']).'"><b>'.$death['name'].'</b></a> ';
		$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 = '".$death['id']."' ORDER BY killers.final_hit DESC, killers.id ASC")->fetchAll();

		$i = 0;
		$count = count($killers);
		foreach($killers as $killer)
		{
			$i++;
			if($killer['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($killer['monster_name'] != "")
					$players_rows .= $killer['monster_name']." summoned by ";

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

				$players_rows .= $killer['player_name'];
				if($killer['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 ".$killer['monster_name'];
			}
		}

		$players_rows .= '.</TD><TD>'.$config['site']['worlds'][(int)$death['world_id']].'</TD></TR>';
	}
}

if($players_deaths_count == 0)
	$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
	$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><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>'.$players_rows.'</TABLE>';
?>
 
thx alot :)

But then I still got this problem that when I search for a players death list its still "killed by a dot" there b ut the "last kill" function works really good.
 
Last edited:
Hi, I kinda lost you there.

Are you talking about the killstatistic.php, and in that file im going delete "player_deaths >Unix_Timestap?

Or maybe you talking about the database?
 
Problem above solved aswell..

Go to characters.php and find //death list..

Replace it with the follow:
PHP:
			//deaths list
			$player_deaths = $SQL->query('SELECT `id`, `date`, `level` FROM `player_deaths` WHERE `player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,10;');
			foreach($player_deaths as $death)
			{
				if(is_int($number_of_rows / 2))
					$bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder'];

				$number_of_rows++; $deads++;
				$dead_add_content .= "<tr bgcolor=\"".$bgcolor."\">
				<td width=\"20%\" align=\"center\">".date("j M Y, H:i", $death['date'])."</td>
				<td>";
				$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();

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

					if($killer['player_name'] != "")
					{
						if($i == 1)
							$dead_add_content .= "Killed at level <b>".$death['level']."</b> by ";
						else if($i == $count)
							$dead_add_content .= " and by ";
						else
							$dead_add_content .= ", ";

						if($killer['monster_name'] != "")
							$dead_add_content .= $killer['monster_name']." summoned by ";

						if($killer['player_exists'] == 0)
							$dead_add_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">";

						$dead_add_content .= $killer['player_name'];
						if($killer['player_exists'] == 0)
							$dead_add_content .= "</a>";
					}
					else
					{
						if($i == 1)
							$dead_add_content .= "Died at level <b>".$death['level']."</b> by ";
						else if($i == $count)
							$dead_add_content .= " and by ";
						else
							$dead_add_content .= ", ";

						$dead_add_content .= $killer['monster_name'];
					}

					if($i == $count)
						$dead_add_content .= ".";
				}

				$dead_add_content .= ".</td></tr>";
			}

			if($deads > 0)
				$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Deaths</B></TD></TR>' . $dead_add_content . '</TABLE><br />';

			//end
 
Back
Top