[Talk] Deathlist [Fixed/no Crash]

Vodkart
em Actions e Talkactions

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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"/>

bossisg.png

Zmovir

Shadow Worlds rpg
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 28/09/10Posts: 237

Otimo script vodkart, parabéns reputado

Conheça o shadow worlds clique na imagen

xd9c6.jpg

 

 

 

Metas:

 

Ter uma meta [x]

 

alldakie

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 28/07/11Posts: 1223

Bacana o script Vodkart, com certeza vou usa-lo, +REP

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

ATUALIZADO PARA V.1

 

- Mostra agora se o player morreu [blessed] ou com [Aol]

 

- Mostra últimas mortes do servidor

bossisg.png

Zmovir

Shadow Worlds rpg
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 28/09/10Posts: 237

Agora com os bang de [Aol] e [bless] fico melhor ainda

Conheça o shadow worlds clique na imagen

xd9c6.jpg

 

 

 

Metas:

 

Ter uma meta [x]

 

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

obrigado pelos comentários

qualquer dúvida só postar

bossisg.png

Vilden

Loading. . .
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 09/05/08Posts: 1597

Rep+, não existe um deathlist que funcione, e agora além de ter

esta com funções extras.

 

Parabéns.

Atenciosamente, Vilden.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

obrigado pelos comentários

 

Bring

Up

My

Post

bossisg.png

asgropoldo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/11/08Posts: 1

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 ?

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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.

bossisg.png

Nathan96

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 25/03/12Posts: 109Char no Tibia: Kimera DebochadoOo

Aqui no meu server só esta mostrando na lista de mortes quem deu o ultimo hit, i não como mostra na imagem morto por warlock, stone golem.

Ti Ajudei ? então Rep +

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

então olha se você colocou o script direito do onDeath, porque ta funcionando normal aqui, outra coisa... qual versão do seu ot?

bossisg.png

Nathan96

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 25/03/12Posts: 109Char no Tibia: Kimera DebochadoOo

fiz tudo igual ta la em cima, 8.60

Ti Ajudei ? então Rep +

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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

bossisg.png