Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
areadamageonce.c
Go to the documentation of this file.
2{
3 override void OnEnterServerEvent(TriggerInsider insider)
4 {
5 super.OnEnterServerEvent(insider);
6
7 OnEvaluateDamageEx(insider, 1);
8 }
9}
10
11class AreaDamageOnceDeferred : AreaDamageOnce
12{
14 protected float m_DeferDuration = 1.0;
15
16 override void SetDeferDuration(float time)
17 {
18 m_DeferDuration = time;
19 }
20
21 override void OnStayServerEvent(TriggerInsider insider, float deltaTime)
22 {
23 super.OnStayServerEvent(insider, deltaTime);
24
26 if ( CastTo( dInsider, insider ) && dInsider.lastDamaged == 0 )
27 OnEvaluateDamageEx(insider, 1);
28 }
29
30 override protected float CalculateDamageScale(TriggerInsider insider, float deltaTime)
31 {
32 if ( m_DeferDuration > 0 && (insider.lastUpdated - insider.timeEntered) >= m_DeferDuration )
33 return super.CalculateDamageScale(insider, deltaTime);
34
35 return 0;
36 }
37}
bool OnEvaluateDamageEx(TriggerInsider insider, float deltaTime)
void AreaDamageManager(EntityAI parent)
AreaDamageOnce m_DeferDuration
Time the damage should be deferred in seconds.
override void SetDeferDuration(float time)
override void OnStayServerEvent(TriggerInsider insider, float deltaTime)
float CalculateDamageScale(TriggerInsider insider, float deltaTime)
Extended TriggerInsider for AreaDamageTriggerBase.
The object which is in a trigger and its metadata.
Definition trigger.c:3
float lastUpdated
Last time the object was updated in seconds, is used for calculating deltaTime.
Definition trigger.c:16
float timeEntered
Time the object was first seen in seconds.
Definition trigger.c:13