Ir para conteúdo

Posts Recomendados

Olá galera! Minha primeira contribuição oficial como colaborador. Eu queria fazer uma função que seria quase que uma extensão da getTabHighValue, assim eu decidi criar ou re-criar uma função que ordena a tabela em ordem crescente. Não sei se já existe uma função na própria linguagem lua pura, mas se existir, é desconhecida por mim, então decidi fazer a minha.

 

Oks, lá vamos nós a função.

 

function doOrderTab(tabela, value)

max = nil

for i = 1, table.maxn(tabela) do
valor = value
for a, b in ipairs(tabela) do
if b > valor then
valor = b
end
end
table.remove(tabela, table.find(tabela, valor))
if valor ~= value then
max = max == nil and valor or max .. ", " .. valor
end
end
return max
end

 

1º Parâmetro: Tabela a ser ordenada.

2º Parâmetro: Valor mínimo que o número deve ser para ser considerado na ordem.

 

Exemplos em Talkactions:

 

function onSay(cid, words, param)

t = {}

for pos, pid in ipairs(getPlayersOnline()) do
t[pos] = getPlayerLevel(pid)
end
doShowTextDialog(cid, 2160, doOrderTab(t, 0))
end

 

Ordena o nível dos jogadores online.

 

function onSay(cid, words, param)

t = {500, 700, 400}

doShowTextDialog(cid, 2160, doOrderTab(t, 0))
end

 

Ordena a tabela acima, retornando:

 

700, 500, 400

 

É isso, espero que ajude, até mais galera.

Link para o comentário
https://xtibia.com/forum/topic/154219-fun%C3%A7%C3%A3o-doordertable/
Compartilhar em outros sites

Ficou boa a função, existe uma função em lua chamada "table.sort (table [, comp])" que faz isso mesmo.

na sua fução tem uma função que eu não conheço na linguagem padrão lua que é "table.find(tabela, valor)" é uma função sua, criada ou apenas acompanha a biblioteca dos ot servers?

Link para o comentário
https://xtibia.com/forum/topic/154219-fun%C3%A7%C3%A3o-doordertable/#findComment-1022144
Compartilhar em outros sites

É uma função para ot servers, creio que seria algo como:

 

function table.find(t, val)

ret = nil

for pos, mat in pairs(t) do
if mat == val then
ret = pos
break
end
end
return ret
end

 

Ou talvez algo um pouco mais complexo. Até.

Editado por Demonbholder
Link para o comentário
https://xtibia.com/forum/topic/154219-fun%C3%A7%C3%A3o-doordertable/#findComment-1022269
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...