DayZ
1.30
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
(
g_Game
.IsServer() && !
m_SourceDamageInstance
)
13
m_SourceDamageInstance
=
this
;
14
15
super.EEInit();
16
17
#ifndef SERVER
18
#ifndef NO_GUI
19
SpawnVaporEffect
();
20
#endif
21
#endif
22
}
23
24
override
string
GetDisplayName
()
25
{
26
return
"#STR_hotspring"
;
27
}
28
29
override
void
EEDelete
(
EntityAI
parent )
30
{
31
if
(
m_VaporParticle
)
32
m_VaporParticle
.Stop();
33
34
super.EEDelete(parent);
35
}
36
37
override
void
OnEnterServerEvent
(
TriggerInsider
insider )
38
{
39
super.OnEnterServerEvent(insider);
40
41
if
(insider)
42
{
43
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
44
if
(playerInsider)
45
playerInsider.SetInEffectAreaTypeFlag(EEffectAreaType.HOT_SPRING);
46
}
47
}
48
49
override
void
OnLeaveServerEvent
(
TriggerInsider
insider )
50
{
51
super.OnLeaveServerEvent(insider);
52
53
if
(insider)
54
{
55
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
56
if
(playerInsider)
57
playerInsider.UnsetInEffectAreaTypeFlag(EEffectAreaType.HOT_SPRING);
58
}
59
}
60
61
override
void
OnEnterClientEvent
(
TriggerInsider
insider )
62
{
63
super.OnEnterClientEvent(insider);
64
65
if
(insider)
66
{
67
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
68
if
(playerInsider)
69
playerInsider.SetInEffectAreaTypeFlag(EEffectAreaType.HOT_SPRING);
70
}
71
}
72
73
override
void
OnLeaveClientEvent
(
TriggerInsider
insider )
74
{
75
super.OnLeaveClientEvent(insider);
76
77
if
(insider)
78
{
79
PlayerBase
playerInsider =
PlayerBase
.Cast(insider.
GetObject
());
80
if
(playerInsider)
81
playerInsider.UnsetInEffectAreaTypeFlag(EEffectAreaType.HOT_SPRING);
82
}
83
}
84
85
protected
void
SpawnVaporEffect
()
86
{
87
vector
pos =
GetPosition
();
88
pos[1] =
g_Game
.SurfaceRoadY(pos[0], pos[2], RoadSurfaceDetection.UNDER);
// Snap to water volume surface or terrain
89
90
m_VaporParticle
=
ParticleManager
.GetInstance().PlayInWorld(
ParticleList
.
HOTPSRING_WATERVAPOR
, pos);
91
92
int
randSize =
Math
.
RandomIntInclusive
(-1,2);
93
int
randRate =
Math
.
RandomIntInclusive
(-1,2);
94
95
m_VaporParticle
.IncrementParticleParam(
EmitorParam
.SIZE, randSize);
96
m_VaporParticle
.IncrementParticleParam(
EmitorParam
.BIRTH_RATE, randRate);
97
}
98
99
static
void
ApplyEffects
(
PlayerBase
player)
100
{
101
float
waterLevel = player.GetCurrentWaterLevel();
102
if
(waterLevel > 0.5)
103
player.ProcessDirectDamage(
DamageType
.CUSTOM,
m_SourceDamageInstance
,
""
,
"HeatDamage"
,
"0 0 0"
,
HEAT_DAMAGE_MULTIPLIER
* waterLevel);
104
}
105
}
DamageType
DamageType
exposed from C++ (do not change)
Определения
DamageSystem.c:11
g_Game
DayZGame g_Game
Определения
DayZGame.c:4074
ParticleManager
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения
ParticleManager.c:88
EffectTrigger::EffectTrigger
void EffectTrigger()
Определения
EffectTrigger.c:20
EntityAI
Определения
3_Game/DayZ/Entities/InventoryItem.c:2
HotSpringTrigger::OnLeaveServerEvent
override void OnLeaveServerEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:49
HotSpringTrigger::ApplyEffects
static void ApplyEffects(PlayerBase player)
Определения
HotSpringTrigger.c:99
HotSpringTrigger::OnEnterServerEvent
override void OnEnterServerEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:37
HotSpringTrigger::EEInit
override void EEInit()
Определения
HotSpringTrigger.c:10
HotSpringTrigger::SpawnVaporEffect
void SpawnVaporEffect()
Определения
HotSpringTrigger.c:85
HotSpringTrigger::OnLeaveClientEvent
override void OnLeaveClientEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:73
HotSpringTrigger::m_VaporParticle
ParticleSource m_VaporParticle
Определения
HotSpringTrigger.c:8
HotSpringTrigger::GetDisplayName
override string GetDisplayName()
Определения
HotSpringTrigger.c:24
HotSpringTrigger::OnEnterClientEvent
override void OnEnterClientEvent(TriggerInsider insider)
Определения
HotSpringTrigger.c:61
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:29
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:362
ParticleList
Определения
ParticleList.c:12
ParticleSource
Entity which has the particle instance as an ObjectComponent.
Определения
ParticleSource.c:128
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:119
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
vector GetPosition()
Get the world position of the Effect.
Определения
Effect.c:473
Ishodniki
scripts
4_World
DayZ
Entities
ScriptedEntities
Triggers
HotSpringTrigger.c
Создано системой
1.13.2