DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
HotSpringTrigger.c
См. документацию.
1
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
9
10 override void EEInit()
11 {
12 if (GetGame().IsServer() && !m_SourceDamageInstance)
14
15 super.EEInit();
16
17 #ifndef SERVER
19 #endif
20 }
21
22 override string GetDisplayName()
23 {
24 return "#STR_hotspring";
25 }
26
27 override void EEDelete( EntityAI parent )
28 {
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
exposed from C++ (do not change)
Определения DamageSystem.c:11
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
proto native float SurfaceY(float x, float z)
void EffectTrigger()
Определения EffectTrigger.c:20
Определения Building.c:6
override void OnLeaveServerEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:47
static void ApplyEffects(PlayerBase player)
Определения HotSpringTrigger.c:97
override void OnEnterServerEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:35
override void EEInit()
Определения HotSpringTrigger.c:10
void SpawnVaporEffect()
Определения HotSpringTrigger.c:83
override void OnLeaveClientEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:71
ParticleSource m_VaporParticle
Определения HotSpringTrigger.c:8
override string GetDisplayName()
Определения HotSpringTrigger.c:22
override void OnEnterClientEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:59
static HotSpringTrigger m_SourceDamageInstance
Определения HotSpringTrigger.c:4
static const float HEAT_DAMAGE_TICK_TIME
Определения HotSpringTrigger.c:6
override void EEDelete(EntityAI parent)
Определения HotSpringTrigger.c:27
static const float HEAT_DAMAGE_MULTIPLIER
Определения HotSpringTrigger.c:5
Hot spring area trigger.
Определения HotSpringTrigger.c:3
Определения EnMath.c:7
static const int HOTPSRING_WATERVAPOR
Определения ParticleList.c:344
Определения ParticleList.c:12
Entity which has the particle instance as an ObjectComponent.
Определения ParticleSource.c:124
Определения PlayerBaseClient.c:2
Object GetObject()
Определения Trigger.c:28
The object which is in a trigger and its metadata.
Определения Trigger.c:3
Определения EnConvert.c:106
proto native CGame GetGame()
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Определения EnMath.c:54
EmitorParam
Определения EnVisual.c:114
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9