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

◆ CanPlayEmote()

bool CanPlayEmote ( int id)
protected

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

881 {
882 //special cases
884 {
885 return true;
886 }
887
888 if (!m_Player || !m_Player.IsAlive() || (!IsEmotePlaying() && (m_Player.GetCommand_Action() || m_Player.GetCommandModifier_Action())) || m_Player.GetThrowing().IsThrowingModeEnabled())
889 {
890 //Debug.Log("!CanPlayEmote | reason: 1");
891 return false;
892 }
893
894 ItemBase item = m_Player.GetItemInHands();
895 if (item)
896 {
897 if (item.IsHeavyBehaviour() && id != EmoteConstants.ID_EMOTE_SURRENDER)
898 {
899 //Debug.Log("!CanPlayEmote | reason: 2");
900 return false;
901 }
902
903 SurrenderDummyItem sda;
904 if (m_Player.IsItemsToDelete() && Class.CastTo(sda,item) && !sda.IsSetForDeletion())
905 {
906 //Debug.Log("!CanPlayEmote | reason: 3");
907 return false;
908 }
909 }
910
911 if ((m_Player.GetWeaponManager() && m_Player.GetWeaponManager().IsRunning()) || (m_Player.GetActionManager() && m_Player.GetActionManager().GetRunningAction()))
912 {
913 //Debug.Log("!CanPlayEmote | reason: 4");
914 return false;
915 }
916
917 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?
918 {
919 //Debug.Log("!CanPlayEmote | reason: 5");
920 return false;
921 }
922
923 if (m_Player.GetCommand_Vehicle())
924 {
925 //Debug.Log("!CanPlayEmote | reason: 6");
926 return false;
927 }
928
929 HumanCommandMove cm = m_Player.GetCommand_Move();
930 if (cm)
931 {
933 return false;
934 if (cm.IsChangingStance())
935 return false;
936 }
937
938 //"locks" player in surrender state
940 {
941 //Debug.Log("!CanPlayEmote | reason: 8");
942 return false;
943 }
944
945 if (m_Player.GetDayZPlayerInventory().IsProcessing())
946 {
947 //Debug.Log("!CanPlayEmote | reason: 9");
948 return false;
949 }
950
951 EmoteBase emote;
952 if (m_NameEmoteMap.Find(id,emote))
953 {
954 int callback_ID;
955 int stancemask;
956 bool is_fullbody;
957 if (DetermineEmoteData(emote,callback_ID,stancemask,is_fullbody) && emote.EmoteCondition(stancemask))
958 {
959 return true;
960 }
961 //Debug.Log("!CanPlayEmote | reason: 10");
962 }
963
964 return false;
965 }
const int CALLBACK_CMD_END
Определения EmoteManager.c:139
const int CALLBACK_CMD_INSTACANCEL
Определения EmoteManager.c:141
bool IsEmotePlaying()
Определения EmoteManager.c:1183
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
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
const int ID_EMOTE_SURRENDER
Определения 3_Game/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().