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

◆ PlayRequestEx()

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

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

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 }
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:1084
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().