- 387
- 135
В 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;
}
Последнее редактирование: