10 bool m_DealDamageFlag;
11 TriggerEffectManager m_Manager;
12 EffectArea m_EffectArea;
13 int m_EffectsPriority;
17 bool m_DebugShapeActive;
22 RegisterNetSyncVariableInt(
"m_AroundPartId");
23 RegisterNetSyncVariableInt(
"m_TinyPartId");
24 RegisterNetSyncVariableInt(
"m_PPERequester");
25 RegisterNetSyncVariableInt(
"m_EffectsPriority");
27 m_Manager = TriggerEffectManager.GetInstance();
28 m_Manager.RegisterTriggerType(
this );
35 void SetLocalEffects(
int aroundPartId,
int tinyPartId,
int ppeRequesterIdx )
37 m_AroundPartId = aroundPartId;
38 m_TinyPartId = tinyPartId;
39 m_PPERequester = ppeRequesterIdx;
44 EffectArea GetEffectArea()
49 void Init(EffectArea area,
int priority)
52 m_EffectsPriority = priority;
55 int GetEffectsPriority()
57 return m_EffectsPriority;
60 string GetAmbientSoundsetName()
65 void SetupClientEffects(
bool enable, notnull PlayerBase player)
67 if ( !m_Manager.IsPlayerInTriggerType( player,
this ) )
71 player.SetContaminatedEffectEx(
true, m_PPERequester, m_AroundPartId, m_TinyPartId, GetAmbientSoundsetName() );
75 player.SetContaminatedEffectEx(
false, m_PPERequester );
85 override void EOnFrame(IEntity other,
float timeSlice)
87 m_DeltaTime = timeSlice;
90 override bool CanAddObjectAsInsider(
Object object)
93 DayZCreatureAI creature = DayZCreatureAI.Cast(
object );
96 return !creature.ResistContaminatedEffect();
100 PlayerBase player = PlayerBase.Cast(
object);
101 return player != null;
104 PlayerBase player = PlayerBase.Cast(
object);
105 return (player && player.IsControlledPlayer());
111 super.OnStayClientEvent(insider, deltaTime);
114 player.RequestTriggerEffect(
this, m_PPERequester, m_AroundPartId, m_TinyPartId, GetAmbientSoundsetName() );
119 super.OnEnterServerEvent( insider );
129 m_Manager.OnPlayerEnter( playerInsider,
this );
138 super.OnEnterClientEvent( insider );
145 if (playerInsider && playerInsider.IsControlledPlayer() )
149 m_Manager.OnPlayerEnter( playerInsider,
this );
157 super.OnLeaveServerEvent( insider );
164 m_Manager.OnPlayerExit( playerInsider,
this );
172 super.OnLeaveClientEvent( insider );
181 if ( playerInsider && playerInsider.IsControlledPlayer() )
184 m_Manager.OnPlayerExit( playerInsider,
this );
200 #ifdef DIAG_DEVELOPER
210 if (!m_DebugShapeActive)
213 m_DebugShapeActive =
true;
217 m_dbgInsiders = insiders;
219 if (m_dbgInsiders.Count() > 0)
224 else if (m_DebugShapeActive)
226 CleanupDebugShapes(dbgTargets);
227 m_DebugShapeActive =
false;
Trigger with cylinder shape.
static void TriggerEffect(EntityAI insider, typename triggerType)
override bool ShouldRemoveInsider(TriggerInsider insider)
override void OnLeaveServerEvent(TriggerInsider insider)
override void OnEnterClientEvent(TriggerInsider insider)
override void OnLeaveClientEvent(TriggerInsider insider)
override void OnEnterServerEvent(TriggerInsider insider)
void OnStayClientEvent(TriggerInsider insider, float deltaTime)
The object which is in a trigger and its metadata.
Result for an object found in CGame.IsBoxCollidingGeometryProxy.