DayZ 1.28
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 строка 282

283 {
285 if (pCurrentCommandID == DayZPlayerConstants.COMMANDID_MELEE2)
286 {
287 HumanCommandMelee2 hmc2a = m_Player.GetCommand_Melee2();
288 if (hmc2a)
289 {
291 if (hmc2a.WasHit())
292 {
293 //Debug.MeleeLog(m_Player, "HandleHitEvent[START]");
294 //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()));
295 if (m_MeleeCombat.GetFinisherType() == -1)
296 {
297 //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()));
299 m_MeleeCombat.Update(itemInHands, m_HitType, true);
300 }
301
303 EvaluateHit(itemInHands);
304
305 //Get gloves
306 ClothingBase gloves;
307 if (m_HitType == EMeleeHitType.KICK)
308 {
309 //We kick so "gloves" will be the shoes
310 gloves = ClothingBase.Cast(m_Player.GetItemOnSlot("FEET"));
311 }
312 else
313 {
314 gloves = ClothingBase.Cast(m_Player.GetItemOnSlot("GLOVES"));
315 }
316
317 //If we hit something, inflict damage
318 DamageHands(m_Player, gloves, itemInHands);
319
320 m_MeleeCombat.ResetTarget();
321
323
325
326 //Debug.MeleeLog(m_Player, "HandleHitEvent[END]");
327
328 return true;
329 }
330 }
331 }
332
333 return false;
334 }
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().