DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ModifierBase.c
Go to the documentation of this file.
1enum eModifiersTickType//bitmask
2{
3 TICK = 1,
6}
7
8
9class ModifierBase
10{
11 int m_ID = 0;
12 ModifiersManager m_Manager;//the manager instance
13 string m_System = "Modifiers";
14 float m_ActivatedTime;//overall time this modifier was active
15 bool m_TrackActivatedTime;//should this modifier track overall time it was active ?
16 bool m_IsPersistent;//is this modifier saved to the DB ?
25 int m_TickType = (eModifiersTickType.TICK | eModifiersTickType.ACTIVATE_CHECK | eModifiersTickType.DEACTIVATE_CHECK);//some modifiers do not need to check activate condition, as they get activated by request
27 bool m_IsLocked = false;
29 eModifierSyncIDs m_SyncID;//max 32 synced modifiers supported, 0 == no sync
30 PluginPlayerStatus m_ModulePlayerStatus;
31
33 {
34 Class.CastTo(m_ModulePlayerStatus, GetPlugin(PluginPlayerStatus));
35 }
36
37 void InitBase(PlayerBase player, ModifiersManager manager)
38 {
39 m_Manager = manager;
40 m_Player = player;
41 Init();
42 }
43
44 void Init(){}
45
46
48 {
49 return m_Player;
50 }
51
53 {
54 return m_IsPersistent;
55 }
56
58 {
59 m_Manager.m_ParamList.Insert(object);
60 }
61
62
64 {
66 }
67
68 string GetDebugText()
69 {
70 return "";
71 }
72
74 {
75 return "";
76 }
77
79 {
80 m_TickType = (m_TickType & ~eModifiersTickType.ACTIVATE_CHECK);
81 }
82
84 {
85 m_TickType = (m_TickType & ~eModifiersTickType.DEACTIVATE_CHECK);
86 }
87
88 void Tick(float delta_time)
89 {
90
92 {
93 Activate();
94 }
95
96 if( m_IsActive )
97 {
98 m_AccumulatedTimeActive += delta_time;
100 {
101 if( m_TickType & eModifiersTickType.DEACTIVATE_CHECK && DeactivateCondition(m_Player) && !IsLocked() )
102 {
103 Deactivate();
104 }
105 else//if(m_TickType & eModifiersTickType.TICK)
106 {
109 }
111 }
112 }
113 else if(m_TickType & eModifiersTickType.ACTIVATE_CHECK)
114 {
115 m_AccumulatedTimeInactive += delta_time;
117 {
119 {
120 if( !IsLocked() )
121 {
122 ActivateRequest(EActivationType.TRIGGER_EVENT_ON_ACTIVATION);
123 }
124 }
126 }
127 }
128 }
129
130 bool IsActive()
131 {
132 return m_IsActive;
133 }
134
135 void SetLock(bool state)
136 {
137 m_IsLocked = state;
138 }
139
140 bool IsLocked()
141 {
142 return m_IsLocked;
143 }
144
146 {
148 }
149
151 {
152 return m_ActivatedTime;
153 }
154
155 void SetAttachedTime(float time)
156 {
157 m_ActivatedTime = time;
158 }
159
161 {
162 return m_ID;
163 }
164
165 string GetName()
166 {
167 string name = ClassName();
168 int index_start = name.Length() - 4;
169 int index_end = name.Length();
170 name = name.SubstringInverted(name, index_start, index_end);
171 return name;
172 }
173
175 {
176 return false;
177 }
178
180 {
181 return false;
182 }
183
186 {
187
188 }
189
192 {
193
194 }
195
197 {
198
199 }
200
201 void Activate()
202 {
203 m_IsActive = true;
204 m_Player.m_SyncedModifiers = (m_Player.m_SyncedModifiers | m_SyncID);
205 if( m_ActivationType == EActivationType.TRIGGER_EVENT_ON_ACTIVATION ) OnActivate(m_Player);
206 else if(m_ActivationType == EActivationType.TRIGGER_EVENT_ON_CONNECT ) OnReconnect(m_Player);
207 m_Player.SetSynchDirty();
208 }
209
211 {
212 m_ShouldBeActive = true;
213 m_ActivationType = trigger;
214 }
215
216 void Deactivate(bool trigger = true)
217 {
218 if(!m_IsActive)
219 return;
220 m_Player.m_SyncedModifiers = (m_Player.m_SyncedModifiers & ~m_SyncID);
221 m_ShouldBeActive = false;
222 m_IsActive = false;
223 m_ActivatedTime = 0;
224 if(trigger)
226 }
227
228
230 {
231 }
232
233
234 private void OnTick(PlayerBase player, float deltaT)
235 {
236
237 }
238}
protected int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it)
Definition Effect.c:49
DayZPlayer m_Player
Definition Hand_Events.c:42
bool m_TrackActivatedTime
void DisableDeactivateCheck()
void SetAttachedTime(float time)
ModifiersManager m_Manager
float m_AccumulatedTimeInactive
void InitBase(PlayerBase player, ModifiersManager manager)
float m_AccumulatedTimeActive
void SetLock(bool state)
bool IsTrackAttachedTime()
eModifiersTickType
Definition ModifierBase.c:2
@ ACTIVATE_CHECK
Definition ModifierBase.c:4
@ TICK
Definition ModifierBase.c:3
@ DEACTIVATE_CHECK
Definition ModifierBase.c:5
float GetAttachedTime()
bool m_ShouldBeActive
void DisableActivateCheck()
bool m_IsLocked
void ResetLastTickTime()
float m_ActivatedTime
float m_LastTickedActive
bool m_IsActive
float m_LastTickedInactive
bool IsLocked()
int m_TickType
eModifierSyncIDs m_SyncID
float m_TickIntervalActive
float m_TickIntervalInactive
PlayerBase GetPlayer()
void ActivateRequest(EActivationType trigger)
EActivationType m_ActivationType
string m_System
int GetModifierID()
bool IsActive()
void Deactivate(bool trigger=true)
void OnStoreSave(ParamsWriteContext ctx)
void MakeParamObjectPersistent(Param object)
bool IsPersistent()
bool m_IsPersistent
void Activate()
PluginPlayerStatus m_ModulePlayerStatus
eModifierSyncIDs
EActivationType
void ModifiersManager(PlayerBase player)
string name
PluginBase GetPlugin(typename plugin_type)
void Tick()
Super root of all classes in Enforce script.
Definition EnScript.c:11
override bool DeactivateCondition(PlayerBase player)
override void OnReconnect(PlayerBase player)
override string GetDebugText()
override string GetDebugTextSimple()
override void OnTick(PlayerBase player, float deltaT)
override void Init()
override bool ActivateCondition(PlayerBase player)
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Definition param.c:12
Serialization general interface. Serializer API works with:
Definition Serializer.c:56
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
string SubstringInverted(string string_to_split, int position_start, int position_end)
Inverted SubString. This deletes everything in between position_start and position_end.
Definition EnString.c:116
proto native int Length()
Returns length of string.
proto native owned string GetName()
void OnDeactivate()
called when command ends
Definition human.c:1172
class HumanMovementState OnActivate()
HumanCommandScript fully scriptable command.
Definition human.c:1169