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

◆ DamageHands()

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

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

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

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

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