DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ GetRaycastedHitZone()

string AreaDamageComponentRaycasted::GetRaycastedHitZone ( Object victim)
inlineprotected

См. определение в файле AreaDamageComponentRaycasted.c строка 70

71 {
72 int nrOfCachedResults = m_RaycastSources.Count();
73 for ( int c = 0; c < nrOfCachedResults; ++c )
74 {
75 RaycastRVResult cachedRes = m_RaycastCache[c];
76 if ( cachedRes.obj == victim )
77 return victim.GetDamageZoneNameByComponentIndex(cachedRes.component);
78 }
79
80 int nrOfSources = m_RaycastSources.Count();
81 array<ref RaycastRVResult> victims = new array<ref RaycastRVResult>;
82
83 string hitzone = "";
84
85 AreaDamageTriggerBase trigger = m_Parent.GetTrigger();
86
87 RaycastRVParams params = new RaycastRVParams( vector.Zero, vector.Zero, trigger, 0.0 );
88 params.type = ObjIntersectIFire;
89 params.flags = CollisionFlags.ONLYDYNAMIC;
90
91 for ( int i = m_RaycastCachedIndex + 1; i < nrOfSources; ++i )
92 {
94
95 params.begPos = trigger.ModelToWorld( m_RaycastSources[i] );
96 params.endPos = params.begPos + m_RaycastEndOffset;
97
98 if ( DayZPhysics.RaycastRVProxy(params, victims) )
99 {
100 for ( int j = 0; j < victims.Count(); ++j )
101 {
102 RaycastRVResult res = victims[j];
103
104 if (res.obj == victim)
105 hitzone = victim.GetDamageZoneNameByComponentIndex(res.component);
106
107 if (res.obj.IsAnyInherited(m_DamageableTypes))
108 m_RaycastCache.Insert(res);
109 }
110
111 if ( !( hitzone == "") )
112 return hitzone;
113
114 victims.Clear();
115 }
116 }
117
118 return GetFallbackHitZone(victim);
119 }
void AreaDamageTriggerBase()
ctor
Определения AreaDamageTriggerBase.c:19
Widget m_Parent
Определения SizeToChild.c:92
string GetFallbackHitZone(Object victim)
Определения AreaDamageComponentRaycasted.c:121
ref array< vector > m_RaycastSources
Определения AreaDamageComponentRaycasted.c:5
ref array< ref RaycastRVResult > m_RaycastCache
Определения AreaDamageComponentRaycasted.c:8
vector endPos
end position of raycast (e.g. player direction)
Определения DayZPhysics.c:52
vector begPos
begin position of raycast (e.g. player position)
Определения DayZPhysics.c:51
int type
Определения DayZPhysics.c:73
CollisionFlags flags
Определения DayZPhysics.c:63
Object obj
object,that we collide with (NULL if none), If hierLevel > 0 object is the proxy object
Определения DayZPhysics.c:100
int component
index of component in corresponding geometry level
Определения DayZPhysics.c:107
CollisionFlags
Определения EnDebug.c:141

Перекрестные ссылки RaycastRVParams::begPos, RaycastRVResult::component, RaycastRVParams::endPos, RaycastRVParams::flags, GetFallbackHitZone(), m_Parent, m_RaycastCache, m_RaycastCachedIndex, m_RaycastEndOffset, m_RaycastSources, RaycastRVResult::obj, DayZPhysics::RaycastRVProxy(), RaycastRVParams::type и vector::Zero.

Используется в GetAreaDamageComponentData().