Hello, everything worked fine (what I know, haven't died before)
But now, console says this when I, or someone else die, and the it won't save players deaths (u can't see it at players info):
I don't know where is the problem, I don't see any problem here, my PlayerDeath.lua:
Thanks for help!
But now, console says this when I, or someone else die, and the it won't save players deaths (u can't see it at players info):
Lua:
[09/04/2012 12:21:28] Lua Script Error: [CreatureScript Interface]
[09/04/2012 12:21:28] data/creaturescripts/scripts/PlayerDeath.lua:onDeath
[09/04/2012 12:21:28] data/creaturescripts/scripts/PlayerDeath.lua:22: attempt to concatenate local 'byPlayer' (a boolean value)
[09/04/2012 12:21:28] stack traceback:
[09/04/2012 12:21:28] [C]: in function '__concat'
[09/04/2012 12:21:28] data/creaturescripts/scripts/PlayerDeath.lua:22: in function <data/creaturescripts/scripts/PlayerDeath.lua:3>
I don't know where is the problem, I don't see any problem here, my PlayerDeath.lua:
Lua:
dofile("./config.lua")
function onDeath(cid, corpse, killer)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Fail! You are dead.")
if deathListEnabled == "yes" then
if sqlType == "mysql" then
env = luasql.mysql()
sql = env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort)
else -- sqlite
env = luasql.sqlite3()
sql = env:connect(sqliteDatabase)
end
local byPlayer = FALSE
if killer == FALSE then
killerName = "field item"
else
if isPlayer(killer) == TRUE then
byPlayer = TRUE
end
killerName = getCreatureName(killer)
end
sql:execute("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `is_player`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", '" .. escapeString(killerName) .. "', " .. byPlayer .. ");")
local result = sql:execute("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";")
local deathRecords = numRows(result)
if sqlType == "mysql" then
while deathRecords > maxDeathRecords do
delete = sql:execute("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1;")
deathRecords = deathRecords - 1
end
else
while deathRecords > maxDeathRecords do
delete = sql:execute("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
end
sql:close()
env:close()
end
end
Thanks for help!
Last edited: