Функция: RaycastRVProxy Местонахождение функции: 3_Game\Global\DayZPhysics.c
Входные параметры: RaycastRVParams in - Необходимо создание экземпляра класса RaycastRVParams и указание параметров в нем перед передачей в функцию
vector vBeg - координаты начала луча
vector vEnd - координаты конца луча
Object pIgnore - обьект который будет проигнорирован если на него натолкнется луч
float fRadius - диаметр луча
RaycastRVParams m_RayCastInput = new RaycastRVParams(vBeg, vEnd, pIgnore, fRadius);
Дополнительные параметры: так же относятся к экземпляру RaycastRVParams - задаются дополнительно напрямую в переменную класса перед передачей в функцию
Object with; // если указан - то этот обьект будет так же проигнорирован
m_RayCastInput.with = player;
Возвращаемые данные: Данные помещаются в заранее созданный массив экземпляров класса RaycastRVResult и извлекаются обычным способом
array<ref RaycastRVResult> m_RayCastResults = new array<ref RaycastRVResult>;
Что делает данная функция: Возвращает ссылку объект на который натолкнулся луч (игнорируя обьекты ссылки на которые помещены в переменные pIgnore и with экземпляра класса RaycastRVParams Где работает данная функция: не ниже радела 3_Game
Пример вызова-использования: из класса 4_World
vector m_RayStart = "2000 52 2000"
vector m_RayEnd = "2000 42 2000"
Object ignoredObject; //В эту переменную помещаем ссылку на обьект который должен быть проигнорирован
RaycastRVParams m_RayCastInput = new RaycastRVParams(m_RayStart, m_RayEnd, ignoredObject, rayradius);
m_RayCastInput.with = player; //переменная player в данном случае содержит ссылку на обьект игрока который так же должен быть проигнорирован
array<ref RaycastRVResult> m_RayCastResults = new array<ref RaycastRVResult>;
m_RayCastResult = DayZPhysics.RaycastRVProxy(m_RayCastInput, m_RayCastResults);
Извлечение результатов:
Object resultObject = m_RayCastResults[0].obj; //Получение обьекта с которым столкнулся луч
Object resultObjectParent = m_RayCastResults[0].parent; //Получение родительского обьекта для обьекта с которым столкнулся луч
Обьяснение:
Например луч столкнулся с дверью авто - m_RayCastResults[0].obj содержи ссылку класса Object на обьект двери
Если дверь держит в руках игрок, то _RayCastResults[0].parent будет содержать ссылку класса Object на обьект игрока, а если дверь прикреплена к машине, то на обьект машины.
P.S. Некоторые параметры RaycastRVParams и m_RayCastResults я опустил за ненадобностью, тк при необходимости Вы найдете описания параметров в файле 3_Game\Global\DayZPhysics.c