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

◆ FightAttackLogic()

bool DayZInfected::FightAttackLogic ( int pCurrentCommandID,
DayZInfectedInputController pInputController,
float pDt )
inlineprotected

do not attack players in vehicle - hotfix

target is outside the targeting cone; skip attack

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

724 {
725 // always update target - it can be destroyed
726 m_ActualTarget = pInputController.GetTargetEntity();
727
729 PlayerBase pb = PlayerBase.Cast(m_ActualTarget);
730 if (pb && pb.GetCommand_Vehicle())
731 return false;
732
733 if (m_AttackCooldownTime > 0)
734 {
735 m_AttackCooldownTime -= pDt * GameConstants.AI_ATTACKSPEED;
736 return false;
737 }
738
739 if (m_ActualTarget == null)
740 return false;
741
742 vector targetPos = m_ActualTarget.GetPosition();
743 float targetDist = vector.Distance(targetPos, this.GetPosition());
744 int pitch = GetAttackPitch(m_ActualTarget);
745
746 if (!CanAttackToPosition(targetPos))
747 return false;
748
749 m_ActualAttackType = GetDayZInfectedType().ChooseAttack(DayZInfectedAttackGroupType.FIGHT, targetDist, pitch);
751 {
752 Object target = DayZPlayerUtils.GetMeleeTarget(this.GetPosition(), this.GetDirection(), TARGET_CONE_ANGLE_FIGHT, m_ActualAttackType.m_Distance, -1.0, 2.0, this, m_TargetableObjects, m_AllTargetObjects);
755 {
756 m_AllTargetObjects.Clear();
757 return false;
758 }
759
760 StartCommand_Attack(m_ActualTarget, m_ActualAttackType.m_Type, m_ActualAttackType.m_Subtype);
762 return true;
763 }
764
765 return false;
766 }
DayZInfectedAttackGroupType
Определения DayZInfectedType.c:14
void DayZPlayerUtils()
cannot be instantiated
Определения DayZPlayerUtils.c:465
ref array< Object > m_AllTargetObjects
Определения ZombieBase.c:29
DayZInfectedAttackType m_ActualAttackType
Определения ZombieBase.c:611
EntityAI m_ActualTarget
Определения ZombieBase.c:609
float m_AttackCooldownTime
Определения ZombieBase.c:610
ref array< typename > m_TargetableObjects
Определения ZombieBase.c:30
int GetAttackPitch(EntityAI target)
Определения ZombieBase.c:768
const float TARGET_CONE_ANGLE_FIGHT
Определения ZombieBase.c:4
proto native EntityAI GetTargetEntity()
class LOD Object
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473

Перекрестные ссылки GameConstants::AI_ATTACKSPEED, DayZPlayerUtils(), vector::Distance(), GetAttackPitch(), GetPosition(), DayZInfectedInputController::GetTargetEntity(), m_ActualAttackType, m_ActualTarget, m_AllTargetObjects, m_AttackCooldownTime, m_TargetableObjects и TARGET_CONE_ANGLE_FIGHT.

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