DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
Wreck_SantasSleigh.c
Go to the documentation of this file.
1//Christmas Event: Santa's Sleigh
2class Wreck_SantasSleigh extends CrashBase
3{
4 XmasSleighLight m_SleighLight;
5
6 int m_MaxDeersAmount = 4;
7 int m_MinDeersAmount = 2;
8 int m_MaxDeersSpawnRange = 25;
9 int m_MinDeersSpawnRange = 5;
10
12 {
13 if ( !GetGame().IsDedicatedServer() )
14 {
15 //particles - Aurora trail
16 m_ParticleEfx = ParticleManager.GetInstance().PlayOnObject(ParticleList.AURORA_SANTA_WRECK, this, Vector(0, 0, 0));
17
18 //lights - green light
19 m_SleighLight = XmasSleighLight.Cast( ScriptedLightBase.CreateLight( XmasSleighLight, Vector(0, 0, 0) ) );
20 m_SleighLight.AttachOnMemoryPoint( this, "light" );
21 }
22 }
23
24 // needs to have the soundset registered in CrashBase.Init()
25 override string GetSoundSet()
26 {
27 return "SledgeCrash_Distant_SoundSet";
28 }
29
30 override void EEOnCECreate()
31 {
32 super.EEOnCECreate();
34 }
35
36 override void EEDelete(EntityAI parent)
37 {
38 super.EEDelete(parent);
39
40 if ( !GetGame().IsDedicatedServer() )
41 {
42 if ( m_SleighLight )
43 m_SleighLight.Destroy();
44 }
45 }
46
48 {
49 //SpawnRandomDeers();
50 GetGame().GetCallQueue( CALL_CATEGORY_GAMEPLAY ).CallLater( SpawnRandomDeers, 0);
51 }
52
53 //Spawn a random amount of (dead) deers around the sleigh
55 {
56 EntityAI deer;
57 vector crash_pos = GetPosition();
58
59 int deersAmount = Math.RandomIntInclusive(m_MinDeersAmount,m_MaxDeersAmount);
60
61 for (int i = 0; i < m_MaxDeersAmount; i++)
62 {
63 vector deer_pos = RandomizePosition(crash_pos);
64 deer = EntityAI.Cast(GetGame().CreateObject("Animal_CervusElaphus", deer_pos,false, true));
65 deer.SetHealth01("","", 0);
66 vector orientation = deer.GetOrientation();
67 deer.SetOrientation(Vector(Math.RandomIntInclusive(0,360),orientation[1],orientation[2]));
68 }
69 }
70
71 //Return a new vector scattered around origin.
73 {
74 int randX;
75 int randZ;
76
77 randX = Math.RandomIntInclusive(m_MinDeersSpawnRange, m_MaxDeersSpawnRange);
78 if (Math.RandomIntInclusive(0,1) < 1)
79 randX = -randX;
80
81 randZ = Math.RandomIntInclusive(m_MinDeersSpawnRange, m_MaxDeersSpawnRange);
82 if (Math.RandomIntInclusive(0,1) < 1)
83 randZ = -randZ;
84
85 origin[0] = origin[0] + randX;
86 origin[2] = origin[2] + randZ;
87
88 return origin;
89
90 }
91}
void RandomizePosition()
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
class JsonUndergroundAreaTriggerData GetPosition
override ScriptCallQueue GetCallQueue(int call_category)
Definition DayZGame.c:1153
void SpawnRandomDeerLater()
void SpawnRandomDeers()
override void EEOnCECreate()
XmasSleighLight m_SleighLight
override string GetSoundSet()
vector RandomizePosition(vector origin)
override void EEDelete(EntityAI parent)
void Wreck_SantasSleigh()
Definition EnMath.c:7
static const int AURORA_SANTA_WRECK
proto void CallLater(func fn, int delay=0, bool repeat=false, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Definition EnMath.c:53
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10