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

◆ EvaluateHit_Common()

void EvaluateHit_Common ( InventoryItem weapon,
Object target,
bool forcedDummy = false,
int forcedWeaponMode = -1 )
protected

check if we need to use dummy hit

normal hit with applied damage to targeted component

play hit animation for dummy hits

override hit pos by pos defined in type

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

661 {
662 int hitZoneIdx = m_MeleeCombat.GetHitZoneIdx();
663 int weaponMode = m_MeleeCombat.GetWeaponMode();
664 vector hitPosWS;
665 string ammo;
666
667 if (forcedWeaponMode > -1)
668 weaponMode = forcedWeaponMode;
669
670 EntityAI targetEntity = EntityAI.Cast(target);
671
673 if (!DummyHitSelector(m_HitType, ammo) && !forcedDummy)
674 {
676 if (hitZoneIdx >= 0)
677 {
678 hitPosWS = targetEntity.ModelToWorld(targetEntity.GetDefaultHitPosition());
679
680 if (WeaponDestroyedCheck(weapon, ammo))
681 {
682 DamageSystem.CloseCombatDamage(m_Player, target, hitZoneIdx, ammo, hitPosWS);
683 //Debug.MeleeLog(m_Player, string.Format("EvaluateHit_Common[a]::CloseCombatDamage:: target: %1, hitzone: %2, ammo: %3", target, hitZoneIdx, ammo));
684 }
685 else
686 {
687 m_Player.ProcessMeleeHit(weapon, weaponMode, target, hitZoneIdx, hitPosWS);
688 //Debug.MeleeLog(m_Player, string.Format("EvaluateHit_Common[b]::ProcessMeleeHit:: target: %1, hitzone: %2, meleeMode: %3, forcedWeaponMode:%4", target, hitZoneIdx, weaponMode));
689 }
690 }
691 }
692 else
693 {
695 if (GetGame().IsServer() && targetEntity)
696 {
698 hitPosWS = targetEntity.ModelToWorld(targetEntity.GetDefaultHitPosition());
699 DamageSystem.CloseCombatDamage(m_Player, target, hitZoneIdx, ammo, hitPosWS);
700 //Debug.MeleeLog(m_Player, string.Format("EvaluateHit_Common[c]::CloseCombatDamage:: target: %1, hitzone: %2, meleeMode: %3, ammo: %4", target, hitZoneIdx, weaponMode, ammo));
701 }
702 }
703 }
EMeleeHitType m_HitType
Hit type of the most recent attack.
ref DayZPlayerImplementMeleeCombat m_MeleeCombat
bool DummyHitSelector(EMeleeHitType hitType, out string ammoType)
evaluation of hit player vs. player
bool WeaponDestroyedCheck(InventoryItem weapon, out string ammo)
DayZPlayer m_Player
Определения Hand_Events.c:42
Определения EnConvert.c:106
proto native CGame GetGame()

Перекрестные ссылки DummyHitSelector(), GetGame(), m_HitType, m_MeleeCombat, m_Player и WeaponDestroyedCheck().

Используется в EvaluateHit(), EvaluateHit_Infected() и EvaluateHit_Player().