Ir para conteúdo

[Função] Playerinarea


gledsonrt

Posts Recomendados

Olá galera!

 

Esta é uma função usada no meu OTServ, e vim disponibilizá-la para vocês.

Ela serve para checar se há algum jogador dentro de uma determinada área.

Muito útil em quests como anihilator e svargrond arena!

 

function checkArea(fromx, fromy, fromz, tox, toy, toz)
  for x=fromx, tox do
 	 for y=fromy, toy do
 	 	 for z=fromz, toz do
 	 	 	 position = {x=x, y=y, z=z, stackpos = 253}
 	 	 	 creature = getThingfromPos(position)
 	 	 	 if (isPlayer(creature.uid) == TRUE) then
 	 	 	 	 return true
 	 	 	 end
 	 	 end
 	 end
 end
 return false
end

 

Basicamente, caso ela encontre algum jogador, retornará 1, caso contrário, 0.

Basta adiciona-la ao arquivo "functions.lua"!

Para usá-la, escolha 2 posições:

fromx, fromy e fromz deve ser o canto esquerdo superior.
tox, toy e toz deve ser o canto direito inferior.

Espero que gostem!

 

KaulOTServ:GOD

Gledsonrt

Link para o comentário
Compartilhar em outros sites

A vantagem é que para esta você pode trocar a parte:

 

if (isPlayer(creature.uid) == TRUE) then
   return true
end

 

Para qualquer função que você necessite: encontrar um item, um monstro, até mesmo contar quantos players existem na área.

Link para o comentário
Compartilhar em outros sites

Eu uso essa que é bem simples:

function getPlayerInArea(fromPos, toPos) -- by jhon992
local online = getPlayersOnline()
local players = {}
for i=1, #online do
   if isInArea(getPlayerPosition(online[i]), fromPos, toPos) then
       players[#players+1] = online[i]
   end
end
return players
end

Link para o comentário
Compartilhar em outros sites

Também funciona, mas novamente, a sua está limitada a players, e necessita da função isInArea.

A minha é basicamente a função isInArea, mas pode ser utilizada para qualquer propósito...

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...