DayZ 1.30
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 (g_Game.IsServer() && !m_SourceDamageInstance)
14
15 super.EEInit();
16
17 #ifndef SERVER
18 #ifndef NO_GUI
20 #endif
21 #endif
22 }
23
24 override string GetDisplayName()
25 {
26 return "#STR_hotspring";
27 }
28
29 override void EEDelete( EntityAI parent )
30 {
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
exposed from C++ (do not change)
Определения DamageSystem.c:11
DayZGame g_Game
Определения DayZGame.c:4074
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
void EffectTrigger()
Определения EffectTrigger.c:20
override void OnLeaveServerEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:49
static void ApplyEffects(PlayerBase player)
Определения HotSpringTrigger.c:99
override void OnEnterServerEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:37
override void EEInit()
Определения HotSpringTrigger.c:10
void SpawnVaporEffect()
Определения HotSpringTrigger.c:85
override void OnLeaveClientEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:73
ParticleSource m_VaporParticle
Определения HotSpringTrigger.c:8
override string GetDisplayName()
Определения HotSpringTrigger.c:24
override void OnEnterClientEvent(TriggerInsider insider)
Определения HotSpringTrigger.c:61
static HotSpringTrigger m_SourceDamageInstance
Определения HotSpringTrigger.c:4
static const float HEAT_DAMAGE_TICK_TIME
Определения HotSpringTrigger.c:6
override void EEDelete(EntityAI parent)
Определения HotSpringTrigger.c:29
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:362
Определения ParticleList.c:12
Entity which has the particle instance as an ObjectComponent.
Определения ParticleSource.c:128
Определения PlayerBaseClient.c:2
Object GetObject()
Определения Trigger.c:28
The object which is in a trigger and its metadata.
Определения Trigger.c:3
Определения EnConvert.c:119
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
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473