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

◆ DamageHands()

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

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

813 {
814 EntityAI target = m_MeleeCombat.GetTargetEntity();
815
816 //We did not hit anything
817 if (itemInHands || !target || !DZPlayer)
818 return;
819
820 //Check if server side
821 if (GetGame().IsServer())
822 {
823 int randNum;
824
825 //If gloves, damage gloves
826 if (gloves && gloves.GetHealthLevel() < GameConstants.STATE_RUINED)
827 {
828 gloves.DecreaseHealth("", "", 1);
829 }
830 else
831 {
832 //Do not add bleeding if hitting player, zombie or animal
833 if (PlayerBase.Cast(target) || DayZCreatureAI.Cast(target))
834 return;
835
836 BleedingSourcesManagerServer bleedingManager;
837
838 //We don't inflict bleeding to hands when kicking
839 if (m_HitType != EMeleeHitType.KICK)
840 {
841 //Random bleeding source
842 randNum = Math.RandomIntInclusive(1, 15);
843 switch (randNum)
844 {
845 case 1:
846 if (m_Player)
847 {
848 bleedingManager = m_Player.GetBleedingManagerServer();
849 if (bleedingManager)
850 bleedingManager.AttemptAddBleedingSourceBySelection("RightForeArmRoll");
851 }
852 break;
853
854 case 2:
855 if (m_Player)
856 {
857 bleedingManager = m_Player.GetBleedingManagerServer();
858 if (bleedingManager)
859 bleedingManager.AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
860 }
861 break;
862 }
863 }
864 else
865 {
866 //Random bleeding source
867 randNum = Math.RandomIntInclusive(1, 15);
868 //We only add bleeding to left foot as character kicks with left foot
869 switch (randNum)
870 {
871 case 1:
872 if (m_Player)
873 {
874 bleedingManager = m_Player.GetBleedingManagerServer();
875 if (bleedingManager)
876 bleedingManager.AttemptAddBleedingSourceBySelection("LeftToeBase");
877 }
878 break;
879
880 case 2:
881 if (m_Player)
882 {
883 bleedingManager = m_Player.GetBleedingManagerServer();
884 if (bleedingManager)
885 bleedingManager.AttemptAddBleedingSourceBySelection("LeftFoot");
886 }
887 break;
888 }
889 }
890 }
891 }
892 }
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:612
Определения Building.c:6
Определения constants.c:659
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
proto native CGame GetGame()
const int STATE_RUINED
Определения constants.c:846
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().