| 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
;
}
|