DayZ 1.24
Loading...
Searching...
No Matches
EngineSmoke.c
Go to the documentation of this file.
2{
3 private float m_Time;
4 static private float m_UpdateInterval = 2;
5
7 {
9 }
10
15
20
21 override void Event_OnFrameUpdate(float time_delta)
22 {
24
26 {
27 m_Time = 0;
28
29 Car parent = Car.Cast(GetAttachmentParent());
30
31 if (parent)
32 {
34 if (p)
35 {
36 SetParticleState(p.GetParticleID());
37
38 float speed = parent.GetSpeedometerAbsolute();
39 float lifetime_scale;
40
41 if (speed < 100)
42 lifetime_scale = (100 - speed) / 100;
43 else
44 lifetime_scale = 0.1;
45
46 float birthrate_scale = 1 + (speed * 0.02);
47
48 p.ScaleParticleParamFromOriginal(EmitorParam.LIFETIME, lifetime_scale);
49 p.ScaleParticleParamFromOriginal(EmitorParam.LIFETIME_RND, lifetime_scale);
50 p.ScaleParticleParamFromOriginal(EmitorParam.BIRTH_RATE, birthrate_scale);
51 p.ScaleParticleParamFromOriginal(EmitorParam.BIRTH_RATE_RND, birthrate_scale);
52 }
53 }
54 }
55 }
56}
Object GetAttachmentParent()
Get the parent set by SetAttachmentParent.
Definition Effect.c:554
void EffEngineSmoke()
Definition EngineSmoke.c:6
float m_UpdateInterval
Definition EngineSmoke.c:4
override void SetParticleStateHeavy()
Definition EngineSmoke.c:16
override void Event_OnFrameUpdate(float time_delta)
Definition EngineSmoke.c:21
override void SetParticleStateLight()
Definition EngineSmoke.c:11
void SetParticleState(int state)
Particle GetParticle()
Gets the main particle which this Effect is managing.
Legacy way of using particles in the game.
Definition Particle.c:7
static const int HATCHBACK_ENGINE_OVERHEATING
static const int HATCHBACK_ENGINE_OVERHEATED
void SetEnableEventFrame(bool enable)
Enable Event_OnFrameUpdate for the effect.
Definition Effect.c:270
EmitorParam
Definition EnVisual.c:114