Ir para conteúdo
Entre para seguir isso  
Jonny249

[Function] getPlayersWithLevel

Recommended Posts

Jonny249    0
Jonny249

[spoieler]

Autor: Jonny

Sintaxe: getPlayersUIDWithLevel(players,level)

getPlayersNamesWithLevel(players,level)

 

Bem gente mas uma vez aqui trago pra vocês uma simples função nao sei se vai ser muito útil :P (claro que espero que seja).

Ela retorna todos os players de uma tabela definida (players) com o level pedido (level).

 

SCRIPT:

----- Functions By Jonny, nao retire os creditos
---- getPlayersUIDWithLevel
function getPlayersUIDWithLevel(players,level)
local playersR = {}
local player = players
local n = 0
while n < #player do
    n = n+1
    if getPlayerLevel(player[n]) == level then
           table.insert(playersR, getPlayerGUID(player[n])
    end
end
return playersR
end
---- getPlayersNamesWithLevel
function getPlayersUIDWithLevel(players,level)
local playersR = {}
local player = players
local p = 0
while n < #player do
p = p+1
    if getPlayerLevel(player[n]) == level then
           table.insert(playersR, getPlayerName(player[n])
    end
end
return playersR
end
----- end

 

Bem por pedido de Motoboy, eu resolvi fazer um exemplo do script. Esse script faz com que todos os players onlines com level pedido se teleporte pro seu sqm.

function onSay(cid,words,param)

local onplayers = getOnlinePlayers()

local pos = getPlayerPosition(cid)

local lvl = 100

local access = 5

if getPlayerAccess(cid) == access then

local players = getPlayersUIDWithLevel(onplayers,lvl)

local n = 0

if #players > 0 then

while n < #players do

n = n+1

doTeleportThing(players[n],pos)

end

else

doPlayerSendTextMessage(cid,24,"The server dont have any player online with level '..lvl..'.")

end

end

end

Bem espero que vocês gostem.

São básicas mas interessantes.

Falous

By Jonny~

Editado por Jonny249

Compartilhar este post


Link para o post
Dokmos    1
Dokmos

Muito Bom Jonny,

Pelo que estou vendo é um dos seus primeiros scripts com loops, e como eu mesmo achava mais fácil usar repeat e while em vez de for ;D

 

É isso aí sempre melhorando seu trabalho, substituindo pelo mais complexo, porém o melhor!!!

 

(Y)

Compartilhar este post


Link para o post
MotoBoy    0
MotoBoy

também achei legal..

e agora descobri oq vc tava fazendo nesse tempo q era pra vc postar o result

shasuhasuhasua

 

mais da um exemplo de como funciona plx x.x

não achei nenhuma ocasião prórpia para usar isso =X

 

flws~~

Compartilhar este post


Link para o post
PoSo    0
PoSo

Imagine só, você tem uma tabela de players inscritos para certo tipo de duelo, e você quer que apenas player com o level 40 participem daquela rodada.

Pelo meu parecer, é isso.

Abraços

Compartilhar este post


Link para o post
Jonny249    0
Jonny249

@Dokmos

Valeu cara, seus comentários e seus scripts sempre me dao motivo pra continuar melhorando :D (não fiz em for porque eu nao sabia se era necessário botar o n = n+1 entao fiquei no while mesmo.

@Motoboy

O exemplo de PoSo está certo. Por exemplo você usa uma talkaction que pega todos os players do server e quer teletransportar eles pra onde vc tah, soh que apenas os que tiverem level 100. Vou botar esse exemplo no post inicial.

E eu fiquei ocupado esses dias porque eu viajei.

Isso eu fiz em menos de 10 minutos :P

@topic

valeu gente por todos os comentários. brigadão.

Compartilhar este post


Link para o post
PoSo    0
PoSo

Agora, complementando seu script, voce poderia implementar suas funções com um parametro, que seria maior, menor ou igual ao level que o cara quer, porque, na maioria das vezes, seria:

Player maiores que level 100..

e assim vai.

Abraços ;D

Compartilhar este post


Link para o post
MotoBoy    0
MotoBoy

@poso

mais dai eh soh colocar ao invez de

local lvl == 100

local lvl >= 100

 

acredito que vá dar certo =P

 

@Jonny

vlw pelo exemplo

agora sim saquei o porque disso

bem util msm xD~~

num tinha sacado >.<

 

flws~~

Compartilhar este post


Link para o post
Marcelo Côrtes    0
Marcelo Côrtes

Em vez de colocar #table, poe "for a, b in ipairs(table) do"

Que você já consegue o "players[n]" de uma vez.

Mesmo assim tá legal... e você já tá num nível bom sabendo usar bem os loops... usar FOR SIM! Ele te facilita muito.

Compartilhar este post


Link para o post
PoSo    0
PoSo

@motoboy

mas já que é uma função, poderia haver a possibilidade de escolher entre | >= | <= | > | < | == |

e se fosse por parametro, se reduziria à apenas uma função.

Abraços.

Compartilhar este post


Link para o post
MotoBoy    0
MotoBoy

tem como simplificar..

mais acredito que se fosse em um concurso não iria fazer TANTA diferença assim O.o

o script tá ótimo..

acredito que o máximo que um juiz iria descontar por uma pequena simplificação dessa seria estourando 0.2

dividido por 4 (que geralmente são avaliados 4 coisas) daria 0.05

 

mais de qualquer jeito eh bom postar aqui pro cara sacar e poder fazer melhor d aproxima vez,

mais não podemos exigir isto dele..

já que os cript está bom e funcionando..

acredito que não tenha necessidade =P

 

flws~~

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×