lua:processlineofsight

processLineOfSight

bool result, table colPoint = processLineOfSight(float originX, float originY, float originZ, float targetX, float targetY, float targetZ, [bool checkSolid=true], [bool car=false], [bool ped=false], [bool object=false], [bool particle=false], [bool seeThrough=false], [bool ignoreSomeObjects=false], [bool shotThrough=false])

Ищет точку соприкосновения в трёхмерном пространстве между двумя координатами, по направлению прямой из позиции origin к target. Имеет флаги, определяющие, какие типы объектов нужно проверять на столкновение. Возвращает таблицу с информацией о точке соприкосновения.

float originX, float originY, float originZ начальная позиция
float targetX, float targetY, float targetZ конечная позиция
bool checkSolid статичные объекты (напр. любые постройки)
bool car транспорт
bool ped персонажи
bool object динамические объекты
bool particle визуальные эффекты
bool seeThrough учитывать прозрачные объекты
bool ignoreSomeObjects игнорировать некоторые динамические объекты
bool shotThrough учитывать объекты, простреливаемые насквозь

bool result результат выполнения
table colPoint информация о точке соприкосновения

Структура таблицы
float pos[1], float pos[2], float pos[3] позиция точки соприкосновения XYZ
float normal[1], float normal[2], float normal[3] вектор нормали к поверхности соприкосновения
int surfaceType[1], int surfaceType[2] типы поверхности
int pieceType[1], int pieceType[2] типы детали
float depth глубина коллизии
int entity указатель на объект сущности, с которой произошло столкновение
int entityType тип сущности