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

◆ OnSyncJuncture()

void OnSyncJuncture ( int pJunctureID,
ParamsReadContext pCtx )
protected

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

561 {
562 int gestureID;
563 int cancelID;
564 int forced;
565 bool guaranteed;
566
567 if (!m_CancelEmote)
568 {
569 pCtx.Read(gestureID);
570 pCtx.Read(cancelID);
571 pCtx.Read(forced);
572 pCtx.Read(guaranteed);
573
574 if (gestureID != 0)
575 {
576 // Check if player's state has changed since request was sent
577
578 if (m_Player.IsSwimming() || m_Player.GetCommand_Swim())
579 {
580 // Player is now in water - reject the emote
581 gestureID = CALLBACK_CMD_INVALID;
582 cancelID = CALLBACK_CMD_INSTACANCEL;
586 // Notify server about it
587 if (g_Game.IsClient())
588 {
589 SendEmoteRequestSync(CALLBACK_CMD_INSTACANCEL); // Tell server we're cancelling
590 }
591 return;
592 }
593 }
594
595 EmoteBase emoteData;
596 if ((m_Callback || m_Player.IsSurrendered()) && (forced == EmoteLauncher.FORCE_ALL || (forced == EmoteLauncher.FORCE_DIFFERENT && m_CurrentGestureID != gestureID)))
597 {
598 if (m_Callback)
599 {
600 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && emoteData.CanBeCanceledNormally(m_Callback))
601 m_CancelEmote = true;
602 else
603 return;
604 }
605 m_CancelEmote = true;
606 }
607
608 if (cancelID == CALLBACK_CMD_INSTACANCEL)
609 {
610 if (m_Callback)
611 {
612 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && !emoteData.CanBeCanceledNormally(m_Callback))
613 {
614 m_InstantCancelEmote = false;
615 return;
616 }
617 }
619 }
620
621 if (guaranteed)
622 m_DeferredGuaranteedEmoteId = gestureID;
623 m_DeferredEmoteExecution = gestureID;
624 }
625 else
626 m_CancelEmote = false;
627 }
DayZGame g_Game
Определения DayZGame.c:4074
EmoteCB m_Callback
Определения EmoteManager.c:120
const int CALLBACK_CMD_INVALID
Определения EmoteManager.c:148
int m_CurrentGestureID
Определения EmoteManager.c:144
bool m_CancelEmote
Определения EmoteManager.c:128
int m_DeferredEmoteExecution
Определения EmoteManager.c:141
int m_DeferredGuaranteedEmoteId
Определения EmoteManager.c:140
const int CALLBACK_CMD_INSTACANCEL
Определения EmoteManager.c:151
ref map< int, ref EmoteBase > m_NameEmoteMap
Определения EmoteManager.c:154
bool m_InstantCancelEmote
Определения EmoteManager.c:129
void SendEmoteRequestSync(int id)
Определения EmoteManager.c:864
DayZPlayer m_Player
Определения Hand_Events.c:42
bool CanBeCanceledNormally(notnull EmoteCB callback)
Определения EmoteBase.c:17
Определения EmoteBase.c:2
static const int FORCE_ALL
Определения EmoteManager.c:63
static const int FORCE_DIFFERENT
Определения EmoteManager.c:62
Определения EmoteManager.c:60
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_NameEmoteMap, m_Player, Serializer::Read() и SendEmoteRequestSync().