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

◆ OnSyncJuncture()

void OnSyncJuncture ( int pJunctureID,
ParamsReadContext pCtx )
protected

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

593 {
594 int gestureID;
595 int cancelID;
596 int forced;
597 bool guaranteed;
598
599 if (!m_CancelEmote)
600 {
601 pCtx.Read(gestureID);
602 pCtx.Read(cancelID);
603 pCtx.Read(forced);
604 pCtx.Read(guaranteed);
605
606 if (gestureID != 0)
607 {
608 // Check if player's state has changed since request was sent
609 if (m_Player.IsSwimming())
610 {
611 // Player is now in water - reject the emote
612 gestureID = CALLBACK_CMD_INVALID;
613 cancelID = CALLBACK_CMD_INSTACANCEL;
617 // Notify server about it
618 if (g_Game.IsClient())
619 {
620 SendEmoteRequestSync(CALLBACK_CMD_INSTACANCEL); // Tell server we're cancelling
621 }
622 return;
623 }
624 }
625
626 EmoteBase emoteData;
627 if ((m_Callback || m_IsSurrendered) && (forced == EmoteLauncher.FORCE_ALL || (forced == EmoteLauncher.FORCE_DIFFERENT && m_CurrentGestureID != gestureID)))
628 {
629 if (m_Callback)
630 {
631 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && emoteData.CanBeCanceledNormally(m_Callback))
632 m_CancelEmote = true;
633 else
634 return;
635 }
636 m_CancelEmote = true;
637 }
638
639 if (cancelID == CALLBACK_CMD_INSTACANCEL)
640 {
641 if (m_Callback)
642 {
643 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && !emoteData.CanBeCanceledNormally(m_Callback))
644 {
645 m_InstantCancelEmote = false;
646 return;
647 }
648 }
650 }
651
652 if (guaranteed)
653 m_DeferredGuaranteedEmoteId = gestureID;
654 m_DeferredEmoteExecution = gestureID;
655 }
656 else
657 m_CancelEmote = false;
658 }
map m_Player
DayZGame g_Game
Определения DayZGame.c:3942
EmoteCB m_Callback
Определения EmoteManager.c:125
const int CALLBACK_CMD_INVALID
Определения EmoteManager.c:155
int m_CurrentGestureID
Определения EmoteManager.c:151
bool m_CancelEmote
Определения EmoteManager.c:135
int m_DeferredEmoteExecution
Определения EmoteManager.c:148
int m_DeferredGuaranteedEmoteId
Определения EmoteManager.c:147
const int CALLBACK_CMD_INSTACANCEL
Определения EmoteManager.c:158
bool m_IsSurrendered
Определения EmoteManager.c:133
ref map< int, ref EmoteBase > m_NameEmoteMap
Определения EmoteManager.c:162
bool m_InstantCancelEmote
Определения EmoteManager.c:136
void SendEmoteRequestSync(int id)
Определения EmoteManager.c:897
bool CanBeCanceledNormally(notnull EmoteCB callback)
Определения EmoteBase.c:17
Определения EmoteBase.c:2
static const int FORCE_ALL
Определения EmoteManager.c:68
static const int FORCE_DIFFERENT
Определения EmoteManager.c:67
Определения EmoteManager.c:65
proto bool Read(void value_in)

Перекрестные ссылки CALLBACK_CMD_INSTACANCEL, CALLBACK_CMD_INVALID, EmoteBase::CanBeCanceledNormally(), EmoteLauncher::FORCE_ALL, EmoteLauncher::FORCE_DIFFERENT, g_Game, m_Callback, m_CancelEmote, m_CurrentGestureID, m_DeferredEmoteExecution, m_DeferredGuaranteedEmoteId, m_InstantCancelEmote, m_IsSurrendered, m_NameEmoteMap, Serializer::Read() и SendEmoteRequestSync().