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

◆ CanPlayEmote()

bool CanPlayEmote ( int id)
protected

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

1027 {
1028 //special cases
1030 {
1031 return true;
1032 }
1033
1034 if (!m_Player || !m_Player.IsAlive() || (!IsEmotePlaying() && (m_Player.GetCommand_Action() || m_Player.GetCommandModifier_Action())) || m_Player.GetThrowing().IsThrowingModeEnabled())
1035 {
1036 return false;
1037 }
1038
1039 ItemBase item = m_Player.GetItemInHands();
1040 if (item)
1041 {
1042 if (item.IsHeavyBehaviour() && id != EmoteConstants.ID_EMOTE_SURRENDER)
1043 {
1044 return false;
1045 }
1046 }
1047
1048 if ((m_Player.GetWeaponManager() && m_Player.GetWeaponManager().IsRunning()) || (m_Player.GetActionManager() && m_Player.GetActionManager().GetRunningAction()))
1049 {
1050 return false;
1051 }
1052
1053 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?
1054 {
1055 return false;
1056 }
1057
1058 if (m_Player.GetCommand_Vehicle() || m_Player.GetCommand_Swim())
1059 {
1060 return false;
1061 }
1062
1063 HumanCommandMove cm = m_Player.GetCommand_Move();
1064 if (cm)
1065 {
1066 if (cm.IsOnBack() && id != EmoteConstants.ID_EMOTE_SURRENDER)
1067 return false;
1068 if (cm.IsChangingStance())
1069 return false;
1070 }
1071
1072 //"locks" player in surrender state
1073 if (m_Player.IsSurrendered() && (id != EmoteConstants.ID_EMOTE_SURRENDER))
1074 {
1075 return false;
1076 }
1077
1078 if (m_Player.GetDayZPlayerInventory().IsProcessing())
1079 {
1080 return false;
1081 }
1082
1083 EmoteBase emote;
1084 if (m_NameEmoteMap.Find(id,emote))
1085 {
1086 int callback_ID;
1087 int stancemask;
1088 bool is_fullbody;
1089 if (DetermineEmoteData(emote,callback_ID,stancemask,is_fullbody) && emote.EmoteCondition(stancemask))
1090 {
1091 return true;
1092 }
1093 }
1094
1095 return false;
1096 }
const int CALLBACK_CMD_END
Определения EmoteManager.c:149
const int CALLBACK_CMD_INSTACANCEL
Определения EmoteManager.c:151
bool IsEmotePlaying()
Определения EmoteManager.c:1328
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:256
const int CALLBACK_CMD_GESTURE_INTERRUPT
Определения EmoteManager.c:150
ref map< int, ref EmoteBase > m_NameEmoteMap
Определения EmoteManager.c:154
HumanInputController m_HIC
Определения EmoteManager.c:121
DayZPlayer m_Player
Определения Hand_Events.c:42
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:454
const int ID_EMOTE_SURRENDER
Определения 3_Game/DayZ/constants.c:407

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

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