Ir para conteúdo
  • 0

getCreaturePosition


GustavoCastilho

Pergunta

Boa tarde!

 

Qual é a sintaxe utilizada para separar as coordenadas retornadas pela função getCreaturePosition(cid)?

 

Exemplo:

 

 

O player está na posição x = 1234, y = 5678, z = 9. Então ao chamar a função ela retorna {1234, 5678, 9}. No entanto, preciso fazer a checagem para uma área:

 

if ((1234 >= pos_x and 1234 <= pos_x + radiusX) and (5678 >= pos_y and 5678 <= pos_y + radiusY) and pos_z == 9 and getPlayerStorageValue(cid, nStorage) == 1) then ..

 

Ou seja, irá checar se o player estiver dentro da área delimitada e tiver o nStorage ativo.

 

 

Resumindo, preciso 'quebrar' o valor retornado pela função getCreaturePosition(cid) em posições x, y, z.

 

Aproveito também para perguntar como distinguir os dias da semana utilizando a função os.time() ou os.date() (não sei ao certo qual é)?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Amigão, getThingPos e getCreaturePosition, retornam tabelas X, Y, Z , STACKPOS com as devidas coordenadas. Para pegarmos valores de tabelas, utilizamos pontos, exemplo:

local pos = getCreaturePosition(cid)
 
if (pos.x >= pos_x and pos.x <= pos_x + radiusX) and (pos.y >= pos_y and pos.y <= pos_y + radiusY)  and pos_z == 9 and getPlayerStorageValue(cid, nStorage) == 1 then

Mas existem diversas funções, exemplo, isInArea, isInRange. E podemos utilizar até a isInArray, exemplo:

if isInArray({x = 1234, y = 5678, z = 9}, getThingPos(cid)) then

Sua lógica também é valida.

 

 

@Dúvida 2

 

Para o os.date(), temos diversos parâmetros cabíveis:

Parâmetro:          Explicação:

%a         dia da semana abreviado (Wed)
%A         dia da semana completo (Sunday)
%b         nome do mês abreviado (Sep)
%B         nome do mês completo (April)
%c         data e hora (09/16/98 23:48:10)
%d         dia do mês [01-31]
%H         hora de um relógio de 24 horas [00-23]
%I         hora de um relógio de 12 horas [01-12]
%M         minutos [00-59]
%m         mês [01-12]
%S         segundos [00-60]
%w         dia da semana por números [0-6 = Domigo-Sabado]
%x         data (09/16/98)
%X         hora (23:48:10)
%Y         ano (1998)

Fonte: Tutorial os.date() de Demonbholder

 

Exemplos de uso:

if os.date("%X") == "14:48:00" and os.date("%A") == "Sunday" then

Executará caso for um dia de domingo, ás 14:48 da tade, rsrs.

GoodLuck.

Editado por Roksas
Link para o comentário
Compartilhar em outros sites

  • 0
if isInArray({x = 1234, y = 5678, z = 9}, getThingPos(cid)) then
os.date() == "Sunday"

melhor testar as coisas antes de flar.... ;x

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

Mas, para o método do IsInArray, eu teria que criar uma array com todas as coordenadas da área, seria desvantajoso, não?

Fiquei por diversas horas procurando essa tabelinha do os.date() e não encontrei.

 

Obrigado brother!

 

@Edit

 

Realmente faltou o %A ali na explicação do os.date():

 

 

os.date(%A) == "Sunday"
Editado por GustavoCastilho
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...