Ir para conteúdo
  • 0

(Pedido) Deathlist


Nathan96

Pergunta

Tipo do script: talkactions

Protocolo : 8.6

Servidor utilizado: tfs 3.6

 

já vi algumas aqui neste fórum mais nem uma funciona no meu server então si possível gostaria uma igual do video abaixo.

 

http://www.youtube.com/watch?v=1SkJoE8dOo4&context=C455c014ADvjVQa1PpcFNPQUrkfAk98PRpni2dIpelZK3essGHo0A=

 

Valendo Rep +

 

Ninguém ainda?? já tentei de tudo, já mudei o distro, já mexi na conf.lua e nada ;/

Link para o comentário
Compartilhar em outros sites

  • Respostas 48
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0

eae funfou?

 

@jean...

 

voce usa mysql né? então é esse aqui para voce...

 

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, "Este jogador não existe.")
 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") .. " por:\n  "
	  elseif(i == count) then
	   str = str .. " e por "
	  elseif(i % 4 == 0) then
	   str = str .. ",\n  "
	  else
	   str = str .. ", "
	  end
	  if(monster ~= "") then
	   str = str .. monster .. " sumonado por "
	  end
	  str = str .. killers:getDataString("player_name")
	 else
	  if(i == 0) then
	   str = str .. "Morto no level " .. deaths:getDataInt("level") .. " por:\n  "
	  elseif(i == count) then
	   str = str .. " e por "
	  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 = "Não tem mortes."
end
doPlayerPopupFYI(cid, "Deathlist do player: " .. targetName .. ".\n\n" .. str)
return true
end

 

Se não for mysql, vai dar erro '-' eu nao sei mudar para sqlite...

Se algum scripter souber, posta ai.

Link para o comentário
Compartilhar em outros sites

  • 0

vodkart vc mesmo disse > existe sim, eu estou vendo algumas querys aqui, para mysql existe vários comandos death list:

mysql para sql sem ser saite sempre da debug olha que ja testei varios scrips.

allisson nao existe o deathlist de la da debug,deathlist do stylle e um poko diferente ele funciona mais nao aparace pra quem ele morreu e ainda da uns erro na tabela do ot =/

Link para o comentário
Compartilhar em outros sites

  • 0

vodkart vc mesmo disse > existe sim, eu estou vendo algumas querys aqui, para mysql existe vários comandos death list:

mysql para sql sem ser saite sempre da debug olha que ja testei varios scrips.

allisson nao existe o deathlist de la da debug,deathlist do stylle e um poko diferente ele funciona mais nao aparace pra quem ele morreu e ainda da uns erro na tabela do ot =/

pois é, para qslite é diferente, desse jeito funciona, porém não aparece para quem morreu:

 

limit = 5
function onSay(cid, words, param, channel)
local getPlayer = db.getResult("SELECT `name`, `id` FROM `players` WHERE `name` = " .. db.escapeString(param) .. ";")
if(getPlayer:getID() == -1) then doPlayerSendCancel(cid, "Este Player não existe.") return true end
local getGuid = getPlayer:getDataInt("id")
getPlayer:free()
local str = ""
local qry = db.getResult("SELECT `id`, `date`, `level` FROM `player_deaths` 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")).." Morto no level "..qry:getDataInt("level")..""
until not(qry:next()) 
qry:free()
else
str = "Não há mortes."
end
doPlayerPopupFYI(cid, "Lista de Mortes de: " .. param .. ".\n\n" .. str)
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

Galera vamos esperar a ajuda, ficar pedindo toda hora não vai faze com que

ela se resolva, além do mais, pode até chegar a ser um flood.

 

Cuidado.

Link para o comentário
Compartilhar em outros sites

  • 0

Vodkart abre uma exceção pra mim velho por favor?

Faz o script pra mim la?

http://www.xtibia.com/forum/topic/184816-script-reino/page__fromsearch__1

 

Tu disse q é facil.

E se puder fazer algo por mim nesse, não tem nada a ver com pokemon,

é só o nome do sistema:

http://www.xtibia.com/forum/topic/185060-duvida-script-mkalo/page__fromsearch__1

 

Obrigado.

Até+

Abraços!!

Link para o comentário
Compartilhar em outros sites

  • 0

mas eu vou postar sim, só estou vendo se eles vão querer '-'

 

-------------------------------------

 

está ai para quem quiser:

 

 

 

na sua db executa 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 )
);

 

creaturescript

 

death_list.lua

function onDeath(cid, corpse, deathList)
local death = "field item"
if isPlayer(deathList[1]) or isMonster(deathList[1]) then
death = getCreatureName(deathList[1])
end
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)
local getPlayer = db.getResult("SELECT `name`, `id` FROM `players` WHERE `name` = " .. db.escapeString(param) .. ";")
if(getPlayer:getID() == -1) then doPlayerSendCancel(cid, "Este Player não existe.") return true end
local getGuid = getPlayer:getDataInt("id")
getPlayer:free()
local str = ""
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")).." Morto no level "..qry:getDataInt("level").." Por: "..qry:getDataString("killer_name").."."
until not(qry:next())
qry:free()
else
str = "Não há mortes."
end
doPlayerPopupFYI(cid, "Lista de Mortes de: " .. 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


×
×
  • Criar Novo...