Ir para conteúdo

[Talk] Deathlist [Fixed/no Crash]


Vodkart

Posts Recomendados

Atualizado V1.0:

Mostra últimas mortes do servidor:
1x19B.png

você pode usar o comando !deathlist NOME
ex: !deathlist Carlin:
ar7Kj.png




in your db execute this query:

CREATE TABLE death_list (
id INTEGER NOT NULL,
player_id INTEGER NOT NULL,
date INTEGER NOT NULL,
level INTEGER NOT NULL,
killer_name INTEGER NOT NULL,
PRIMARY KEY ( id )
);

creaturescript

death_list.lua
function onDeath(cid, corpse, deathList)
local str = ""
for _, pid in ipairs(deathList) do
if isCreature(pid) == true then
str = str.."".. (str == "" and "" or ",") ..""..getCreatureName(pid)
else
str = str.."".. (str == "" and "" or ",") .." a field item"
end
end
str = str.."."
death = str .. " ".. (getPlayerBlessing(cid, 5) and "[Blessed]" or getPlayerSlotItem(cid, 2).itemid == 2173 and "[AOL]" or "")
db.executeQuery("INSERT INTO `death_list` (`player_id`, `date`, `level`, `killer_name`) VALUES ('".. getPlayerGUID(cid).."', '".. os.time() .."', '".. getPlayerLevel(cid) .."', '".. death .."');")
return true
end

creaturescript.xml
<event type="death" name="DeathList" event="script" value="death_list.lua"/>

creaturescript/script/login.lua
registerCreatureEvent(cid, "DeathList")

talkactions

deathlist.lua
limit = 5
function onSay(cid, words, param, channel)
str = ""
if param == "" then
local qry = db.getResult("SELECT `player_id`, `date`, `level`, `killer_name` FROM `death_list` ORDER BY `date` DESC LIMIT 0, " .. limit)
if(qry:getID() ~= -1) then
repeat
str = str .."\n "..os.date("%d %B %Y %X ", qry:getDataInt("date")).." "..getPlayerNameByGUID(qry:getDataString("player_id")).." died at level "..qry:getDataInt("level").." by:\n"..qry:getDataString("killer_name")
until not(qry:next())
qry:free()
else
str = "Não há mortes no servidor."
end
doPlayerPopupFYI(cid, "Last Deaths:\n\n" .. str)
return true
end
local getGuid = getPlayerGUIDByName(param:lower())
if not getGuid then doPlayerSendCancel(cid, "Este Player não existe.") return true end
local qry = db.getResult("SELECT `id`, `date`, `level`, `killer_name` FROM `death_list` WHERE `player_id` = " .. getGuid .." ORDER BY `date` DESC LIMIT 0, " .. limit)
if(qry:getID() ~= -1) then
repeat
str = str .."\n "..os.date("%d %B %Y %X ", qry:getDataInt("date")).." died at level "..qry:getDataInt("level").." by:\n"..qry:getDataString("killer_name")
until not(qry:next())
qry:free()
else
str = "Não há mortes."
end
doPlayerPopupFYI(cid, "Last Deaths of: " .. param .. ".\n\n" .. str)
return true
end

talkactions.xml
<talkaction words="!deathlist" script="deathlist.lua"/>
Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Mano sou muito noob nessa parada de script mas gostei muito do seu script e estava querendo colocar no servidor que estou criando. No início da escrito: in your db execute this query <- onde tenho que colocar o que está escrito no retângulo, o que eu tenho que fazer ?

Link para o comentário
Compartilhar em outros sites

Mano sou muito noob nessa parada de script mas gostei muito do seu script e estava querendo colocar no servidor que estou criando. No início da escrito: in your db execute this query <- onde tenho que colocar o que está escrito no retângulo, o que eu tenho que fazer ?

 

 

1° Abra o programa Sqlite

2° Selecione a database do seu server, o arquivo é esse ".s3db", por exemplo o "forgottenserver.s3db"

3° na parte superior do programa tem a aba "Tools",clica nela e seleciona "Open SQL query editor" ou (ALT + E) se preferir

4° Vai abrir uma janela branca,nela você coloca isso:

CREATE TABLE death_list (
       id                INTEGER NOT NULL,
       player_id   INTEGER NOT NULL,
       date            INTEGER NOT NULL,
       level      INTEGER NOT NULL,
       killer_name INTEGER NOT NULL,
       PRIMARY KEY ( id )
);

5° Depois clica no ícone do raio ali na parte de cima ou aperta o botão F9 que vai fazer com que a query seja executada.

Link para o comentário
Compartilhar em outros sites

tenta usar assim então:

 

 

 

function onDeath(cid, corpse, deathList)
local str = ""
       for _, pid in ipairs(deathList) do
               if isCreature(pid) == true then
str = str.."".. (str == "" and "" or ",") ..""..getCreatureName(pid)
               else
str = str.."".. (str == "" and "" or ",") .." a field item"
               end
       end
str = str.."."
death = str .. " ".. (getPlayerBlessing(cid, 5) and "[blessed]" or getPlayerSlotItem(cid, 2).itemid == 2173 and "[AOL]" or "")
db.executeQuery("INSERT INTO `death_list` (`player_id`, `date`, `level`, `killer_name`) VALUES ('".. getPlayerGUID(cid).."', '".. os.time() .."', '".. getPlayerLevel(cid) .."', '".. death .."');")
return true
end

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...