[Função] Doordertable

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

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.

Oie :D

thalia

Avatar Legends Online
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 03/07/07Posts: 104

Muito boa a função!

Demonbholder cada vez mais além com seus scripts!

Parabens

Oneshot

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 05/07/09Posts: 1347

Gostei muito da função do código. Seu avanço na linguagem foi rápido. Parabéns :)

Saymon14

.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 05/05/10Posts: 544

Muito show mano, ainda criar function um dia =D

 

Não entro em equipes, já tenho meu projeto, não insista.

 

 

 

 

 

 

Easy Mapper Map Editor 8.60: Clique aqui

[8.60] BeastXHunter: Clique aqui

satan666

Antichrist Superstar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 07/05/08Posts: 612Char no Tibia: leviana luciferiana

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?

creationb.jpg

"Um Deus que usasse seu poder para criar seres humanos que de antemão sabia que seriam atormentados eternamente, e que os predestinasse a isso,



não poderia ser sábio, nem justo e tampouco amoroso.

Além de nos submeter a isso vim a nos julgar e condenar por nossos atos aos tormentos do inferno.

pra minha pessoa isso não é um Deus Pai amoroso e bondoso como o chaman, seu padrão seria muito mais inferior do que o de muitos homens."

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

É 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é.

Oie :D

tinfer3

Normaly they are the same.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/04/11Posts: 34

apenas acompanha a biblioteca dos ot servers.

The Joker



Eu não quero fazer o que eu posso,eu posso fazer o que eu quero.