DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл EmoteManager.c

См. исходные тексты.

Структуры данных

class  EmoteCB
 
class  EmoteLauncher
 
class  SurrenderData
 

Функции

void EmoteManager (PlayerBase player)
 
void ~EmoteManager ()
 
void ConstructData ()
 
void SetGesture (int id)
 
int GetGesture ()
 
int DetermineGestureIndex ()
 
bool DetermineEmoteData (EmoteBase emote, out int callback_ID, out int stancemask, out bool is_fullbody)
 Also includes a stance check for FB callbacks.
 
void Update (float deltaT)
 
void OnEmoteEnd ()
 
bool OnInputUserDataProcess (int userDataType, ParamsReadContext ctx)
 
void OnSyncJuncture (int pJunctureID, ParamsReadContext pCtx)
 
void OnCallbackEnd ()
 
void AfterStoreLoad ()
 
bool PlayEmote (int id)
 
void CreateEmoteCallback (typename callbacktype, int id, int mask, bool fullbody)
 
void HideItemInHands ()
 
void ShowItemInHands ()
 
void CommitSuicide ()
 
void KillPlayer ()
 
void LogSuicide ()
 
void CreateEmoteCBFromMenu (int id, bool interrupts_same=false)
 
EmoteLauncher GetEmoteLauncher ()
 
void InterruptCallbackCommand ()
 
void EndCallbackCommand ()
 
void SendEmoteRequestSync (int id)
 
bool IsControllsLocked ()
 
bool CanPlayEmote (int id)
 
bool CanPlayEmoteClientCheck (int id)
 
void PlaySurrenderInOut (bool state)
 
void SetEmoteLockState (bool state)
 
void CheckEmoteLockedState ()
 
void EndSurrenderRequest (SurrenderData data=null)
 directly force-ends surrender state from outside of normal flow
 
void ServerRequestEmoteCancel ()
 
bool InterruptGestureCheck ()
 
bool InterruptWaterCheck ()
 
bool IsEmotePlaying ()
 
map< int, ref EmoteBaseGetNameEmoteMap ()
 
void CreateBleedingEffect (int Callback_ID)
 
void PickEmote (int gestureslot)
 Deprecated.
 
void End ()
 called on surrender end request end
 
void ChainedDropAndKillPlayerLambda (EntityAI old_item, string new_item_type, PlayerBase player)
 
override void Execute (HumanInventoryWithFSM fsm_to_notify=null)
 

Переменные

class EmoteLauncher m_Player
 
ItemBase m_item
 
EmoteCB m_Callback
 
HumanInputController m_HIC
 
ref array< stringm_InterruptInputs
 
ref array< UAInputm_InterruptInputDirect
 
ref InventoryLocation m_HandInventoryLocation
 
ref EmoteLauncher m_MenuEmote
 
bool m_bEmoteIsRequestPending
 
bool m_bEmoteIsPlaying
 
bool m_IsSurrendered
 
bool m_ItemToBeCreated
 
bool m_CancelEmote
 
bool m_InstantCancelEmote
 
bool m_GestureInterruptInput
 
bool m_ItemToHands
 
bool m_ItemIsOn
 
bool m_MouseButtonPressed
 
bool m_PlayerDies
 
bool m_controllsLocked
 
bool m_InventoryAccessLocked
 
bool m_EmoteLockState
 
int m_DeferredEmoteExecution
 
int m_GestureID
 
int m_PreviousGestureID
 
int m_CurrentGestureID
 
int m_LastMask
 
int m_RPSOutcome
 
int m_InterruptInputsCount
 
const int CALLBACK_CMD_INVALID = -1
 
const int CALLBACK_CMD_END = -2
 
const int CALLBACK_CMD_GESTURE_INTERRUPT = -3
 
const int CALLBACK_CMD_INSTACANCEL = -4
 
PluginAdminLog m_AdminLog
 
ref Timer m_ReservationTimer
 
ref map< int, ref EmoteBasem_NameEmoteMap
 
ref array< ref EmoteBasem_EmoteClassArray
 
ref array< intm_EmoteIDs
 
ref array< intm_EmoteInputIDs
 
SHumanCommandSwimSettings m_HumanSwimSettings
 

Функции

◆ AfterStoreLoad()

void AfterStoreLoad ( )
protected
581 {
582 if (m_Player.GetItemInHands() && SurrenderDummyItem.Cast(m_Player.GetItemInHands()))
583 m_Player.GetItemInHands().Delete();
584 }
class EmoteLauncher m_Player
Definition EntityAI.c:95

Перекрестные ссылки m_Player.

◆ CanPlayEmote()

bool CanPlayEmote ( int id)
protected
871 {
872 //special cases
874 {
875 return true;
876 }
877
878 if (!m_Player || !m_Player.IsAlive() || (!IsEmotePlaying() && (m_Player.GetCommand_Action() || m_Player.GetCommandModifier_Action())) || m_Player.GetThrowing().IsThrowingModeEnabled())
879 {
880 //Debug.Log("!CanPlayEmote | reason: 1");
881 return false;
882 }
883
884 ItemBase item = m_Player.GetItemInHands();
885 if (item)
886 {
887 if (item.IsHeavyBehaviour() && id != EmoteConstants.ID_EMOTE_SURRENDER)
888 {
889 //Debug.Log("!CanPlayEmote | reason: 2");
890 return false;
891 }
892
894 if (m_Player.IsItemsToDelete() && Class.CastTo(sda,item) && !sda.IsSetForDeletion())
895 {
896 //Debug.Log("!CanPlayEmote | reason: 3");
897 return false;
898 }
899 }
900
901 if ((m_Player.GetWeaponManager() && m_Player.GetWeaponManager().IsRunning()) || (m_Player.GetActionManager() && m_Player.GetActionManager().GetRunningAction()))
902 {
903 //Debug.Log("!CanPlayEmote | reason: 4");
904 return false;
905 }
906
907 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?
908 {
909 //Debug.Log("!CanPlayEmote | reason: 5");
910 return false;
911 }
912
913 if (m_Player.GetCommand_Vehicle())
914 {
915 //Debug.Log("!CanPlayEmote | reason: 6");
916 return false;
917 }
918
919 if (m_Player.GetCommand_Move() && m_Player.GetCommand_Move().IsOnBack() && id != EmoteConstants.ID_EMOTE_SURRENDER)
920 {
921 //Debug.Log("!CanPlayEmote | reason: 7");
922 return false;
923 }
924
925 //"locks" player in surrender state
927 {
928 //Debug.Log("!CanPlayEmote | reason: 8");
929 return false;
930 }
931
932 if (m_Player.GetDayZPlayerInventory().IsProcessing())
933 {
934 //Debug.Log("!CanPlayEmote | reason: 9");
935 return false;
936 }
937
939 if (m_NameEmoteMap.Find(id,emote))
940 {
941 int callback_ID;
942 int stancemask;
943 bool is_fullbody;
945 {
946 return true;
947 }
948 //Debug.Log("!CanPlayEmote | reason: 10");
949 }
950
951 return false;
952 }
const int CALLBACK_CMD_END
Definition EmoteManager.c:139
const int CALLBACK_CMD_INSTACANCEL
Definition EmoteManager.c:141
bool IsEmotePlaying()
Definition EmoteManager.c:1126
bool DetermineEmoteData(EmoteBase emote, out int callback_ID, out int stancemask, out bool is_fullbody)
Also includes a stance check for FB callbacks.
Definition EmoteManager.c:249
bool m_IsSurrendered
Definition EmoteManager.c:119
const int CALLBACK_CMD_GESTURE_INTERRUPT
Definition EmoteManager.c:140
ref map< int, ref EmoteBase > m_NameEmoteMap
Definition EmoteManager.c:145
HumanInputController m_HIC
Definition EmoteManager.c:112
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition EmoteBase.c:2
Definition constants.c:356
proto native bool IsWeaponRaised()
returns true if weapon is raised
Definition InventoryItem.c:731
const int ID_EMOTE_SURRENDER
Definition constants.c:396
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(), DayZPlayer::GetDayZPlayerInventory(), DayZPlayer::GetThrowing(), DayZPlayer::GetWeaponManager(), EmoteConstants::ID_EMOTE_SURRENDER, DayZPlayer::IsClimbingLadder(), IsEmotePlaying(), DayZPlayer::IsFighting(), DayZPlayer::IsRestrained(), WeaponManager::IsRunning(), DayZPlayer::IsSwimming(), DayZPlayerImplementThrowing::IsThrowingModeEnabled(), HumanInputController::IsWeaponRaised(), m_HIC, m_IsSurrendered, m_NameEmoteMap и m_Player.

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

◆ CanPlayEmoteClientCheck()

bool CanPlayEmoteClientCheck ( int id)
protected
955 {
956 if (!GetGame().IsClient())
957 return true;
958
959 if (GetGame().GetUIManager().FindMenu(MENU_INVENTORY))
960 {
961 //Debug.Log("!CanPlayEmoteClientCheck | reason: 1");
962 return false;
963 }
964
965 return true;
966 }
proto native CGame GetGame()
const int MENU_INVENTORY
Definition constants.c:178

Перекрестные ссылки GetGame() и MENU_INVENTORY.

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

◆ ChainedDropAndKillPlayerLambda()

void ChainedDropAndKillPlayerLambda ( EntityAI old_item,
string new_item_type,
PlayerBase player )
protected
1194 {
1195 m_Player = player;
1197 vector mtx[4];
1198 old_item.GetTransform(mtx);
1199 gnd.SetGround(old_item, mtx);
1200
1201 OverrideNewLocation(gnd);
1202 }
InventoryLocation.
Definition InventoryLocation.c:29
Definition EnConvert.c:106

Перекрестные ссылки m_Player.

◆ CheckEmoteLockedState()

void CheckEmoteLockedState ( )
protected
1047 {
1048 if (!m_Player.GetItemInHands() || (m_Player.GetItemInHands() && !SurrenderDummyItem.Cast(m_Player.GetItemInHands())))
1049 return;
1050
1051 //refreshes reservation in case of unwanted timeout
1053 {
1054 m_Player.GetInventory().ExtendInventoryReservationEx(null, m_HandInventoryLocation, 10000);
1055 }
1056 }
ref InventoryLocation m_HandInventoryLocation
Definition EmoteManager.c:115
bool m_EmoteLockState
Definition EmoteManager.c:130

Перекрестные ссылки m_EmoteLockState, m_HandInventoryLocation и m_Player.

◆ CommitSuicide()

void CommitSuicide ( )
protected
678 {
680 WeaponEventBase weapon_event = new WeaponEventTrigger;
681
682 if (Weapon_Base.CastTo(weapon,m_Player.GetItemInHands()))
683 {
684 if (weapon.CanFire())
685 {
686 m_Callback.RegisterAnimationEvent("Simulation_End",EmoteConstants.EMOTE_SUICIDE_SIMULATION_END);
687 m_Player.SetSuicide(true);
688 weapon.ProcessWeaponEvent(weapon_event);
689 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
690 if (m_Player.IsAlive())
691 {
692 EntityAI helm = m_Player.FindAttachmentBySlotName("Headgear");
693 if (helm && GetGame().IsServer())
694 {
695 float damage = helm.GetMaxHealth("","");
696 helm.AddHealth("","", -damage/2);
697 }
698 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Call(this.KillPlayer);
699 if (m_AdminLog)
700 {
701 m_AdminLog.Suicide(m_Player);
702 }
703 }
704 }
705 else
706 {
707 if (!weapon.IsDamageDestroyed())
708 {
709 weapon.ProcessWeaponEvent(weapon_event);
710 }
711 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
712 }
713 }
714 else if (m_Player.GetItemInHands() && m_Player.GetItemInHands().ConfigIsExisting("suicideAnim"))
715 {
716 m_Callback.RegisterAnimationEvent("Death",EmoteConstants.EMOTE_SUICIDE_DEATH);
717 m_Callback.RegisterAnimationEvent("Bleed",EmoteConstants.EMOTE_SUICIDE_BLEED);
718 m_Callback.RegisterAnimationEvent("Simulation_End",EmoteConstants.EMOTE_SUICIDE_SIMULATION_END);
719 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
720 m_Player.SetSuicide(true);
721 }
722 else
723 {
724 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
725 }
726 }
EmoteCB m_Callback
Definition EmoteManager.c:111
PluginAdminLog m_AdminLog
Definition EmoteManager.c:142
void KillPlayer()
Definition EmoteManager.c:728
Definition Building.c:6
shorthand
Definition BoltActionRifle_Base.c:6
signalize mechanism manipulation
Definition Events.c:35
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
const int EMOTE_SUICIDE_SIMULATION_END
Definition constants.c:407
const int EMOTE_SUICIDE_BLEED
Definition constants.c:406
const int EMOTE_SUICIDE_DEATH
Definition constants.c:405
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10

Перекрестные ссылки CALL_CATEGORY_GAMEPLAY, EmoteConstants::EMOTE_SUICIDE_BLEED, EmoteConstants::EMOTE_SUICIDE_DEATH, EmoteConstants::EMOTE_SUICIDE_SIMULATION_END, GetGame(), KillPlayer(), m_AdminLog, m_Callback, m_Player и DayZPlayer::SetSuicide().

Используется в Update().

◆ ConstructData()

void ConstructData ( )
protected
196 {
198 if (!m_NameEmoteMap)
199 {
200 ec.ConstructEmotes(m_Player,m_NameEmoteMap);
204 int inputID;
205 int count = m_NameEmoteMap.Count();
206 UAInput inp;
207
208 for (int i = 0; i < count; i++)
209 {
210 m_EmoteClassArray.Insert(m_NameEmoteMap.GetElement(i));
211 m_EmoteIDs.Insert(m_NameEmoteMap.GetElement(i).GetID());
212 inp = GetUApi().GetInputByName(m_NameEmoteMap.GetElement(i).GetInputActionName());
213 inputID = inp.ID();
214 m_EmoteInputIDs.Insert(inputID);
215 }
216
217 if (m_EmoteInputIDs.Count() != m_EmoteClassArray.Count())
218 {
219 ErrorEx("Faulty emote data detected in 'ConstructData' method!",ErrorExSeverity.WARNING);
220 }
221 }
222 }
ref array< int > m_EmoteInputIDs
Definition EmoteManager.c:148
ref array< int > m_EmoteIDs
Definition EmoteManager.c:147
ref array< ref EmoteBase > m_EmoteClassArray
Definition EmoteManager.c:146
proto native UAInputAPI GetUApi()
Definition EmoteConstructor.c:2
Definition UAInput.c:24
ErrorExSeverity
Definition EnDebug.c:62
enum ShapeType ErrorEx

Перекрестные ссылки ErrorEx, GetUApi(), m_EmoteClassArray, m_EmoteIDs, m_EmoteInputIDs, m_NameEmoteMap и m_Player.

Используется в EmoteManager().

◆ CreateBleedingEffect()

void CreateBleedingEffect ( int Callback_ID)
protected
1137 {
1138 if (GetGame().IsServer() && m_Player.IsAlive())
1139 {
1140 switch (Callback_ID)
1141 {
1142 case DayZPlayerConstants.CMD_SUICIDEFB_1HD :
1143 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Neck");
1144 break;
1145
1146 case DayZPlayerConstants.CMD_SUICIDEFB_FIREAXE :
1147 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
1148 break;
1149
1150 case DayZPlayerConstants.CMD_SUICIDEFB_PITCHFORK :
1151 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Spine2");
1152 break;
1153
1154 case DayZPlayerConstants.CMD_SUICIDEFB_SWORD :
1155 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Spine2");
1156 break;
1157
1158 case DayZPlayerConstants.CMD_SUICIDEFB_SPEAR :
1159 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Head");
1160 break;
1161
1162 case DayZPlayerConstants.CMD_SUICIDEFB_WOODAXE :
1163 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
1164 break;
1165
1166 default :
1167 ErrorEx("EmoteManager.c | CreateBleedingEffect | WRONG ID",ErrorExSeverity.INFO);
1168 break;
1169 }
1170 }
1171 }

Перекрестные ссылки ErrorEx, GetGame() и m_Player.

◆ CreateEmoteCallback()

void CreateEmoteCallback ( typename callbacktype ,
int id,
int mask,
bool fullbody )
protected
633 {
634 if (m_Player)
635 {
636 m_LastMask = -1;
637
638 if (fullbody)
639 {
640 Class.CastTo(m_Callback, m_Player.StartCommand_Action(id,callbacktype,mask));
642 m_Callback.EnableCancelCondition(true);
643 }
644 else if (m_Player.IsPlayerInStance(mask))
645 {
646 m_LastMask = mask; //character is probably not prone now
647 Class.CastTo(m_Callback, m_Player.AddCommandModifier_Action(id,callbacktype));
648 }
649
650 if (m_Callback)
651 {
652 m_bEmoteIsPlaying = true;
655 m_Callback.m_Manager = this;
656 }
657 }
658 }
int m_LastMask
Definition EmoteManager.c:135
bool m_bEmoteIsPlaying
Definition EmoteManager.c:118
bool m_IsFullbody
Definition EmoteManager.c:3
EmoteManager m_Manager
Definition EmoteManager.c:6
PlayerBase m_player
Definition EmoteManager.c:5
int m_callbackID
Definition EmoteManager.c:4

Перекрестные ссылки Class::CastTo(), m_bEmoteIsPlaying, m_Callback, EmoteCB::m_callbackID, EmoteCB::m_IsFullbody, m_LastMask, EmoteCB::m_Manager, m_Player и EmoteCB::m_player.

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

◆ CreateEmoteCBFromMenu()

void CreateEmoteCBFromMenu ( int id,
bool interrupts_same = false )
protected
750 {
752 }
ref EmoteLauncher m_MenuEmote
Definition EmoteManager.c:116
Definition EmoteManager.c:75

Перекрестные ссылки m_MenuEmote.

Используется в Update().

◆ DetermineEmoteData()

bool DetermineEmoteData ( EmoteBase emote,
out int callback_ID,
out int stancemask,
out bool is_fullbody )
protected

Also includes a stance check for FB callbacks.

250 {
251 if (emote.DetermineOverride(callback_ID, stancemask, is_fullbody))
252 {
253 return emote.EmoteFBStanceCheck(stancemask);
254 }
255 else if (emote.GetAdditiveCallbackUID() != 0 && m_Player.IsPlayerInStance(emote.GetStanceMaskAdditive()))
256 {
257 callback_ID = emote.GetAdditiveCallbackUID();
258 stancemask = emote.GetStanceMaskAdditive();
259 is_fullbody = false;
260 return true;
261 }
262 else if (emote.GetFullbodyCallbackUID() != 0 && emote.EmoteFBStanceCheck(emote.GetStanceMaskFullbody()))
263 {
264 callback_ID = emote.GetFullbodyCallbackUID();
265 stancemask = emote.GetStanceMaskFullbody();
266 is_fullbody = true;
267 return true;
268 }
269
270 return false;
271 }

Перекрестные ссылки m_Player.

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

◆ DetermineGestureIndex()

int DetermineGestureIndex ( )
protected
235 {
236 int count = m_EmoteInputIDs.Count();
237 for (int i = 0; i < count; ++i)
238 {
239 if (GetUApi().GetInputByID(m_EmoteInputIDs[i]).LocalPress())
240 {
241 return m_EmoteIDs[i];
242 }
243 }
244
245 return 0;
246 }

Перекрестные ссылки GetUApi(), m_EmoteIDs и m_EmoteInputIDs.

Используется в Update().

◆ EmoteManager()

void EmoteManager ( PlayerBase player)
protected
152 {
154 m_HIC = m_Player.GetInputController();
155 m_ItemIsOn = false;
156 m_controllsLocked = false;
158 m_RPSOutcome = -1;
160
162 m_InterruptInputs.Insert("UAMoveForward");
163 m_InterruptInputs.Insert("UAMoveBack");
164 m_InterruptInputs.Insert("UATurnLeft");
165 m_InterruptInputs.Insert("UATurnRight");
166 m_InterruptInputs.Insert("UAMoveLeft");
167 m_InterruptInputs.Insert("UAMoveRight");
168 m_InterruptInputs.Insert("UAStand");
169 m_InterruptInputs.Insert("UACrouch");
170 m_InterruptInputs.Insert("UAProne");
171 m_InterruptInputs.Insert("UAGetOver");
172
175
176 if (GetGame().IsServer())
177 {
178 m_AdminLog = PluginAdminLog.Cast(GetPlugin(PluginAdminLog));
179 }
180
182 m_ReservationTimer.Run(8, this, "CheckEmoteLockedState", null, true);
183
184 m_HumanSwimSettings = m_Player.GetDayZPlayerType().CommandSwimSettingsW();
185
187 }
ref Timer m_ReservationTimer
Definition EmoteManager.c:143
bool m_controllsLocked
Definition EmoteManager.c:128
int m_RPSOutcome
Definition EmoteManager.c:136
const int CALLBACK_CMD_INVALID
Definition EmoteManager.c:138
ref array< string > m_InterruptInputs
Definition EmoteManager.c:113
int m_DeferredEmoteExecution
Definition EmoteManager.c:131
void ConstructData()
Definition EmoteManager.c:195
bool m_InventoryAccessLocked
Definition EmoteManager.c:129
SHumanCommandSwimSettings m_HumanSwimSettings
Definition EmoteManager.c:149
bool m_ItemIsOn
Definition EmoteManager.c:125
PluginBase GetPlugin(typename plugin_type)
Definition PluginManager.c:316
Definition DayZPlayerImplement.c:63

Перекрестные ссылки CALLBACK_CMD_INVALID, ConstructData(), GetGame(), GetPlugin(), m_AdminLog, m_controllsLocked, m_DeferredEmoteExecution, m_HandInventoryLocation, m_HIC, m_HumanSwimSettings, m_InterruptInputs, m_InventoryAccessLocked, m_ItemIsOn, m_Player, m_ReservationTimer и m_RPSOutcome.

Используется в ManBase::Init().

◆ End()

◆ EndCallbackCommand()

void EndCallbackCommand ( )
protected
770 {
772 {
773 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
774 }
775 else
776 {
777 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
778 }
779
780 if (m_MenuEmote)
783 }
int m_CurrentGestureID
Definition EmoteManager.c:134
const int ID_EMOTE_DANCE
Definition constants.c:368

Перекрестные ссылки CALLBACK_CMD_INVALID, EmoteConstants::ID_EMOTE_DANCE, m_Callback, m_CurrentGestureID, m_DeferredEmoteExecution и m_MenuEmote.

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

◆ EndSurrenderRequest()

void EndSurrenderRequest ( SurrenderData data = null)
protected

directly force-ends surrender state from outside of normal flow

1060 {
1061 if (m_IsSurrendered && data)
1062 {
1063 if (m_Player.GetItemInHands())
1064 m_Player.GetItemInHands().DeleteSafe();//Note, this keeps item 'alive' until it is released by all the systems (inventory swapping etc.)
1065
1066 m_IsSurrendered = false;
1068 data.End();
1069 }
1070 }
void SetEmoteLockState(bool state)
Definition EmoteManager.c:1003

Перекрестные ссылки IsEmotePlaying(), m_IsSurrendered, m_Player и SetEmoteLockState().

Используется в Update().

◆ Execute()

override void Execute ( HumanInventoryWithFSM fsm_to_notify = null)
protected
1205 {
1206 if (PrepareLocations())
1207 {
1208 vector transform[4];
1209
1210 m_Player.GetInventory().TakeToDst(InventoryMode.SERVER, m_OldLocation, m_NewLocation);
1211 m_Player.OnItemInHandsChanged();
1212 }
1213
1214 m_Player.SetHealth(0);
1215
1216 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[syncinv] player=" + Object.GetDebugName(m_Player) + " STS = " + m_Player.GetSimulationTimeStamp() + " ChainedDropAndKillPlayerLambda");
1217 }
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
Definition Inventory.c:22
void hndDebugPrint(string s)
Definition HandFSM.c:1
Definition Debug.c:600
static bool IsInventoryHFSMLogEnable()
Definition Debug.c:674
Definition ObjectTyped.c:2

Перекрестные ссылки hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable(), m_Player и DayZPlayer::OnItemInHandsChanged().

◆ GetEmoteLauncher()

EmoteLauncher GetEmoteLauncher ( )
protected
755 {
756 return m_MenuEmote;
757 }

Перекрестные ссылки m_MenuEmote.

◆ GetGesture()

int GetGesture ( )
protected
230 {
231 return m_GestureID;
232 }
int m_GestureID
Definition EmoteManager.c:132

Перекрестные ссылки m_GestureID.

◆ GetNameEmoteMap()

map< int, ref EmoteBase > GetNameEmoteMap ( )
protected
1132 {
1133 return m_NameEmoteMap;
1134 }

Перекрестные ссылки m_NameEmoteMap.

◆ HideItemInHands()

void HideItemInHands ( )
protected
661 {
662 m_item = m_Player.GetItemInHands();
663 if (m_Callback && m_item)
664 {
665 m_Player.TryHideItemInHands(true);
666 }
667 }
ItemBase m_item
Definition EmoteManager.c:110

Перекрестные ссылки m_Callback, m_item и m_Player.

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

◆ InterruptCallbackCommand()

void InterruptCallbackCommand ( )
protected
760 {
761 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
762
763 if (m_MenuEmote)
765
767 }

Перекрестные ссылки CALLBACK_CMD_INVALID, m_Callback, m_DeferredEmoteExecution и m_MenuEmote.

Используется в Update().

◆ InterruptGestureCheck()

bool InterruptGestureCheck ( )
protected
1082 {
1083 //init pass
1085 {
1088
1089 for (int i = 0; i < m_InterruptInputsCount; i++)
1090 {
1091 m_InterruptInputDirect.Insert(GetUApi().GetInputByName(m_InterruptInputs[i]));
1092 }
1093 }
1094
1095 //interrupts any callback if restrain action is in progress, takes priority
1097 return false;
1098
1099 for (int idx = 0; idx < m_InterruptInputsCount; idx++)
1100 {
1101 if (m_InterruptInputDirect[idx].LocalPress())
1102 {
1103 return true;
1104 }
1105 }
1106
1107 return false;
1108 }
ref array< UAInput > m_InterruptInputDirect
Definition EmoteManager.c:114
int m_InterruptInputsCount
Definition EmoteManager.c:137

Перекрестные ссылки GetUApi(), m_Callback, m_InterruptInputDirect, m_InterruptInputs, m_InterruptInputsCount и EmoteCB::m_IsFullbody.

Используется в Update().

◆ InterruptWaterCheck()

bool InterruptWaterCheck ( )
protected
1111 {
1112 float waterLevel = m_Player.GetCurrentWaterLevel();
1113
1114 if (m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_PRONE) && waterLevel >= m_HumanSwimSettings.m_fToCrouchLevel)
1115 {
1116 return true;
1117 }
1118 else if (m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEIDX_RAISEDCROUCH) && waterLevel >= m_HumanSwimSettings.m_fToErectLevel)
1119 {
1120 return true;
1121 }
1122
1123 return m_Player.GetModifiersManager() && m_Player.GetModifiersManager().IsModifierActive(eModifiers.MDF_DROWNING);
1124 }
float m_fToCrouchLevel
when to crouch
Definition humansettings.c:66
float m_fToErectLevel
when to stand
Definition humansettings.c:67
eModifiers
Definition eModifiers.c:2

Перекрестные ссылки DayZPlayer::GetCurrentWaterLevel(), SHumanCommandSwimSettings::m_fToCrouchLevel, SHumanCommandSwimSettings::m_fToErectLevel, m_HumanSwimSettings и m_Player.

Используется в Update().

◆ IsControllsLocked()

bool IsControllsLocked ( )
protected
866 {
867 return m_controllsLocked;
868 }

Перекрестные ссылки m_controllsLocked.

Используется в ManBase::HeadingModel().

◆ IsEmotePlaying()

bool IsEmotePlaying ( )
protected
1127 {
1129 }
bool m_bEmoteIsRequestPending
Definition EmoteManager.c:117

Перекрестные ссылки m_bEmoteIsPlaying, m_bEmoteIsRequestPending и m_IsSurrendered.

Используется в CanPlayEmote(), EndSurrenderRequest(), ManBase::IsInFBEmoteState(), ManBase::OnQuickBarSingleUse() и SendEmoteRequestSync().

◆ KillPlayer()

void KillPlayer ( )
protected
729 {
730 if (GetGame().IsServer())
731 {
732 m_Player.SetHealth(0);
733 }
734 }

Перекрестные ссылки GetGame() и m_Player.

Используется в CommitSuicide().

◆ LogSuicide()

void LogSuicide ( )
protected
737 {
738 if (GetGame().IsServer())
739 {
740 PlayerIdentity identity = m_Player.GetIdentity();
741 if (identity)
742 {
743 if (m_AdminLog)
744 m_AdminLog.Suicide(m_Player);
745 }
746 }
747 }
The class that will be instanced (moddable)
Definition gameplay.c:388

Перекрестные ссылки GetGame(), m_AdminLog и m_Player.

◆ OnCallbackEnd()

void OnCallbackEnd ( )
protected
574 {
577 emoteData.OnCallbackEnd();
578 }

Перекрестные ссылки m_CurrentGestureID и m_NameEmoteMap.

◆ OnEmoteEnd()

void OnEmoteEnd ( )
protected
466 {
468
469 if (m_PlayerDies)
470 {
471 m_Player.SetHealth(0.0);
472 return;
473 }
474
475 //surrender "state" switch
477 {
480 }
481
483
484 m_bEmoteIsPlaying = false;
486
487 if (m_IsSurrendered)
488 {
489 return;
490 }
492 SetEmoteLockState(false);
493
494 // back to the default - shoot from camera - if not set already
495 if (!m_Player.IsShootingFromCamera())
496 m_Player.OverrideShootFromCamera(true);
497 }
void ShowItemInHands()
Definition EmoteManager.c:669
bool m_GestureInterruptInput
Definition EmoteManager.c:123
bool m_PlayerDies
Definition EmoteManager.c:127

Перекрестные ссылки EmoteConstants::ID_EMOTE_SURRENDER, DayZPlayer::IsShootingFromCamera(), m_bEmoteIsPlaying, m_bEmoteIsRequestPending, m_CurrentGestureID, m_GestureInterruptInput, m_IsSurrendered, m_Player, m_PlayerDies, DayZPlayer::OverrideShootFromCamera(), SetEmoteLockState() и ShowItemInHands().

Используется в PlaySurrenderInOut() и Update().

◆ OnInputUserDataProcess()

bool OnInputUserDataProcess ( int userDataType,
ParamsReadContext ctx )
protected
501 {
503 {
505 int gestureID = -1;
506 int random = -1;
507
508 if (ctx.Read(gestureID))
509 {
510 ctx.Read(forced);
511 if (ctx.Read(random))
512 {
514 }
515
516 //server-side check, sends CALLBACK_CMD_INSTACANCEL as a fail
519
521 pCtx.Write(gestureID);
522 pCtx.Write(forced);
525 }
526 return true;
527 }
528 return false;
529 }
const int INPUT_UDT_GESTURE
Definition _constants.c:18
bool CanPlayEmote(int id)
Definition EmoteManager.c:870
Definition DayZPlayerSyncJunctures.c:5
static const int SJ_GESTURE_REQUEST
Definition DayZPlayerSyncJunctures.c:22
static const int FORCE_NONE
Definition EmoteManager.c:76
Definition gameplay.c:151

Перекрестные ссылки CALLBACK_CMD_INSTACANCEL, CanPlayEmote(), EmoteLauncher::FORCE_NONE, INPUT_UDT_GESTURE, m_bEmoteIsRequestPending, m_Player, m_RPSOutcome и DayZPlayerSyncJunctures::SJ_GESTURE_REQUEST.

Используется в ManBase::OnInputUserDataProcess() и DayZPlayer::OnInputUserDataReceived().

◆ OnSyncJuncture()

void OnSyncJuncture ( int pJunctureID,
ParamsReadContext pCtx )
protected
533 {
534 int forced;
535 int gesture_id;
536 if (!m_CancelEmote)
537 {
538 pCtx.Read(gesture_id);
539 pCtx.Read(forced);
540
543 {
544 if (m_Callback)
545 {
546 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && emoteData.CanBeCanceledNormally(m_Callback))
547 m_CancelEmote = true;
548 else
549 return;
550 }
551 m_CancelEmote = true;
552 }
553
555 {
556 if (m_Callback)
557 {
558 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && !emoteData.CanBeCanceledNormally(m_Callback))
559 {
560 m_InstantCancelEmote = false;
561 return;
562 }
563 }
565 }
566
568 }
569 else
570 m_CancelEmote = false;
571 }
bool m_CancelEmote
Definition EmoteManager.c:121
bool m_InstantCancelEmote
Definition EmoteManager.c:122
static const int FORCE_DIFFERENT
Definition EmoteManager.c:77
static const int FORCE_ALL
Definition EmoteManager.c:78

Перекрестные ссылки CALLBACK_CMD_INSTACANCEL, EmoteLauncher::FORCE_ALL, EmoteLauncher::FORCE_DIFFERENT, m_Callback, m_CancelEmote, m_CurrentGestureID, m_DeferredEmoteExecution, m_InstantCancelEmote, m_IsSurrendered и m_NameEmoteMap.

◆ PickEmote()

void PickEmote ( int gestureslot)
protected

Deprecated.

1176 {
1177 }

◆ PlayEmote()

bool PlayEmote ( int id)
protected
587 {
590
591 if (CanPlayEmote(id))
592 {
593 if (m_AdminLog)
594 m_AdminLog.LogPrint("[emote] " + Object.GetDebugName(m_Player) + " play emote id=" + id + " IH=" + Object.GetDebugName(m_Player.GetItemInHands()));
595
598 if (id > 0)
599 {
601 if (m_NameEmoteMap.Find(id,emote))
602 {
603 int callback_ID;
604 int stancemask;
605 bool is_fullbody;
607 {
608 if (!emote.EmoteStartOverride(EmoteCB,callback_ID,stancemask,is_fullbody))
609 {
610 emote.OnBeforeStandardCallbackCreated(callback_ID,stancemask,is_fullbody);
612 }
613
614 if (emote.GetHideItemInHands())
615 {
617 }
618 }
619 else
620 {
621 ErrorEx("EmoteManager | DetermineEmoteData failed!");
622 }
623 }
624 }
625 }
626
628 return m_bEmoteIsPlaying;
629 }
void HideItemInHands()
Definition EmoteManager.c:660
void CreateEmoteCallback(typename callbacktype, int id, int mask, bool fullbody)
Definition EmoteManager.c:632
int m_PreviousGestureID
Definition EmoteManager.c:133
Definition EmoteManager.c:2

Перекрестные ссылки CALLBACK_CMD_INVALID, CanPlayEmote(), CreateEmoteCallback(), DetermineEmoteData(), ErrorEx, HideItemInHands(), m_AdminLog, m_bEmoteIsPlaying, m_bEmoteIsRequestPending, m_CurrentGestureID, m_DeferredEmoteExecution, m_NameEmoteMap, m_Player, m_PreviousGestureID и SetEmoteLockState().

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

◆ PlaySurrenderInOut()

void PlaySurrenderInOut ( bool state)
protected
969 {
972 if (state)
973 {
974 if (m_Player.GetItemInHands() && !m_Player.CanDropEntity(m_Player.GetItemInHands()))
975 return;
976
977 if (m_Player.GetItemInHands() && GetGame().IsClient())
978 {
979 if (m_Player.GetInventory().HasInventoryReservation(null, m_HandInventoryLocation))
980 m_Player.GetInventory().ClearInventoryReservationEx(null, m_HandInventoryLocation);
981 m_Player.PhysicalPredictiveDropItem(m_Player.GetItemInHands());
982 }
983
984 CreateEmoteCallback(EmoteCB,DayZPlayerConstants.CMD_GESTUREFB_SURRENDERIN,DayZPlayerConstants.STANCEMASK_ALL,true);
985
986 if (m_Callback)
987 m_Callback.RegisterAnimationEvent("ActionExec", UA_ANIM_EVENT);
988 }
989 else
990 {
991 if (m_Player.IsAlive() && !m_Player.IsUnconscious())
992 {
993 CreateEmoteCallback(EmoteCB,DayZPlayerConstants.CMD_GESTUREFB_SURRENDEROUT,DayZPlayerConstants.STANCEMASK_ALL,true);
994 }
995 else
996 {
997 OnEmoteEnd();
998 }
999 }
1000 }
void OnEmoteEnd()
Definition EmoteManager.c:465
const int UA_ANIM_EVENT
Definition constants.c:450

Перекрестные ссылки CreateEmoteCallback(), GetGame(), EmoteConstants::ID_EMOTE_SURRENDER, m_Callback, m_CurrentGestureID, m_HandInventoryLocation, m_Player, m_PreviousGestureID, OnEmoteEnd() и UA_ANIM_EVENT.

Используется в Update().

◆ SendEmoteRequestSync()

void SendEmoteRequestSync ( int id)
protected
787 {
789 if (m_MenuEmote)
790 {
791 forced = m_MenuEmote.GetForced();
792 }
793
794 m_RPSOutcome = -1;
795 switch (id)
796 {
799 break;
800
802 m_RPSOutcome = 0;
803 break;
804
806 m_RPSOutcome = 1;
807 break;
808
810 m_RPSOutcome = 2;
811 break;
812 }
813
815 if (GetGame().IsMultiplayer() && GetGame().IsClient())
816 {
817 bool canProceed = true; //running callbacks in certain state can block additional actions
820 {
821 canProceed = emoteData.CanBeCanceledNormally(m_Callback);
822 }
823
824 if (ctx.CanStoreInputUserData() && ((CanPlayEmote(id) && CanPlayEmoteClientCheck(id)) || forced) && canProceed)
825 {
826 ctx.Write(INPUT_UDT_GESTURE);
827 ctx.Write(id);
828 ctx.Write(forced);
829 if (m_RPSOutcome != -1)
830 {
831 ctx.Write(m_RPSOutcome);
832 }
833 ctx.Send();
835 }
836 else
837 {
839 }
842 }
843 else if (!GetGame().IsMultiplayer())
844 {
845 if (id == CALLBACK_CMD_END)
846 {
848 }
849 else if (id == CALLBACK_CMD_GESTURE_INTERRUPT)
850 {
852 }
853 else if (CanPlayEmote(id) && CanPlayEmoteClientCheck(id))
854 {
855 PlayEmote(id);
856 }
857 else
858 {
860 }
862 }
863 }
bool CanPlayEmoteClientCheck(int id)
Definition EmoteManager.c:954
void EndCallbackCommand()
Definition EmoteManager.c:769
bool PlayEmote(int id)
Definition EmoteManager.c:586
Definition EnMath.c:7
Definition gameplay.c:121
const int ID_EMOTE_RPS_P
Definition constants.c:391
const int ID_EMOTE_RPS
Definition constants.c:380
const int ID_EMOTE_RPS_R
Definition constants.c:390
const int ID_EMOTE_RPS_S
Definition constants.c:392
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].

Перекрестные ссылки CALLBACK_CMD_END, CALLBACK_CMD_GESTURE_INTERRUPT, CanPlayEmote(), CanPlayEmoteClientCheck(), EndCallbackCommand(), EmoteLauncher::FORCE_NONE, GetGame(), EmoteConstants::ID_EMOTE_RPS, EmoteConstants::ID_EMOTE_RPS_P, EmoteConstants::ID_EMOTE_RPS_R, EmoteConstants::ID_EMOTE_RPS_S, INPUT_UDT_GESTURE, IsEmotePlaying(), m_bEmoteIsRequestPending, m_Callback, m_CurrentGestureID, m_DeferredEmoteExecution, m_MenuEmote, m_NameEmoteMap, m_RPSOutcome, PlayEmote(), Math::RandomInt() и SetEmoteLockState().

Используется в Update().

◆ ServerRequestEmoteCancel()

void ServerRequestEmoteCancel ( )
protected

◆ SetEmoteLockState()

void SetEmoteLockState ( bool state)
protected
1004 {
1005 //separate inventory access locking
1007 {
1008 m_Player.SetInventorySoftLock(state);
1010 }
1011
1012 //Movement lock in fullbody anims
1014 m_controllsLocked = true;
1015 else
1016 m_controllsLocked = false;
1017
1018 if (state == m_EmoteLockState)
1019 return;
1020
1022 {
1025 }
1026
1027 if (!state)
1028 {
1029 if (m_Player.GetInventory().HasInventoryReservation(null, m_HandInventoryLocation))
1030 m_Player.GetInventory().ClearInventoryReservationEx(null, m_HandInventoryLocation);
1031
1032 if (m_Player.GetActionManager())
1033 m_Player.GetActionManager().EnableActions(true);
1034 }
1035 else
1036 {
1037 if (!m_Player.GetInventory().HasInventoryReservation(null, m_HandInventoryLocation))
1038 m_Player.GetInventory().AddInventoryReservationEx(null, m_HandInventoryLocation, GameInventory.c_InventoryReservationTimeoutMS);
1039
1040 if (m_Player.GetActionManager())
1041 m_Player.GetActionManager().EnableActions(false);
1042 }
1044 }
script counterpart to engine's class Inventory
Definition Inventory.c:79
const int c_InventoryReservationTimeoutMS
reservations
Definition Inventory.c:712

Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutMS, m_Callback, m_controllsLocked, m_EmoteLockState, m_HandInventoryLocation, m_InventoryAccessLocked, EmoteCB::m_IsFullbody и m_Player.

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

◆ SetGesture()

void SetGesture ( int id)
protected
225 {
226 m_GestureID = id;
227 }

Перекрестные ссылки m_GestureID.

◆ ShowItemInHands()

void ShowItemInHands ( )
protected
670 {
671 if (m_item)
672 {
673 m_Player.TryHideItemInHands(false);
674 }
675 }

Перекрестные ссылки m_item и m_Player.

Используется в OnEmoteEnd().

◆ Update()

void Update ( float deltaT)
protected
275 {
276 // no updates on restrained characters
277 if (m_Player.IsRestrained())
278 return;
279
281 {
282 if (!m_Player.GetItemInHands() && GetGame().IsServer())
283 {
284 m_Player.GetHumanInventory().CreateInHands("SurrenderDummyItem");
285 }
286 m_ItemToBeCreated = false;
287 }
288
289 int gestureSlot = 0;
290 #ifndef SERVER
292 #endif
293 //deferred emote cancel
294 if (m_InstantCancelEmote) //'hard' cancel
295 {
296 if (m_Callback)
297 {
298 m_Callback.Cancel();
299 }
300
301 if (m_MenuEmote)
302 {
304 }
306 m_InstantCancelEmote = false;
308 SetEmoteLockState(false);
309 }
310 else if (m_CancelEmote) //'soft' cancel
311 {
312 if (m_IsSurrendered)
313 {
315 }
316 else if (m_Callback)
317 {
318 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
319 }
320
322 m_CancelEmote = false;
323 }
324
325 if (m_MenuEmote && m_MenuEmote.GetForced() > EmoteLauncher.FORCE_NONE && !GetGame().IsDedicatedServer()) //forced emote playing
326 {
328 }
329 else if (m_Callback)
330 {
331 bool uiGesture = false;
332 if (!GetGame().IsDedicatedServer())
333 {
334 uiGesture = GetGame().GetUIManager().IsMenuOpen(MENU_GESTURES);
335
337 {
339 }
340
342 {
344 }
345 }
346
348 {
350 {
351 if (m_Callback.GetState() == m_Callback.STATE_LOOP_LOOP)
352 {
354 }
355 else
356 {
357 return;
358 }
359 }
361 {
362 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_ACTION);
363 }
365 {
366 if (m_RPSOutcome != -1)
367 {
368 if (m_RPSOutcome == 0)
369 {
370 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_ROCK);
371 }
372 else if (m_RPSOutcome == 1)
373 {
374 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_PAPER);
375 }
376 else if (m_RPSOutcome == 2)
377 {
378 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_SCISSORS);
379 }
380 m_RPSOutcome = -1;
381 }
382 else
383 {
384 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
385 }
386 }
388 {
390 }
392 {
394 }
395 }
396
397 if (m_LastMask != -1 && m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE))
398 {
399 m_Callback.Cancel();
400 }
401
403 {
405 }
406
408 {
410 }
411
413 {
415 }
416 }
417 //no m_Callback exists
418 else
419 {
420 if (m_bEmoteIsRequestPending && (m_Player.IsUnconscious() || !m_Player.IsAlive()))
421 {
423 }
424
426 {
427 OnEmoteEnd();
428 }
429 else if (!m_Player.GetItemInHands() && m_IsSurrendered && !m_ItemToBeCreated && (!m_MenuEmote || m_MenuEmote.GetForced() != EmoteLauncher.FORCE_NONE)) //play only when there is time to do so
430 {
431 PlaySurrenderInOut(false);
432 return;
433 }
434 // getting out of surrender state - hard cancel
436 {
437 if (m_Player.GetItemInHands())
438 m_Player.GetItemInHands().DeleteSafe();//Note, this keeps item 'alive' until it is released by all the systems (inventory swapping etc.)
439 return;
440 }
441 // fallback in case lock does not end properly
442 else if (m_IsSurrendered && (!m_Player.GetItemInHands() || (m_Player.GetItemInHands() && m_Player.GetItemInHands().GetType() != "SurrenderDummyItem" && m_EmoteLockState)))
443 {
444 m_IsSurrendered = false;
445 SetEmoteLockState(false);
446 return;
447 }
448 //actual emote launch
450 {
452 }
453 //client-side emote launcher
454 else if (!m_bEmoteIsPlaying && m_MenuEmote && !GetGame().IsDedicatedServer())
455 {
457 }
458 else if (!m_MenuEmote && gestureSlot > 0)
459 {
460 CreateEmoteCBFromMenu(gestureSlot,true); //translation no longer needed
461 }
462 }
463 }
void CreateEmoteCBFromMenu(int id, bool interrupts_same=false)
Definition EmoteManager.c:749
void InterruptCallbackCommand()
Definition EmoteManager.c:759
void PlaySurrenderInOut(bool state)
Definition EmoteManager.c:968
int DetermineGestureIndex()
Definition EmoteManager.c:234
void CommitSuicide()
Definition EmoteManager.c:677
void EndSurrenderRequest(SurrenderData data=null)
directly force-ends surrender state from outside of normal flow
Definition EmoteManager.c:1059
bool InterruptGestureCheck()
Definition EmoteManager.c:1081
bool InterruptWaterCheck()
Definition EmoteManager.c:1110
bool m_ItemToBeCreated
Definition EmoteManager.c:120
void SendEmoteRequestSync(int id)
Definition EmoteManager.c:786
proto native bool IsContinuousUseStart()
is start of cont. 'UADefaultAction' (== true for 1 tick only) + not raised
proto native bool IsSingleUse()
single 'UADefaultAction' (== true for 1 tick only) + not raised
Definition EmoteManager.c:1181
const int ID_EMOTE_THUMBDOWN
Definition constants.c:372
const int ID_EMOTE_THUMB
Definition constants.c:365
const int ID_EMOTE_SUICIDE
Definition constants.c:367
const int MENU_GESTURES
Definition constants.c:192

Перекрестные ссылки CALLBACK_CMD_END, CALLBACK_CMD_GESTURE_INTERRUPT, CALLBACK_CMD_INSTACANCEL, CALLBACK_CMD_INVALID, CommitSuicide(), CreateEmoteCBFromMenu(), DetermineGestureIndex(), EndCallbackCommand(), EndSurrenderRequest(), EmoteLauncher::FORCE_NONE, GetGame(), EmoteConstants::ID_EMOTE_RPS, EmoteConstants::ID_EMOTE_RPS_P, EmoteConstants::ID_EMOTE_RPS_R, EmoteConstants::ID_EMOTE_RPS_S, EmoteConstants::ID_EMOTE_SUICIDE, EmoteConstants::ID_EMOTE_THUMB, EmoteConstants::ID_EMOTE_THUMBDOWN, InterruptCallbackCommand(), InterruptGestureCheck(), InterruptWaterCheck(), HumanInputController::IsContinuousUseStart(), DayZPlayer::IsRestrained(), HumanInputController::IsSingleUse(), HumanInputController::IsWeaponRaised(), m_bEmoteIsPlaying, m_bEmoteIsRequestPending, m_Callback, m_CancelEmote, m_CurrentGestureID, m_DeferredEmoteExecution, m_EmoteLockState, m_GestureInterruptInput, m_HIC, m_InstantCancelEmote, EmoteCB::m_IsFullbody, m_IsSurrendered, m_ItemToBeCreated, m_LastMask, m_MenuEmote, m_Player, m_RPSOutcome, MENU_GESTURES, OnEmoteEnd(), PlayEmote(), PlaySurrenderInOut(), SendEmoteRequestSync() и SetEmoteLockState().

◆ ~EmoteManager()

void ~EmoteManager ( )
protected
190 {
191 if (m_ReservationTimer && m_ReservationTimer.IsRunning())
192 m_ReservationTimer.Stop();
193 }

Перекрестные ссылки m_ReservationTimer.

Переменные

◆ CALLBACK_CMD_END

const int CALLBACK_CMD_END = -2
protected

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

◆ CALLBACK_CMD_GESTURE_INTERRUPT

const int CALLBACK_CMD_GESTURE_INTERRUPT = -3
protected

◆ CALLBACK_CMD_INSTACANCEL

const int CALLBACK_CMD_INSTACANCEL = -4
protected

◆ CALLBACK_CMD_INVALID

const int CALLBACK_CMD_INVALID = -1
protected

◆ m_AdminLog

◆ m_bEmoteIsPlaying

bool m_bEmoteIsPlaying

◆ m_bEmoteIsRequestPending

bool m_bEmoteIsRequestPending

◆ m_Callback

◆ m_CancelEmote

bool m_CancelEmote

Используется в OnSyncJuncture() и Update().

◆ m_controllsLocked

bool m_controllsLocked
protected

Используется в EmoteManager(), IsControllsLocked() и SetEmoteLockState().

◆ m_CurrentGestureID

◆ m_DeferredEmoteExecution

int m_DeferredEmoteExecution
protected

◆ m_EmoteClassArray

ref array<ref EmoteBase> m_EmoteClassArray
protected

Используется в ConstructData().

◆ m_EmoteIDs

ref array<int> m_EmoteIDs
protected

Используется в ConstructData() и DetermineGestureIndex().

◆ m_EmoteInputIDs

ref array<int> m_EmoteInputIDs
protected

Используется в ConstructData() и DetermineGestureIndex().

◆ m_EmoteLockState

bool m_EmoteLockState
protected

Используется в CheckEmoteLockedState(), SetEmoteLockState() и Update().

◆ m_GestureID

int m_GestureID
protected

Используется в GetGesture() и SetGesture().

◆ m_GestureInterruptInput

bool m_GestureInterruptInput

Используется в OnEmoteEnd() и Update().

◆ m_HandInventoryLocation

ref InventoryLocation m_HandInventoryLocation

◆ m_HIC

Используется в CanPlayEmote(), EmoteManager() и Update().

◆ m_HumanSwimSettings

SHumanCommandSwimSettings m_HumanSwimSettings
protected

Используется в EmoteManager() и InterruptWaterCheck().

◆ m_InstantCancelEmote

bool m_InstantCancelEmote

Используется в OnSyncJuncture() и Update().

◆ m_InterruptInputDirect

ref array<UAInput> m_InterruptInputDirect

Используется в InterruptGestureCheck().

◆ m_InterruptInputs

ref array<string> m_InterruptInputs

Используется в EmoteManager() и InterruptGestureCheck().

◆ m_InterruptInputsCount

int m_InterruptInputsCount
protected

Используется в InterruptGestureCheck().

◆ m_InventoryAccessLocked

bool m_InventoryAccessLocked
protected

Используется в EmoteManager() и SetEmoteLockState().

◆ m_IsSurrendered

◆ m_item

ItemBase m_item

Используется в HideItemInHands() и ShowItemInHands().

◆ m_ItemIsOn

bool m_ItemIsOn
protected

Используется в EmoteManager().

◆ m_ItemToBeCreated

bool m_ItemToBeCreated

Используется в Update().

◆ m_ItemToHands

bool m_ItemToHands
protected

◆ m_LastMask

int m_LastMask
protected

Используется в CreateEmoteCallback() и Update().

◆ m_MenuEmote

◆ m_MouseButtonPressed

bool m_MouseButtonPressed
protected

◆ m_NameEmoteMap

◆ m_Player

m_Player

◆ m_PlayerDies

bool m_PlayerDies
protected

Используется в OnEmoteEnd().

◆ m_PreviousGestureID

int m_PreviousGestureID
protected

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

◆ m_ReservationTimer

ref Timer m_ReservationTimer
protected

Используется в EmoteManager() и ~EmoteManager().

◆ m_RPSOutcome

int m_RPSOutcome
protected