Sinceramente, parece estar bom, depois testarei,
Mais pela iniciativa já garantiu um REP!
Sinceramente, parece estar bom, depois testarei,
Mais pela iniciativa já garantiu um REP!
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Função organizada e identada!
Removi a função doOrderTab e inclui ela a função principal.
Obrigado e comentem!
info
Grupo: Visconde
Registrado: 23/11/10
Posts: 272
Reputação: +37
Char no Tibia: N tenho

pra que serve seu script ?
info
Grupo: Cavaleiro
Registrado: 04/07/11
Posts: 156
Reputação: +14
Char no Tibia: King Of Skyer

opa eu usarei conserteza xD ![]()
so não do rep porq ja dei
amanha tbm nao vai da !
kk meus rep ja e garantido pra os topico amanha e do sky
)
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Veja bem, isto não é um script e sim uma função.
São muitos os sistemas que utilizam storage para guardar um número que aumenta a cada vez que o sistema é usado.
Um exemplo é o meu sistema de duelo de summons, ou o sistema de rep do xotservx, entre outros.
Valeu pelos comentários.
info
Grupo: Lorde
Registrado: 17/01/09
Posts: 2.1k
Reputação: +395
Char no Tibia: Adra Sata

Muito bom mesmo !
Merece mais que um REP um beijo ![]()
Brincadeira , espero um dia eu estar ao seu nivél.
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder
Faaaaaala galera! Tudo tranquilo? Faz um tempão que eu não posto aqui né? Então, eu fiz essa função esses dias e resolvi divulgar porque todo mundo precisa dessa função eventualmente.
Como funciona: No primeiro parâmetro você irá colocar o número de storage, o qual você deseja checar o rank.
No segundo parâmetro será posto o número mínimo para o jogador entrar no rank, por exemplo, caso você coloque 0 e há algum jogador com -1 no valor de storage, ele não irá entrar na lista.
A função retorna uma tabela com os nomes dos jogadores em ordem do maior valor ao menor.
Enfim, vamos a função:
function getStorageRank(storage, n) local n = n or 0 local data = tonumber(db.getResult("SELECT `id` FROM `players` ORDER BY `id` DESC;"):getDataString("id")) local val, ret, nome, tabela, max = {}, {}, {}, {}, {} for i = 1, data do if tonumber(db.getResult("SELECT `online` FROM `players` WHERE `id` = "..i..";"):getDataString("online")) == 0 then local data = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = "..i.." AND `key` = "..storage..";") resultado = data:getID() == -1 and -1 or tonumber(data:getDataString("value")) name = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..i..";"):getDataString("name") else for _, pid in pairs(getPlayersOnline()) do if getPlayerGUID(pid) == i then resultado = getPlayerStorageValue(pid, storage) name = getPlayerName(pid) end end end table.insert(val, resultado) table.insert(tabela, resultado) table.insert(nome, name) end for i = 1, table.maxn(tabela) do valor = n for a, b in ipairs(tabela) do if b >= valor then valor = b end end table.remove(tabela, table.find(tabela, valor)) table.insert(max, valor) end for i = 1, #max do local pos = table.find(val, max[i]) table.insert(ret, nome[pos]) table.remove(nome, pos) table.remove(val, pos) end return ret endVamos a um exemplo de uso:
Neste exemplo será impresso no distro os nomes dos jogadores em ordem de maior para menor.
É isso ai galera, espero que usem, até.
Editado Outubro 22 por Demonbholder