On-line? Então somente vai funcionar quando estiver on-line? Mas se o top estiver off?
- Fórum
- OTServ
- Pedidos
- Resolvidos
- [Resolvido] Checar Storage de player online
[Resolvido] Checar Storage de player online
Por Fjinst, 02 de jul. de 2017 em Resolvidos
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

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
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

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
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

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>
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

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
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para Pedidos - Resolvidos. Se você tiver outros pedidos, crie um novo tópico.


info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril
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 trueendEditado Julho 2 por Fjinst