DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
VolcanicTrigger.c
См. документацию.
1
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
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_volcanicarea";
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.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] = GetGame().SurfaceY(pos[0], pos[2]) + 0.5;
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}
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
Определения EnMath.c:7
static const int VOLCANO
Определения ParticleList.c:348
Определения 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
override void OnLeaveClientEvent(TriggerInsider insider)
Определения VolcanicTrigger.c:71
static const float HEAT_DAMAGE_TICK_TIME
Определения VolcanicTrigger.c:6
static void ApplyEffects(PlayerBase player)
Определения VolcanicTrigger.c:98
override void EEDelete(EntityAI parent)
Определения VolcanicTrigger.c:27
override string GetDisplayName()
Определения VolcanicTrigger.c:22
static VolcanicTrigger m_SourceDamageInstance
Определения VolcanicTrigger.c:4
override void OnLeaveServerEvent(TriggerInsider insider)
Определения VolcanicTrigger.c:47
void SpawnVaporEffect()
Определения VolcanicTrigger.c:83
override void OnEnterServerEvent(TriggerInsider insider)
Определения VolcanicTrigger.c:35
static const float HEAT_DAMAGE_MULTIPLIER
Определения VolcanicTrigger.c:5
ParticleSource m_VaporParticle
Определения VolcanicTrigger.c:8
override void EEInit()
Определения VolcanicTrigger.c:10
override void OnEnterClientEvent(TriggerInsider insider)
Определения VolcanicTrigger.c:59
Volcanic area trigger.
Определения VolcanicTrigger.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