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

◆ StaminaProcessor_Move()

void StaminaHandler::StaminaProcessor_Move ( HumanMovementState pHumanMovementState)
inlineprotected

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

712 {
713 switch (pHumanMovementState.m_iMovement)
714 {
715 case DayZPlayerConstants.MOVEMENTIDX_SPRINT: //sprint
716 if (pHumanMovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_ERECT)
717 {
718 m_StaminaDelta = -GameConstants.STAMINA_DRAIN_STANDING_SPRINT_PER_SEC * CfgGameplayHandler.GetSprintStaminaModifierErc();
719 SetCooldown(GameConstants.STAMINA_REGEN_COOLDOWN_DEPLETION);
720 break;
721 }
722 else if ( pHumanMovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_CROUCH)
723 {
724 m_StaminaDelta = -GameConstants.STAMINA_DRAIN_CROUCHED_SPRINT_PER_SEC * CfgGameplayHandler.GetSprintStaminaModifierCro();
725 SetCooldown(GameConstants.STAMINA_REGEN_COOLDOWN_DEPLETION);
726 break;
727 }
728
729 m_StaminaDelta = GameConstants.STAMINA_GAIN_JOG_PER_SEC;
730 break;
731
732 case DayZPlayerConstants.MOVEMENTIDX_RUN: //jog
733 if (m_Player.GetCurrentWaterLevel() >= m_HumanMoveSettings.m_fWaterLevelSpeedRectrictionHigh)
734 {
735 m_StaminaDelta = -GameConstants.STAMINA_DRAIN_STANDING_SPRINT_PER_SEC * CfgGameplayHandler.GetSprintStaminaModifierErc();
736 break;
737 }
738
739 if (!m_IsInCooldown)
740 {
741 m_StaminaDelta = (GameConstants.STAMINA_GAIN_JOG_PER_SEC + CalcStaminaGainBonus());
742 }
743 break;
744
745 case DayZPlayerConstants.MOVEMENTIDX_WALK: //walk
746 if (!m_IsInCooldown)
747 {
748 m_StaminaDelta = (GameConstants.STAMINA_GAIN_WALK_PER_SEC + CalcStaminaGainBonus());
749 }
750 break;
751
752 case DayZPlayerConstants.MOVEMENTIDX_IDLE: //idle
753 if (m_Player.IsRolling())
754 {
755 m_StaminaDelta = GameConstants.STAMINA_GAIN_ROLL_PER_SEC;
756 break;
757 }
758
759 if (!m_IsInCooldown)
760 {
761 m_StaminaDelta = (GameConstants.STAMINA_GAIN_IDLE_PER_SEC + CalcStaminaGainBonus());
762 }
763 break;
764
765 default:
766 if (!m_IsInCooldown)
767 {
768 m_StaminaDelta = GameConstants.STAMINA_GAIN_IDLE_PER_SEC;
769 }
770 break;
771 }
772 }
int m_iMovement
current stance (DayZPlayerConstants.STANCEIDX_ERECT, ...), only if the command has a stance
Определения human.c:1184
int m_iStanceIdx
current command's id
Определения human.c:1183
PlayerBase m_Player
Определения StaminaHandler.c:285
float CalcStaminaGainBonus()
Calulates stamina regain bonus coef based on current stamina cap and level and caches it during one U...
Определения StaminaHandler.c:966
float m_StaminaDelta
Определения StaminaHandler.c:271
void SetCooldown(float time, int modifier=-1)
set cooldown timer between each consume of stamina
Определения StaminaHandler.c:1034
bool m_IsInCooldown
Определения StaminaHandler.c:295
SHumanCommandMoveSettings m_HumanMoveSettings
Определения StaminaHandler.c:284
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.

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