Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
playersoundmanager.c
Go to the documentation of this file.
1
2
const
float
SOUNDS_HEARING_DISTANCE
= 50;
3
4
enum
eSoundHandlers
5
{
6
STAMINA
,
7
HUNGER
,
8
INJURY
,
9
THIRST
,
10
//FREEZING,
11
12
//------
13
// add stuff above !
14
//------
15
COUNT
16
}
17
18
19
20
class
PlayerSoundManagerBase
21
{
22
PlayerBase
m_Player
;
23
24
const
int
MAX_HANDLERS_COUNT
=
eSoundHandlers
.COUNT;
25
ref
SoundHandlerBase
m_Handlers
[
MAX_HANDLERS_COUNT
];
26
27
void
PlayerSoundManagerBase
(
PlayerBase
player)
28
{
29
m_Player
= player;
30
Init
();
31
}
32
33
void
RegisterHandler
(
SoundHandlerBase
handler)
34
{
35
int
index = handler.GetID();
36
m_Handlers
[index] = handler;
37
}
38
39
SoundHandlerBase
GetHandler
(
eSoundHandlers
id
)
40
{
41
return
m_Handlers
[id];
42
}
43
44
void
Init
()
45
{
46
47
}
48
49
void
Update
()
50
{
51
52
}
53
54
55
}
56
57
class
PlayerSoundManagerServer
extends
PlayerSoundManagerBase
58
{
59
//------------------------
60
// REGISTER HANDLER HERE
61
//------------------------
62
override
void
Init
()
63
{
64
RegisterHandler
(
new
StaminaSoundHandlerServer(
m_Player
));
65
RegisterHandler
(
new
HungerSoundHandlerServer(
m_Player
));
66
RegisterHandler
(
new
ThirstSoundHandlerServer(
m_Player
));
67
RegisterHandler
(
new
InjurySoundHandlerServer(
m_Player
));
68
}
69
70
override
void
Update
()
71
{
72
if
(
m_Player
.IsUnconscious() )
73
{
74
return
;
75
}
76
77
for
(
int
i = 0; i < (
MAX_HANDLERS_COUNT
- 1); i++)
78
{
79
m_Handlers
[i].Update();
80
}
81
}
82
}
83
84
class
PlayerSoundManagerClient
extends
PlayerSoundManagerBase
85
{
86
ref
Timer
m_ClientCharacterTick
=
new
Timer
;
87
ref
Timer
m_ClientCharacterDistanceCheck
=
new
Timer
;
88
bool
m_UpdateTimerRunning
;
89
90
//------------------------
91
// REGISTER HANDLER HERE
92
//------------------------
93
override
void
Init
()
94
{
95
RegisterHandler
(
new
StaminaSoundHandlerClient(
m_Player
));
96
RegisterHandler
(
new
HungerSoundHandlerClient(
m_Player
));
97
RegisterHandler
(
new
ThirstSoundHandlerClient(
m_Player
));
98
RegisterHandler
(
new
InjurySoundHandlerClient(
m_Player
));
99
//RegisterHandler(new FreezingSoundHandlerClient(m_Player));
100
}
101
102
void
PlayerSoundManagerClient
(
PlayerBase
player)
103
{
104
105
if
( !
g_Game
.IsDedicatedServer() )
106
{
107
m_ClientCharacterDistanceCheck
.Run(2,
this
,
"CheckAllowUpdate"
, null,
true
);
108
}
109
}
110
111
void
SetAllowUpdate
(
bool
enable)
112
{
113
if
( enable )
114
{
115
m_UpdateTimerRunning
=
true
;
116
m_ClientCharacterTick
.Run(0.03,
this
,
"Update"
, null,
true
);
117
}
118
else
119
{
120
m_UpdateTimerRunning
=
false
;
121
m_ClientCharacterTick
.Stop();
122
}
123
}
124
125
override
void
Update
()
126
{
127
if
( !
m_Player
.IsAlive() )
128
{
129
SetAllowUpdate
(
false
);
130
return
;
131
}
132
133
#ifndef NO_GUI
134
for
(
int
i = 0; i <
MAX_HANDLERS_COUNT
; i++)
135
{
136
m_Handlers
[i].Update();
137
}
138
#endif
139
}
140
141
void
CheckAllowUpdate
()
142
{
143
if
(
g_Game
.GetPlayer() )
144
{
145
bool
is_at_hearing_distance =
vector
.
Distance
(
g_Game
.GetPlayer().GetPosition(),
m_Player
.GetPosition()) <
SOUNDS_HEARING_DISTANCE
;
146
147
if
(
m_UpdateTimerRunning
&& !is_at_hearing_distance )
148
{
149
SetAllowUpdate
(
false
);
150
}
151
else
if
( !
m_UpdateTimerRunning
&& is_at_hearing_distance )
152
{
153
SetAllowUpdate
(
true
);
154
}
155
//PrintString("distance:" + vector.Distance(g_Game.GetPlayer().GetPosition(), m_Player.GetPosition()).ToString());
156
}
157
}
158
}
m_Player
map m_Player
PlayerBase
Definition
playerbaseclient.c:2
PlayerSoundManagerBase
Definition
playersoundmanager.c:58
PlayerSoundManagerBase::Update
override void Update()
Definition
playersoundmanager.c:70
PlayerSoundManagerBase::Init
override void Init()
Definition
playersoundmanager.c:62
SoundHandlerBase
Definition
hungersoundhandler.c:2
Timer
Definition
dayzplayerimplement.c:39
vector
Definition
enconvert.c:119
vector::Distance
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
COUNT
@ COUNT
Definition
egamestateicons.c:7
GetHandler
UIScriptedMenu GetHandler()
Definition
errorproperties.c:80
INJURY
@ INJURY
Definition
playersoundeventbase.c:8
THIRST
@ THIRST
Definition
playersoundeventhandler.c:35
SetAllowUpdate
void SetAllowUpdate(bool enable)
Definition
playersoundmanager.c:111
eSoundHandlers
eSoundHandlers
Definition
playersoundmanager.c:5
HUNGER
@ HUNGER
Definition
playersoundmanager.c:7
SOUNDS_HEARING_DISTANCE
const float SOUNDS_HEARING_DISTANCE
Definition
playersoundmanager.c:2
CheckAllowUpdate
void CheckAllowUpdate()
Definition
playersoundmanager.c:141
PlayerSoundManagerBase
void PlayerSoundManagerBase(PlayerBase player)
Definition
playersoundmanager.c:27
RegisterHandler
void RegisterHandler(SoundHandlerBase handler)
Definition
playersoundmanager.c:33
m_Handlers
ref SoundHandlerBase m_Handlers[MAX_HANDLERS_COUNT]
Definition
playersoundmanager.c:25
m_UpdateTimerRunning
bool m_UpdateTimerRunning
Definition
playersoundmanager.c:88
m_ClientCharacterDistanceCheck
ref Timer m_ClientCharacterDistanceCheck
Definition
playersoundmanager.c:87
PlayerSoundManagerClient
void PlayerSoundManagerClient(PlayerBase player)
Definition
playersoundmanager.c:102
MAX_HANDLERS_COUNT
const int MAX_HANDLERS_COUNT
Definition
playersoundmanager.c:24
m_Player
enum eSoundHandlers m_Player
m_ClientCharacterTick
class PlayerSoundManagerServer extends PlayerSoundManagerBase m_ClientCharacterTick
STAMINA
@ STAMINA
Definition
playerstatspco.c:149
Games
Dayz
scripts
4_world
classes
soundhandlers
playersoundmanager.c
Generated by
1.17.0