DayZ 1.30
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 (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_volcanicarea";
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.VOLCANIC);
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.VOLCANIC);
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.VOLCANIC);
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.VOLCANIC);
82 }
83 }
84
85 protected void SpawnVaporEffect()
86 {
87 vector pos = GetPosition();
88 pos[1] = g_Game.SurfaceY(pos[0], pos[2]) + 0.5; // Snap to terrain surface
89
90 m_VaporParticle = ParticleManager.GetInstance().PlayInWorld(ParticleList.VOLCANO, 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 // Server side effect application
100 static void ApplyEffects(PlayerBase player)
101 {
102 player.ProcessDirectDamage(DamageType.CUSTOM, m_SourceDamageInstance, "", "HeatDamage", "0 0 0", HEAT_DAMAGE_MULTIPLIER);
103 }
104}
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
Определения EnMath.c:7
static const int VOLCANO
Определения ParticleList.c:367
Определения 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
override void OnLeaveClientEvent(TriggerInsider insider)
Определения VolcanicTrigger.c:73
static const float HEAT_DAMAGE_TICK_TIME
Определения VolcanicTrigger.c:6
static void ApplyEffects(PlayerBase player)
Определения VolcanicTrigger.c:100
override void EEDelete(EntityAI parent)
Определения VolcanicTrigger.c:29
override string GetDisplayName()
Определения VolcanicTrigger.c:24
static VolcanicTrigger m_SourceDamageInstance
Определения VolcanicTrigger.c:4
override void OnLeaveServerEvent(TriggerInsider insider)
Определения VolcanicTrigger.c:49
void SpawnVaporEffect()
Определения VolcanicTrigger.c:85
override void OnEnterServerEvent(TriggerInsider insider)
Определения VolcanicTrigger.c:37
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:61
Volcanic area trigger.
Определения VolcanicTrigger.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