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

◆ StaminaProcessor_Move()

void StaminaHandler::StaminaProcessor_Move ( HumanMovementState pHumanMovementState)
inlineprotected

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

558 {
559 switch (pHumanMovementState.m_iMovement)
560 {
561 case DayZPlayerConstants.MOVEMENTIDX_SPRINT: //sprint
562 if (pHumanMovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_ERECT)
563 {
564 m_StaminaDelta = -GameConstants.STAMINA_DRAIN_STANDING_SPRINT_PER_SEC * CfgGameplayHandler.GetSprintStaminaModifierErc();
565 SetCooldown(GameConstants.STAMINA_REGEN_COOLDOWN_DEPLETION);
566 break;
567 }
568 else if ( pHumanMovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_CROUCH)
569 {
570 m_StaminaDelta = -GameConstants.STAMINA_DRAIN_CROUCHED_SPRINT_PER_SEC * CfgGameplayHandler.GetSprintStaminaModifierCro();
571 SetCooldown(GameConstants.STAMINA_REGEN_COOLDOWN_DEPLETION);
572 break;
573 }
574
575 m_StaminaDelta = GameConstants.STAMINA_GAIN_JOG_PER_SEC;
576 break;
577
578 case DayZPlayerConstants.MOVEMENTIDX_RUN: //jog
579 if (m_Player.GetCurrentWaterLevel() >= m_HumanMoveSettings.m_fWaterLevelSpeedRectrictionHigh)
580 {
581 m_StaminaDelta = -GameConstants.STAMINA_DRAIN_STANDING_SPRINT_PER_SEC * CfgGameplayHandler.GetSprintStaminaModifierErc();
582 break;
583 }
584
585 if (!m_IsInCooldown)
586 {
587 m_StaminaDelta = (GameConstants.STAMINA_GAIN_JOG_PER_SEC + CalcStaminaGainBonus());
588 }
589 break;
590
591 case DayZPlayerConstants.MOVEMENTIDX_WALK: //walk
592 if (!m_IsInCooldown)
593 {
594 m_StaminaDelta = (GameConstants.STAMINA_GAIN_WALK_PER_SEC + CalcStaminaGainBonus());
595 }
596 break;
597
598 case DayZPlayerConstants.MOVEMENTIDX_IDLE: //idle
599 if (m_Player.IsRolling())
600 {
601 m_StaminaDelta = GameConstants.STAMINA_GAIN_ROLL_PER_SEC;
602 break;
603 }
604
605 if (!m_IsInCooldown)
606 {
607 m_StaminaDelta = (GameConstants.STAMINA_GAIN_IDLE_PER_SEC + CalcStaminaGainBonus());
608 }
609 break;
610
611 default:
612 if (!m_IsInCooldown)
613 {
614 m_StaminaDelta = GameConstants.STAMINA_GAIN_IDLE_PER_SEC;
615 }
616 break;
617 }
618 }
int m_iMovement
current stance (DayZPlayerConstants.STANCEIDX_ERECT, ...), only if the command has a stance
Определения human.c:1142
int m_iStanceIdx
current command's id
Определения human.c:1141
PlayerBase m_Player
Определения StaminaHandler.c:274
float CalcStaminaGainBonus()
Calulates stamina regain bonus coef based on current stamina cap and level.
Определения StaminaHandler.c:796
float m_StaminaDelta
Определения StaminaHandler.c:263
void SetCooldown(float time, int modifier=-1)
set cooldown timer between each consume of stamina
Определения StaminaHandler.c:853
bool m_IsInCooldown
Определения StaminaHandler.c:286
SHumanCommandMoveSettings m_HumanMoveSettings
Определения StaminaHandler.c:273
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602

Перекрестные ссылки CalcStaminaGainBonus(), CfgGameplayHandler::GetSprintStaminaModifierCro(), CfgGameplayHandler::GetSprintStaminaModifierErc(), m_HumanMoveSettings, HumanMovementState::m_iMovement, m_IsInCooldown, HumanMovementState::m_iStanceIdx, m_Player, m_StaminaDelta, SetCooldown(), GameConstants::STAMINA_DRAIN_CROUCHED_SPRINT_PER_SEC, GameConstants::STAMINA_DRAIN_STANDING_SPRINT_PER_SEC, GameConstants::STAMINA_GAIN_IDLE_PER_SEC, GameConstants::STAMINA_GAIN_JOG_PER_SEC, GameConstants::STAMINA_GAIN_ROLL_PER_SEC, GameConstants::STAMINA_GAIN_WALK_PER_SEC и GameConstants::STAMINA_REGEN_COOLDOWN_DEPLETION.

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