Pular para o conteúdo

processLineAgainstMesh

Cliente Mundo

Traça uma linha contra a malha de um elemento específico e devolve o ponto exato do triângulo atingido.

bool, number, number, string, string, number, number, number processLineAgainstMesh ( element oElemento, number inicioX, number inicioY, number inicioZ, number fimX, number fimY, number fimZ )
NomeTipoDescrição
oElementoelementElemento cuja malha será testada.
inicioX, inicioY, inicioZnumberPonto de partida da linha.
fimX, fimY, fimZnumberPonto final da linha.

false quando não há acerto. Quando há, devolve oito valores:

PosiçãoDescrição
1true.
2, 3Coordenadas U e V dentro da textura.
4Nome da textura, ou nil se não tiver nome.
5Nome do frame, ou nil se não tiver nome.
6, 7, 8Posição do impacto sobre a malha.

Um elemento que ainda não foi carregado na área do jogador simplesmente não acerta: o retorno é false, sem aviso. Os argumentos são conferidos de forma estrita: algo que não seja um elemento válido no primeiro argumento, ou uma coordenada que não seja número (ou seja NaN ou infinita), gera um erro de Lua.

local acertou, u, v, textura = processLineAgainstMesh(alvo, cx, cy, cz, px, py, pz)
if acertou and textura then
outputDebugString("textura atingida: " .. textura)
end