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 | тип сущности |