DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ Update()

void StaminaHandler::Update ( float deltaT,
int pCurrentCommandID )
inlineprotected

gets the actual players load

См. определение в файле StaminaHandler.c строка 474

475 {
476 #ifdef DIAG_DEVELOPER
477 if (m_StaminaDisabled)
478 return;
479 #endif
480
481 if (!m_Player)
482 return;
483
484 // Process cooldowns - subtract deltaT and remove expired ones
485 array<int> expiredCooldowns = new array<int>();
486 foreach (int modifier, StaminaCooldownParams cooldownParams : m_CooldownMap)
487 {
488 cooldownParams.param1 -= deltaT;
489 if (cooldownParams.param1 <= 0)
490 {
491 expiredCooldowns.Insert(modifier);
492 }
493 }
494
495 // Remove expired cooldowns
496 foreach (int expiredModifier : expiredCooldowns)
497 {
498 ResetCooldown(expiredModifier);
499 }
500
501 // Reset so we get current bonus value once in this update loop and then reuse the cached value within this update call
503
504 // Check if movement state has changed
506
507 bool isAiOrSingleplayer = m_Player.IsAuthorityOwner();
508 bool isServerOrSingleplayer = m_Player.IsAuthority();
509
510 // Calculates actual max stamina based on player's load
511 if (isServerOrSingleplayer)
512 {
514 m_PlayerLoad = m_Player.GetWeightEx();
516 {
519 }
520 }
521 else
522 {
523 PlayerBaseMove move = PlayerBaseMove.Cast(m_Player.GetNextMove());
524 if (move)
525 {
526 move.m_fStaminaValue = m_Stamina;
527 move.m_fStaminaCapacity = m_StaminaCap;
528 }
529 }
530
531 if (isAiOrSingleplayer)
532 {
535 }
536
537 // Process movement if: state changed, we have stamina delta, in cooldown, not initialized, or stamina is bewlow cap
540
541 // Sets current stamina & stores + syncs data with client
542 ProcessStaminaChanges(deltaT, isServerOrSingleplayer);
543
546
547 m_StaminaDelta = 0;
548 m_StaminaDepletion = 0; // resets depletion modifier
550 if (!m_InitUpdate)
551 m_InitUpdate = true;
552 }
Param1< float > StaminaCooldownParams
Определения StaminaHandler.c:259
float m_StaminaCapSynced
Определения StaminaHandler.c:272
void RecalculateStaminaCap()
Определения StaminaHandler.c:622
void CheckStaminaState()
check if the stamina is completely depleted
Определения StaminaHandler.c:981
ref map< int, ref StaminaCooldownParams > m_CooldownMap
Определения StaminaHandler.c:302
float m_LastPlayerLoad
Определения StaminaHandler.c:297
bool m_InitUpdate
Определения StaminaHandler.c:266
PlayerBase m_Player
Определения StaminaHandler.c:282
float m_StaminaSynced
Определения StaminaHandler.c:270
float m_StaminaDepletion
Определения StaminaHandler.c:275
bool m_IsStaminaGainBonusCached
Определения StaminaHandler.c:300
void ApplyExhaustion()
Определения StaminaHandler.c:954
float m_StaminaCap
Определения StaminaHandler.c:271
bool m_MovementStateChanged
Определения StaminaHandler.c:308
bool HasMovementStateChanged()
Определения StaminaHandler.c:456
void ProcessStaminaChanges(float deltaT, bool isServerOrSingleplayer)
Определения StaminaHandler.c:580
float m_StaminaDelta
Определения StaminaHandler.c:268
float m_PlayerLoad
Определения StaminaHandler.c:267
float m_Stamina
Определения StaminaHandler.c:269
void ProcessMovementState()
Определения StaminaHandler.c:554
bool m_IsInCooldown
Определения StaminaHandler.c:292
void ResetCooldown(int modifier=-1)
Определения StaminaHandler.c:1013

Перекрестные ссылки ApplyExhaustion(), CheckStaminaState(), HasMovementStateChanged(), m_CooldownMap, m_InitUpdate, m_IsInCooldown, m_IsStaminaGainBonusCached, m_LastPlayerLoad, m_MovementStateChanged, m_Player, m_PlayerLoad, m_Stamina, m_StaminaCap, m_StaminaCapSynced, m_StaminaDelta, m_StaminaDepletion, m_StaminaSynced, ProcessMovementState(), ProcessStaminaChanges(), RecalculateStaminaCap() и ResetCooldown().