12 m_Manager.OnCallbackEnd();
16 m_player.RequestHandAnimationStateRefresh();
24 bool IsEmoteCallback()
26 return IsGestureCallback();
29 override void OnAnimationEvent(
int pEventID)
36 m_Manager.KillPlayer();
38 m_Manager.LogSuicide();
43 m_Manager.m_ItemToBeCreated =
true;
48 m_Manager.CreateBleedingEffect(m_callbackID);
52 m_player.DeathDropHandEntity();
53 m_player.StartDeath();
58 override bool IsGestureCallback()
66 static const int FORCE_NONE = 0;
67 static const int FORCE_DIFFERENT = 1;
68 static const int FORCE_ALL = 2;
228 for (
int i = 0; i < count; i++)
257 for (
int i = 0; i < count; ++i)
309 m_Player.GetHumanInventory().CreateInHands(
"SurrenderDummyItem");
369 if (!DayZPlayerUtils.PlayerCanChangeStance(
m_Player, stanceIdx))
378 if (forcedEmoteQueuedClient)
384 bool uiGesture =
false;
385 if (!
g_Game.IsDedicatedServer())
491 m_Player.GetItemInHands().DeleteSafe();
544 if (!
m_Player.IsShootingFromCamera())
545 m_Player.OverrideShootFromCamera(
true);
557 bool guaranteed =
false;
559 if (!ctx.Read(gestureID))
566 ctx.Read(guaranteed);
567 if (ctx.Read(random))
579 pCtx.Write(gestureID);
580 pCtx.Write(cancelID);
582 pCtx.Write(guaranteed);
601 pCtx.Read(gestureID);
604 pCtx.Read(guaranteed);
669 if (
m_Player.GetItemInHands() && SurrenderDummyItem.Cast(
m_Player.GetItemInHands()))
713 ErrorEx(
"EmoteManager | DetermineEmoteData failed!");
736 else if (
m_Player.IsPlayerInStance(mask))
782 if (weapon.CanFire())
786 weapon.ProcessWeaponEvent(weapon_event);
791 if (helm &&
g_Game.IsServer())
793 float damage = helm.GetMaxHealth(
"",
"");
794 helm.AddHealth(
"",
"", -damage/2);
805 if (!weapon.IsDamageDestroyed())
807 weapon.ProcessWeaponEvent(weapon_event);
812 else if (
m_Player.GetItemInHands() &&
m_Player.GetItemInHands().ConfigIsExisting(
"suicideAnim"))
900 bool guaranteedLaunch =
false;
925 bool canProceed =
true;
937 ctx.Write(guaranteedLaunch);
952 else if (!
g_Game.IsMultiplayer())
976 int id = launcher.GetID();
977 int forced = launcher.GetForced();
978 bool guaranteedLaunch = launcher.IsStartGuaranteed();
1003 bool canProceed =
true;
1015 ctx.Write(guaranteedLaunch);
1021 launcher.VerifySyncRequest();
1033 else if (!
g_Game.IsMultiplayer())
1075 if (item.IsHeavyBehaviour() &&
id !=
EmoteConstants.ID_EMOTE_SURRENDER)
1080 SurrenderDummyItem sda;
1081 if (
m_Player.IsItemsToDelete() &&
Class.CastTo(sda,item) && !sda.IsSetForDeletion())
1087 if ((
m_Player.GetWeaponManager() &&
m_Player.GetWeaponManager().IsRunning()) || (
m_Player.GetActionManager() &&
m_Player.GetActionManager().GetRunningAction()))
1102 HumanCommandMove cm =
m_Player.GetCommand_Move();
1107 if (cm.IsChangingStance())
1117 if (
m_Player.GetDayZPlayerInventory().IsProcessing())
1172 if (
g_Game.IsMultiplayer())
1179 m_Player.PhysicalPredictiveDropItem(item);
1209 m_Player.SetInventorySoftLock(state);
1237 m_Player.GetActionManager().EnableActions(
true);
1245 m_Player.GetActionManager().EnableActions(
false);
1252 if (!
m_Player.GetItemInHands() || (
m_Player.GetItemInHands() && !SurrenderDummyItem.Cast(
m_Player.GetItemInHands())))
1288 SurrenderDummyItem dummyItem = SurrenderDummyItem.Cast(
m_Player.GetItemInHands());
1290 dummyItem.DeleteSafe();
1356 float waterLevel =
m_Player.GetCurrentWaterLevel();
1384 switch (Callback_ID)
1387 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"Neck");
1391 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"LeftForeArmRoll");
1395 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"Spine2");
1399 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"Spine2");
1403 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"Head");
1407 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"LeftForeArmRoll");
1442 old_item.GetTransform(mtx);
1443 gnd.SetGround(old_item, mtx);
1445 OverrideNewLocation(gnd);
1450 if (PrepareLocations())
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
drops weapon in hands to ground and then calls kill
Super root of all classes in Enforce script.
bool EmoteFBStanceCheck(int stancemask)
Checks for valid stance mask.
bool CanBeCanceledNormally(notnull EmoteCB callback)
bool DetermineOverride(out int callback_ID, out int stancemask, out bool is_fullbody)
int GetAdditiveCallbackUID()
int GetFullbodyCallbackUID()
int GetStanceMaskAdditive()
bool EmoteStartOverride(typename callbacktype, int id, int mask, bool fullbody)
int GetStanceMaskFullbody()
bool EmoteCondition(int stancemask)
void OnBeforeStandardCallbackCreated(int callback_ID, int stancemask, bool is_fullbody)
bool GetHideItemInHands()
void SetStartGuaranteed(bool guaranted)
bool m_InterruptsSameIDEmote
void EmoteLauncher(int emoteID, bool interrupts_same)
script counterpart to engine's class Inventory
const int c_InventoryReservationTimeoutMS
reservations
HumanInventory... with FSM (synchronous, no anims).
The class that will be instanced (moddable).
base class for transformation operations (creating one item from another)
signalize mechanism manipulation
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
override void OnCallbackEnd()
void ChainedDropAndKillPlayerLambda(EntityAI old_item, string new_item_type, PlayerBase player)
bool m_DisconnectEmoteQueued
ref Timer m_ReservationTimer
ref array< int > m_EmoteInputIDs
bool ClearDeferredExecution()
const int CALLBACK_CMD_END
void ForceSurrenderState(bool state)
void RequestCommitSuicide()
int m_InterruptInputsCount
void CheckEmoteLockedState()
void EmoteManager(PlayerBase player)
void CreateEmoteCBFromMenu(int id, bool interrupts_same=false)
const int CALLBACK_CMD_INVALID
ref array< string > m_InterruptInputs
bool CanPlayEmoteClientCheck(int id)
ref array< int > m_EmoteIDs
bool CanPlayEmote(int id)
int m_DeferredEmoteExecution
bool m_DeferredEmoteLauncherCleanup
int m_DeferredGuaranteedEmoteId
PluginAdminLog m_AdminLog
ref InventoryLocation m_HandInventoryLocation
void InterruptCallbackCommand()
void SetPending(bool state)
void PostSurrenderRequestServer()
server only
void PlaySurrenderInOut(bool state)
int DetermineGestureIndex()
void CreateBleedingEffect(int Callback_ID)
void SendEmoteRequestSyncEx(notnull EmoteLauncher launcher)
To avoid mixing m_MenuEmote with exceptional sync commands.
map< int, ref EmoteBase > GetNameEmoteMap()
bool m_GestureInterruptInput
void ClearSurrenderState()
Queues item deletion only, surrender state cleared from item event directly.
bool m_InventoryAccessLocked
bool OnInputUserDataProcess(int userDataType, ParamsReadContext ctx)
const int CALLBACK_CMD_INSTACANCEL
void SetClientLoggingOut(bool state)
void ServerRequestEmoteCancel()
void EndSurrenderRequest(SurrenderData data=null)
directly force-ends surrender state AND requests hard cancel
void SetEmoteLockState(bool state)
bool ClearEmoteLauncher(bool forced=false)
ref EmoteLauncher m_MenuEmote
void CreateEmoteCallback(typename callbacktype, int id, int mask, bool fullbody)
bool InterruptGestureCheck()
bool InterruptWaterCheck()
void OnSyncJuncture(int pJunctureID, ParamsReadContext pCtx)
void PickEmote(int gestureslot)
Deprecated.
void End()
called on surrender end request end
bool DetermineEmoteData(EmoteBase emote, out int callback_ID, out int stancemask, out bool is_fullbody)
Also includes a stance check for FB callbacks.
SHumanCommandSwimSettings m_HumanSwimSettings
override void Execute(HumanInventoryWithFSM fsm_to_notify=null)
const int CALLBACK_CMD_GESTURE_INTERRUPT
ref map< int, ref EmoteBase > m_NameEmoteMap
HumanInputController m_HIC
ref array< ref EmoteBase > m_EmoteClassArray
void EndCallbackCommand()
bool m_MouseButtonPressed
bool m_InstantCancelEmote
EmoteLauncher GetEmoteLauncher()
bool m_bEmoteIsRequestPending
void SendEmoteRequestSync(int id)
ref array< UAIDWrapper > m_InterruptInputDirect
Serializer ParamsReadContext
void hndDebugPrint(string s)
PluginBase GetPlugin(typename plugin_type)