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

◆ StaminaProcessor_Move()

void StaminaHandler::StaminaProcessor_Move ( HumanMovementState pHumanMovementState)
inlineprotected

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

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