TkSamer
Eu fiz uma coisa no meu Ot e resolvi esse mesmo problema que voce enfrenta, vamos la.
Troque o seu deathlist por esse a baixo ( Clique em Show, ao lado do Spoiler ):
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
Salve, agora va no conf.lua e ache essa parte
Database sqlType = "sqlite" < - Troque por "mysql" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root"
Pelo menos resolveu o meu problema, tente e poste aqui. Prova que funcionou, OT We Do OTS 8.60 \/




info
Grupo: Artesão
Registrado: 09/06/09
Posts: 146
Reputação: +4
Char no Tibia: Shared Elven
Galera da uma olhada nesse script ai para mim ele esta funcionando direitinho só que ele não mostra por quem o plyaer foi morto Só aparece quando morreu e em que level mais não aparece para quem e a data esta errada, ele estava em 1900 e alguma coisa, alguem concerta esse script para mim foi o unico que servio no meu server ele é 8.60
Exemplo: !deathlist Player
Aparece o seguinte:
31 Debember 1969 22:00:00 Died at Level 614 by a.
A data esta errada e não mostra para oq ele morreu.
Espero que alguem posso mim ajudar.
E da o seguinte erro no distro:
[27/08/2010 22:04:12] Error during getDataInt(time).
[27/08/2010 22:04:12] Error during getDataString(killed_by).
[27/08/2010 22:04:12] Error during getDataString(altkilled_by).
-- [( Created by: GT Thionix, edited by: DoidinMapper for XTibia.com )] -- function onSay(cid, words, param, channel) local config = {displayLimit = 10} local target = db.getResult("SELECT `name`, `id` FROM `players` WHERE `name` = " .. db.escapeString(param) .. ";") if(target:getID() == -1) then doPlayerSendCancel(cid, "Esse Player nao Existe.") return TRUE end local targetName = target:getDataString("name") local targetGUID = target:getDataInt("id") target:free() local str = "" local deaths = db.getResult("SELECT `time`, `level`, `killed_by`, `altkilled_by` FROM `player_deaths` WHERE `player_id` = " .. targetGUID .. " ORDER BY `time` DESC;") if(deaths:getID() ~= -1) then local n = 0 local breakline = "" repeat n = n + 1 if(str ~= "") then breakline = "\n" end local time = os.date("%d %B %Y %X ", deaths:getDataInt("time")) local level = deaths:getDataInt("level") local lastHitKiller = deaths:getDataString("killed_by") local mostDamageKiller = deaths:getDataString("altkilled_by") local killed = "" if(tonumber(lastHitKiller)) then killed = getPlayerNameByGUID(tonumber(lastHitKiller)) else killed = getArticle(lastHitKiller) .. " " .. string.lower(lastHitKiller) end if(mostDamageKiller ~= "") then if(tonumber(mostDamageKiller)) then killed = killed .. " and by " .. getPlayerNameByGUID(tonumber(mostDamageKiller)) else killed = killed .. " and by " .. getArticle(mostDamageKiller) .. " " .. string.lower(mostDamageKiller) end end str = str .. breakline .. " " .. time .. " Died at Level " .. level .. " by " .. killed .. "." until not(deaths:next()) or n > config.displayLimit deaths:free() else str = "No deaths recorded." end doPlayerPopupFYI(cid, "Deathlist for player: " .. targetName .. ".\n\n" .. str) return TRUE endDesculpa por esta postado novamente, não sei bem mais acho que é errado, mais é como forma de prostesto pois não tenho respostas, meu pedido esta aqui a alguns dias e até agora nada, se alguem estiver testando pelo menos deixe alguma coisa aqui para mim saber que tem alguem tentando fazer algo para mim ajudar, fiquei abismado, pois sempre que pedia ajuda aqui rapidamente a recebia oque esta acontecendo aqui? cade a qualidade que fez o Xtibia ser meu forum preferido? Sem mais.
Editado Agosto 27 por TkSamer