Ir para conteúdo

Featured Replies

Postado
  • Autor
Caronte, achei essa parte na Function getPosfromArea(cid,area) do 032-Position, então eu devo retirar o [1] ou os números no parêntese certo?
 
function getPosfromArea(cid,area)
icenter = math.floor(table.getn(area)/2)+1
jcenter = math.floor(table.getn(area[1])/2)+1
center = area[icenter]
ivar = table.getn(area)
jvar = table.getn(area[1])
i = table.getn(area)^2
j = table.getn(area[1])^2
  • Respostas 8
  • Visualizações 1.2k
  • Created
  • Última resposta

Top Posters In This Topic

Posted Images

Postado

Primeiro tem que ver como funciona a variável área, pois se for assim, por exemplo:

area = { {1, 2, 3}, }
Nesse caso, area[1], seria:

{1, 2, 3}
Que é uma tabela de índice 1, sem nome, dentro de uma outra, chamada área...

Como o nome da tabela é área, seria algo tipo:

{0, 1, 0},

Sendo assim, talvez tenha um elemento invalido na tabel...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Postado
  • Autor
Eu editei tirando o [1] e continuou a mesma coisa...
 
A parte inteira do getPosfromArea é essa:
Onde vê essa variável?
 
function getPosfromArea(cid,area)
icenter = math.floor(table.getn(area)/2)+1
jcenter = math.floor(table.getn(area)/2)+1
center = area[icenter]
ivar = table.getn(area)
jvar = table.getn(area)
i = table.getn(area)^2
j = table.getn(area)^2
 
 
local mydir = isCreature(getMasterTarget(cid)) and getCreatureDirectionToTarget(cid, getMasterTarget(cid)) or getCreatureLookDir(cid)
setPlayerStorageValue(cid, 21101, -1)  --alterado v1.6
 
   if center[jcenter] == 3 then
          if mydir == 0 then
             signal = {-1,1,1,2}
          elseif mydir == 1 then
             signal = {1,-1,2,1}
          elseif mydir == 2 then
             signal = {1,-1,1,2}
          elseif mydir == 3 then
             signal = {-1,1,2,1}
          end
   else
   signal = {-1,1,1,2}
   end
 
POSITIONS = {}  
P = 0 
   
repeat
pvar = {0,0}
I = area[ivar]
J = I[jvar]
i = i-1
j = j-1
   if J == 1 then
          if jvar < jcenter then  
          pvar[signal[3]] = signal[1]*math.abs((jcenter-jvar)) 
          elseif jvar > jcenter then  
          pvar[signal[3]] = signal[2]*math.abs((jcenter-jvar)) 
          end
          
          if ivar < icenter then  
          pvar[signal[4]] = signal[1]*math.abs((icenter-ivar)) 
          elseif ivar > icenter then
          pvar[signal[4]] = signal[2]*math.abs((icenter-ivar))
          end
   end    
   if jvar > 1 then
   jvar = (jvar-1)
   elseif ivar > 1 then
   jvar = table.getn(area)
   ivar = (ivar-1)
   end  
local pos = getThingPos(cid)
local areapos = {x=pos.x+(pvar[1]),y=pos.y+(pvar[2]),z=pos.z}  
 
  if pos.x ~= areapos.x or pos.y ~= areapos.y then
     P = P+1
     POSITIONS[P] = areapos
  end 
  
until i <= 0 and j <= 0
 
return POSITIONS
end
  • 1 year later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo