DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл ModifiersManager.c

См. исходные тексты.

Структуры данных

class  ModifierDebugObj
 

Перечисления

enum  eModifierSyncIDs {
  MODIFIER_SYNC_WOUND_INFECT_1 = 0x00000001 , MODIFIER_SYNC_WOUND_INFECT_2 = 0x00000002 , MODIFIER_SYNC_CONTAMINATION = 0x00000004 , MODIFIER_SYNC_CONTAMINATION2 = 0x00000008 ,
  MODIFIER_SYNC_ZONE_EXPOSURE = 0x00000010 , MODIFIER_SYNC_DROWNING = 0x00000020 , MODIFIER_SYNC_FEVER = 0x00000040 , LAST_INDEX
}
 

Функции

void ModifiersManager (PlayerBase player)
 
void Init ()
 Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside of a non-static system)
 
void SetModifiers (bool enable)
 
int GetStorageVersion ()
 
bool IsModifiersEnable ()
 
void AddModifier (ModifierBase modifier)
 
bool IsModifierActive (eModifiers modifier_id)
 
void OnScheduledTick (float delta_time)
 
void DeactivateAllModifiers ()
 
void ActivateModifier (int modifier_id, bool triggerEvent=EActivationType.TRIGGER_EVENT_ON_ACTIVATION)
 
void DeactivateModifier (int modifier_id, bool triggerEvent=true)
 
void OnStoreSave (ParamsWriteContext ctx)
 
bool OnStoreLoad (ParamsReadContext ctx, int version)
 
ModifierBase GetModifier (int modifier_id)
 
PlayerBase GetPlayer ()
 
void SetModifierLock (int modifier_id, bool state)
 
bool GetModifierLock (int modifier_id)
 
void DbgGetModifiers (array< ref ModifierDebugObj > modifiers)
 
void ResetAll ()
 

Переменные

enum eModifierSyncIDs TRIGGER_EVENT_OFF
 
enum eModifierSyncIDs TRIGGER_EVENT_ON_ACTIVATION
 
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE = 3
 
const int DEFAULT_TICK_TIME_ACTIVE_SHORT = 1
 
const int DEFAULT_TICK_TIME_INACTIVE = 3
 
const int DEFAULT_TICK_TIME_INACTIVE_LONG = 10
 
class ModifierDebugObj STORAGE_VERSION = 121
 
bool m_AllowModifierTick
 
PlayerBase m_Player
 
ref map< int, ref ModifierBasem_ModifierList
 
ref array< ref ModifierBasem_ModifierListArray
 
ref array< ref Paramm_ParamList
 

Перечисления

◆ eModifierSyncIDs

Элементы перечислений
MODIFIER_SYNC_WOUND_INFECT_1 
MODIFIER_SYNC_WOUND_INFECT_2 
MODIFIER_SYNC_CONTAMINATION 
MODIFIER_SYNC_CONTAMINATION2 
MODIFIER_SYNC_ZONE_EXPOSURE 
MODIFIER_SYNC_DROWNING 
MODIFIER_SYNC_FEVER 
LAST_INDEX 
3{
6 MODIFIER_SYNC_CONTAMINATION = 0x00000004,//stage1
7 MODIFIER_SYNC_CONTAMINATION2 = 0x00000008,//stage2 and stage3 share the same sync id
9 MODIFIER_SYNC_DROWNING = 0x00000020,
10 MODIFIER_SYNC_FEVER = 0x00000040,
11 //0x00000080,
12 //0x00000100,
13 //0x00000200,
14 //0x00000400,
15 //0x00000800,
16 //0x00001000,
18}
@ MODIFIER_SYNC_FEVER
Definition ModifiersManager.c:10
@ MODIFIER_SYNC_CONTAMINATION2
Definition ModifiersManager.c:7
@ MODIFIER_SYNC_WOUND_INFECT_1
Definition ModifiersManager.c:4
@ LAST_INDEX
Definition ModifiersManager.c:17
@ MODIFIER_SYNC_ZONE_EXPOSURE
Definition ModifiersManager.c:8
@ MODIFIER_SYNC_WOUND_INFECT_2
Definition ModifiersManager.c:5
@ MODIFIER_SYNC_DROWNING
Definition ModifiersManager.c:9
@ MODIFIER_SYNC_CONTAMINATION
Definition ModifiersManager.c:6

Функции

◆ ActivateModifier()

void ActivateModifier ( int modifier_id,
bool triggerEvent = EActivationType.TRIGGER_EVENT_ON_ACTIVATION )
220 {
221 m_ModifierList.Get(modifier_id).ActivateRequest(triggerEvent);
222 }
ref map< int, ref ModifierBase > m_ModifierList
Definition ModifiersManager.c:76
Definition EntityAI.c:95

Перекрестные ссылки m_ModifierList.

Используется в OnClick(), OnStoreLoad() и ResetAll().

◆ AddModifier()

void AddModifier ( ModifierBase modifier)
181 {
182 modifier.InitBase(m_Player, this);
183 int id = modifier.GetModifierID();
184
185 if (id < 1)
186 ErrorEx("modifiers ID must be 1 or higher(for debugging reasons)", ErrorExSeverity.WARNING);
187
188 if (m_ModifierListArray.Find(modifier) == -1)
189 {
190 m_ModifierList.Insert(id, modifier);
192 }
193 else
194 {
195 ErrorEx(string.Format("Modifier '%1' is already registered", modifier.GetName()), ErrorExSeverity.WARNING);
196 }
197 }
PlayerBase m_Player
Definition ModifiersManager.c:74
ref array< ref ModifierBase > m_ModifierListArray
Definition ModifiersManager.c:77
ErrorExSeverity
Definition EnDebug.c:62
enum ShapeType ErrorEx

Перекрестные ссылки ErrorEx, m_ModifierList, m_ModifierListArray и m_Player.

Используется в Init() и SetModifiers().

◆ DbgGetModifiers()

void DbgGetModifiers ( array< ref ModifierDebugObj > modifiers)
327 {
328 modifiers.Clear();
329 for (int i = 1;i < eModifiers.COUNT; i++)
330 {
331 if (m_ModifierList.Contains(i))
332 {
334
335 int modifierId = modifier.GetModifierID();
336 bool isLocked = modifier.IsLocked();
337 bool active = modifier.IsActive();
338
339 string modifierName = modifier.GetName();
340 string debugText = modifier.GetDebugTextSimple();
341
342 if (active && debugText != "")
343 modifierName += " | " + debugText;
344
346
347 modifiers.Insert(obj);
348 }
349 }
350 }
Definition BreathVapourMdfr.c:4
Definition ModifiersManager.c:33
eModifiers
Definition eModifiers.c:2

Перекрестные ссылки m_ModifierList.

◆ DeactivateAllModifiers()

void DeactivateAllModifiers ( )
214 {
217 }
void Deactivate(bool trigger=true)
Definition ModifierBase.c:217

Перекрестные ссылки m_ModifierList.

Используется в ResetAll().

◆ DeactivateModifier()

void DeactivateModifier ( int modifier_id,
bool triggerEvent = true )
225 {
226 m_ModifierList.Get(modifier_id).Deactivate(triggerEvent);
227 }

Перекрестные ссылки m_ModifierList.

Используется в OnClick().

◆ GetModifier()

ModifierBase GetModifier ( int modifier_id)
307 {
308 return m_ModifierList.Get(modifier_id);
309 }

Перекрестные ссылки m_ModifierList.

Используется в OnStoreLoad().

◆ GetModifierLock()

bool GetModifierLock ( int modifier_id)
322 {
323 return m_ModifierList.Get(modifier_id).IsLocked();
324 }

Перекрестные ссылки m_ModifierList.

◆ GetPlayer()

PlayerBase GetPlayer ( )
312 {
313 return m_Player;
314 }

Перекрестные ссылки m_Player.

◆ GetStorageVersion()

int GetStorageVersion ( )
171 {
172 return STORAGE_VERSION;
173 }
class ModifierDebugObj STORAGE_VERSION

Перекрестные ссылки STORAGE_VERSION.

Используется в ManBase::OnStoreLoad().

◆ Init()

void Init ( )

Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside of a non-static system)

91 {
92 #ifdef DEVELOPER
94 #endif
119 AddModifier(new WetMdfr);
146 }
void AddModifier(ModifierBase modifier)
Definition ModifiersManager.c:180
Definition Antibiotics.c:2
Definition AreaExposure.c:2
Definition Bleeding.c:3
Definition BloodRegen.c:2
Definition BrainDisease.c:2
Definition BrokenLegs.c:2
Definition Burning.c:2
Definition CharcoalMdfr.c:2
Definition Chelation.c:2
Definition Cholera.c:2
Definition CommonCold.c:2
Definition Contamination.c:2
Definition Contamination2.c:2
Definition Contamination3.c:2
Definition DisinfectMdfr.c:2
Definition Drowning.c:2
Definition EpinephrineMdfr.c:2
Definition Fatigue.c:2
Definition Fever.c:2
Definition Flies.c:2
Definition HealthRegen.c:2
Definition HeartAttack.c:2
Definition HeatBuffer.c:2
Definition HeatComfortMdfr.c:2
Definition HeavyMetal.c:92
Definition HemolyticReaction.c:2
Definition Hunger.c:2
Definition ImmuneSystem.c:2
Definition ImmunityBoost.c:2
Definition Influenza.c:2
Definition Mask.c:2
Definition MorphineMdfr.c:2
Definition PainKillersMdfr.c:2
Definition Pneumonia.c:2
Definition Poisoning.c:2
Definition Saline.c:2
Definition Salmonella.c:2
Definition ShockDamage.c:2
Definition Shock.c:2
Definition Stomach.c:2
Definition StuffedStomach.c:2
Definition TestDisease.c:2
Definition Thirst.c:2
Definition Toxicity.c:2
Definition Unconsciousness.c:2
Definition VomitStuffed.c:2
Definition Wet.c:2
Definition WoundInfection2.c:2

Перекрестные ссылки AddModifier().

◆ IsModifierActive()

bool IsModifierActive ( eModifiers modifier_id)
200 {
201 return m_ModifierList.Get(modifier_id).IsActive();
202 }

Перекрестные ссылки m_ModifierList.

◆ IsModifiersEnable()

bool IsModifiersEnable ( )
176 {
177 return m_AllowModifierTick;
178 }
bool m_AllowModifierTick
Definition ModifiersManager.c:72

Перекрестные ссылки m_AllowModifierTick.

◆ ModifiersManager()

void ModifiersManager ( PlayerBase player)
81 {
86
87 Init();
88 }
void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
Definition ModifiersManager.c:90
ref array< ref Param > m_ParamList
Definition ModifiersManager.c:78

Перекрестные ссылки Init(), m_ModifierList, m_ModifierListArray, m_ParamList и m_Player.

Используется в PluginBase::ActivateModifier(), PluginBase::DeactivateModifier(), ManBase::Init(), PluginBase::IsModifierLocked(), PluginBase::LockModifier(), PluginBase::SendRPCMods() и PluginBase::SendRPCModsDetail().

◆ OnScheduledTick()

void OnScheduledTick ( float delta_time)
205 {
207 return;
208
211 }
void Tick()
Definition SoundEvents.c:107

Перекрестные ссылки m_AllowModifierTick и m_ModifierListArray.

◆ OnStoreLoad()

bool OnStoreLoad ( ParamsReadContext ctx,
int version )
266 {
267 int modifierCount;
268 if (!ctx.Read(modifierCount))
269 return false;
270
271 for (int i = 0; i < modifierCount; i++)
272 {
273 int modifierId;
274 if (!ctx.Read(modifierId))
275 return false;
276
278 if (modifier)
279 {
280 if (modifier.IsTrackAttachedTime())
281 {
282 int time;
283 if (!ctx.Read(time))//get the attached time
284 return false;
285
286 modifier.SetAttachedTime(time);
287 }
288
289 ActivateModifier(modifierId, EActivationType.TRIGGER_EVENT_ON_CONNECT);
290 }
291 else
292 {
293 Debug.LogError("DB loading: non-existent modifier with id:"+modifierId.ToString());
294 }
295 }
296
297 for (int x = 0; x < m_ParamList.Count(); x++)
298 {
299 if (!m_ParamList.Get(x).Deserializer(ctx))
300 return false;
301 }
302
303 return true;
304 }
Icon x
ModifierBase GetModifier(int modifier_id)
Definition ModifiersManager.c:306
void ActivateModifier(int modifier_id, bool triggerEvent=EActivationType.TRIGGER_EVENT_ON_ACTIVATION)
Definition ModifiersManager.c:219
Definition Debug.c:14
static void LogError(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message as error message.
Definition Debug.c:259

Перекрестные ссылки ActivateModifier(), GetModifier(), Debug::LogError(), m_ParamList и x.

Используется в Weapon::CopyWeaponStateFrom() и ManBase::OnStoreLoad().

◆ OnStoreSave()

void OnStoreSave ( ParamsWriteContext ctx)
230 {
232
233 int modifierCount;
235 {
236 if (modifier.IsActive() && modifier.IsPersistent())
237 {
239 //save the modifier id
240 CachedObjectsArrays.ARRAY_INT.Insert(modifier.GetModifierID());
241 if (modifier.IsTrackAttachedTime())
242 {
243 //save the overall attached time
244 CachedObjectsArrays.ARRAY_INT.Insert(modifier.GetAttachedTime());
245 }
246 }
247 }
248
249 ctx.Write(modifierCount);
250
251 //write the individual modifiers and respective attached times
252 for (int i = 0; i < CachedObjectsArrays.ARRAY_INT.Count(); i++)
253 {
255 ctx.Write(item);
256 }
257
258 for (int z = 0; z < m_ParamList.Count(); z++)
259 {
260 m_ParamList.Get(z).Serialize(ctx);
261 }
262
263 }
Definition UtilityClasses.c:41
static ref TIntArray ARRAY_INT
Definition UtilityClasses.c:51

◆ ResetAll()

void ResetAll ( )
353 {
354 bool hasAreaExposureModifier = IsModifierActive(eModifiers.MDF_AREAEXPOSURE);
356
358
360 ActivateModifier(eModifiers.MDF_AREAEXPOSURE);
361
362 if (hasMaksModifier)
364 }
void DeactivateAllModifiers()
Definition ModifiersManager.c:213
proto native bool IsModifierActive()
is modifier active

Перекрестные ссылки ActivateModifier(), DeactivateAllModifiers() и IsModifierActive().

Используется в UIScriptedMenu::OnClick().

◆ SetModifierLock()

void SetModifierLock ( int modifier_id,
bool state )
317 {
318 m_ModifierList.Get(modifier_id).SetLock(state);
319 }

Перекрестные ссылки m_ModifierList.

◆ SetModifiers()

void SetModifiers ( bool enable)
149 {
151 return;
152
154
155 #ifdef DIAG_DEVELOPER
156 #ifndef SERVER
157 DiagMenu.SetValue(DiagMenuIDs.CHEATS_MODIFIERS, enable);
158 #endif
159 #endif
160
161 if (!enable)
162 {
163 for (int i = 0; i < m_ModifierList.Count(); i++)
164 {
165 m_ModifierList.GetElement(i).ResetLastTickTime();
166 }
167 }
168 }
DiagMenuIDs
Definition EDiagMenuIDs.c:2
Definition EnDebug.c:233
static proto void SetValue(int id, int value)
Set value at the given script id.

Перекрестные ссылки m_AllowModifierTick, m_ModifierList и DiagMenu::SetValue().

Переменные

◆ DEFAULT_TICK_TIME_ACTIVE

◆ DEFAULT_TICK_TIME_ACTIVE_SHORT

const int DEFAULT_TICK_TIME_ACTIVE_SHORT = 1

◆ DEFAULT_TICK_TIME_INACTIVE

◆ DEFAULT_TICK_TIME_INACTIVE_LONG

const int DEFAULT_TICK_TIME_INACTIVE_LONG = 10

Используется в AreaExposureMdfr::Init() и FatigueMdfr::Init().

◆ m_AllowModifierTick

bool m_AllowModifierTick

Используется в IsModifiersEnable(), OnScheduledTick() и SetModifiers().

◆ m_ModifierList

◆ m_ModifierListArray

ref array< ref ModifierBase> m_ModifierListArray

Используется в AddModifier(), ModifiersManager() и OnScheduledTick().

◆ m_ParamList

ref array<ref Param> m_ParamList

Используется в ModifiersManager(), OnStoreLoad() и OnStoreSave().

◆ m_Player

PlayerBase m_Player

◆ STORAGE_VERSION

class ModifierDebugObj STORAGE_VERSION = 121

◆ TRIGGER_EVENT_OFF

enum eModifierSyncIDs TRIGGER_EVENT_OFF

◆ TRIGGER_EVENT_ON_ACTIVATION

enum eModifierSyncIDs TRIGGER_EVENT_ON_ACTIVATION