Ir para conteúdo

[Talkaction] Top Killer's ~


Saymon14

Posts Recomendados

O que é ? É um script com o qual você pode ver quem matou mais criaturas.



Como uso ele? Para você usar é só falar: !killers MONSTER_NAME

Exemplo: !killers rat

 

killersm.jpg

 

 

•Crie um arquivo com o nome "killers.lua" em data/talkactions/scripts/

e cole isso dentro:

local monsters = {
--name = storage
["rat"] = 35001,
["cave rat"] = 35002,
["hydra"] = 35003,
["dragon"] = 35004                                                                                                                  																													  																								
}


function onSay(cid, words, param)

    -- max players on the highscore
    local players = 20 -- The amount of players that is shown in the list

    -- don't touch --
    local str = ""
    local value = ""
    local name = ""
    local player_id = 0
    local result = nil
    local namis = param
    local crat = monsters[string.lower(namis)]
    if (crat) then
	str = "# Top "..param.." Killers\n"
	value = "value"
	player_id = "player_id"
	result = db.getResult("SELECT `player_id`, `value` FROM `player_storage`  WHERE `key` = "..crat.." ORDER BY `value` DESC, `player_id` ASC;")
else
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Fale !killers [monster name].")
     return TRUE
end
if (result:getID() ~= -1) then
	local i = 1
	while TRUE do
		str = str .. "\n " .. i .. ". [" .. result:getDataInt(value) .. "] - " .. (name ~= "" and result:getDataString("name") or getPlayerNameByGUID(result:getDataInt(player_id)))
		i = i+1
		if not(result:next()) or i > players then
			break
		end
	end
	result:free()
end
if str ~= "" then
	doPlayerPopupFYI(cid, str)
end
return TRUE
end

 

•coloque em talkactions.xml:

<talkaction words="!killers" event="script" value="killers.lua"/>

 

Você precisa editar a Data Base para funcionar perfeitamente.



Vai em player_storage e altere o value de varchar(255) para int(10).

 

Creditos || PHBS

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

Achei interessante o script, o ruim é te que faze isso pra todos os monstros, e fica melhor ficando só nos bosses mesmo.

 

E uma coisa importante.

Vai em player_storage e altere o value de varchar(255) para int(10).

Se você fizer isso só vai da merda porque tem muito script por aí que utiliza storage como varchar e não int.

O jeito então é fazer um cast na hora de selecionar os valores:

result = db.getResult("SELECT `player_id`, `value` FROM `player_storage`  WHERE `key` = "..crat.." ORDER BY cast(value as INTEGER) DESC, `player_id` ASC;")

 

Seria bom colocar o creaturescript também.

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

é realmente com boss seria mais interessante e chamativo,dá para aproveitar o script e fazer algumas quest tais como "mate 10 boss do fogo e ganhe tal coisa",

boa saymon abraços

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...
×
×
  • Criar Novo...