Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
misceffects.c
Go to the documentation of this file.
2{
3 protected static const int VEGE_COLLISION_COOLDOWN = 3000; // ms
5
6 // Called by individual clients when player collides with a vegetation
8 {
10 if (m_VegeCollideColldowns.Get(object))
11 return;
12
13 int particleID;
14 string particleName;
15 string configPath = "CfgNonAIVehicles " + object.GetType() + " collisionParticle";
16 GetGame().ConfigGetText(configPath, particleName);
17 if (particleName == string.Empty) // no ptc assigned
18 return;
19
20 particleID = ParticleList.GetParticleIDByName(particleName);
21 vector playerPos = player.GetPosition();
22 vector ptcPos = playerPos - object.GetPosition();
23
24 ptcPos[0] = ptcPos[0] * Math.RandomFloat(0, 0.5); // randomize
25 ptcPos[2] = ptcPos[2] * Math.RandomFloat(0, 0.5);
26
27 ptcPos = playerPos - ptcPos;
28 ptcPos[1] = playerPos[1] + Math.RandomFloat(0.5, 1.5);
29
30 ParticleManager.GetInstance().PlayInWorld(particleID, ptcPos);
31
32 m_VegeCollideColldowns.Insert(object, GetWorldTime());
33 }
34
35 protected static void UpdateVegeCollisionCooldowns()
36 {
37 float time = GetWorldTime();
38 foreach (Object key, float cd : m_VegeCollideColldowns)
39 {
40 if ((time - cd) > VEGE_COLLISION_COOLDOWN)
41 {
42 m_VegeCollideColldowns.Remove(key);
43 break;
44 }
45 }
46 }
47}
TODO doc.
Definition enscript.c:118
Definition enmath.c:7
static void PlayVegetationCollideParticles(Object object, DayZPlayerImplement player)
Definition misceffects.c:7
static const int VEGE_COLLISION_COOLDOWN
Definition misceffects.c:3
static void UpdateVegeCollisionCooldowns()
Definition misceffects.c:35
static ref map< Object, float > m_VegeCollideColldowns
Definition misceffects.c:4
proto native CGame GetGame()
proto native float GetWorldTime()
Empty
Definition hand_states.c:14
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)