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

Lua Playerdeath

Zool

Banned User
Joined
Jun 9, 2009
Messages
742
Reaction score
5
Location
Poland/St Wola
[Error - CreatureScript Interface]
data/creaturescripts/scripts/playerdeath.lua:onDeath

its my playerdeath.lua \/
Code:
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 = "field item"

		local damageKillerName = ""

		if(lastHitKiller ~= FALSE) then

			if(isPlayer(lastHitKiller) == TRUE) then

				hitKillerName = getPlayerGUID(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 `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `altkilled_by`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(hitKillerName) .. ", " .. db.escapeString(damageKillerName) .. ");")

		local rows = db.getResult("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(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 `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")

					end

				else

					db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")

				end

			end

		end

	end

end
 
Then try this:

Code:
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 = "field item"

		local damageKillerName = ""

		if(lastHitKiller ~= FALSE) then

			if(isPlayer(lastHitKiller) == TRUE) then

				hitKillerName = getPlayerGUID(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 `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `altkilled_by`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(hitKillerName) .. ", " .. db.escapeString(damageKillerName) .. ");")

		local rows = db.getResult("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";")

		if(rows:getID() ~= -1) then

			local amount = (rows:numRows(true) - config.maxDeathRecords)

			if(amount > 0) then

				if(config.sqlType == "mysql") then

					for i = 1, amount do

						db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")

					end

				else

					db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")

				end

			end

		end

	end

end
 
Back
Top