Ir para conteúdo
  • 0

[Resolvido] Checar Storage de player online


Fjinst

Pergunta

Olá a todos, gostaria de pedir um script no qual checaria o valor de uma storage x de todos os players online que tenham ela com o valor 1, se caso um plyaer online tiver o valor 0, não apareceria o seu nome

 

Seria uma especia de Ranking de Killing Boss:

Apareceria Os tops matadores de boss online no momento

Exemplo:

----- TOP MATADORES DE BOSS -----

1 - Lord Knight: 13 Boss

2 - Master Druid: 7 Boss

3 - Elder Paladino: 5 Boss

4 - Mestre Yoda: 3 Boss

5 - Elite Paladin: 1 Boss

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

 

Onde mostraria no os 5 top jogadores, o seu nome e a quantidade de boss que matou.

 

Versão: TFS 0.4 (8.60

 

Um script de exemplo: São das versões superiores TFS 1.0

Se alguem puder adaptar.

function onThink(interval, lastExecution)	local players = Game.getPlayers()	table.sort(players, function(a, b) return a:getExperience() > b:getExperience() end)	local msg = "~ TOP 5 players online"	for i = 1, 5 do		if not players[i] then			break		end		msg = msg .. "\n" .. i .. ". ".. players[i]:getName() .. "  [Lv: ".. players[i]:getLevel() .. "]"	end	for _, player in pairs(players) do		player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, msg)	end	return trueend

 

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

6 respostass a esta questão

Posts Recomendados

  • 1
41 minutos atrás, Fjinst disse:

Ta dando esse error aqui quando encontra alguém com a storage

 

15:46:53.941] [Error - TalkAction Interface]

[15:46:53.942] data/talkactions/scripts/check.lua:onSay

[15:46:53.945] Description:

[15:46:53.946] data/talkactions/scripts/check.lua:14: attempt to concatenate local 'str' (a table value)

[15:46:53.947] stack traceback:

[15:46:53.947]  data/talkactions/scripts/check.lua:14: in function <data/talkactions/scripts/check.lua:3>

 

Verifica agora

local key = 1000 -- storage idfunction onSay(cid, words, param, channel)	local players,strings,list = getPlayersOnline(),{},""	for _, pid in ipairs(players) do	local get = getPlayerStorageValue(pid,key)		if(get > 0) then			table.insert(strings,{get,getCreatureName(pid).." matou "..get.." Bosses"})		end	end	table.sort(strings,function(v1,v2) return v1[1] > v2[1] end)	for pos,str in pairs(strings) do		list = list.."; "..pos.." - "..str[2]	end	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "----- TOP MATADORES DE BOSS -----\n"..list..'.')	return trueend

 

Link para o comentário
Compartilhar em outros sites

  • 0
5 minutos atrás, Poccnn disse:

On-line? Então somente vai funcionar quando estiver on-line? Mas se o top estiver off?

Se estiver off, citará somente os tops online no momento

Link para o comentário
Compartilhar em outros sites

  • 0
local key = 1000 -- storage idfunction onSay(cid, words, param, channel)	local players,strings,list = getPlayersOnline(),{},""	for _, pid in ipairs(players) do	local get = getPlayerStorageValue(pid,key)		if(get > 0) then			table.insert(strings,{get,getCreatureName(pid).." matou "..get.." Bosses"})		end	end	table.sort(strings,function(v1,v2) return v1[1] > v2[1] end)	for pos,str in pairs(strings) do		list = list.."; "..pos.." - "..str	end	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "----- TOP MATADORES DE BOSS -----\n"..list..'.')	return trueend

 

Link para o comentário
Compartilhar em outros sites

  • 0

Ta dando esse error aqui quando encontra alguém com a storage

 

15:46:53.941] [Error - TalkAction Interface]
[15:46:53.942] data/talkactions/scripts/check.lua:onSay
[15:46:53.945] Description:
[15:46:53.946] data/talkactions/scripts/check.lua:14: attempt to concatenate local 'str' (a table value)
[15:46:53.947] stack traceback:
[15:46:53.947]  data/talkactions/scripts/check.lua:14: in function <data/talkactions/scripts/check.lua:3>

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...