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

◆ DamageHands()

void DamageHands ( DayZPlayer DZPlayer,
ClothingBase gloves,
InventoryItem itemInHands )
protected

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

819 {
820 EntityAI target = m_MeleeCombat.GetTargetEntity();
821
822 //We did not hit anything
823 if (itemInHands || !target || !DZPlayer)
824 return;
825
826 //Check if server side
827 if (GetGame().IsServer())
828 {
829 int randNum;
830
831 //If gloves, damage gloves
832 if (gloves && gloves.GetHealthLevel() < GameConstants.STATE_RUINED)
833 {
834 gloves.DecreaseHealth("", "", 1);
835 }
836 else
837 {
838 //Do not add bleeding if hitting player, zombie or animal
839 if (PlayerBase.Cast(target) || DayZCreatureAI.Cast(target))
840 return;
841
842 BleedingSourcesManagerServer bleedingManager;
843
844 //We don't inflict bleeding to hands when kicking
845 if (m_HitType != EMeleeHitType.KICK)
846 {
847 //Random bleeding source
848 randNum = Math.RandomIntInclusive(1, 15);
849 switch (randNum)
850 {
851 case 1:
852 if (m_Player)
853 {
854 bleedingManager = m_Player.GetBleedingManagerServer();
855 if (bleedingManager)
856 bleedingManager.AttemptAddBleedingSourceBySelection("RightForeArmRoll");
857 }
858 break;
859
860 case 2:
861 if (m_Player)
862 {
863 bleedingManager = m_Player.GetBleedingManagerServer();
864 if (bleedingManager)
865 bleedingManager.AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
866 }
867 break;
868 }
869 }
870 else
871 {
872 //Random bleeding source
873 randNum = Math.RandomIntInclusive(1, 15);
874 //We only add bleeding to left foot as character kicks with left foot
875 switch (randNum)
876 {
877 case 1:
878 if (m_Player)
879 {
880 bleedingManager = m_Player.GetBleedingManagerServer();
881 if (bleedingManager)
882 bleedingManager.AttemptAddBleedingSourceBySelection("LeftToeBase");
883 }
884 break;
885
886 case 2:
887 if (m_Player)
888 {
889 bleedingManager = m_Player.GetBleedingManagerServer();
890 if (bleedingManager)
891 bleedingManager.AttemptAddBleedingSourceBySelection("LeftFoot");
892 }
893 break;
894 }
895 }
896 }
897 }
898 }
EMeleeHitType
Определения DayZPlayerImplementMeleeCombat.c:2
EMeleeHitType m_HitType
Hit type of the most recent attack.
ref DayZPlayerImplementMeleeCombat m_MeleeCombat
DayZPlayer m_Player
Определения Hand_Events.c:42
do not process rotations !
Определения DayZAnimal.c:654
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
proto native CGame GetGame()
const int STATE_RUINED
Определения 3_Game/constants.c:848
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Определения EnMath.c:54

Перекрестные ссылки GetGame(), m_HitType, m_MeleeCombat, m_Player, Math::RandomIntInclusive() и GameConstants::STATE_RUINED.

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