ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Получение нормали из ProcessLineOfSight() (https://forum.antichat.xyz/showthread.php?t=1477550)

Ya Zaregalsya 18.05.2023 21:57

В SAMPFUNCS есть функции для получения столкновений в 3д мире. В общем-то функи работают как надо, за исключением одного. Мне нужно узнать не только точку столкновения, а и нормаль поверхности, с которым это столкновение произошло, чтобы заспавнить на нём объект. В классе CColPoint есть метод getNormal(), но он возвращает какой-то бред.

C++:





Код:

struct
ProcessLineOfSightColData
{
bool
clear
;
CColPoint
*
colCollision
;
CEntity
*
collisionEntity
;
SLineOfSightFlags flags
;
SLineOfSightBuildingResult buildingResult
;
}
;
ProcessLineOfSightColData DevKit
::
ProcessLineOfSight
(
CVector vecStart
,
CVector vecEnd
,
bool
bCheckBuildings
,
bool
bCheckVehicles
,
bool
bCheckPeds
,
bool
bCheckObjects
,
bool
bCheckDummies
,
bool
bSeeThroughStuff
,
bool
bIgnoreSomeObjectsForCamera
)
{
ProcessLineOfSightColData colData
;
colData
.
flags
.
bCheckBuildings
=
bCheckBuildings
;
colData
.
flags
.
bCheckVehicles
=
bCheckVehicles
;
colData
.
flags
.
bCheckPeds
=
bCheckPeds
;
colData
.
flags
.
bCheckObjects
=
bCheckObjects
;
colData
.
flags
.
bCheckDummies
=
bCheckDummies
;
colData
.
flags
.
bSeeThroughStuff
=
bSeeThroughStuff
;
colData
.
flags
.
bIgnoreSomeObjectsForCamera
=
bIgnoreSomeObjectsForCamera
;
colData
.
clear
=
GAME
->
GetWorld
(
)
->
ProcessLineOfSight
(
&
vecStart
,
&
vecEnd
,
&
colData
.
colCollision
,
&
colData
.
collisionEntity
,
colData
.
flags
,
&
colData
.
buildingResult
)
;
return
colData
;
}



Время: 22:52