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

◆ HandleHitEvent()

bool HandleHitEvent ( int pCurrentCommandID,
HumanInputController pInputs,
InventoryItem itemInHands,
HumanMovementState pMovementState,
out bool pContinueAttack )
protected

Handle the event that our melee hit something.

Check if we need to damage

on anim event Hit received

re-target (enemy can have moved out of range or disappeared)

evaluate hit - selection of cfg 'ammo' type

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

284 {
286 if (pCurrentCommandID == DayZPlayerConstants.COMMANDID_MELEE2)
287 {
288 HumanCommandMelee2 hmc2a = m_Player.GetCommand_Melee2();
289 if (hmc2a)
290 {
292 if (hmc2a.WasHit())
293 {
294 //Debug.MeleeLog(m_Player, "HandleHitEvent[START]");
295 //Debug.MeleeLog(m_Player, string.Format("HandleHitEvent[1] target=%1, hitPos=%2, hitZoneIdx=%3, finisherType=%4", m_MeleeCombat.GetTargetEntity(), m_MeleeCombat.GetHitPos().ToString(), m_MeleeCombat.GetHitZoneIdx(), m_MeleeCombat.GetFinisherType()));
296 if (m_MeleeCombat.GetFinisherType() == -1)
297 {
298 //Debug.MeleeLog(m_Player, string.Format("HandleHitEvent[2] target=%1, hitPos=%2, hitZoneIdx=%3, finisherType=%4", m_MeleeCombat.GetTargetEntity(), m_MeleeCombat.GetHitPos().ToString(), m_MeleeCombat.GetHitZoneIdx(), m_MeleeCombat.GetFinisherType()));
300 m_MeleeCombat.Update(itemInHands, m_HitType, true);
301 }
302
304 EvaluateHit(itemInHands);
305
306 //Get gloves
307 ClothingBase gloves;
308 if (m_HitType == EMeleeHitType.KICK)
309 {
310 //We kick so "gloves" will be the shoes
311 gloves = ClothingBase.Cast(m_Player.GetItemOnSlot("FEET"));
312 }
313 else
314 {
315 gloves = ClothingBase.Cast(m_Player.GetItemOnSlot("GLOVES"));
316 }
317
318 //If we hit something, inflict damage
319 DamageHands(m_Player, gloves, itemInHands);
320
321 m_MeleeCombat.ResetTarget();
322
324
326
327 //Debug.MeleeLog(m_Player, "HandleHitEvent[END]");
328
329 return true;
330 }
331 }
332 }
333
334 return false;
335 }
EMeleeHitType
Определения DayZPlayerImplementMeleeCombat.c:2
EMeleeHitType m_HitType
Hit type of the most recent attack.
void EnableControls()
void DamageHands(DayZPlayer DZPlayer, ClothingBase gloves, InventoryItem itemInHands)
ref DayZPlayerImplementMeleeCombat m_MeleeCombat
void EvaluateHit(InventoryItem weapon)
bool m_WasPreviousHitProcessed
DayZPlayer m_Player
Определения Hand_Events.c:42
Определения DallasMask.c:2
proto native bool WasHit()
is true only once after hit event
Определения human.c:537
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602

Перекрестные ссылки DamageHands(), EnableControls(), EvaluateHit(), m_HitType, m_MeleeCombat, m_Player, m_WasPreviousHitProcessed и HumanCommandMelee2::WasHit().

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