Tem um errinho meu colega.
O return vai brekar o loop isso significa que o so um player especificamente o primeiro vai ser retornado.
Uma array resolveria o problema.
Por Killua, 03 de jan. de 2014 em Mods, funções e outros
info
Grupo: Infante
Registrado: 04/03/11
Posts: 1.6k
Reputação: +393
Char no Tibia: No Have

Tem um errinho meu colega.
O return vai brekar o loop isso significa que o so um player especificamente o primeiro vai ser retornado.
Uma array resolveria o problema.
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Nossa cara... eu só tinha testado com um player kkk
Valeu por avisar, vou tentar arrumar aqui.
Corrigido.
Editado Janeiro 4 por amoeba13
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

function getPlayersInArea(fromPos, toPos)
local players = {}
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getPlayerPosition(pid), fromPos, toPos) then
table.insert(players, pid)
end
end
return players
end
Editado Janeiro 7 por Vodkart
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Humilhou... -.-
Mas, me diz, eu poderia usar isInArea invés de isInRange?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

existe a função isInArea?? nem sabia '-'
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Existe '-'
isInArea(pos, fromPos, toPos)
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

isInArea = isInRange
info
Grupo: Lenda
Registrado: 03/10/06
Posts: 2.6k
Reputação: +309
Gênero: Masculino
Char no Tibia: Knight Orion

Por que vocês usam table.insert quando não tem índice/é pra adicionar na última posição?
Esse código
playersInArea[#playersInArea + 1] = playerz.uidTem uma performance ~20% superior pelos meus testes. É costume ou organização?
Aliás, cara, crie uma variável chamada _player, mas não crie uma chamada playerz.
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

É costume... kkkk, desse jeito aí fica melhor mesmo
Qual o problema com o nome da variável?
info
Grupo: Lenda
Registrado: 03/10/06
Posts: 2.6k
Reputação: +309
Gênero: Masculino
Char no Tibia: Knight Orion

É que variáveis chamadas "playerz" e "bonsters" (de outro script seu, acho) não ajudam quem quer modificar
mas só isso também, fiquei curioso até.
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Pois é isso é vdd, mas eu costumo dar esses nomes sem sentido pras variáveis que n precisam/devem ser modificadas... De qualquer jeito, obrigado pelas dicas ![]()
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
Olá, eu fiz uma função bem útil e vou postar aqui:
function getPlayersInArea(fromPos, toPos) -- function by amoeba13 playersInArea = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do totalArea = {x=x, y=y, z=z} playerz = getTopCreature(totalArea) if isPlayer(playerz.uid) then table.insert(playersInArea, playerz.uid) end end end end return playersInArea endComo usar?
Exemplo:
function onSay(cid, words, param, channel) local area = getPlayersInArea({x = 153, y = 50, z = 7}, {x = 156, y = 53, z = 7}) if area then for i = 1, (#area) do doTeleportThing(area[i], {x = 160, y = 51, z = 7}, false) end end return true endEditado Janeiro 4 por amoeba13