DayZ
1.27
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
HotSpringTrigger.c
См. документацию.
1
2
class
HotSpringTrigger
:
EffectTrigger
3
{
4
static
HotSpringTrigger
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
(
GetGame
().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_hotspring"
;
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.HOT_SPRING);
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.HOT_SPRING);
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.HOT_SPRING);
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.HOT_SPRING);
80
}
81
}
82
83
protected
void
SpawnVaporEffect
()
84
{
85
vector
pos =
GetPosition
();
86
pos[1] =
GetGame
().
SurfaceY
(pos[0], pos[2]) + 0.5;
87
88
m_VaporParticle
=
ParticleManager
.GetInstance().PlayInWorld(
ParticleList
.
HOTPSRING_WATERVAPOR
, 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
static
void
ApplyEffects
(
PlayerBase
player)
98
{
99
float
waterLevel = player.GetCurrentWaterLevel();
100
if
(waterLevel > 0.5)
101
player.ProcessDirectDamage(
DamageType
.CUSTOM,
m_SourceDamageInstance
,
""
,
"HeatDamage"
,
"0 0 0"
,
HEAT_DAMAGE_MULTIPLIER
* waterLevel);
102
}
103
}
DamageType
DamageType
exposed from C++ (do not change)
Определения
DamageSystem.c:11
ParticleManager
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения
ParticleManager.c:88
CGame::SurfaceY
proto native float SurfaceY(float x, float z)
EffectTrigger::EffectTrigger
void EffectTrigger()
Определения
EffectTrigger.c:20
EntityAI
Определения
Building.c:6
HotSpringTrigger::OnLeaveServerEvent
override void OnLeaveServerEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:47
HotSpringTrigger::ApplyEffects
static void ApplyEffects(PlayerBase player)
Определения
HotSpringTrigger.c:97
HotSpringTrigger::OnEnterServerEvent
override void OnEnterServerEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:35
HotSpringTrigger::EEInit
override void EEInit()
Определения
HotSpringTrigger.c:10
HotSpringTrigger::SpawnVaporEffect
void SpawnVaporEffect()
Определения
HotSpringTrigger.c:83
HotSpringTrigger::OnLeaveClientEvent
override void OnLeaveClientEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:71
HotSpringTrigger::m_VaporParticle
ParticleSource m_VaporParticle
Определения
HotSpringTrigger.c:8
HotSpringTrigger::GetDisplayName
override string GetDisplayName()
Определения
HotSpringTrigger.c:22
HotSpringTrigger::OnEnterClientEvent
override void OnEnterClientEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:59
HotSpringTrigger::m_SourceDamageInstance
static HotSpringTrigger m_SourceDamageInstance
Определения
HotSpringTrigger.c:4
HotSpringTrigger::HEAT_DAMAGE_TICK_TIME
static const float HEAT_DAMAGE_TICK_TIME
Определения
HotSpringTrigger.c:6
HotSpringTrigger::EEDelete
override void EEDelete(EntityAI parent)
Определения
HotSpringTrigger.c:27
HotSpringTrigger::HEAT_DAMAGE_MULTIPLIER
static const float HEAT_DAMAGE_MULTIPLIER
Определения
HotSpringTrigger.c:5
HotSpringTrigger
Hot spring area trigger.
Определения
HotSpringTrigger.c:3
Math
Определения
EnMath.c:7
ParticleList::HOTPSRING_WATERVAPOR
static const int HOTPSRING_WATERVAPOR
Определения
ParticleList.c:344
ParticleList
Определения
ParticleList.c:12
ParticleSource
Entity which has the particle instance as an ObjectComponent.
Определения
ParticleSource.c:124
PlayerBase
Определения
PlayerBaseClient.c:2
TriggerInsider::GetObject
Object GetObject()
Определения
Trigger.c:28
TriggerInsider
The object which is in a trigger and its metadata.
Определения
Trigger.c:3
vector
Определения
EnConvert.c:106
GetGame
proto native CGame GetGame()
Math::RandomIntInclusive
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Определения
EnMath.c:54
EmitorParam
EmitorParam
Определения
EnVisual.c:114
GetPosition
class JsonUndergroundAreaTriggerData GetPosition
Определения
UndergroundAreaLoader.c:9
Ishodniki
scripts
4_World
Entities
ScriptedEntities
Triggers
HotSpringTrigger.c
Создано системой
1.13.2