DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PlayerSoundManager.c
См. документацию.
1
2const float SOUNDS_HEARING_DISTANCE = 50;
3
5{
10 //FREEZING,
11
12 //------
13 // add stuff above !
14 //------
16}
17
18
19
21{
23
26
28 {
29 m_Player = player;
30 Init();
31 }
32
34 {
35 int index = handler.GetID();
36 m_Handlers[index] = handler;
37 }
38
43
44 void Init()
45 {
46
47 }
48
49 void Update()
50 {
51
52 }
53
54
55}
56
57class 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
85{
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
103 {
104
105 if( !GetGame().IsDedicatedServer() )
106 {
107 m_ClientCharacterDistanceCheck.Run(2, this, "CheckAllowUpdate", null, true);
108 }
109 }
110
111 void SetAllowUpdate(bool enable)
112 {
113 if( enable )
114 {
116 m_ClientCharacterTick.Run(0.03, this, "Update", null, true);
117 }
118 else
119 {
120 m_UpdateTimerRunning = false;
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
142 {
143 if( GetGame().GetPlayer() )
144 {
145 bool is_at_hearing_distance = vector.Distance(GetGame().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(GetGame().GetPlayer().GetPosition(), m_Player.GetPosition()).ToString());
156 }
157 }
158}
@ COUNT
Определения EGameStateIcons.c:7
UIScriptedMenu GetHandler()
Определения ErrorProperties.c:80
DayZPlayer m_Player
Определения Hand_Events.c:42
PlayerBase GetPlayer()
Определения ModifierBase.c:51
@ INJURY
Определения PlayerSoundEventBase.c:8
@ THIRST
Определения PlayerSoundEventHandler.c:35
void SetAllowUpdate(bool enable)
Определения PlayerSoundManager.c:111
eSoundHandlers
Определения PlayerSoundManager.c:5
@ HUNGER
Определения PlayerSoundManager.c:7
const float SOUNDS_HEARING_DISTANCE
Определения PlayerSoundManager.c:2
void CheckAllowUpdate()
Определения PlayerSoundManager.c:141
void PlayerSoundManagerBase(PlayerBase player)
Определения PlayerSoundManager.c:27
void RegisterHandler(SoundHandlerBase handler)
Определения PlayerSoundManager.c:33
ref SoundHandlerBase m_Handlers[MAX_HANDLERS_COUNT]
Определения PlayerSoundManager.c:25
bool m_UpdateTimerRunning
Определения PlayerSoundManager.c:88
ref Timer m_ClientCharacterDistanceCheck
Определения PlayerSoundManager.c:87
void PlayerSoundManagerClient(PlayerBase player)
Определения PlayerSoundManager.c:102
const int MAX_HANDLERS_COUNT
Определения PlayerSoundManager.c:24
enum eSoundHandlers m_Player
class PlayerSoundManagerServer extends PlayerSoundManagerBase m_ClientCharacterTick
@ STAMINA
Определения PlayerStatsPCO.c:149
Определения PlayerBaseClient.c:2
override void Init()
Определения PlayerSoundManager.c:62
override void Update()
Определения PlayerSoundManager.c:70
Определения DayZPlayerImplement.c:63
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
Определения EnConvert.c:106
proto native CGame GetGame()
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9