DayZ 1.29
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 int currentTime = g_Game.GetTime();
86 if( currentTime > m_SoundTime)
87 {
88 float offset_time;
89 if(zone == eInjurySoundZones.NONE)
90 {
91 offset_time = 3000;
92 m_SoundTime = currentTime + offset_time;
93 return;
94 }
95 if(zone == eInjurySoundZones.LIGHT)
96 {
98 }
99 else if(zone == eInjurySoundZones.MEDIUM)
100 {
102 }
103 else if(zone == eInjurySoundZones.HEAVY)
104 {
106 }
107 m_SoundTime = g_Game.GetTime() + offset_time;
108 PlaySound(zone);
109 }
110 }
111
113 {
114 m_Player.PlaySoundEvent(EPlayerSoundEventID.INJURED_LIGHT);
115 }
116
117}
118
119
120//---------------------------
121// Server
122//---------------------------
123class InjurySoundHandlerServer extends InjurySoundHandlerBase
124{
125
126
127
128
129}
class ServerBrowserHelperFunctions m_Id
map m_Player
DayZGame g_Game
Определения DayZGame.c:3942
@ COUNT
Определения EGameStateIcons.c:7
@ MEDIUM
Определения EStatLevels.c:5
void PlaySound()
Определения HungerSoundHandler.c:39
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
EPlayerSoundEventID
Определения PlayerSoundEventHandler.c:3
eSoundHandlers
Определения PlayerSoundManager.c:5
Определения human.c:1154
void PlaySound(eInjurySoundZones zone)
Определения InjurySoundHandler.c:112
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
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
body is not in simulation, nor in collision world
Определения SimulationState.c:15