processLineOfSight
Cliente
Lança um raio entre dois pontos e devolve a primeira coisa que ele acerta.
bool, vec3, vec3, element|nil processLineOfSight(float startX, startY, startZ, float endX, endY, endZ [, bool checkBuildings = true, bool checkVehicles = true, bool checkPeds = true, bool checkObjects = true])
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| startX, startY, startZ | float | Onde o raio começa. Também aceita um vec3. |
| endX, endY, endZ | float | Onde o raio termina. Também aceita um vec3. |
| checkBuildings | bool | Se prédios contam.padrão true |
| checkVehicles | bool | Se veículos contam.padrão true |
| checkPeds | bool | Se peds contam.padrão true |
| checkObjects | bool | Se objetos contam.padrão true |
Retorno
false se nada foi atingido. Se algo foi, true, o ponto atingido, a normal da superfície nesse ponto e o elemento atingido (nil quando não é um elemento, como um prédio do mapa).
Exemplo
local function firstHit(from, to)
local hit, position, normal, element = processLineOfSight(from, to, true, true, false, true)
if hit and element then
outputDebugString("Hit a " .. getElementType(element))
end
return hit and position
end