DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
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
116 {
117 for (int i = 0; i < m_PersistentParams.Count(); i++)
118 {
119 params.Insert(m_PersistentParams.Get(i));
120 }
121 }
122
124 {
125 if ( !GetGame().IsServer() && !GetGame().IsMultiplayer() ) return;
126
127 m_PersistentParams.Insert(object);
128 }
129
131 {
132 return m_IsPersistent;
133 }
134
136 {
137 if ( m_SymptomType == SymptomTypes.PRIMARY)
138 return true;
139 else return false;
140 }
141
143 {
144 return m_Player;
145 }
146
148 {
149 return m_Priority;
150 }
151
153 {
154
155 }
156
158 {
159 if ( IsActivated() ) Deactivate();
160 if ( GetManager() ) m_Manager.OnSymptomExit(this, m_UID);
161 }
162
163 void Activate()
164 {
165 m_IsActivated = true;
166 if ( GetGame() && GetGame().IsServer() )
167 {
169 if ( GetGame().IsMultiplayer() )
170 {
171 if ( IsSyncToClient() )
173 #ifdef DIAG_DEVELOPER
174 GetManager().SendServerDebugToClient();
175 #endif
176 }
177 }
178 if ( !GetGame().IsDedicatedServer() )
179 {
181 }
182 }
183
185 {
186 if ( !GetGame() ) return;
187 m_IsActivated = false;
188 if ( GetGame().IsServer() )
189 {
191 if ( GetGame().IsMultiplayer() && IsSyncToClient() )
192 {
194 }
195 }
196 if ( !GetGame().IsDedicatedServer() )
197 {
199 }
200
201 }
202
204 {
205 return m_IsActivated;
206 }
207
208
209
210 void Update(float deltatime)
211 {
212 if ( GetGame().IsServer() )
213 {
214 m_ServerUpdateDelta += deltatime;
216 {
220 }
221 }
222 if ( GetGame().IsClient() )
223 {
224 OnUpdateClient(m_Player, deltatime);
225 }
226 if ( GetGame().IsServer() && !GetGame().IsMultiplayer() && !GetGame().IsMissionMainMenu() )
227 {
228 OnUpdateClient(m_Player, deltatime);
229 }
230 CheckDestroy();
231 }
232
233 void PlayAnimationFB(int animation, int stance_mask, float running_time = -1)
234 {
235 DayZPlayerSyncJunctures.SendPlayerSymptomFB(m_Player, animation, GetType() , stance_mask, running_time );
236 m_AnimPlayRequested = true;
237 }
238
239 void PlayAnimationADD(int type)
240 {
242 m_AnimPlayRequested = true;
243 }
244
246 {
247 GetPlayer().RequestSoundEvent(id);
248 m_PlayedSound = true;
249 }
250
251 void SyncToClientActivated( int SYMPTOM_id, int uid )
252 {
253 if ( !GetPlayer() ) return;
254
255 CachedObjectsParams.PARAM2_INT_INT.param1 = SYMPTOM_id;
257 GetGame().RPCSingleParam(GetPlayer(), ERPCs.RPC_PLAYER_SYMPTOM_ON, CachedObjectsParams.PARAM2_INT_INT,true,GetPlayer().GetIdentity() );
258 }
259
260 void SyncToClientDeactivated( int SYMPTOM_id, int uid )
261 {
262 if ( !GetPlayer() ) return;
263 CachedObjectsParams.PARAM2_INT_INT.param1 = SYMPTOM_id;
265 GetGame().RPCSingleParam(GetPlayer(), ERPCs.RPC_PLAYER_SYMPTOM_OFF, CachedObjectsParams.PARAM2_INT_INT,true,GetPlayer().GetIdentity() );
266 }
267
269 {
270 if (GetGame().IsServer())
271 {
274 }
275 }
276
278 {
281 {
283 }
284
286 Destroy();
287 }
288
290 {
291 return null;
292 }
293
294
296 {
297 m_DestroyRequested = true;
298 //if(!IsActivated() ) Destroy();
299 }
300
301 void Destroy()
302 {
303 if (!m_IsTemplate)
304 OnDestructed();
305 }
306
309 {
310 //Print("*********** OnAnimationFinish ************");
313 }
314
316 {
319 }
320
322 {
324 }
325
326 protected void OnAnimationFinish();
327 protected void OnAnimationStart();
328 protected void OnAnimationPlayFailed();
329
330
332 void OnInit();
333
335 void OnUpdateServer(PlayerBase player, float deltatime);
336 bool CanActivate(){return true;}//server only
338 void OnUpdateClient(PlayerBase player, float deltatime);
345}
ERPCs
Definition ERPCs.c:2
SymptomTypes
void RPCSingleParam(Object target, int rpc_type, Param param, bool guaranteed, PlayerIdentity recipient=null)
see CGame.RPC
Definition Game.c:882
static ref Param2< int, int > PARAM2_INT_INT
static void SendPlayerSymptomADD(DayZPlayer pPlayer, int type, int state_type)
static void SendPlayerSymptomFB(DayZPlayer pPlayer, DayZPlayerConstants anim_id, int state_type, int stance_mask, float duration)
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
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:308
void PlayAnimationFB(int animation, int stance_mask, float running_time=-1)
Definition StateBase.c:233
void Update(float deltatime)
Definition StateBase.c:210
void RequestDestroy()
Definition StateBase.c:295
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:147
bool m_IsClientOnly
Definition StateBase.c:15
bool CanBeInterupted()
Definition StateBase.c:64
PlayerBase m_Player
Definition StateBase.c:8
void PlaySound(EPlayerSoundEventID id)
Definition StateBase.c:245
const float MAX_TIME_ACTIVE_SAVEGUARD
Definition StateBase.c:3
protected void OnAnimationPlayFailed()
float m_ServerUpdateInterval
Definition StateBase.c:9
bool IsPrimary()
Definition StateBase.c:135
bool IsClientOnly()
Definition StateBase.c:74
int m_MaxCount
Definition StateBase.c:24
bool OnConstructed(SymptomManager manager)
Definition StateBase.c:152
void CheckSoundFinished()
Definition StateBase.c:268
int GetMaxCount()
Definition StateBase.c:48
void OnDestructed()
Definition StateBase.c:157
protected void OnAnimationStart()
void OnGetActivatedServer(PlayerBase player)
gets called once on an Symptom which is being activated
void CheckDestroy()
Definition StateBase.c:277
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:315
protected void OnAnimationFinish()
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:184
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:142
void OnUpdateClient(PlayerBase player, float deltatime)
gets called every frame
bool m_IsActivated
Definition StateBase.c:7
bool IsActivated()
Definition StateBase.c:203
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:251
void AnimationStart()
Definition StateBase.c:321
void SyncToClientDeactivated(int SYMPTOM_id, int uid)
Definition StateBase.c:260
void Destroy()
Definition StateBase.c:301
string GetName()
Definition StateBase.c:90
SmptAnimMetaBase SpawnAnimMetaObject()
Definition StateBase.c:289
void SetParam(Param p)
Definition StateBase.c:105
void PlayAnimationADD(int type)
Definition StateBase.c:239
bool m_DestroyOnAnimFinish
Definition StateBase.c:16
void MakeParamObjectPersistent(Param object)
Definition StateBase.c:123
void GetPersistentParams(array< Param > params)
Definition StateBase.c:115
float m_Duration
Definition StateBase.c:22
bool CanActivate()
Definition StateBase.c:336
bool IsPersistent()
Definition StateBase.c:130
bool m_IsPersistent
Definition StateBase.c:19
void Activate()
Definition StateBase.c:163
bool m_PlayedSound
Definition StateBase.c:6
bool m_AnimPlayRequested
Definition StateBase.c:23
void OnSymptomExit(SymptomBase Symptom, int uid)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()