Dayz 1.25
Dayz Code 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
588 {
589 if (m_Player.GetItemInHands() && SurrenderDummyItem.Cast(m_Player.GetItemInHands()))
590 m_Player.GetItemInHands().Delete();
591 }
class EmoteLauncher m_Player
Definition EntityAI.c:95

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

◆ CanPlayEmote()

bool CanPlayEmote ( int id)
protected
877 {
878 //special cases
880 {
881 return true;
882 }
883
884 if (!m_Player || !m_Player.IsAlive() || (!IsEmotePlaying() && (m_Player.GetCommand_Action() || m_Player.GetCommandModifier_Action())) || m_Player.GetThrowing().IsThrowingModeEnabled())
885 {
886 //Debug.Log("!CanPlayEmote | reason: 1");
887 return false;
888 }
889
890 ItemBase item = m_Player.GetItemInHands();
891 if (item)
892 {
893 if (item.IsHeavyBehaviour() && id != EmoteConstants.ID_EMOTE_SURRENDER)
894 {
895 //Debug.Log("!CanPlayEmote | reason: 2");
896 return false;
897 }
898
900 if (m_Player.IsItemsToDelete() && Class.CastTo(sda,item) && !sda.IsSetForDeletion())
901 {
902 //Debug.Log("!CanPlayEmote | reason: 3");
903 return false;
904 }
905 }
906
907 if ((m_Player.GetWeaponManager() && m_Player.GetWeaponManager().IsRunning()) || (m_Player.GetActionManager() && m_Player.GetActionManager().GetRunningAction()))
908 {
909 //Debug.Log("!CanPlayEmote | reason: 4");
910 return false;
911 }
912
913 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?
914 {
915 //Debug.Log("!CanPlayEmote | reason: 5");
916 return false;
917 }
918
919 if (m_Player.GetCommand_Vehicle())
920 {
921 //Debug.Log("!CanPlayEmote | reason: 6");
922 return false;
923 }
924
925 if (m_Player.GetCommand_Move() && m_Player.GetCommand_Move().IsOnBack() && id != EmoteConstants.ID_EMOTE_SURRENDER)
926 {
927 //Debug.Log("!CanPlayEmote | reason: 7");
928 return false;
929 }
930
931 //"locks" player in surrender state
933 {
934 //Debug.Log("!CanPlayEmote | reason: 8");
935 return false;
936 }
937
938 if (m_Player.GetDayZPlayerInventory().IsProcessing())
939 {
940 //Debug.Log("!CanPlayEmote | reason: 9");
941 return false;
942 }
943
945 if (m_NameEmoteMap.Find(id,emote))
946 {
947 int callback_ID;
948 int stancemask;
949 bool is_fullbody;
951 {
952 return true;
953 }
954 //Debug.Log("!CanPlayEmote | reason: 10");
955 }
956
957 return false;
958 }
const int CALLBACK_CMD_END
Definition EmoteManager.c:148
const int CALLBACK_CMD_INSTACANCEL
Definition EmoteManager.c:150
bool IsEmotePlaying()
Definition EmoteManager.c:1130
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:258
bool m_IsSurrendered
Definition EmoteManager.c:128
const int CALLBACK_CMD_GESTURE_INTERRUPT
Definition EmoteManager.c:149
ref map< int, ref EmoteBase > m_NameEmoteMap
Definition EmoteManager.c:154
HumanInputController m_HIC
Definition EmoteManager.c:121
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition EmoteBase.c:2
Definition constants.c:349
proto native bool IsWeaponRaised()
returns true if weapon is raised
Definition InventoryItem.c:731
const int ID_EMOTE_SURRENDER
Definition constants.c:389
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
961 {
962 if (!GetGame().IsClient())
963 return true;
964
965 if (GetGame().GetUIManager().FindMenu(MENU_INVENTORY))
966 {
967 //Debug.Log("!CanPlayEmoteClientCheck | reason: 1");
968 return false;
969 }
970
971 return true;
972 }
proto native CGame GetGame()
const int MENU_INVENTORY
Definition constants.c:170

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

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

◆ ChainedDropAndKillPlayerLambda()

void ChainedDropAndKillPlayerLambda ( EntityAI old_item,
string new_item_type,
PlayerBase player )
protected
1198 {
1199 m_Player = player;
1201 vector mtx[4];
1202 old_item.GetTransform(mtx);
1203 gnd.SetGround(old_item, mtx);
1204
1205 OverrideNewLocation(gnd);
1206 }
InventoryLocation.
Definition InventoryLocation.c:28
Definition EnConvert.c:106

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

◆ CheckEmoteLockedState()

void CheckEmoteLockedState ( )
protected
1051 {
1052 if (!m_Player.GetItemInHands() || (m_Player.GetItemInHands() && !SurrenderDummyItem.Cast(m_Player.GetItemInHands())))
1053 return;
1054
1055 //refreshes reservation in case of unwanted timeout
1057 {
1058 m_Player.GetInventory().ExtendInventoryReservationEx(null, m_HandInventoryLocation, 10000);
1059 }
1060 }
ref InventoryLocation m_HandInventoryLocation
Definition EmoteManager.c:124
bool m_EmoteLockState
Definition EmoteManager.c:139

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

◆ CommitSuicide()

void CommitSuicide ( )
protected
685 {
687 WeaponEventBase weapon_event = new WeaponEventTrigger;
688
689 if (Weapon_Base.CastTo(weapon,m_Player.GetItemInHands()))
690 {
691 if (weapon.CanFire())
692 {
693 m_Callback.RegisterAnimationEvent("Simulation_End",EmoteConstants.EMOTE_SUICIDE_SIMULATION_END);
694 m_Player.SetSuicide(true);
695 weapon.ProcessWeaponEvent(weapon_event);
696 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
697 if (m_Player.IsAlive())
698 {
699 EntityAI helm = m_Player.FindAttachmentBySlotName("Headgear");
700 if (helm && GetGame().IsServer())
701 {
702 float damage = helm.GetMaxHealth("","");
703 helm.AddHealth("","", -damage/2);
704 }
705 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Call(this.KillPlayer);
706 if (m_AdminLog)
707 {
708 m_AdminLog.Suicide(m_Player);
709 }
710 }
711 }
712 else
713 {
714 if (!weapon.IsDamageDestroyed())
715 {
716 weapon.ProcessWeaponEvent(weapon_event);
717 }
718 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
719 }
720 }
721 else if (m_Player.GetItemInHands() && m_Player.GetItemInHands().ConfigIsExisting("suicideAnim"))
722 {
723 m_Callback.RegisterAnimationEvent("Death",EmoteConstants.EMOTE_SUICIDE_DEATH);
724 m_Callback.RegisterAnimationEvent("Bleed",EmoteConstants.EMOTE_SUICIDE_BLEED);
725 m_Callback.RegisterAnimationEvent("Simulation_End",EmoteConstants.EMOTE_SUICIDE_SIMULATION_END);
726 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
727 m_Player.SetSuicide(true);
728 }
729 else
730 {
731 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
732 }
733 }
EmoteCB m_Callback
Definition EmoteManager.c:120
PluginAdminLog m_AdminLog
Definition EmoteManager.c:151
void KillPlayer()
Definition EmoteManager.c:735
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:400
const int EMOTE_SUICIDE_BLEED
Definition constants.c:399
const int EMOTE_SUICIDE_DEATH
Definition constants.c:398
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
205 {
207 if (!m_NameEmoteMap)
208 {
209 ec.ConstructEmotes(m_Player,m_NameEmoteMap);
213 int inputID;
214 int count = m_NameEmoteMap.Count();
215 UAInput inp;
216
217 for (int i = 0; i < count; i++)
218 {
219 m_EmoteClassArray.Insert(m_NameEmoteMap.GetElement(i));
220 m_EmoteIDs.Insert(m_NameEmoteMap.GetElement(i).GetID());
221 inp = GetUApi().GetInputByName(m_NameEmoteMap.GetElement(i).GetInputActionName());
222 inputID = inp.ID();
223 m_EmoteInputIDs.Insert(inputID);
224 }
225
226 if (m_EmoteInputIDs.Count() != m_EmoteClassArray.Count())
227 {
228 ErrorEx("Faulty emote data detected in 'ConstructData' method!",ErrorExSeverity.WARNING);
229 }
230 }
231 }
ref array< int > m_EmoteInputIDs
Definition EmoteManager.c:157
ref array< int > m_EmoteIDs
Definition EmoteManager.c:156
ref array< ref EmoteBase > m_EmoteClassArray
Definition EmoteManager.c:155
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
1141 {
1142 if (GetGame().IsServer() && m_Player.IsAlive())
1143 {
1144 switch (Callback_ID)
1145 {
1146 case DayZPlayerConstants.CMD_SUICIDEFB_1HD :
1147 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Neck");
1148 break;
1149
1150 case DayZPlayerConstants.CMD_SUICIDEFB_FIREAXE :
1151 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
1152 break;
1153
1154 case DayZPlayerConstants.CMD_SUICIDEFB_PITCHFORK :
1155 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Spine2");
1156 break;
1157
1158 case DayZPlayerConstants.CMD_SUICIDEFB_SWORD :
1159 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Spine2");
1160 break;
1161
1162 case DayZPlayerConstants.CMD_SUICIDEFB_SPEAR :
1163 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Head");
1164 break;
1165
1166 case DayZPlayerConstants.CMD_SUICIDEFB_WOODAXE :
1167 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
1168 break;
1169
1170 default :
1171 ErrorEx("EmoteManager.c | CreateBleedingEffect | WRONG ID",ErrorExSeverity.INFO);
1172 break;
1173 }
1174 }
1175 }

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

◆ CreateEmoteCallback()

void CreateEmoteCallback ( typename callbacktype ,
int id,
int mask,
bool fullbody )
protected
640 {
641 if (m_Player)
642 {
643 m_LastMask = -1;
644
645 if (fullbody)
646 {
647 Class.CastTo(m_Callback, m_Player.StartCommand_Action(id,callbacktype,mask));
649 m_Callback.EnableCancelCondition(true);
650 }
651 else if (m_Player.IsPlayerInStance(mask))
652 {
653 m_LastMask = mask; //character is probably not prone now
654 Class.CastTo(m_Callback, m_Player.AddCommandModifier_Action(id,callbacktype));
655 }
656
657 if (m_Callback)
658 {
659 m_bEmoteIsPlaying = true;
662 m_Callback.m_Manager = this;
663 }
664 }
665 }
int m_LastMask
Definition EmoteManager.c:144
bool m_bEmoteIsPlaying
Definition EmoteManager.c:127
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
756 {
758 }
ref EmoteLauncher m_MenuEmote
Definition EmoteManager.c:125
Definition EmoteManager.c:84

Перекрестные ссылки 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.

259 {
260 if (emote.DetermineOverride(callback_ID, stancemask, is_fullbody))
261 {
262 return emote.EmoteFBStanceCheck(stancemask);
263 }
264 else if (emote.GetAdditiveCallbackUID() != 0 && m_Player.IsPlayerInStance(emote.GetStanceMaskAdditive()))
265 {
266 callback_ID = emote.GetAdditiveCallbackUID();
267 stancemask = emote.GetStanceMaskAdditive();
268 is_fullbody = false;
269 return true;
270 }
271 else if (emote.GetFullbodyCallbackUID() != 0 && emote.EmoteFBStanceCheck(emote.GetStanceMaskFullbody()))
272 {
273 callback_ID = emote.GetFullbodyCallbackUID();
274 stancemask = emote.GetStanceMaskFullbody();
275 is_fullbody = true;
276 return true;
277 }
278
279 return false;
280 }

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

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

◆ DetermineGestureIndex()

int DetermineGestureIndex ( )
protected
244 {
245 int count = m_EmoteInputIDs.Count();
246 for (int i = 0; i < count; ++i)
247 {
248 if (GetUApi().GetInputByID(m_EmoteInputIDs[i]).LocalPress())
249 {
250 return m_EmoteIDs[i];
251 }
252 }
253
254 return 0;
255 }

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

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

◆ EmoteManager()

void EmoteManager ( PlayerBase player)
protected
161 {
163 m_HIC = m_Player.GetInputController();
164 m_ItemIsOn = false;
165 m_controllsLocked = false;
167 m_RPSOutcome = -1;
169
171 m_InterruptInputs.Insert("UAMoveForward");
172 m_InterruptInputs.Insert("UAMoveBack");
173 m_InterruptInputs.Insert("UATurnLeft");
174 m_InterruptInputs.Insert("UATurnRight");
175 m_InterruptInputs.Insert("UAMoveLeft");
176 m_InterruptInputs.Insert("UAMoveRight");
177 m_InterruptInputs.Insert("UAStand");
178 m_InterruptInputs.Insert("UACrouch");
179 m_InterruptInputs.Insert("UAProne");
180 m_InterruptInputs.Insert("UAGetOver");
181
184
185 if (GetGame().IsServer())
186 {
187 m_AdminLog = PluginAdminLog.Cast(GetPlugin(PluginAdminLog));
188 }
189
191 m_ReservationTimer.Run(8, this, "CheckEmoteLockedState", null, true);
192
193 m_HumanSwimSettings = m_Player.GetDayZPlayerType().CommandSwimSettingsW();
194
196 }
ref Timer m_ReservationTimer
Definition EmoteManager.c:152
bool m_controllsLocked
Definition EmoteManager.c:137
int m_RPSOutcome
Definition EmoteManager.c:145
const int CALLBACK_CMD_INVALID
Definition EmoteManager.c:147
ref array< string > m_InterruptInputs
Definition EmoteManager.c:122
int m_DeferredEmoteExecution
Definition EmoteManager.c:140
void ConstructData()
Definition EmoteManager.c:204
bool m_InventoryAccessLocked
Definition EmoteManager.c:138
SHumanCommandSwimSettings m_HumanSwimSettings
Definition EmoteManager.c:158
bool m_ItemIsOn
Definition EmoteManager.c:134
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
776 {
778 {
779 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
780 }
781 else
782 {
783 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
784 }
785
786 if (m_MenuEmote)
789 }
int m_CurrentGestureID
Definition EmoteManager.c:143
const int ID_EMOTE_DANCE
Definition constants.c:361

Перекрестные ссылки 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

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

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

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

◆ Execute()

override void Execute ( HumanInventoryWithFSM fsm_to_notify = null)
protected
1209 {
1210 if (PrepareLocations())
1211 {
1212 vector transform[4];
1213
1214 m_Player.GetInventory().TakeToDst(InventoryMode.SERVER, m_OldLocation, m_NewLocation);
1215 m_Player.OnItemInHandsChanged();
1216 }
1217
1218 m_Player.SetHealth(0);
1219
1220 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[syncinv] player=" + Object.GetDebugName(m_Player) + " STS = " + m_Player.GetSimulationTimeStamp() + " ChainedDropAndKillPlayerLambda");
1221 }
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:735
static bool IsInventoryHFSMLogEnable()
Definition Debug.c:809
Definition ObjectTyped.c:2

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

◆ GetEmoteLauncher()

EmoteLauncher GetEmoteLauncher ( )
protected
761 {
762 return m_MenuEmote;
763 }

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

◆ GetGesture()

int GetGesture ( )
protected
239 {
240 return m_GestureID;
241 }
int m_GestureID
Definition EmoteManager.c:141

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

◆ GetNameEmoteMap()

map< int, ref EmoteBase > GetNameEmoteMap ( )
protected
1136 {
1137 return m_NameEmoteMap;
1138 }

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

◆ HideItemInHands()

void HideItemInHands ( )
protected
668 {
669 m_item = m_Player.GetItemInHands();
670 if (m_Callback && m_item)
671 {
672 m_Player.TryHideItemInHands(true);
673 }
674 }
ItemBase m_item
Definition EmoteManager.c:119

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

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

◆ InterruptCallbackCommand()

void InterruptCallbackCommand ( )
protected
766 {
767 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
768
769 if (m_MenuEmote)
771
773 }

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

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

◆ InterruptGestureCheck()

bool InterruptGestureCheck ( )
protected
1086 {
1087 //init pass
1089 {
1092
1093 for (int i = 0; i < m_InterruptInputsCount; i++)
1094 {
1095 m_InterruptInputDirect.Insert(GetUApi().GetInputByName(m_InterruptInputs[i]));
1096 }
1097 }
1098
1099 //interrupts any callback if restrain action is in progress, takes priority
1101 return false;
1102
1103 for (int idx = 0; idx < m_InterruptInputsCount; idx++)
1104 {
1105 if (m_InterruptInputDirect[idx].LocalPress())
1106 {
1107 return true;
1108 }
1109 }
1110
1111 return false;
1112 }
ref array< UAInput > m_InterruptInputDirect
Definition EmoteManager.c:123
int m_InterruptInputsCount
Definition EmoteManager.c:146

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

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

◆ InterruptWaterCheck()

bool InterruptWaterCheck ( )
protected
1115 {
1116 float waterLevel = m_Player.GetCurrentWaterLevel();
1117
1118 if (m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_PRONE) && waterLevel >= m_HumanSwimSettings.m_fToCrouchLevel)
1119 {
1120 return true;
1121 }
1122 else if (m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEIDX_RAISEDCROUCH) && waterLevel >= m_HumanSwimSettings.m_fToErectLevel)
1123 {
1124 return true;
1125 }
1126
1127 return m_Player.GetModifiersManager() && m_Player.GetModifiersManager().IsModifierActive(eModifiers.MDF_DROWNING);
1128 }
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
872 {
873 return m_controllsLocked;
874 }

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

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

◆ IsEmotePlaying()

bool IsEmotePlaying ( )
protected
1131 {
1133 }
bool m_bEmoteIsRequestPending
Definition EmoteManager.c:126

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

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

◆ KillPlayer()

void KillPlayer ( )
protected
736 {
737 if (GetGame().IsServer())
738 {
739 m_Player.SetHealth(0);
740 }
741 }

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

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

◆ LogSuicide()

void LogSuicide ( )
protected
744 {
745 if (GetGame().IsServer())
746 {
747 PlayerIdentity identity = m_Player.GetIdentity();
748 if (identity)
749 {
750 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Call(GetGame().AdminLog, "Player '" + identity.GetName() + "' (id=" + identity.GetId() + ") committed suicide.");
751 }
752 }
753 }
The class that will be instanced (moddable)
Definition gameplay.c:388

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

◆ OnCallbackEnd()

void OnCallbackEnd ( )
protected
581 {
584 emoteData.OnCallbackEnd();
585 }

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

◆ OnEmoteEnd()

void OnEmoteEnd ( )
protected
473 {
475
476 if (m_PlayerDies)
477 {
478 m_Player.SetHealth(0.0);
479 return;
480 }
481
482 //surrender "state" switch
484 {
487 }
488
490
491 m_bEmoteIsPlaying = false;
493
494 if (m_IsSurrendered)
495 {
496 return;
497 }
499 SetEmoteLockState(false);
500
501 // back to the default - shoot from camera - if not set already
502 if (!m_Player.IsShootingFromCamera())
503 m_Player.OverrideShootFromCamera(true);
504 }
void ShowItemInHands()
Definition EmoteManager.c:676
bool m_GestureInterruptInput
Definition EmoteManager.c:132
bool m_PlayerDies
Definition EmoteManager.c:136

Перекрестные ссылки 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
508 {
510 {
512 int gestureID = -1;
513 int random = -1;
514
515 if (ctx.Read(gestureID))
516 {
517 ctx.Read(forced);
518 if (ctx.Read(random))
519 {
521 }
522
523 //server-side check, sends CALLBACK_CMD_INSTACANCEL as a fail
526
528 pCtx.Write(gestureID);
529 pCtx.Write(forced);
532 }
533 return true;
534 }
535 return false;
536 }
const int INPUT_UDT_GESTURE
Definition _constants.c:18
bool CanPlayEmote(int id)
Definition EmoteManager.c:876
Definition DayZPlayerSyncJunctures.c:5
static const int SJ_GESTURE_REQUEST
Definition DayZPlayerSyncJunctures.c:22
static const int FORCE_NONE
Definition EmoteManager.c:85
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
540 {
541 int forced;
542 int gesture_id;
543 if (!m_CancelEmote)
544 {
545 pCtx.Read(gesture_id);
546 pCtx.Read(forced);
547
550 {
551 if (m_Callback)
552 {
553 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && emoteData.CanBeCanceledNormally(m_Callback))
554 m_CancelEmote = true;
555 else
556 return;
557 }
558 m_CancelEmote = true;
559 }
560
562 {
563 if (m_Callback)
564 {
565 if (m_NameEmoteMap.Find(m_CurrentGestureID,emoteData) && !emoteData.CanBeCanceledNormally(m_Callback))
566 {
567 m_InstantCancelEmote = false;
568 return;
569 }
570 }
572 }
573
575 }
576 else
577 m_CancelEmote = false;
578 }
bool m_CancelEmote
Definition EmoteManager.c:130
bool m_InstantCancelEmote
Definition EmoteManager.c:131
static const int FORCE_DIFFERENT
Definition EmoteManager.c:86
static const int FORCE_ALL
Definition EmoteManager.c:87

Перекрестные ссылки 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.

1180 {
1181 }

◆ PlayEmote()

bool PlayEmote ( int id)
protected
594 {
597
598 if (CanPlayEmote(id))
599 {
600 if (m_AdminLog)
601 m_AdminLog.LogPrint("[emote] " + Object.GetDebugName(m_Player) + " play emote id=" + id + " IH=" + Object.GetDebugName(m_Player.GetItemInHands()));
602
605 if (id > 0)
606 {
608 if (m_NameEmoteMap.Find(id,emote))
609 {
610 int callback_ID;
611 int stancemask;
612 bool is_fullbody;
614 {
615 if (!emote.EmoteStartOverride(EmoteCB,callback_ID,stancemask,is_fullbody))
616 {
617 emote.OnBeforeStandardCallbackCreated(callback_ID,stancemask,is_fullbody);
619 }
620
621 if (emote.GetHideItemInHands())
622 {
624 }
625 }
626 else
627 {
628 ErrorEx("EmoteManager | DetermineEmoteData failed!");
629 }
630 }
631 }
632 }
633
635 return m_bEmoteIsPlaying;
636 }
void HideItemInHands()
Definition EmoteManager.c:667
void CreateEmoteCallback(typename callbacktype, int id, int mask, bool fullbody)
Definition EmoteManager.c:639
int m_PreviousGestureID
Definition EmoteManager.c:142
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
975 {
978 if (state)
979 {
980 if (m_Player.GetItemInHands() && !m_Player.CanDropEntity(m_Player.GetItemInHands()))
981 return;
982
983 if (m_Player.GetItemInHands() && GetGame().IsClient())
984 {
985 m_Player.PhysicalPredictiveDropItem(m_Player.GetItemInHands());
986 }
987
988 CreateEmoteCallback(EmoteCB,DayZPlayerConstants.CMD_GESTUREFB_SURRENDERIN,DayZPlayerConstants.STANCEMASK_ALL,true);
989
990 if (m_Callback)
991 m_Callback.RegisterAnimationEvent("ActionExec", UA_ANIM_EVENT);
992 }
993 else
994 {
995 if (m_Player.IsAlive() && !m_Player.IsUnconscious())
996 {
997 CreateEmoteCallback(EmoteCB,DayZPlayerConstants.CMD_GESTUREFB_SURRENDEROUT,DayZPlayerConstants.STANCEMASK_ALL,true);
998 }
999 else
1000 {
1001 OnEmoteEnd();
1002 }
1003 }
1004 }
void OnEmoteEnd()
Definition EmoteManager.c:472
const int UA_ANIM_EVENT
Definition constants.c:443

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

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

◆ SendEmoteRequestSync()

void SendEmoteRequestSync ( int id)
protected
793 {
795 if (m_MenuEmote)
796 {
797 forced = m_MenuEmote.GetForced();
798 }
799
800 m_RPSOutcome = -1;
801 switch (id)
802 {
805 break;
806
808 m_RPSOutcome = 0;
809 break;
810
812 m_RPSOutcome = 1;
813 break;
814
816 m_RPSOutcome = 2;
817 break;
818 }
819
821 if (GetGame().IsMultiplayer() && GetGame().IsClient())
822 {
823 bool canProceed = true; //running callbacks in certain state can block additional actions
826 {
827 canProceed = emoteData.CanBeCanceledNormally(m_Callback);
828 }
829
830 if (ctx.CanStoreInputUserData() && ((CanPlayEmote(id) && CanPlayEmoteClientCheck(id)) || forced) && canProceed)
831 {
832 ctx.Write(INPUT_UDT_GESTURE);
833 ctx.Write(id);
834 ctx.Write(forced);
835 if (m_RPSOutcome != -1)
836 {
837 ctx.Write(m_RPSOutcome);
838 }
839 ctx.Send();
841 }
842 else
843 {
845 }
848 }
849 else if (!GetGame().IsMultiplayer())
850 {
851 if (id == CALLBACK_CMD_END)
852 {
854 }
855 else if (id == CALLBACK_CMD_GESTURE_INTERRUPT)
856 {
858 }
859 else if (CanPlayEmote(id) && CanPlayEmoteClientCheck(id))
860 {
861 PlayEmote(id);
862 }
863 else
864 {
866 }
868 }
869 }
bool CanPlayEmoteClientCheck(int id)
Definition EmoteManager.c:960
void EndCallbackCommand()
Definition EmoteManager.c:775
bool PlayEmote(int id)
Definition EmoteManager.c:593
Definition EnMath.c:7
Definition gameplay.c:121
const int ID_EMOTE_RPS_P
Definition constants.c:384
const int ID_EMOTE_RPS
Definition constants.c:373
const int ID_EMOTE_RPS_R
Definition constants.c:383
const int ID_EMOTE_RPS_S
Definition constants.c:385
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
1008 {
1009 //separate inventory access locking
1011 {
1012 m_Player.SetInventorySoftLock(state);
1014 }
1015
1016 //Movement lock in fullbody anims
1018 m_controllsLocked = true;
1019 else
1020 m_controllsLocked = false;
1021
1022 if (state == m_EmoteLockState)
1023 return;
1024
1026 {
1029 }
1030
1031 if (!state)
1032 {
1033 if (m_Player.GetInventory().HasInventoryReservation(null, m_HandInventoryLocation))
1034 m_Player.GetInventory().ClearInventoryReservationEx(null, m_HandInventoryLocation);
1035
1036 if (m_Player.GetActionManager())
1037 m_Player.GetActionManager().EnableActions(true);
1038 }
1039 else
1040 {
1041 if (!m_Player.GetInventory().HasInventoryReservation(null, m_HandInventoryLocation))
1042 m_Player.GetInventory().AddInventoryReservationEx(null, m_HandInventoryLocation, GameInventory.c_InventoryReservationTimeoutMS);
1043
1044 if (m_Player.GetActionManager())
1045 m_Player.GetActionManager().EnableActions(false);
1046 }
1048 }
script counterpart to engine's class Inventory
Definition Inventory.c:79
const int c_InventoryReservationTimeoutMS
reservations
Definition Inventory.c:713

Перекрестные ссылки 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
234 {
235 m_GestureID = id;
236 }

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

◆ ShowItemInHands()

void ShowItemInHands ( )
protected
677 {
678 if (m_item)
679 {
680 m_Player.TryHideItemInHands(false);
681 }
682 }

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

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

◆ Update()

void Update ( float deltaT)
protected
284 {
285 // no updates on restrained characters
286 if (m_Player.IsRestrained())
287 return;
288
290 {
291 if (!m_Player.GetItemInHands() && GetGame().IsServer())
292 {
293 m_Player.GetHumanInventory().CreateInHands("SurrenderDummyItem");
294 }
295 m_ItemToBeCreated = false;
296 }
297
299
300 //deferred emote cancel
301 if (m_InstantCancelEmote) //'hard' cancel
302 {
303 if (m_Callback)
304 {
305 m_Callback.Cancel();
306 }
307
308 if (m_MenuEmote)
309 {
311 }
313 m_InstantCancelEmote = false;
315 SetEmoteLockState(false);
316 }
317 else if (m_CancelEmote) //'soft' cancel
318 {
319 if (m_IsSurrendered)
320 {
322 }
323 else if (m_Callback)
324 {
325 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
326 }
327
329 m_CancelEmote = false;
330 }
331
332 if (m_MenuEmote && m_MenuEmote.GetForced() > EmoteLauncher.FORCE_NONE && !GetGame().IsDedicatedServer()) //forced emote playing
333 {
335 }
336 else if (m_Callback)
337 {
338 bool uiGesture = false;
339 if (!GetGame().IsDedicatedServer())
340 {
341 uiGesture = GetGame().GetUIManager().IsMenuOpen(MENU_GESTURES);
342
344 {
346 }
347
349 {
351 }
352 }
353
355 {
357 {
358 if (m_Callback.GetState() == m_Callback.STATE_LOOP_LOOP)
359 {
361 }
362 else
363 {
364 return;
365 }
366 }
368 {
369 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_ACTION);
370 }
372 {
373 if (m_RPSOutcome != -1)
374 {
375 if (m_RPSOutcome == 0)
376 {
377 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_ROCK);
378 }
379 else if (m_RPSOutcome == 1)
380 {
381 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_PAPER);
382 }
383 else if (m_RPSOutcome == 2)
384 {
385 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_SCISSORS);
386 }
387 m_RPSOutcome = -1;
388 }
389 else
390 {
391 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
392 }
393 }
395 {
397 }
399 {
401 }
402 }
403
404 if (m_LastMask != -1 && m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE))
405 {
406 m_Callback.Cancel();
407 }
408
410 {
412 }
413
415 {
417 }
418
420 {
422 }
423 }
424 //no m_Callback exists
425 else
426 {
427 if (m_bEmoteIsRequestPending && (m_Player.IsUnconscious() || !m_Player.IsAlive()))
428 {
430 }
431
433 {
434 OnEmoteEnd();
435 }
436 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
437 {
438 PlaySurrenderInOut(false);
439 return;
440 }
441 // getting out of surrender state - hard cancel
443 {
444 if (m_Player.GetItemInHands())
445 m_Player.GetItemInHands().DeleteSafe();//Note, this keeps item 'alive' until it is released by all the systems (inventory swapping etc.)
446 return;
447 }
448 // fallback in case lock does not end properly
449 else if (m_IsSurrendered && (!m_Player.GetItemInHands() || (m_Player.GetItemInHands() && m_Player.GetItemInHands().GetType() != "SurrenderDummyItem" && m_EmoteLockState)))
450 {
451 m_IsSurrendered = false;
452 SetEmoteLockState(false);
453 return;
454 }
455 //actual emote launch
457 {
459 }
460 //client-side emote launcher
461 else if (!m_bEmoteIsPlaying && m_MenuEmote && !GetGame().IsDedicatedServer())
462 {
464 }
465 else if (!m_MenuEmote && gestureSlot > 0)
466 {
467 CreateEmoteCBFromMenu(gestureSlot,true); //translation no longer needed
468 }
469 }
470 }
void CreateEmoteCBFromMenu(int id, bool interrupts_same=false)
Definition EmoteManager.c:755
void InterruptCallbackCommand()
Definition EmoteManager.c:765
void PlaySurrenderInOut(bool state)
Definition EmoteManager.c:974
int DetermineGestureIndex()
Definition EmoteManager.c:243
void CommitSuicide()
Definition EmoteManager.c:684
void EndSurrenderRequest(SurrenderData data=null)
directly force-ends surrender state from outside of normal flow
Definition EmoteManager.c:1063
bool InterruptGestureCheck()
Definition EmoteManager.c:1085
bool InterruptWaterCheck()
Definition EmoteManager.c:1114
bool m_ItemToBeCreated
Definition EmoteManager.c:129
void SendEmoteRequestSync(int id)
Definition EmoteManager.c:792
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:1185
const int ID_EMOTE_THUMBDOWN
Definition constants.c:365
const int ID_EMOTE_THUMB
Definition constants.c:358
const int ID_EMOTE_SUICIDE
Definition constants.c:360
const int MENU_GESTURES
Definition constants.c:184

Перекрестные ссылки 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
199 {
200 if (m_ReservationTimer && m_ReservationTimer.IsRunning())
201 m_ReservationTimer.Stop();
202 }

Перекрестные ссылки 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