Dayz Explorer
1.29.162510
Loading...
Searching...
No Matches
volcanictrigger.c
Go to the documentation of this file.
1
2
class
VolcanicTrigger
: EffectTrigger
3
{
4
static
VolcanicTrigger
m_SourceDamageInstance;
// this is used only server side for logging damage source in admin log
5
static
const
float
HEAT_DAMAGE_MULTIPLIER = 5;
6
static
const
float
HEAT_DAMAGE_TICK_TIME = 2;
7
8
protected
ParticleSource
m_VaporParticle
;
9
10
override
void
EEInit
()
11
{
12
if
(
g_Game
.IsServer() && !m_SourceDamageInstance)
13
m_SourceDamageInstance =
this
;
14
15
super.EEInit();
16
17
#ifndef SERVER
18
SpawnVaporEffect
();
19
#endif
20
}
21
22
override
string
GetDisplayName
()
23
{
24
return
"#STR_volcanicarea"
;
25
}
26
27
override
void
EEDelete
(
EntityAI
parent )
28
{
29
if
(
m_VaporParticle
)
30
m_VaporParticle
.Stop();
31
32
super.EEDelete(parent);
33
}
34
35
override
void
OnEnterServerEvent
(
TriggerInsider
insider )
36
{
37
super.OnEnterServerEvent(insider);
38
39
if
(insider)
40
{
41
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
42
if
(playerInsider)
43
playerInsider.SetInEffectAreaTypeFlag(EEffectAreaType.VOLCANIC);
44
}
45
}
46
47
override
void
OnLeaveServerEvent
(
TriggerInsider
insider )
48
{
49
super.OnLeaveServerEvent(insider);
50
51
if
(insider)
52
{
53
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
54
if
(playerInsider)
55
playerInsider.UnsetInEffectAreaTypeFlag(EEffectAreaType.VOLCANIC);
56
}
57
}
58
59
override
void
OnEnterClientEvent
(
TriggerInsider
insider )
60
{
61
super.OnEnterClientEvent(insider);
62
63
if
(insider)
64
{
65
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
66
if
(playerInsider)
67
playerInsider.SetInEffectAreaTypeFlag(EEffectAreaType.VOLCANIC);
68
}
69
}
70
71
override
void
OnLeaveClientEvent
(
TriggerInsider
insider )
72
{
73
super.OnLeaveClientEvent(insider);
74
75
if
(insider)
76
{
77
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
78
if
(playerInsider)
79
playerInsider.UnsetInEffectAreaTypeFlag(EEffectAreaType.VOLCANIC);
80
}
81
}
82
83
protected
void
SpawnVaporEffect
()
84
{
85
vector
pos =
GetPosition
();
86
pos[1] =
g_Game
.SurfaceY(pos[0], pos[2]) + 0.5;
// Snap to terrain surface
87
88
m_VaporParticle
=
ParticleManager
.GetInstance().PlayInWorld(
ParticleList
.VOLCANO, pos);
89
90
int
randSize =
Math
.RandomIntInclusive(-1,2);
91
int
randRate =
Math
.RandomIntInclusive(-1,2);
92
93
m_VaporParticle
.IncrementParticleParam(
EmitorParam
.SIZE, randSize);
94
m_VaporParticle
.IncrementParticleParam(
EmitorParam
.BIRTH_RATE, randRate);
95
}
96
97
// Server side effect application
98
static
void
ApplyEffects
(
PlayerBase
player)
99
{
100
player.ProcessDirectDamage(
DamageType
.CUSTOM, m_SourceDamageInstance,
""
,
"HeatDamage"
,
"0 0 0"
, HEAT_DAMAGE_MULTIPLIER);
101
}
102
}
EntityAI
Definition
inventoryitem.c:2
Math
Definition
enmath.c:7
ParticleList
Definition
particlelist.c:12
ParticleSource
Entity which has the particle instance as an ObjectComponent.
Definition
particlesource.c:124
PlayerBase
Definition
playerbaseclient.c:2
TriggerInsider
The object which is in a trigger and its metadata.
Definition
trigger.c:3
TriggerInsider::GetObject
Object GetObject()
Definition
trigger.c:28
VolcanicTrigger
Volcanic area trigger.
Definition
volcanictrigger.c:3
VolcanicTrigger::OnLeaveClientEvent
override void OnLeaveClientEvent(TriggerInsider insider)
Definition
volcanictrigger.c:71
VolcanicTrigger::ApplyEffects
static void ApplyEffects(PlayerBase player)
Definition
volcanictrigger.c:98
VolcanicTrigger::EEDelete
override void EEDelete(EntityAI parent)
Definition
volcanictrigger.c:27
VolcanicTrigger::GetDisplayName
override string GetDisplayName()
Definition
volcanictrigger.c:22
VolcanicTrigger::OnLeaveServerEvent
override void OnLeaveServerEvent(TriggerInsider insider)
Definition
volcanictrigger.c:47
VolcanicTrigger::SpawnVaporEffect
void SpawnVaporEffect()
Definition
volcanictrigger.c:83
VolcanicTrigger::OnEnterServerEvent
override void OnEnterServerEvent(TriggerInsider insider)
Definition
volcanictrigger.c:35
VolcanicTrigger::m_VaporParticle
ParticleSource m_VaporParticle
Definition
volcanictrigger.c:8
VolcanicTrigger::EEInit
override void EEInit()
Definition
volcanictrigger.c:10
VolcanicTrigger::OnEnterClientEvent
override void OnEnterClientEvent(TriggerInsider insider)
Definition
volcanictrigger.c:59
vector
Definition
enconvert.c:119
DamageType
DamageType
exposed from C++ (do not change)
Definition
damagesystem.c:11
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
EmitorParam
EmitorParam
Definition
envisual.c:114
GetPosition
vector GetPosition()
Get the world position of the Effect.
Definition
effect.c:473
ParticleManager
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor).
Definition
particlemanager.c:88
Daten
4_world
entities
scriptedentities
triggers
volcanictrigger.c
Generated by
1.16.1