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

◆ CanPlayEmote()

bool CanPlayEmote ( int id)
protected

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

879 {
880 //special cases
882 {
883 return true;
884 }
885
886 if (!m_Player || !m_Player.IsAlive() || (!IsEmotePlaying() && (m_Player.GetCommand_Action() || m_Player.GetCommandModifier_Action())) || m_Player.GetThrowing().IsThrowingModeEnabled())
887 {
888 //Debug.Log("!CanPlayEmote | reason: 1");
889 return false;
890 }
891
892 ItemBase item = m_Player.GetItemInHands();
893 if (item)
894 {
895 if (item.IsHeavyBehaviour() && id != EmoteConstants.ID_EMOTE_SURRENDER)
896 {
897 //Debug.Log("!CanPlayEmote | reason: 2");
898 return false;
899 }
900
901 SurrenderDummyItem sda;
902 if (m_Player.IsItemsToDelete() && Class.CastTo(sda,item) && !sda.IsSetForDeletion())
903 {
904 //Debug.Log("!CanPlayEmote | reason: 3");
905 return false;
906 }
907 }
908
909 if ((m_Player.GetWeaponManager() && m_Player.GetWeaponManager().IsRunning()) || (m_Player.GetActionManager() && m_Player.GetActionManager().GetRunningAction()))
910 {
911 //Debug.Log("!CanPlayEmote | reason: 4");
912 return false;
913 }
914
915 if (m_HIC.IsWeaponRaised() || m_Player.IsRolling() || m_Player.IsClimbing() || m_Player.IsRestrainStarted() || m_Player.IsFighting() || m_Player.IsSwimming() || m_Player.IsClimbingLadder() || m_Player.IsFalling() || m_Player.IsUnconscious() || m_Player.IsJumpInProgress() || m_Player.IsRestrained()) // rework conditions into something better?
916 {
917 //Debug.Log("!CanPlayEmote | reason: 5");
918 return false;
919 }
920
921 if (m_Player.GetCommand_Vehicle())
922 {
923 //Debug.Log("!CanPlayEmote | reason: 6");
924 return false;
925 }
926
927 HumanCommandMove cm = m_Player.GetCommand_Move();
928 if (cm)
929 {
931 return false;
932 if (cm.IsChangingStance())
933 return false;
934 }
935
936 //"locks" player in surrender state
938 {
939 //Debug.Log("!CanPlayEmote | reason: 8");
940 return false;
941 }
942
943 if (m_Player.GetDayZPlayerInventory().IsProcessing())
944 {
945 //Debug.Log("!CanPlayEmote | reason: 9");
946 return false;
947 }
948
949 EmoteBase emote;
950 if (m_NameEmoteMap.Find(id,emote))
951 {
952 int callback_ID;
953 int stancemask;
954 bool is_fullbody;
955 if (DetermineEmoteData(emote,callback_ID,stancemask,is_fullbody) && emote.EmoteCondition(stancemask))
956 {
957 return true;
958 }
959 //Debug.Log("!CanPlayEmote | reason: 10");
960 }
961
962 return false;
963 }
const int CALLBACK_CMD_END
Определения EmoteManager.c:139
const int CALLBACK_CMD_INSTACANCEL
Определения EmoteManager.c:141
bool IsEmotePlaying()
Определения EmoteManager.c:1137
bool DetermineEmoteData(EmoteBase emote, out int callback_ID, out int stancemask, out bool is_fullbody)
Also includes a stance check for FB callbacks.
Определения EmoteManager.c:249
bool m_IsSurrendered
Определения EmoteManager.c:119
const int CALLBACK_CMD_GESTURE_INTERRUPT
Определения EmoteManager.c:140
ref map< int, ref EmoteBase > m_NameEmoteMap
Определения EmoteManager.c:145
HumanInputController m_HIC
Определения EmoteManager.c:112
DayZPlayer m_Player
Определения Hand_Events.c:42
Super root of all classes in Enforce script.
Определения EnScript.c:11
bool EmoteCondition(int stancemask)
Определения EmoteBase.c:12
Определения EmoteBase.c:2
Определения constants.c:359
proto native bool IsOnBack()
return true if prone is on back
proto native bool IsChangingStance()
returns true if character is changing stance
Определения human.c:434
Определения InventoryItem.c:731
const int ID_EMOTE_SURRENDER
Определения constants.c:399
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.

Перекрестные ссылки CALLBACK_CMD_END, CALLBACK_CMD_GESTURE_INTERRUPT, CALLBACK_CMD_INSTACANCEL, Class::CastTo(), DetermineEmoteData(), EmoteBase::EmoteCondition(), EmoteConstants::ID_EMOTE_SURRENDER, HumanCommandMove::IsChangingStance(), IsEmotePlaying(), HumanCommandMove::IsOnBack(), m_HIC, m_IsSurrendered, m_NameEmoteMap и m_Player.

Используется в OnInputUserDataProcess(), PlayEmote() и SendEmoteRequestSync().