class DayZPlayerInventory
DayZPlayerInventory › HumanInventoryWithFSM › HumanInventory › GameInventory
Constants 2
static const float INVENTORY_REPAIR_MAX_DISTANCE = 500.0MAx distance for itme to be repair (without it it can be use for getting position from server)
static const int INVENTORY_REPAIR_MAX_ITEMS = 5limmit number of items transfere duting repair.
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 78
DayZPlayer GetDayZPlayerOwner()bool IsAuthoritative()bool IsOwner()bool IsProxy()override void Init()Show 37 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 HandGuardIsNotSurrendered(), 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
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
proto native void StoreInputUserData(ParamsReadContext ctx)stores received input user data for later handling
void OnInputUserDataForRemote(ParamsReadContext ctx)override void OnServerInventoryCommand(ParamsReadContext ctx)Juncture is only ever Server Req->Client Ack and Perform->Server Perform, never remote
bool ValidateSyncMove(inout Serializer ctx, InventoryValidation validation)Juncture is only ever Server Req->Client Ack and Perform->Server Perform, never remote
Show 43 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(), GameInventory.LocationTestAddEntity(), 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 ValidateSyncMoveServer(ParamsReadContext ctx, InventoryValidation validation)Never end here, always return in send junture part MW 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 33 more
, EnableMovableOverride(), typename.EnumToString(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), Object.GetDebugName(), EntityAI.GetInventory(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), HumanInventory.GetManOwner(), GetPlugin(), Entity.GetSimulationTimeStamp(), CGame.GetTime(), array.Insert(), new InventoryLocation(), Debug.InventoryMoveLog(), PluginInventoryDebug.IsDesyncRepairEnable(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), GameInventory.LocationCanMoveEntity(), GameInventory.LocationSyncMoveEntity(), PlayerCheckRequestDst(), PlayerCheckRequestSrc(), InventoryLocation.ReadFromContext(), InventoryLocation.ReadFromContext(), RemoveMovableOverride(), SendRepairToClientDst(), InventoryInputUserData.SendServerInventoryCheck(), syncDebugPrint(), Class.ToString(), TryAcquireInventoryJunctureFromServer(), GameInventory.c_MaxItemDistanceRadius, InventoryValidation.m_Reason, and InventoryValidation.m_Resultbool ExecuteSyncMoveCommandServer(ParamsReadContext ctx)TODO(kumarjac): We should continue with the execution and not have this special block but making a change here now will require testing
Show 19 more
, GetDayZPlayerOwner(), Object.GetDebugName(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), Entity.GetSimulationTimeStamp(), CGame.GetTime(), CGame.HasInventoryJuncture(), new InventoryLocation(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), GameInventory.LocationCanMoveEntity(), GameInventory.LocationSyncMoveEntity(), MoveCheckExclusionMaskLocal(), InventoryLocation.ReadFromContext(), InventoryLocation.ReadFromContext(), RemoveMovableOverride(), syncDebugPrint(), and Class.ToString()bool ExecuteSyncMoveCommandClient(ParamsReadContext ctx)Show 18 more
, GetDayZPlayerOwner(), Object.GetDebugName(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), Entity.GetSimulationTimeStamp(), CGame.GetTime(), new InventoryLocation(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), GameInventory.LocationSyncMoveEntity(), GameInventory.LocationTestAddEntity(), MoveCheckExclusionMaskLocal(), InventoryLocation.ReadFromContext(), InventoryLocation.ReadFromContext(), RemoveMovableOverride(), syncDebugPrint(), and Class.ToString()bool ExecuteSyncMoveCommandRemote(ParamsReadContext ctx)Show 15 more
, Object.GetDebugName(), InventoryLocation.GetItem(), InventoryLocation.GetItem(), Entity.GetSimulationTimeStamp(), CGame.GetTime(), new InventoryLocation(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), GameInventory.LocationSyncMoveEntity(), InventoryLocation.ReadFromContext(), InventoryLocation.ReadFromContext(), RemoveMovableOverride(), syncDebugPrint(), and Class.ToString()bool ValidateHandEvent(inout Serializer ctx, InventoryValidation validation)Show 55 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(), Class.GetDebugName(), 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(), HandEventBase.IsServerSideOnly(), LogManager.IsSyncLogEnable(), HumanInventory.ProcessHandEvent(), RemoveMovableOverride(), SendRepairToClientDst(), InventoryInputUserData.SendServerInventoryCheck(), InventoryInputUserData.SerializeHandEvent(), syncDebugPrint(), Class.ToString(), Class.ToString(), HandEventBase.m_IsJuncture, InventoryValidation.m_IsJuncture, HandEventBase.m_IsRemote, InventoryValidation.m_IsRemote, HandEventBase.m_Player, InventoryValidation.m_Reason, and InventoryValidation.m_Resultbool ValidateHandEventServer(inout Serializer ctx, InventoryValidation validation)TODO(kumarjac): We should probably set the result to failure like so
Show 47 more
, CheckForRope(), HandEventBase.CheckRequestEx(), HandEventBase.CheckRequestSrc(), array.Count(), HandEventBase.CreateHandEventFromContext(), HandEventBase.DumpToString(), EnableMovableOverride(), typename.EnumToString(), Error(), GameInventory.GetCurrentInventoryLocation(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), Class.GetDebugName(), Object.GetDebugName(), HandEventBase.GetDst(), Man.GetHumanInventory(), EntityAI.GetInventory(), EntityAI.GetInventory(), HumanInventory.GetManOwner(), GetPlugin(), HandEventBase.GetSecondDst(), HandEventBase.GetSecondSrc(), HandEventBase.GetSecondSrcEntity(), Entity.GetSimulationTimeStamp(), Entity.GetSimulationTimeStamp(), HandEventBase.GetSrc(), HandEventBase.GetSrcEntity(), array.Insert(), new InventoryLocation(), Debug.InventoryMoveLog(), PluginInventoryDebug.IsDesyncRepairEnable(), LogManager.IsInventoryMoveLogEnable(), HandEventBase.IsServerSideOnly(), LogManager.IsSyncLogEnable(), HumanInventory.ProcessHandEvent(), RemoveMovableOverride(), new ScriptInputUserData(), SendRepairToClientDst(), InventoryInputUserData.SendServerInventoryCheck(), InventoryInputUserData.SerializeHandEvent(), syncDebugPrint(), Class.ToString(), HandEventBase.m_IsJuncture, HandEventBase.m_IsRemote, HandEventBase.m_Player, InventoryValidation.m_Reason, and InventoryValidation.m_Resultbool ExecuteHandEventCommandServer(inout Serializer ctx)Continuing on with execution of rest of the function
Show 31 more
, HandEventBase.CreateHandEventFromContext(), HandEventBase.DumpToString(), typename.EnumToString(), GetDayZPlayerOwner(), Object.GetDebugName(), HandEventBase.GetDst(), Man.GetHumanInventory(), HumanInventory.GetManOwner(), HandEventBase.GetSecondSrcEntity(), Entity.GetSimulationTimeStamp(), Entity.GetSimulationTimeStamp(), HandEventBase.GetSrc(), HandEventBase.GetSrcEntity(), CGame.HasInventoryJuncture(), Debug.InventoryMoveLog(), new InventoryValidation(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), HumanInventory.ProcessHandEvent(), RemoveMovableOverride(), new ScriptInputUserData(), InventoryInputUserData.SerializeHandEvent(), syncDebugPrint(), Class.ToString(), Class.ToString(), HandEventBase.m_IsJuncture, InventoryValidation.m_IsJuncture, HandEventBase.m_IsRemote, InventoryValidation.m_IsRemote, InventoryValidation.m_Mode, and HandEventBase.m_Playerbool ExecuteHandEventCommandClient(inout Serializer ctx)'HandEventBase.CanPerformEventEx' updates failure reason
Show 27 more
, HandEventBase.CreateHandEventFromContext(), HandEventBase.DumpToString(), typename.EnumToString(), GetDayZPlayerOwner(), Object.GetDebugName(), Man.GetHumanInventory(), HumanInventory.GetManOwner(), HandEventBase.GetSecondSrcEntity(), Entity.GetSimulationTimeStamp(), Entity.GetSimulationTimeStamp(), HandEventBase.GetSrcEntity(), Debug.InventoryMoveLog(), new InventoryValidation(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), HumanInventory.ProcessHandEvent(), RemoveMovableOverride(), new ScriptInputUserData(), InventoryInputUserData.SerializeHandEvent(), syncDebugPrint(), Class.ToString(), HandEventBase.m_IsJuncture, InventoryValidation.m_IsJuncture, HandEventBase.m_IsRemote, InventoryValidation.m_IsRemote, InventoryValidation.m_Mode, and HandEventBase.m_Playerbool ExecuteHandEventCommandRemote(inout Serializer ctx)'HandEventBase.CanPerformEventEx' updates failure reason
Show 31 more
, HandEventBase.DumpToString(), typename.EnumToString(), Error(), GetDayZPlayerOwner(), Object.GetDebugName(), HandEventBase.GetEventID(), Man.GetHumanInventory(), HumanInventory.GetManOwner(), HandEventBase.GetSecondSrcEntity(), Entity.GetSimulationTimeStamp(), Entity.GetSimulationTimeStamp(), HandEventBase.GetSrc(), HandEventBase.GetSrcEntity(), HandEventBase.HandEventFactory(), new InventoryLocation(), Debug.InventoryMoveLog(), new InventoryValidation(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), HumanInventory.ProcessHandEvent(), RemoveMovableOverride(), new ScriptInputUserData(), InventoryInputUserData.SerializeHandEvent(), syncDebugPrint(), Class.ToString(), HandEventBase.m_IsJuncture, InventoryValidation.m_IsJuncture, HandEventBase.m_IsRemote, InventoryValidation.m_IsRemote, InventoryValidation.m_Mode, and HandEventBase.m_Playerbool ValidateSwap(inout Serializer ctx, InventoryValidation validation)'HandEventBase.CheckRequestEx' updates failure reason
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 ValidateSwapServer(inout Serializer ctx, InventoryValidation validation)Check whether the juncture for the related player and items has been acquired.
Show 50 more
, array.Count(), GameInventory.DumpInventoryDebug(), InventoryLocation.DumpToStringNullSafe(), EnableMovableOverride(), typename.EnumToString(), Error(), GameInventory.GetCurrentInventoryLocation(), GameInventory.GetCurrentInventoryLocation(), GetDayZPlayerOwner(), Object.GetDebugName(), EntityAI.GetInventory(), EntityAI.GetInventory(), HumanInventory.GetManOwner(), GetPlugin(), Entity.GetSimulationTimeStamp(), array.Insert(), new InventoryJunctureSwapValidation(), new InventoryLocation(), Debug.InventoryMoveLog(), PluginInventoryDebug.IsDesyncRepairEnable(), LogManager.IsInventoryMoveLogEnable(), LogManager.IsSyncLogEnable(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), GameInventory.LocationSwap(), PlayerCheckRequestSrc(), PlayerCheckSwapItemsRequest(), RemoveMovableOverride(), new ScriptInputUserData(), SendRepairToClientDst(), InventoryInputUserData.SendServerInventoryCheck(), InventoryInputUserData.SerializeSwap(), syncDebugPrint(), Class.ToString(), Class.ToString(), TryAcquireTwoInventoryJuncturesFromServer(), GameInventory.c_MaxItemDistanceRadius, InventoryJunctureSwapValidation.m_Dst1, InventoryJunctureSwapValidation.m_Dst2, InventoryJunctureSwapValidation.m_DstItem1, InventoryJunctureSwapValidation.m_DstItem2, InventoryValidation.m_Reason, InventoryValidation.m_Result, InventoryJunctureSwapValidation.m_Src1, InventoryJunctureSwapValidation.m_Src2, InventoryJunctureSwapValidation.m_SrcItem1, InventoryJunctureSwapValidation.m_SrcItem2, and InventoryJunctureSwapValidation.m_Successbool ExecuteSwapCommandServer(inout Serializer 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
Show 28 more
, typename.EnumToString(), Error(), GetDayZPlayerOwner(), Entity.GetSimulationTimeStamp(), CGame.HasInventoryJuncture(), new InventoryJunctureSwapValidation(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), GameInventory.LocationSwap(), RemoveMovableOverride(), new ScriptInputUserData(), InventoryInputUserData.SerializeSwap(), SwapCheckExclusionMaskLocal(), Class.ToString(), Class.ToString(), InventoryJunctureSwapValidation.m_Dst1, InventoryJunctureSwapValidation.m_Dst2, InventoryJunctureSwapValidation.m_DstItem1, InventoryJunctureSwapValidation.m_DstItem2, InventoryJunctureSwapValidation.m_Src1, InventoryJunctureSwapValidation.m_Src2, InventoryJunctureSwapValidation.m_SrcItem1, InventoryJunctureSwapValidation.m_SrcItem2, and InventoryJunctureSwapValidation.m_Successbool ExecuteSwapCommandClient(inout Serializer ctx)Show 26 more
, typename.EnumToString(), Error(), GetDayZPlayerOwner(), Entity.GetSimulationTimeStamp(), new InventoryJunctureSwapValidation(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), GameInventory.LocationSwap(), RemoveMovableOverride(), new ScriptInputUserData(), InventoryInputUserData.SerializeSwap(), SwapCheckExclusionMaskLocal(), Class.ToString(), InventoryJunctureSwapValidation.m_Dst1, InventoryJunctureSwapValidation.m_Dst2, InventoryJunctureSwapValidation.m_DstItem1, InventoryJunctureSwapValidation.m_DstItem2, InventoryJunctureSwapValidation.m_Src1, InventoryJunctureSwapValidation.m_Src2, InventoryJunctureSwapValidation.m_SrcItem1, InventoryJunctureSwapValidation.m_SrcItem2, and InventoryJunctureSwapValidation.m_Successbool ExecuteSwapCommandRemote(inout Serializer ctx)Show 26 more
, Error(), GetDayZPlayerOwner(), Entity.GetSimulationTimeStamp(), new InventoryJunctureSwapValidation(), Debug.InventoryMoveLog(), LogManager.IsInventoryMoveLogEnable(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), InventoryLocation.IsValid(), GameInventory.LocationSwap(), GameInventory.LocationSyncMoveEntity(), RemoveMovableOverride(), new ScriptInputUserData(), InventoryInputUserData.SerializeSwap(), Class.ToString(), InventoryJunctureSwapValidation.m_Dst1, InventoryJunctureSwapValidation.m_Dst2, InventoryJunctureSwapValidation.m_DstItem1, InventoryJunctureSwapValidation.m_DstItem2, 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()bool ValidateInventoryCommandServer(ParamsReadContext ctx)Only send juncture back to client
Show 21 more
, Entity.GetSimulationTimeStamp(), Debug.InventoryMoveLog(), new InventoryValidation(), LogManager.IsInventoryMoveLogEnable(), Serializer.Read(), DayZPlayer.SendSyncJuncture(), StoreInputForRemotes(), Class.ToString(), ValidateHandEventServer(), ValidateSwapServer(), ValidateSyncMoveServer(), 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_FAILUREbool ExecuteInventoryCommandServer(ParamsReadContext ctx)General purpose serializer change from read to write here if the validation doesn't update it
bool ExecuteInventoryCommandClient(ParamsReadContext ctx)Serializer can be updated and re-written to when we may want to only correct the client instead of denying the inventory command
bool ExecuteInventoryCommandRemote(ParamsReadContext ctx)Serializer can be updated and re-written to when we may want to only correct the client instead of denying the inventory command
void RemoveMovableOverride(EntityAI item)Serializer can be updated and re-written to when we may want to only correct the client instead of denying the inventory command
Show 12 more
, ExecuteSwapCommandClient(), ExecuteSwapCommandRemote(), ExecuteSwapCommandServer(), ExecuteSyncMoveCommandClient(), ExecuteSyncMoveCommandRemote(), ExecuteSyncMoveCommandServer(), ValidateHandEvent(), ValidateHandEventServer(), ValidateSwap(), ValidateSwapServer(), ValidateSyncMove(), and ValidateSyncMoveServer()void EnableMovableOverride(EntityAI item)void CheckForRope(InventoryLocation src, InventoryLocation dst)Show 2 more
, ValidateHandEventServer(), and ValidateSyncMove()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 3 more
, ValidateSyncMove(), ValidateSyncMoveServer(), and 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()Show 3 more
, ValidateSwapServer(), ValidateSyncMove(), and ValidateSyncMoveServer()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