DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
InjurySoundHandler.c
См. документацию.
2{
3 NONE = 0,
4 LIGHT,
5 MEDIUM,
6 HEAVY,
7
8 // PUT NEW STATES ABOVE
10}
11
13{
14 override void Init()
15 {
17 }
19}
20
21//---------------------------
22// Client
23//---------------------------
24class InjurySoundHandlerClient extends InjurySoundHandlerBase
25{
26 const float SOUND_INTERVALS_LIGHT_MIN = 15; const float SOUND_INTERVALS_LIGHT_MAX = 30;
27 const float SOUND_INTERVALS_MEDIUM_MIN = 10; const float SOUND_INTERVALS_MEDIUM_MAX = 25;
28 const float SOUND_INTERVALS_HEAVY_MIN = 3; const float SOUND_INTERVALS_HEAVY_MAX = 12;
29
34
35
37 {
38 if( level == eInjuryHandlerLevels.PRISTINE )
39 return eInjurySoundZones.NONE;
40
41 m_Player.GetMovementState(m_MovementState);
42 int speed = m_MovementState.m_iMovement;
43 int stance = m_MovementState.m_iStanceIdx;
44
45 //int stance_lvl_down = DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_CROUCH;
46
47 if( speed == 0 )
48 return eInjurySoundZones.NONE;
49
50 level--;// shift the level so that we play from higher damage
51
52 if( stance == DayZPlayerConstants.STANCEIDX_PRONE || stance == DayZPlayerConstants.STANCEIDX_CROUCH )
53 {
54 level--;
55 }
56
57 if( speed == DayZPlayerConstants.MOVEMENTIDX_WALK )
58 {
59 level--;
60 }
61 else if(speed == DayZPlayerConstants.MOVEMENTIDX_SPRINT)
62 {
63 level++;
64 }
65 level = Math.Clamp(level, eInjurySoundZones.NONE, eInjurySoundZones.HEAVY);
66 return level;
67 }
68
69
70 override void Update()
71 {
72 m_InjuryLevel = m_Player.m_HealthLevel;
73
74 if( m_InjuryLevel != eInjuryHandlerLevels.PRISTINE )
75 {
77 ProcessSound(zone);
78 }
79 }
80
82 {
83 //Print("injury sound zone:"+ zone);
84 // process sound here
85 if( GetGame().GetTime() > m_SoundTime)
86 {
87 float offset_time;
88 if(zone == eInjurySoundZones.NONE)
89 {
90 offset_time = 3000;
91 m_SoundTime = GetGame().GetTime() + offset_time;
92 return;
93 }
94 if(zone == eInjurySoundZones.LIGHT)
95 {
97 }
98 else if(zone == eInjurySoundZones.MEDIUM)
99 {
101 }
102 else if(zone == eInjurySoundZones.HEAVY)
103 {
105 }
106 m_SoundTime = GetGame().GetTime() + offset_time;
107 PlaySound(zone);
108 }
109 }
110
112 {
113 m_Player.PlaySoundEvent(EPlayerSoundEventID.INJURED_LIGHT);
114 }
115
116}
117
118
119//---------------------------
120// Server
121//---------------------------
122class InjurySoundHandlerServer extends InjurySoundHandlerBase
123{
124
125
126
127
128}
class ServerBrowserHelperFunctions m_Id
@ COUNT
Определения EGameStateIcons.c:7
@ MEDIUM
Определения EStatLevels.c:5
DayZPlayer m_Player
Определения Hand_Events.c:42
void PlaySound()
Определения HungerSoundHandler.c:38
void ProcessSound()
Определения HungerSoundHandler.c:28
eInjuryHandlerLevels
Определения InjuryHandler.c:19
LIGHT
Определения InjurySoundHandler.c:16
HEAVY
Определения InjurySoundHandler.c:18
enum eInjurySoundZones Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
Определения InjurySoundHandler.c:14
eInjurySoundZones
Определения InjurySoundHandler.c:2
float GetTime()
Определения NotificationSystem.c:35
EPlayerSoundEventID
Определения PlayerSoundEventHandler.c:3
eSoundHandlers
Определения PlayerSoundManager.c:5
proto int GetTime()
returns mission time in milliseconds
Определения human.c:1139
void PlaySound(eInjurySoundZones zone)
Определения InjurySoundHandler.c:111
const float SOUND_INTERVALS_HEAVY_MIN
Определения InjurySoundHandler.c:28
override void Update()
Определения InjurySoundHandler.c:70
void ProcessSound(eInjurySoundZones zone)
Определения InjurySoundHandler.c:81
eInjurySoundZones DetermineInjuryZone(eInjuryHandlerLevels level)
Определения InjurySoundHandler.c:36
const float SOUND_INTERVALS_MEDIUM_MAX
Определения InjurySoundHandler.c:27
eInjurySoundZones m_InjurySoundZone
Определения InjurySoundHandler.c:31
const float SOUND_INTERVALS_MEDIUM_MIN
Определения InjurySoundHandler.c:27
ref HumanMovementState m_MovementState
Определения InjurySoundHandler.c:30
eInjuryHandlerLevels m_InjuryLevel
Определения InjurySoundHandler.c:32
const float SOUND_INTERVALS_LIGHT_MAX
Определения InjurySoundHandler.c:26
float m_SoundTime
Определения InjurySoundHandler.c:33
const float SOUND_INTERVALS_LIGHT_MIN
Определения InjurySoundHandler.c:26
const float SOUND_INTERVALS_HEAVY_MAX
Определения InjurySoundHandler.c:28
Определения EnMath.c:7
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
static float RandomFloatInclusive(float min, float max)
Returns a random float number between and min [inclusive] and max [inclusive].
Определения EnMath.c:106
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
@ NONE
No flags.
Определения EnProfiler.c:11