DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ModifierBase.c
См. документацию.
7
8class ModifierBase
9{
10 int m_ID = 0;
12 string m_System = "Modifiers";
24 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
26 bool m_IsLocked = false;
27 EActivationType m_ActivationType;
29 PluginPlayerStatus m_ModulePlayerStatus;
30
32
34 {
35 Class.CastTo(m_ModulePlayerStatus, GetPlugin(PluginPlayerStatus));
36 }
37
38 void InitBase(PlayerBase player, ModifiersManager manager)
39 {
40 m_Manager = manager;
41 m_Player = player;
42 Init();
43 }
44
45 void Init()
46 {
49 }
50
52 {
53 return m_Player;
54 }
55
57 {
58 return m_IsPersistent;
59 }
60
62 {
63 m_Manager.m_ParamList.Insert(object);
64 }
65
67 {
69 }
70
71 string GetDebugText()
72 {
73 return "";
74 }
75
77 {
78 return "";
79 }
80
82 {
83 m_TickType = (m_TickType & ~eModifiersTickType.ACTIVATE_CHECK);
84 }
85
87 {
88 m_TickType = (m_TickType & ~eModifiersTickType.DEACTIVATE_CHECK);
89 }
90
91 void Tick(float delta_time)
92 {
94 Activate();
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
106 {
109 }
110
112 }
113 }
114 else if (m_TickType & eModifiersTickType.ACTIVATE_CHECK)
115 {
116 m_AccumulatedTimeInactive += delta_time;
118 {
120 {
121 if (!IsLocked())
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 indexStart = name.Length() - 4;
169 int indexEnd = name.Length();
170
171 name = name.SubstringInverted(name, indexStart, indexEnd);
172
173 return name;
174 }
175
177 {
178 return false;
179 }
180
182 {
183 return false;
184 }
185
187 void OnActivate(PlayerBase player);
188
191 void OnDeactivate(PlayerBase player);
192
193 void Activate()
194 {
196 {
197 AnalyticsRegisterStat(m_ID, "state");
199 }
200
201 m_IsActive = true;
202 m_Player.m_SyncedModifiers = (m_Player.m_SyncedModifiers | m_SyncID);
203 if (m_ActivationType == EActivationType.TRIGGER_EVENT_ON_ACTIVATION)
205 else if (m_ActivationType == EActivationType.TRIGGER_EVENT_ON_CONNECT)
207
208 m_Player.SetSynchDirty();
209 }
210
211 void ActivateRequest(EActivationType trigger)
212 {
213 m_ShouldBeActive = true;
214 m_ActivationType = trigger;
215 }
216
217 void Deactivate(bool trigger = true)
218 {
219 if (!m_IsActive)
220 return;
221
223 AnalyticsSetState(m_ID, -1.0);
224
225 m_Player.m_SyncedModifiers = (m_Player.m_SyncedModifiers & ~m_SyncID);
226 m_ShouldBeActive = false;
227 m_IsActive = false;
228 m_ActivatedTime = 0;
229 if (trigger)
231 }
232
233
235
236 private void OnTick(PlayerBase player, float deltaT);
237
238
239 private void AnalyticsRegisterStat(int modifierId, string keySuffix)
240 {
241 string modifierIdName = EnumTools.EnumToString(eModifiers, modifierId);
242 modifierIdName.ToLower();
243
244 m_Player.StatRegister(string.Format("%1_%2", modifierIdName, keySuffix));
245 }
246
248 private void AnalyticsSetState(int modifierId, float value)
249 {
250 string modifierStatKey = EnumTools.EnumToString(eModifiers, modifierId);
251 modifierStatKey.ToLower();
252
253 string formatttedKey = string.Format("%1_state", modifierStatKey);
254 if (value == -1.0)
255 {
256 if(m_Player.StatGet(formatttedKey) == 0.0)
257 return;
258 }
259
260 if (value == 1.0)
261 {
262 if(m_Player.StatGet(formatttedKey) == 1.0)
263 return;
264 }
265
266 m_Player.StatUpdate(formatttedKey, value);
267 }
268}
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it)
Определения Effect.c:49
DayZPlayer m_Player
Определения Hand_Events.c:42
bool m_TrackActivatedTime
overall time this modifier was active
Определения ModifierBase.c:14
void DisableDeactivateCheck()
Определения ModifierBase.c:86
void SetAttachedTime(float time)
Определения ModifierBase.c:155
void ModifierBase()
Определения ModifierBase.c:33
ModifiersManager m_Manager
Определения ModifierBase.c:11
float m_AccumulatedTimeInactive
Определения ModifierBase.c:22
void InitBase(PlayerBase player, ModifiersManager manager)
Определения ModifierBase.c:38
float m_AccumulatedTimeActive
Определения ModifierBase.c:21
void SetLock(bool state)
Определения ModifierBase.c:135
bool IsTrackAttachedTime()
Определения ModifierBase.c:145
eModifiersTickType
Определения ModifierBase.c:2
@ ACTIVATE_CHECK
Определения ModifierBase.c:4
@ TICK
Определения ModifierBase.c:3
@ DEACTIVATE_CHECK
Определения ModifierBase.c:5
float GetAttachedTime()
Определения ModifierBase.c:150
bool m_ShouldBeActive
Определения ModifierBase.c:20
void DisableActivateCheck()
Определения ModifierBase.c:81
bool m_IsLocked
Определения ModifierBase.c:26
void AnalyticsRegisterStat(int modifierId, string keySuffix)
Определения ModifierBase.c:239
bool DeactivateCondition(PlayerBase player)
Определения ModifierBase.c:181
void ResetLastTickTime()
Определения ModifierBase.c:66
float m_ActivatedTime
Определения ModifierBase.c:13
bool m_AnalyticsStatsEnabled
Определения ModifierBase.c:31
float m_LastTickedActive
Определения ModifierBase.c:23
bool m_IsActive
Определения ModifierBase.c:19
float m_LastTickedInactive
Определения ModifierBase.c:25
bool IsLocked()
Определения ModifierBase.c:140
int m_TickType
Определения ModifierBase.c:24
eModifierSyncIDs m_SyncID
Определения ModifierBase.c:28
float m_TickIntervalActive
Определения ModifierBase.c:18
float m_TickIntervalInactive
Определения ModifierBase.c:17
PlayerBase GetPlayer()
Определения ModifierBase.c:51
void ActivateRequest(EActivationType trigger)
Определения ModifierBase.c:211
EActivationType m_ActivationType
Определения ModifierBase.c:27
string m_System
the manager instance
Определения ModifierBase.c:12
void OnDeactivate(PlayerBase player)
Определения HeavyMetal.c:211
int GetModifierID()
Определения ModifierBase.c:160
bool IsActive()
Определения ModifierBase.c:130
void Deactivate(bool trigger=true)
Определения ModifierBase.c:217
void OnStoreSave(ParamsWriteContext ctx)
Определения ModifiersManager.c:229
void MakeParamObjectPersistent(Param object)
Определения ModifierBase.c:61
void AnalyticsSetState(int modifierId, float value)
special treating of the value to set state only (without counter use)
Определения ModifierBase.c:248
bool IsPersistent()
Определения ModifierBase.c:56
bool m_IsPersistent
should this modifier track overall time it was active ?
Определения ModifierBase.c:15
void Activate()
Определения ModifierBase.c:193
PluginPlayerStatus m_ModulePlayerStatus
max 32 synced modifiers supported, 0 == no sync
Определения ModifierBase.c:29
eModifierSyncIDs
Определения ModifiersManager.c:3
void ModifiersManager(PlayerBase player)
Определения ModifiersManager.c:80
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:316
void Tick()
Определения SoundEvents.c:107
void OnActivate()
Определения Trap_LandMine.c:67
Super root of all classes in Enforce script.
Определения EnScript.c:11
static string EnumToString(typename e, int enumValue)
Return string name of enum value.
Определения EnConvert.c:601
Определения EnConvert.c:590
override void OnReconnect(PlayerBase player)
Определения BreathVapourMdfr.c:25
override bool DeactivateCondition(PlayerBase player)
Определения BreathVapourMdfr.c:20
override string GetDebugText()
Определения BreathVapourMdfr.c:30
override string GetDebugTextSimple()
Определения BreathVapourMdfr.c:35
override void Init()
Определения BreathVapourMdfr.c:5
override bool ActivateCondition(PlayerBase player)
Определения BreathVapourMdfr.c:15
override void OnTick(PlayerBase player, float deltaT)
Определения BreathVapourMdfr.c:41
Определения BreathVapourMdfr.c:4
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
eModifiers
Определения eModifiers.c:2
Serializer ParamsWriteContext
Определения gameplay.c:16
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
proto int ToLower()
Changes string to lowercase. Returns length.
proto native owned string GetName()
Test name getter. Strictly for UI porposes!
Определения SyncedValue.c:119