Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
statebase.c
Go to the documentation of this file.
2{
3 const float MAX_TIME_ACTIVE_SAVEGUARD = 20;
5 SoundOnVehicle m_SoundObject;
11 bool m_IsTemplate = true;
13 int m_ID;//ID for the type of Symptom
14 int m_UID;//unique ID
17 bool m_DestroyRequested = false;
18 int m_SymptomType = -1;
19 bool m_IsPersistent = false;
21 bool m_SyncToClient = false;
24 int m_MaxCount = -1;//how many symptoms of this type can be queued up at the same time, '-1' for unlimited
25
26 SymptomCB m_AnimCallback;
27
29
31 {
32 }
33
35 {
36
37 }
38
39 void Init(SymptomManager manager, PlayerBase player, int uid)
40 {
41 m_Manager = manager;
42 m_Player = player;
43 m_UID = uid;
44 m_IsTemplate = false;
45 OnInit();
46 }
47
49 {
50 return m_MaxCount;
51 }
52
53 int GetUID()
54 {
55 return m_UID;
56 }
57
59 {
60
61
62 }
63
65 {
67 {
68 //Print("--------- preventing interrupt ---------");
69 return false;
70 }
71 return true;
72 }
73
75 {
76 return m_IsClientOnly;
77 }
78
79
80 void SetDuration(float duration)
81 {
82 m_Duration = duration;
83 }
84
86 {
87 return m_Duration;
88 }
89
90 string GetName()
91 {
92 return this.ClassName();
93 }
94
96 {
97 return m_Manager;
98 }
99
101 {
102 return m_ID;
103 }
104
106 {
107
108 }
109
111 {
112 return m_SyncToClient;
113 }
114
117 {
118 return false;
119 }
120
122 {
123 for (int i = 0; i < m_PersistentParams.Count(); i++)
124 {
125 params.Insert(m_PersistentParams.Get(i));
126 }
127 }
128
130 {
131 if ( !g_Game.IsServer() && !g_Game.IsMultiplayer() ) return;
132
133 m_PersistentParams.Insert(object);
134 }
135
137 {
138 return m_IsPersistent;
139 }
140
142 {
143 if ( m_SymptomType == SymptomTypes.PRIMARY)
144 return true;
145 else return false;
146 }
147
148 // override this if you want the symptom to be played also while the player is unconscious
150 {
151 return false;
152 }
153
155 {
156 return m_Player;
157 }
158
160 {
161 return m_Priority;
162 }
163
165 {
166
167 }
168
170 {
171 if ( IsActivated() ) Deactivate();
172 if ( GetManager() ) m_Manager.OnSymptomExit(this, m_UID);
173 }
174
175 void Activate()
176 {
177 m_IsActivated = true;
178 if ( g_Game && g_Game.IsServer() )
179 {
181 if ( g_Game.IsMultiplayer() )
182 {
183 if ( IsSyncToClient() )
185 #ifdef DIAG_DEVELOPER
186 GetManager().SendServerDebugToClient();
187 #endif
188 }
189 }
190 if ( !g_Game.IsDedicatedServer() )
191 {
193 }
194 }
195
197 {
198 if ( !g_Game ) return;
199 m_IsActivated = false;
200 if ( g_Game.IsServer() )
201 {
203 if ( g_Game.IsMultiplayer() && IsSyncToClient() )
204 {
206 }
207 }
208 if ( !g_Game.IsDedicatedServer() )
209 {
211 }
212
213 }
214
216 {
217 return m_IsActivated;
218 }
219
220
221
222 void Update(float deltatime)
223 {
224 if ( g_Game.IsServer() )
225 {
226 m_ServerUpdateDelta += deltatime;
228 {
232 }
233 }
234 if ( g_Game.IsClient() )
235 {
236 OnUpdateClient(m_Player, deltatime);
237 }
238 if ( g_Game.IsServer() && !g_Game.IsMultiplayer() && !g_Game.IsMissionMainMenu() )
239 {
240 OnUpdateClient(m_Player, deltatime);
241 }
242 CheckDestroy();
243 }
244
245 void PlayAnimationFB(int animation, int stance_mask, float running_time = -1)
246 {
247 DayZPlayerSyncJunctures.SendPlayerSymptomFB(m_Player, animation, GetType() , stance_mask, running_time );
248 m_AnimPlayRequested = true;
249 }
250
256
258 {
259 GetPlayer().RequestSoundEvent(id);
260 m_PlayedSound = true;
261 }
262
264 {
265 GetPlayer().RequestSoundEventStop(id);
266 m_PlayedSound = false;
267 }
268
269 void SyncToClientActivated( int SYMPTOM_id, int uid )
270 {
271 if ( !GetPlayer() ) return;
272
273 CachedObjectsParams.PARAM2_INT_INT.param1 = SYMPTOM_id;
275 g_Game.RPCSingleParam(GetPlayer(), ERPCs.RPC_PLAYER_SYMPTOM_ON, CachedObjectsParams.PARAM2_INT_INT,true,GetPlayer().GetIdentity() );
276 }
277
278 void SyncToClientDeactivated( int SYMPTOM_id, int uid )
279 {
280 if ( !GetPlayer() ) return;
281 CachedObjectsParams.PARAM2_INT_INT.param1 = SYMPTOM_id;
283 g_Game.RPCSingleParam(GetPlayer(), ERPCs.RPC_PLAYER_SYMPTOM_OFF, CachedObjectsParams.PARAM2_INT_INT,true,GetPlayer().GetIdentity() );
284 }
285
287 {
288 if (g_Game.IsServer())
289 {
292 }
293 }
294
296 {
299 {
301 }
302
304 Destroy();
305 }
306
308 {
309 return null;
310 }
311
312
314 {
315 m_DestroyRequested = true;
316 //if(!IsActivated() ) Destroy();
317 }
318
319 void Destroy()
320 {
321 if (!m_IsTemplate)
322 OnDestructed();
323 }
324
327 {
328 //Print("*********** OnAnimationFinish ************");
331 }
332
338
340 {
342 }
343
344 protected void OnAnimationFinish();
345 protected void OnAnimationStart();
346 protected void OnAnimationPlayFailed();
347
348
350 void OnInit();
351
353 void OnUpdateServer(PlayerBase player, float deltatime);
354 bool CanActivate(){return true;}//server only
356 void OnUpdateClient(PlayerBase player, float deltatime);
363}
static ref Param2< int, int > PARAM2_INT_INT
static void SendPlayerSymptomADD(DayZPlayer pPlayer, int type, int state_type)
Additive Symptoms.
static void SendPlayerSymptomFB(DayZPlayer pPlayer, DayZPlayerConstants anim_id, int state_type, int stance_mask, float duration)
Full body Symptoms.
Base Param Class with no parameters.
Definition param.c:12
void OnGetDeactivatedServer(PlayerBase player)
only gets called once on an active Symptom that is being deactivated
int GetType()
Definition statebase.c:100
bool m_SyncToClient
Definition statebase.c:21
void ~SymptomBase()
Definition statebase.c:34
SymptomManager GetManager()
Definition statebase.c:95
void AnimationFinish()
gets called upon animation Symptom exit
Definition statebase.c:326
void PlayAnimationFB(int animation, int stance_mask, float running_time=-1)
Definition statebase.c:245
void Update(float deltatime)
Definition statebase.c:222
void RequestDestroy()
Definition statebase.c:313
int GetUID()
Definition statebase.c:53
SoundOnVehicle m_SoundObject
Definition statebase.c:5
bool m_DestroyRequested
Definition statebase.c:17
int m_Priority
Definition statebase.c:4
void OnOwnerKilled()
Definition statebase.c:58
int m_SymptomType
Definition statebase.c:18
void SymptomBase()
Definition statebase.c:30
int GetPriority()
Definition statebase.c:159
bool m_IsClientOnly
Definition statebase.c:15
void OnAnimationFinish()
bool CanBeInterupted()
Definition statebase.c:64
bool IsSyncToRemotes()
This symptom is synchronized to remotes in a form id within symptom manager.
Definition statebase.c:116
void StopSound(EPlayerSoundEventID id)
Definition statebase.c:263
PlayerBase m_Player
Definition statebase.c:8
void PlaySound(EPlayerSoundEventID id)
Definition statebase.c:257
const float MAX_TIME_ACTIVE_SAVEGUARD
Definition statebase.c:3
float m_ServerUpdateInterval
Definition statebase.c:9
bool IsPrimary()
Definition statebase.c:141
bool IsClientOnly()
Definition statebase.c:74
bool AllowInUnconscious()
Definition statebase.c:149
int m_MaxCount
Definition statebase.c:24
bool OnConstructed(SymptomManager manager)
Definition statebase.c:164
void CheckSoundFinished()
Definition statebase.c:286
int GetMaxCount()
Definition statebase.c:48
void OnAnimationStart()
void OnDestructed()
Definition statebase.c:169
void OnGetActivatedServer(PlayerBase player)
gets called once on an Symptom which is being activated
void CheckDestroy()
Definition statebase.c:295
float m_ServerUpdateDelta
Definition statebase.c:10
void OnGetDeactivatedClient(PlayerBase player)
void OnInit()
this is just for the Symptom parameters set-up and is called even if the Symptom doesn't execute,...
void AnimationPlayFailed()
Definition statebase.c:333
float m_ActivatedTime
Definition statebase.c:12
ref array< Param > m_PersistentParams
Definition statebase.c:28
void OnGetActivatedClient(PlayerBase player)
bool IsSyncToClient()
Definition statebase.c:110
bool m_IsTemplate
Definition statebase.c:11
void Deactivate()
Definition statebase.c:196
void SetDuration(float duration)
Definition statebase.c:80
SymptomManager m_Manager
Definition statebase.c:20
SymptomCB m_AnimCallback
Definition statebase.c:26
void Init(SymptomManager manager, PlayerBase player, int uid)
Definition statebase.c:39
PlayerBase GetPlayer()
Definition statebase.c:154
void OnUpdateClient(PlayerBase player, float deltatime)
gets called every frame
bool m_IsActivated
Definition statebase.c:7
bool IsActivated()
Definition statebase.c:215
float GetDuration()
Definition statebase.c:85
void OnUpdateServer(PlayerBase player, float deltatime)
gets called every frame
void SyncToClientActivated(int SYMPTOM_id, int uid)
Definition statebase.c:269
void AnimationStart()
Definition statebase.c:339
void SyncToClientDeactivated(int SYMPTOM_id, int uid)
Definition statebase.c:278
void Destroy()
Definition statebase.c:319
string GetName()
Definition statebase.c:90
SmptAnimMetaBase SpawnAnimMetaObject()
Definition statebase.c:307
void SetParam(Param p)
Definition statebase.c:105
void PlayAnimationADD(int type)
Definition statebase.c:251
bool m_DestroyOnAnimFinish
Definition statebase.c:16
void OnAnimationPlayFailed()
void MakeParamObjectPersistent(Param object)
Definition statebase.c:129
void GetPersistentParams(array< Param > params)
Definition statebase.c:121
float m_Duration
Definition statebase.c:22
bool CanActivate()
Definition statebase.c:354
bool IsPersistent()
Definition statebase.c:136
bool m_IsPersistent
Definition statebase.c:19
void Activate()
Definition statebase.c:175
bool m_PlayedSound
Definition statebase.c:6
bool m_AnimPlayRequested
Definition statebase.c:23
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZGame g_Game
Definition dayzgame.c:3942
ERPCs
Definition erpcs.c:2
SymptomTypes