DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ PlayRequestEx()

override bool PlayRequestEx ( EPlayerSoundEventID id,
bool sent_from_server = false,
int param = 0 )

См. определение в файле PlayerSoundEventHandler.c строка 148

149 {
150 if (id < 0 || id > (SOUND_EVENTS_MAX - 1))
151 {
152 Error("EPlayerSoundEventID out of bounds");
153 }
154
155 PlayerSoundEventBase requested_state = m_AvailableStates[id];
156 if ( sent_from_server && (param & EPlayerSoundEventParam.SKIP_CONTROLLED_PLAYER) && m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_CLIENT )
157 {
158 return false;
159 }
160
161 if ( !requested_state.CanPlay(m_Player) )
162 {
163 return false;
164 }
165
166 if (m_CurrentState)
167 {
168 if (param & EPlayerSoundEventParam.HIGHEST_PRIORITY)
169 {
170 m_CurrentState.Stop();
171 }
172 else
173 {
174 int current_type = m_CurrentState.GetSoundEventType();
175 //int requested_type = requested_state.GetSoundEventType();
176
177 if ( (requested_state.GetPriorityOverTypes() & current_type) == 0 )
178 {
179 return false;
180 }
181 if (!requested_state.HasPriorityOverCurrent(m_Player, id, current_type) )
182 {
183 return false;
184 }
185
186 m_CurrentState.Stop();
187 }
188 }
189 m_CurrentState = PlayerSoundEventBase.Cast(requested_state.ClassName().ToType().Spawn());
190 m_CurrentState.InitEx(m_Player, param);
191 if (m_CurrentState.Play())
192 {
193 m_CurrentState.OnPlay(m_Player);
194 }
195 return true;
196 }
DayZPlayer m_Player
Определения Hand_Events.c:42
ref InfectedSoundEventBase m_CurrentState
Определения InfectedSoundEventHandler.c:18
static ref InfectedSoundEventBase m_AvailableStates[SOUND_EVENTS_MAX]
Определения InfectedSoundEventHandler.c:17
enum EInfectedSoundEventID SOUND_EVENTS_MAX
override bool HasPriorityOverCurrent(PlayerBase player, EPlayerSoundEventID other_state_id, EPlayerSoundEventType type_other)
Определения DamageEvents.c:15
override bool CanPlay(PlayerBase player)
Определения DamageEvents.c:10
DayZPlayerInstanceType
defined in C++
Определения dayzplayer.c:1068
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90

Перекрестные ссылки PlayerSoundEventBase::CanPlay(), Error(), PlayerSoundEventBase::HasPriorityOverCurrent(), m_AvailableStates, m_CurrentState, m_Player и SOUND_EVENTS_MAX.

Используется в PlayRequest().