DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PlayerSoundEventHandler.c
См. документацию.
1// defined in animEventsSoundVoice.hpp
44
45class PlayerSoundEventHandler extends SoundEventHandler
46{
48 const int SOUND_EVENTS_MAX = EPlayerSoundEventID.ENUM_COUNT;
53
54
56 {
57 m_Player = player;
58
59 if(!m_UpdateTimer && !m_Player.IsControlledPlayer())
60 {
61 m_UpdateTimer = new Timer();
62 m_UpdateTimer.Run(1, this, "OnTick", null, true);//ticking for remotes, the controlled player is ticking on command handler at higher intervals
63 }
64
75 RegisterState(new DamageHeavySoundEvent());
82 RegisterState(new MeleeAttackHeavyEvent());
92 RegisterState(new StaminaLowFilterLower());
94 RegisterState(new DrowningEvent2());
98 RegisterState(new ForceDrinkSoundEvent());
100
101 }
102
104 {
105 int index = state.GetSoundEventID();
106 m_AvailableStates[index] = state;
107 m_ConfigIDToScriptIDmapping.Insert(state.GetSoundVoiceAnimEventClassID(),index);
108 }
109
110
111 void OnTick(float delta_time)
112 {
113 if (m_CurrentState)
114 {
115 if( m_CurrentState.IsFinished())
116 m_CurrentState = null;
117 else
118 m_CurrentState.OnTick(delta_time);
119 }
120 }
121
122 int ConvertAnimIDtoEventID(int anim_id)
123 {
124 return m_ConfigIDToScriptIDmapping.Get(anim_id);
125 }
126
128 {
129 return m_AvailableStates[id].GetSoundEventType();
130 }
131
133 {
135 {
136 return m_CurrentState.GetSoundEventID();
137 }
138 return -1;
139 }
140
142 {
144 {
145 return m_CurrentState.GetSoundEventType();
146 }
147 return -1;
148 }
149
150 override bool PlayRequestEx(EPlayerSoundEventID id, bool sent_from_server = false, int param = 0)
151 {
152 if (id < 0 || id > (SOUND_EVENTS_MAX - 1))
153 {
154 Error("EPlayerSoundEventID out of bounds");
155 }
156
157 PlayerSoundEventBase requested_state = m_AvailableStates[id];
158 if ( sent_from_server && (param & EPlayerSoundEventParam.SKIP_CONTROLLED_PLAYER) && m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_CLIENT )
159 {
160 return false;
161 }
162
163 if ( !requested_state.CanPlay(m_Player) )
164 {
165 return false;
166 }
167
168 if (m_CurrentState)
169 {
170 if (param & EPlayerSoundEventParam.HIGHEST_PRIORITY)
171 {
172 m_CurrentState.Stop();
173 }
174 else
175 {
176 int current_type = m_CurrentState.GetSoundEventType();
177 //int requested_type = requested_state.GetSoundEventType();
178
179 if ( (requested_state.GetPriorityOverTypes() & current_type) == 0 )
180 {
181 return false;
182 }
183 if (!requested_state.HasPriorityOverCurrent(m_Player, id, current_type) )
184 {
185 return false;
186 }
187
188 m_CurrentState.Stop();
189 }
190 }
191 m_CurrentState = PlayerSoundEventBase.Cast(requested_state.ClassName().ToType().Spawn());
192 m_CurrentState.InitEx(m_Player, param);
193 if (m_CurrentState.Play())
194 {
195 m_CurrentState.OnPlay(m_Player);
196 }
197 return true;
198 }
199
200 override bool StopRequest(EPlayerSoundEventID id, bool sent_from_server = false, int param = 0)
201 {
202 if (m_CurrentState)
203 {
204 //Debug.Log(string.Format("Stopping sound event id=%1", m_CurrentState.GetSoundEventID()), this.ClassName(), "", "", "StopRequest");
205 m_CurrentState.Stop();
206 }
207
208 return true;
209 }
210
211 override bool PlayRequest(EPlayerSoundEventID id, bool sent_from_server = false)
212 {
213 return PlayRequestEx(id, sent_from_server);
214 }
215
216}
JUMP
Определения AIWorld.c:21
class DamageSoundEvents extends PlayerSoundEventBase DamageLightSoundEvent()
Определения DamageEvents.c:23
class DrowningSoundEventBase extends PlayerSoundEventBase DrowningEvent1()
Определения DrowningEvents.c:22
@ HOLD_BREATH
Определения EStaminaConsumers.c:3
DayZPlayer m_Player
Определения Hand_Events.c:42
class RattlingTeethSoundEvent extends HeatComfortEventsBase HotSoundEvent()
Определения HeatComfortEvents.c:36
void RattlingTeethSoundEvent()
Определения HeatComfortEvents.c:37
class HeatComfortEventsBase extends PlayerSoundEventBase FreezingSoundEvent()
Определения HeatComfortEvents.c:18
HeavyBreathSoundEventBase PlayerSoundEventBase HeavyBreathEvent1()
Определения HeavyBreathEvents.c:23
class ExhaustedBreathSoundEvent extends HoldBreathSoundEventBase ReleaseBreathSoundEvent()
Определения HoldBreathEvents.c:52
void ExhaustedBreathSoundEvent()
Определения HoldBreathEvents.c:53
class HoldBreathSoundEventBase extends PlayerSoundEventBase HoldBreathSoundEvent()
Определения HoldBreathEvents.c:18
@ ENUM_COUNT
Определения InfectedSoundEventHandler.c:11
ref InfectedSoundEventBase m_CurrentState
Определения InfectedSoundEventHandler.c:18
static ref InfectedSoundEventBase m_AvailableStates[SOUND_EVENTS_MAX]
Определения InfectedSoundEventHandler.c:17
override int GetCurrentStateEventID()
Определения InfectedSoundEventHandler.c:38
enum EInfectedSoundEventID SOUND_EVENTS_MAX
override int GetCurrentStateEventType()
Определения InfectedSoundEventHandler.c:47
class InjuryMediumSoundEvent extends InjurySoundEvents InjuryHeavySoundEvent()
Определения InjuryEvents.c:43
class InjurySoundEvents extends PlayerSoundEventBase InjuryLightSoundEvent()
Определения InjuryEvents.c:23
void InjuryMediumSoundEvent()
Определения InjuryEvents.c:44
class JumpEventsBase extends PlayerSoundEventBase JumpSoundEvent()
Определения JumpEvents.c:35
class MeleeAttackSoundEvents extends PlayerSoundEventBase MeleeAttackLightEvent()
Определения MeleeAttack.c:33
class ForceConsumeSoundEvent extends PlayerSoundEventBase ForceFeedSoundEvent()
Определения MiscEvents.c:34
class PickupHeavySoundEvent extends PlayerSoundEventBase ThirstSoundEvent()
Определения MiscEvents.c:14
void PickupHeavySoundEvent()
Определения MiscEvents.c:15
void OnTick(PlayerBase player, float deltaT)
Определения HeatStroke.c:186
EPlayerSoundEventType
Определения PlayerSoundEventBase.c:2
override bool StopRequest(EPlayerSoundEventID id, bool sent_from_server=false, int param=0)
Определения PlayerSoundEventHandler.c:200
override bool PlayRequestEx(EPlayerSoundEventID id, bool sent_from_server=false, int param=0)
Определения PlayerSoundEventHandler.c:150
void RegisterState(PlayerSoundEventBase state)
Определения PlayerSoundEventHandler.c:103
static ref map< int, int > m_ConfigIDToScriptIDmapping
Определения PlayerSoundEventHandler.c:50
void PlayerSoundEventHandler(PlayerBase player)
Определения PlayerSoundEventHandler.c:55
EPlayerSoundEventID
Определения PlayerSoundEventHandler.c:3
@ TAKING_DMG_LIGHT
Определения PlayerSoundEventHandler.c:13
@ SYMPTOM_FATIGUE
Определения PlayerSoundEventHandler.c:28
@ FORCE_DRINK
Определения PlayerSoundEventHandler.c:37
@ RELEASE_BREATH
Определения PlayerSoundEventHandler.c:6
@ HEAVY_BREATHING
Определения PlayerSoundEventHandler.c:38
@ DROWNING_PAIN
Определения PlayerSoundEventHandler.c:33
@ THIRST
Определения PlayerSoundEventHandler.c:35
@ HOT
Определения PlayerSoundEventHandler.c:27
@ FORCE_FEED
Определения PlayerSoundEventHandler.c:36
@ STAMINA_UP_END
Определения PlayerSoundEventHandler.c:11
@ INJURED_MEDIUM
Определения PlayerSoundEventHandler.c:23
@ RATTLING_TEETH
Определения PlayerSoundEventHandler.c:26
@ FREEZING
Определения PlayerSoundEventHandler.c:25
@ EXHAUSTED_BREATH
Определения PlayerSoundEventHandler.c:5
@ STAMINA_UP_LIGHT
Определения PlayerSoundEventHandler.c:9
@ INJURED_HIGH
Определения PlayerSoundEventHandler.c:24
@ MELEE_ATTACK_LIGHT
Определения PlayerSoundEventHandler.c:20
@ STAMINA_LOW_FILTER_LOWER
Определения PlayerSoundEventHandler.c:31
@ STAMINA_NORMAL_DUMMY
Определения PlayerSoundEventHandler.c:12
@ STAMINA_LOW_FILTER_UPPER
Определения PlayerSoundEventHandler.c:29
@ PICKUP_HEAVY
Определения PlayerSoundEventHandler.c:34
@ INJURED_LIGHT
Определения PlayerSoundEventHandler.c:22
@ DROWNING_BREATH
Определения PlayerSoundEventHandler.c:32
@ STAMINA_DOWN_LIGHT
Определения PlayerSoundEventHandler.c:7
@ STAMINA_DOWN_HEAVY
Определения PlayerSoundEventHandler.c:8
@ STAMINA_LOW_FILTER_MID
Определения PlayerSoundEventHandler.c:30
@ STAMINA_UP_HEAVY
Определения PlayerSoundEventHandler.c:10
@ TAKING_DMG_HEAVY
Определения PlayerSoundEventHandler.c:14
int ConvertAnimIDtoEventID(int anim_id)
Определения PlayerSoundEventHandler.c:122
ref Timer m_UpdateTimer
Определения RadialMenu.c:20
EAnimPlayState PlayRequest()
Определения SmptAnimMeta.c:65
int GetSoundEventType()
Определения SoundEvents.c:155
class StaminaDownHeavy extends StaminaSoundEventBase StaminaUpHeavy()
Определения StaminaEvents.c:68
class StaminaUpLight extends StaminaSoundEventBase StaminaUpEnd()
Определения StaminaEvents.c:86
void StaminaDownHeavy()
Определения StaminaEvents.c:69
class StaminaSoundEventBase extends PlayerSoundEventBase StaminaDownLight()
Определения StaminaEvents.c:50
void StaminaNormalDummy()
Определения StaminaEvents.c:115
void StaminaUpLight()
Определения StaminaEvents.c:87
void StaminaLowFilterUpper()
Определения StaminaEvents.c:132
class StaminaLowFilterUpper extends StaminaLowFilterBase StaminaLowFilterMid()
Определения StaminaEvents.c:131
enum AnimType SYMPTOM_GASP
enum AnimType SYMPTOM_LAUGHTER
enum AnimType SYMPTOM_COUGH
enum AnimType SYMPTOM_SNEEZE
class SymptomSoundEventBase extends PlayerSoundEventBase CoughSoundEvent()
Определения SymptomEvents.c:17
void GaspSoundEvent()
Определения SymptomEvents.c:54
void LaugherSoundEvent()
Определения SymptomEvents.c:36
class GaspSoundEvent extends SymptomSoundEventBase FatigueSoundEvent()
Определения SymptomEvents.c:53
class LaugherSoundEvent extends SymptomSoundEventBase SneezeSoundEvent()
Определения SymptomEvents.c:35
Определения PlayerBaseClient.c:2
override bool HasPriorityOverCurrent(PlayerBase player, EPlayerSoundEventID other_state_id, EPlayerSoundEventType type_other)
Определения DamageEvents.c:15
override bool CanPlay(PlayerBase player)
Определения DamageEvents.c:10
Определения DayZPlayerImplement.c:39
Определения Transport.c:70
DayZPlayerInstanceType
defined in C++
Определения dayzplayer.c:1084
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90