class DayZPlayerInventorySource
DayZPlayerInventory › HumanInventoryWithFSM › HumanInventory › GameInventory
All members, including inherited
Constructors 1
void DayZPlayerInventory()Members 9
ref DeferredEvent m_DeferredEvent = NULLref Timer m_DeferredWeaponTimer = new Timerprotected ref HandEventBase m_DeferredPostedHandEvent = NULLdeferred hand event
ref WeaponEventBase m_DeferredWeaponEvent = NULLdeferred weapon event
Show 1 more
, PostWeaponEvent()protected ref HandAnimatedTakingFromAtt m_Takingprotected ref HandAnimatedMovingToAtt m_MovingToprotected ref HandAnimatedSwapping m_Swappingprotected ref HandAnimatedForceSwapping m_FSwappingprotected ref HandAnimatedForceSwapping_Inst m_FSwappingInstMethods 62
DayZPlayer GetDayZPlayerOwner()Show 32 more
, HandleForceSwapEntities(), HandleHandEvent(), HandleInventory(), HandleSwapEntities(), HandleTakeToDst(), HandleWeaponEvents(), IsServerOrLocalPlayer(), NetSyncCurrentStateID(), OnAfterStoreLoad(), OnEventForRemoteWeapon(), OnHandleStoredInputUserData(), OnHandleStoredJunctureData(), OnHandsStateChanged(), OnInputUserDataForRemote(), OnInputUserDataProcess(), OnInventoryCheck(), OnInventoryJunctureFromServer(), OnServerInventoryCommand(), PlayerCheckDropRequest(), PlayerCheckRequestDst(), PlayerCheckRequestSrc(), PlayerCheckSwapItemsRequest(), ProcessInputData(), SendRepairToClientDst(), StoreInputForRemotes(), SwapEntities(), SyncHandEventToRemote(), TakeToDst(), ValidateDestroy(), ValidateHandEvent(), ValidateSwap(), and ValidateSyncMove()bool IsAuthoritative()bool IsOwner()bool IsProxy()override void Init()Show 36 more
, HandStateBase.AddTransition(), HumanInventoryWithFSM.CreateStableStates(), HumanInventory.GetManOwner(), new HandAnimatedForceSwapping(), new HandAnimatedForceSwapping_Inst(), new HandAnimatedMovingToAtt(), new HandAnimatedSwapping(), new HandAnimatedTakingFromAtt(), new HandGuardAnd(), new HandGuardHasDestroyedItemInHands(), new HandGuardHasItemInHands(), new HandGuardInstantForceSwap(), new HandGuardNot(), new HandSelectAnimationOfForceSwapInHandsEvent(), new HandSelectAnimationOfMoveFromHandsEvent(), new HandSelectAnimationOfSwapInHandsEvent(), new HandSelectAnimationOfTakeToHandsEvent(), new HandTransition(), hndDebugPrint(), HumanInventoryWithFSM.Init(), LogManager.IsInventoryHFSMLogEnable(), HumanInventoryWithFSM.m_Empty, HumanInventoryWithFSM.m_Equipped, HumanInventoryWithFSM.m_FSM, m_FSwapping, m_FSwappingInst, HandAnimatedForceSwapping.m_Hide, HandAnimatedMovingToAtt.m_Hide, HandAnimatedTakingFromAtt.m_Hide, m_MovingTo, HandAnimatedForceSwapping.m_Show, HandAnimatedMovingToAtt.m_Show, HandAnimatedTakingFromAtt.m_Show, HandAnimatedForceSwapping.m_Start, m_Swapping, and m_Takingvoid CancelHandEvent()cancels any handevents that will be executed this frame @NOTE: this is used in situations where the player performs an action that renders the event invalid exactly on the frame it will be executed
void CancelWeaponEvent()void AbortWeaponEvent()void PostWeaponEvent(WeaponEventBase e)deferred weapon's fsm handling of events @NOTE: "post" stores the event for later use when ::CommandHandler is being run
void DeferredWeaponFailed()Show 12 more
, Error(), Weapon_Base.GetCurrentState(), Object.GetDebugName(), HumanInventory.GetEntityInHands(), GameInventory.GetInventoryOwner(), Weapon.GetMagazine(), Weapon.GetMuzzleCount(), Weapon.IsChamberEmpty(), Weapon.IsChamberFiredOut(), Weapon.IsChamberFull(), Weapon_Base.IsJammed(), and m_DeferredWeaponEventShow 30 more
, typename.EnumToString(), fsmDebugSpam(), Human.GetCommandModifier_Weapons(), Weapon_Base.GetCurrentState(), GetDayZPlayerOwner(), Object.GetDebugName(), HumanInventory.GetEntityInHands(), HumanCommandWeapons.GetRunningAction(), HumanCommandWeapons.GetRunningActionType(), HumanCommandWeapons.IsActionFinished(), HumanCommandWeapons.IsEvent(), Weapon_Base.IsIdle(), TimerBase.IsRunning(), Weapon_Base.IsWaitingForActionFinish(), LogManager.IsWeaponLogEnable(), WeaponStateBase.OnUpdate(), Weapon_Base.ProcessWeaponAbortEvent(), Weapon_Base.ProcessWeaponEvent(), Timer.Run(), Timer.Stop(), Class.ToString(), Weapon_Base.UpdateCoolDown(), WeaponActionTypeToString(), WeaponAnimEventFactory(), new WeaponEventHumanCommandActionAborted(), new WeaponEventHumanCommandActionFinished(), wpnDebugPrint(), wpnDebugSpamALot(), m_DeferredWeaponEvent, and m_DeferredWeaponTimervoid HandleInventory(float dt)Show 24 more
, HFSMBase.GetCurrentState(), GetDayZPlayerOwner(), HumanInventory.GetEntityInHands(), HumanInventory.GetManOwner(), HumanCommandWeapons.GetRunningAction(), HumanCommandWeapons.GetRunningActionType(), HandAnimEventFactory(), new HandEventHumanCommandActionAborted(), new HandEventHumanCommandActionFinished(), hndDebugPrint(), hndDebugSpamALot(), HumanCommandWeapons.IsActionFinished(), HumanCommandWeapons.IsEvent(), HandStateBase.IsIdle(), LogManager.IsInventoryHFSMLogEnable(), HFSMBase.IsRunning(), HandStateBase.IsWaitingForActionFinish(), HandStateBase.OnUpdate(), HumanInventoryWithFSM.ProcessHandAbortEvent(), HumanInventoryWithFSM.ProcessHandEvent(), SyncHandEventToRemote(), Class.ToString(), WeaponActionTypeToString(), and HumanInventoryWithFSM.m_FSMoverride bool OnInventoryJunctureFromServer(ParamsReadContext ctx)reaction to engine callback originates in: engine - DayZPlayer::OnSyncJuncture script - PlayerBase.OnSyncJuncture
Show 4 more
, LogManager.IsSyncLogEnable(), Serializer.Read(), StoreJunctureData(), and syncDebugPrint()override void OnInventoryJunctureFailureFromServer(ParamsReadContext ctx)reaction to engine callback originates in: engine - DayZPlayer::OnSyncJuncture script - PlayerBase.OnSyncJuncture
Show 10 more
, HandEventBase.GetDst(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), HandEventBase.GetSrc(), CGame.IsDedicatedServer(), OnInventoryFailure(), Serializer.Read(), InventoryLocation.ReadFromContext(), InventoryLocation.ReadFromContext(), and InventoryLocation.ReadFromContext()override void OnInventoryFailure(InventoryCommandType type, InventoryValidationReason reason, InventoryLocation src, InventoryLocation dst)Function and setup is still messy due to the switch statement and relation with reading.
It could be cleaner if we used classes to handle each inventory command type, but that comes at a performance cost and will also probably require making a fair amount of changes elsewhere.
The downsides with this system right now: 1. It makes it hard to track what is written/read from the serializer 2. It makes this file very very large
The new changes at least remove the massive switch block and allow for all inventory commands to respond back to the client if something goes wrong
protected void OnHandleStoredJunctureData(ParamsReadContext ctx)reaction to engine callback originates in engine - DayZPlayerInventory::HandleStoredJunctureData
Show 4 more
, LogManager.IsSyncLogEnable(), ProcessInputData(), Serializer.Read(), and syncDebugPrint()proto native void StoreJunctureData(ParamsReadContext ctx)stores received input user data for later handling /aaa
override bool OnInputUserDataProcess(ParamsReadContext ctx)reaction to engine callback originates in: engine - DayZPlayer::OnInputUserDataReceived script - DayZPlayerImplement.OnInputUserDataReceived
Show 3 more
, LogManager.IsSyncLogEnable(), StoreInputUserData(), and syncDebugPrint()protected void OnHandleStoredInputUserData(ParamsReadContext ctx)reaction to engine callback originates in engine - DayZPlayerInventory::HandleStoredInputUserData
Show 4 more
, LogManager.IsSyncLogEnable(), ProcessInputData(), Serializer.Read(), and syncDebugPrint()proto native void StoreInputUserData(ParamsReadContext ctx)stores received input user data for later handling
void OnInputUserDataForRemote(ParamsReadContext ctx)Show 2 more
, ProcessInputData(), and syncDebugPrint()override void OnServerInventoryCommand(ParamsReadContext ctx)Show 2 more
, ProcessInputData(), and syncDebugPrint()bool ValidateSyncMove(inout Serializer ctx, InventoryValidation validation)Show 42 more
, GameInventory.DumpInventoryDebug(), InventoryLocation.DumpToStringNullSafe(), EnableMovableOverride(), typename.EnumToString(), Error(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), Object.GetDebugName(), DayZPlayer.GetInstanceType(), EntityAI.GetInventory(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), HumanInventory.GetManOwner(), GetPlugin(), Entity.GetSimulationTimeStamp(), CGame.GetTime(), CGame.HasInventoryJuncture(), array.Insert(), new InventoryLocation(), Debug.InventoryMoveLog(), PluginInventoryDebug.IsDesyncRepairEnable(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), GameInventory.LocationCanMoveEntity(), GameInventory.LocationCanMoveEntitySyncCheck(), GameInventory.LocationSyncMoveEntity(), MoveCheckExclusionMaskLocal(), PlayerCheckRequestDst(), PlayerCheckRequestSrc(), InventoryLocation.ReadFromContext(), InventoryLocation.ReadFromContext(), RemoveMovableOverride(), SendRepairToClientDst(), InventoryInputUserData.SendServerInventoryCheck(), syncDebugPrint(), Class.ToString(), TryAcquireInventoryJunctureFromServer(), GameInventory.c_MaxItemDistanceRadius, InventoryValidation.m_IsJuncture, InventoryValidation.m_IsRemote, InventoryValidation.m_Reason, and InventoryValidation.m_Resultbool ValidateHandEvent(inout Serializer ctx, InventoryValidation validation)Do not check for action validity on remotes or when performing through juncture. Juncture locks guarentee the item is safe to interact with and the server has validated the command at this point. Checking at this point is both wasteful and can result in a failure which leads to desync
Show 52 more
, CheckForRope(), HandEventBase.CheckRequestEx(), HandEventBase.CheckRequestSrc(), HandEventBase.ClearInventoryReservation(), InventoryLocation.Copy(), array.Count(), HandEventBase.CreateHandEventFromContext(), HandEventBase.DumpToString(), EnableMovableOverride(), typename.EnumToString(), Error(), GameInventory.GetCurrentInventoryLocation(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), Object.GetDebugName(), HandEventBase.GetDst(), HandEventBase.GetEventID(), Man.GetHumanInventory(), DayZPlayer.GetInstanceType(), EntityAI.GetInventory(), EntityAI.GetInventory(), HumanInventory.GetManOwner(), GetPlugin(), HandEventBase.GetSecondDst(), HandEventBase.GetSecondSrc(), HandEventBase.GetSecondSrcEntity(), Entity.GetSimulationTimeStamp(), Entity.GetSimulationTimeStamp(), HandEventBase.GetSrc(), HandEventBase.GetSrcEntity(), HandEventBase.HandEventFactory(), CGame.HasInventoryJuncture(), array.Insert(), new InventoryLocation(), Debug.InventoryMoveLog(), PluginInventoryDebug.IsDesyncRepairEnable(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), HumanInventory.ProcessHandEvent(), RemoveMovableOverride(), SendRepairToClientDst(), InventoryInputUserData.SendServerInventoryCheck(), InventoryInputUserData.SerializeHandEvent(), syncDebugPrint(), Class.ToString(), HandEventBase.m_IsJuncture, InventoryValidation.m_IsJuncture, HandEventBase.m_IsRemote, InventoryValidation.m_IsRemote, HandEventBase.m_Player, InventoryValidation.m_Reason, and InventoryValidation.m_Resultbool ValidateSwap(inout Serializer ctx, InventoryValidation validation)TODO(kumarjac): We should probably set the result to failure like so
Show 60 more
, GameInventory.ClearInventoryReservationEx(), CGame.ClearJunctureEx(), array.Count(), GameInventory.DumpInventoryDebug(), InventoryLocation.DumpToStringNullSafe(), EnableMovableOverride(), typename.EnumToString(), Error(), GameInventory.GetCurrentInventoryLocation(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), Object.GetDebugName(), DayZPlayer.GetInstanceType(), DayZPlayer.GetInstanceType(), EntityAI.GetInventory(), EntityAI.GetInventory(), HumanInventory.GetManOwner(), GetPlugin(), Entity.GetSimulationTimeStamp(), CGame.HasInventoryJuncture(), array.Insert(), new InventoryJunctureSwapValidation(), Debug.InventoryMoveLog(), PluginInventoryDebug.IsDesyncRepairEnable(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), GameInventory.LocationSwap(), GameInventory.LocationSyncMoveEntity(), PlayerCheckRequestSrc(), PlayerCheckSwapItemsRequest(), RemoveMovableOverride(), new ScriptInputUserData(), SendRepairToClientDst(), InventoryInputUserData.SendServerInventoryCheck(), InventoryInputUserData.SerializeSwap(), SwapCheckExclusionMaskLocal(), syncDebugPrint(), Class.ToString(), Class.ToString(), TryAcquireTwoInventoryJuncturesFromServer(), GameInventory.c_InventoryReservationTimeoutShortMS, GameInventory.c_MaxItemDistanceRadius, InventoryJunctureSwapValidation.m_Dst1, InventoryJunctureSwapValidation.m_Dst2, InventoryJunctureSwapValidation.m_DstItem1, InventoryJunctureSwapValidation.m_DstItem2, InventoryValidation.m_IsJuncture, InventoryValidation.m_IsRemote, InventoryValidation.m_Reason, InventoryValidation.m_Result, InventoryJunctureSwapValidation.m_SkippedSwap, InventoryJunctureSwapValidation.m_Src1, InventoryJunctureSwapValidation.m_Src2, InventoryJunctureSwapValidation.m_SrcItem1, InventoryJunctureSwapValidation.m_SrcItem2, and InventoryJunctureSwapValidation.m_Successbool ProcessInputData(ParamsReadContext ctx, bool isJuncture, bool isRemote)Returns: false on malformed data, true on anything else, including cheats
Show 19 more
, GetDayZPlayerOwner(), DayZPlayer.GetInstanceType(), new InventoryValidation(), Serializer.Read(), DayZPlayer.SendSyncJuncture(), StoreInputForRemotes(), ValidateHandEvent(), ValidateSwap(), ValidateSyncMove(), HumanInventory.ValidateUserReservationCancel(), Serializer.Write(), writeableSerializer(), InventoryValidation.m_IsJuncture, InventoryValidation.m_IsRemote, InventoryValidation.m_Mode, InventoryValidation.m_Reason, InventoryValidation.m_Result, DayZPlayerSyncJunctures.SJ_INVENTORY, and DayZPlayerSyncJunctures.SJ_INVENTORY_FAILUREShow 1 more
, OnServerInventoryCommand()void RemoveMovableOverride(EntityAI item)Only send juncture back to client
void EnableMovableOverride(EntityAI item)Show 3 more
, ValidateHandEvent(), ValidateSwap(), and ValidateSyncMove()void CheckForRope(InventoryLocation src, InventoryLocation dst)bool IsServerOrLocalPlayer()bool StoreInputForRemotes(bool handling_juncture, bool remote, ParamsReadContext ctx)override bool TakeToDst(InventoryMode mode, notnull InventoryLocation src, notnull InventoryLocation dst)Show 22 more
, GetDayZPlayerOwner(), Object.GetDebugName(), InventoryLocation.GetItem(), HumanInventory.GetManOwner(), InventoryLocation.GetParent(), InventoryLocation.GetParent(), Entity.GetSimulationTimeStamp(), Debug.InventoryMoveLog(), Object.IsAlive(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), GameInventory.LocationSyncMoveEntity(), Man.NeedInventoryJunctureFromServer(), PostDeferredEventTakeToDst(), HumanInventory.RedirectToHandEvent(), DayZPlayer.SendSyncJuncture(), InventoryInputUserData.SerializeMove(), syncDebugPrint(), HumanInventory.TakeToDst(), Class.ToString(), GameInventory.c_InventoryReservationTimeoutMS, and DayZPlayerSyncJunctures.SJ_INVENTORYoverride bool PostDeferredEventTakeToDst(InventoryMode mode, notnull InventoryLocation src, notnull InventoryLocation dst)Remote inputs are processed in sync juncture once performed on the server - this code below was executing the inventory command before the player simulation timeestamp for remotes which is illegal
Show 1 more
, m_DeferredEventvoid HandleTakeToDst(DeferredEvent deferred_event)Show 25 more
, DeferredTakeToDst.ClearInventoryReservation(), InventoryLocation.DumpToStringNullSafe(), EnableMovableOverride(), typename.EnumToString(), Error(), GetDayZPlayerOwner(), Man.GetHumanInventory(), InventoryLocation.GetItem(), CGame.GetPlayer(), GetPlugin(), Entity.GetSimulationTimeStamp(), inventoryDebugPrint(), Debug.InventoryHFSMLog(), Debug.InventoryMoveLog(), LogManager.IsInventoryHFSMLogEnable(), LogManager.IsInventoryMoveLogEnable(), PluginInventoryDebug.IsLocalOnlyMoveEnable(), GameInventory.LocationCanMoveEntity(), GameInventory.LocationSyncMoveEntity(), InventoryInputUserData.SendInputUserDataMove(), Class.ToString(), GameInventory.c_InventoryReservationTimeoutShortMS, DeferredTakeToDst.m_dst, DeferredEvent.m_mode, and DeferredTakeToDst.m_srcoverride bool SwapEntities(InventoryMode mode, notnull EntityAI item1, notnull EntityAI item2)override bool PostDeferredForceSwapEntities(InventoryMode mode, notnull EntityAI item1, notnull EntityAI item2, notnull InventoryLocation dst1, notnull InventoryLocation dst2)void HandleSwapEntities(DeferredEvent deferred_event)Show 27 more
, Class.Cast(), DeferredSwapEntities.ClearInventoryReservation(), InventoryLocation.DumpToStringNullSafe(), EnableMovableOverride(), typename.EnumToString(), Error(), GetDayZPlayerOwner(), Man.GetHumanInventory(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), CGame.GetPlayer(), GetPlugin(), Entity.GetSimulationTimeStamp(), inventoryDebugPrint(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), PluginInventoryDebug.IsLocalOnlyMoveEnable(), GameInventory.LocationSwap(), GameInventory.MakeSrcAndDstForSwap(), InventoryInputUserData.SendInputUserDataSwap(), Class.ToString(), GameInventory.c_InventoryReservationTimeoutShortMS, DeferredSwapEntities.m_dst1, DeferredSwapEntities.m_dst2, DeferredSwapEntities.m_item1, DeferredSwapEntities.m_item2, and DeferredEvent.m_modeoverride bool ForceSwapEntities(InventoryMode mode, notnull EntityAI item1, notnull EntityAI item2, notnull InventoryLocation item2_dst)void HandleForceSwapEntities(DeferredEvent deferred_event)Show 29 more
, Class.Cast(), DeferredForceSwapEntities.ClearInventoryReservation(), InventoryLocation.DumpToStringNullSafe(), typename.EnumToString(), Error(), GameInventory.GetCurrentInventoryLocation(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), Man.GetHumanInventory(), EntityAI.GetInventory(), EntityAI.GetInventory(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), CGame.GetPlayer(), GetPlugin(), Entity.GetSimulationTimeStamp(), inventoryDebugPrint(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), PluginInventoryDebug.IsLocalOnlyMoveEnable(), GameInventory.LocationSwap(), InventoryInputUserData.SendInputUserDataSwap(), Class.ToString(), GameInventory.c_InventoryReservationTimeoutShortMS, DeferredForceSwapEntities.m_dst1, DeferredForceSwapEntities.m_dst2, DeferredForceSwapEntities.m_item1, DeferredForceSwapEntities.m_item2, and DeferredEvent.m_modestatic void SendServerHandEventViaJuncture(notnull DayZPlayer player, HandEventBase e)Show 21 more
, typename.EnumToString(), Error(), Object.GetDebugName(), HandEventBase.GetDst(), InventoryLocation.GetItem(), InventoryLocation.GetParent(), InventoryLocation.GetParent(), Entity.GetSimulationTimeStamp(), HandEventBase.GetSrc(), Object.IsAlive(), CGame.IsServer(), HandEventBase.IsServerSideOnly(), LogManager.IsSyncLogEnable(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), Man.NeedInventoryJunctureFromServer(), DayZPlayer.SendSyncJuncture(), InventoryInputUserData.SerializeHandEvent(), syncDebugPrint(), GameInventory.c_InventoryReservationTimeoutMS, and DayZPlayerSyncJunctures.SJ_INVENTORYoverride void NetSyncCurrentStateID(int id)Engine callback - network synchronization of FSM's state. not intended to direct use.
override void OnAfterStoreLoad()engine reaction to load from database originates in: engine - Person::BinLoad script - PlayerBase.OnAfterStoreLoad
bool OnEventForRemoteWeapon(ParamsReadContext ctx)reaction of remote weapon to (common user/anim/...) event sent from server
Show 11 more
, Error(), fsmDebugSpam(), GetDayZPlayerOwner(), Object.GetDebugName(), HumanInventory.GetEntityInHands(), WeaponEventBase.GetEventID(), PlayerBase.GetWeaponManager(), LogManager.IsWeaponLogEnable(), Weapon_Base.ProcessWeaponAbortEvent(), Weapon_Base.ProcessWeaponEvent(), and WeaponManager.SetRunning()bool OnHandEventForRemote(ParamsReadContext ctx)reaction of remote weapon to (common user/anim/...) event sent from server
void SyncHandEventToRemote(HandEventBase e)override void OnHandsExitedStableState(HandStateBase src, HandStateBase dst)Show 2 more
, typename.ToString(), and Class.Type()override void OnHandsEnteredStableState(HandStateBase src, HandStateBase dst)Show 2 more
, typename.ToString(), and Class.Type()override void OnHandsStateChanged(HandStateBase src, HandStateBase dst)Show 13 more
, hndDebugPrint(), HandStateBase.IsIdle(), HandStateBase.IsIdle(), LogManager.IsInventoryHFSMLogEnable(), OnHandsEnteredStableState(), OnHandsExitedStableState(), HumanInventory.OnHandsStateChanged(), Bot.ProcessEvent(), typename.ToString(), typename.ToString(), Class.Type(), Class.Type(), and PlayerBase.m_Botoverride bool HandEvent(InventoryMode mode, HandEventBase e)Show 20 more
, HandEventBase.GetDst(), HumanInventory.GetEntityInHands(), GameInventory.GetInventoryOwner(), HandEventBase.GetSrc(), new InventoryLocation(), new InventoryValidation(), CGame.IsClient(), CGame.IsMultiplayer(), IsProcessing(), OnInventoryFailure(), DeferredEvent.ReserveInventory(), DayZPlayer.SendSyncJuncture(), InventoryInputUserData.SerializeHandEvent(), serializer(), InventoryLocation.SetHands(), Write(), m_DeferredEvent, InventoryValidation.m_Mode, InventoryValidation.m_Reason, and DayZPlayerSyncJunctures.SJ_INVENTORY_FAILUREvoid SyncDeferredEventToRemotes()If singleplayer or the client is executing this
Show 1 more
, DeferredHandEvent.m_eventvoid HandleHandEvent(DeferredEvent deferred_event)Show 27 more
, DeferredHandEvent.ClearInventoryReservation(), HandEventBase.DumpToString(), EnableMovableOverride(), typename.EnumToString(), Error(), GetDayZPlayerOwner(), HandEventBase.GetDst(), InventoryLocation.GetItem(), GetPlugin(), Entity.GetSimulationTimeStamp(), HandEventBase.GetSrcEntity(), hndDebugPrint(), Debug.InventoryHFSMLog(), new InventoryValidation(), Object.IsAlive(), LogManager.IsInventoryHFSMLogEnable(), PluginInventoryDebug.IsLocalOnlyMoveEnable(), HandEventBase.IsServerSideOnly(), HumanInventoryWithFSM.ProcessHandEvent(), DeferredHandEvent.ReserveInventory(), InventoryInputUserData.SendInputUserDataHandEvent(), InventoryInputUserData.SendServerHandEventViaInventoryCommand(), SendServerHandEventViaJuncture(), Class.ToString(), DeferredHandEvent.m_event, DeferredEvent.m_mode, and InventoryValidation.m_Modeoverride void HandleInventoryManipulation()Default structure suffices
bool IsProcessing()Show 2 more
, m_DeferredPostedHandEvent, and HumanInventoryWithFSM.m_FSMbool PlayerCheckRequestSrc(notnull InventoryLocation src, float radius)Show 13 more
, Object.GetCollisionRadius(), GetDayZPlayerOwner(), EntityAI.GetHierarchyRoot(), EntityAI.GetHierarchyRoot(), EntityAI.GetHierarchyRootPlayer(), InventoryLocation.GetItem(), HumanInventory.GetManOwner(), InventoryLocation.GetParent(), Object.GetPosition(), Object.GetPosition(), Object.IsAlive(), PlayerBase.IsRestrained(), and PlayerBase.IsUnconscious()Show 1 more
, PlayerBase.HandleRemoteItemManipulation()bool PlayerCheckRequestDst(notnull InventoryLocation src, notnull InventoryLocation dst, float radius)Show 14 more
, Object.GetCollisionRadius(), GetDayZPlayerOwner(), EntityAI.GetHierarchyRoot(), EntityAI.GetHierarchyRoot(), EntityAI.GetHierarchyRootPlayer(), InventoryLocation.GetItem(), HumanInventory.GetManOwner(), InventoryLocation.GetParent(), Object.GetPosition(), Object.GetPosition(), Object.IsAlive(), PlayerBase.IsRestrained(), PlayerBase.IsUnconscious(), and GameInventory.LocationCanMoveEntity()void SendRepairToClientDst(notnull InventoryLocation dst)Show 16 more
, GameInventory.FindAttachment(), GameInventory.GetCargo(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), HumanInventory.GetEntityInHands(), EntityAI.GetInventory(), EntityAI.GetInventory(), CargoBase.GetItem(), CargoBase.GetItemCount(), InventoryLocation.GetParent(), GetPlugin(), InventoryLocation.GetSlot(), InventoryLocation.GetType(), array.Insert(), PluginInventoryDebug.IsDesyncRepairEnable(), and InventoryInputUserData.SendServerInventoryCheck()bool PlayerCheckSwapItemsRequest(notnull InventoryLocation src1, notnull InventoryLocation src2, notnull InventoryLocation dst1, notnull InventoryLocation dst2, float radius)Show 17 more
, Object.GetCollisionRadius(), GetDayZPlayerOwner(), EntityAI.GetHierarchyRoot(), EntityAI.GetHierarchyRoot(), EntityAI.GetHierarchyRoot(), EntityAI.GetHierarchyRootPlayer(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), HumanInventory.GetManOwner(), InventoryLocation.GetParent(), InventoryLocation.GetParent(), Object.GetPosition(), Object.GetPosition(), Object.IsAlive(), PlayerBase.IsRestrained(), PlayerBase.IsUnconscious(), and GameInventory.c_MaxItemDistanceRadiusbool PlayerCheckDropRequest(notnull InventoryLocation src, float radius)bool MoveCheckExclusionMaskLocal(notnull InventoryLocation src, notnull InventoryLocation dst)Local, checks only stuff that is in guaranteed sync
Show 2 more
, InventoryLocation.GetSlot(), and InventoryLocation.GetType()bool SwapCheckExclusionMaskLocal(notnull InventoryLocation src1, notnull InventoryLocation src2, notnull InventoryLocation dst1, notnull InventoryLocation dst2)Local, checks only stuff that is in guaranteed sync
bool ValidateDestroy(inout Serializer ctx, InventoryValidation validation)Show 15 more
, GameInventory.GetInventoryOwner(), InventoryLocation.GetItem(), InventoryLocation.GetParent(), Entity.GetSimulationTimeStamp(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), CGame.ObjectDelete(), PlayerCheckDropRequest(), PlayerCheckRequestSrc(), InventoryLocation.ReadFromContext(), Class.ToString(), GameInventory.c_MaxItemDistanceRadius, InventoryValidation.m_IsJuncture, InventoryValidation.m_IsRemote, and InventoryValidation.m_Resultoverride bool OnInventoryCheck(int userDataType, ParamsReadContext ctx)Do not check for action validity on remotes or when performing through juncture. Juncture locks guarentee the item is safe to interact with and the server has validated the command at this point. Checking at this point is both wasteful and can result in a failure which leads to desync