DayZ 1.26
DayZ Explorer by KGB
|
Структуры данных | |
class | DeferredEvent |
class | DeferredSwapEntities |
class | DeferredHandEvent |
Переменные | |
class DeferredEvent | m_src |
ref InventoryLocation | m_dst |
DeferredSwapEntities | m_item1 |
EntityAI | m_item2 |
ref InventoryLocation | m_dst1 |
ref InventoryLocation | m_dst2 |
ref HandEventBase | m_event |
m_DeferredEvent = NULL | |
ref Timer | m_DeferredWeaponTimer = new Timer |
ref HandEventBase | m_DeferredPostedHandEvent = NULL |
ref WeaponEventBase | m_DeferredWeaponEvent = NULL |
deferred hand event | |
ref HandAnimatedTakingFromAtt | m_Taking |
deferred weapon event | |
ref HandAnimatedMovingToAtt | m_MovingTo |
ref HandAnimatedSwapping | m_Swapping |
ref HandAnimatedForceSwapping | m_FSwapping |
ref HandAnimatedForceSwapping_Inst | m_FSwappingInst |
|
protected |
Перекрестные ссылки Class::CastTo(), GetDayZPlayerOwner(), LogManager::IsWeaponLogEnable() и wpnDebugPrint().
Используется в ManBase::OnCommandClimbStart(), ManBase::OnCommandDeathStart(), ManBase::OnCommandFallStart(), ManBase::OnCommandMelee2Start(), ManBase::OnCommandSwimStart(), ManBase::OnJumpStart() и ManBase::OnStanceChange().
|
protected |
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
Перекрестные ссылки m_DeferredPostedHandEvent.
|
protected |
Перекрестные ссылки m_DeferredWeaponEvent и m_DeferredWeaponTimer.
Используется в DeferredWeaponFailed().
|
protected |
Используется в ValidateHandEvent() и ValidateSyncMove().
override void ClearInventoryReservation | ( | HumanInventory | inventory | ) |
|
protected |
void DeferredForceSwapEntities | ( | InventoryMode | mode, |
notnull EntityAI | item1, | ||
notnull EntityAI | item2, | ||
notnull InventoryLocation | dst1, | ||
notnull InventoryLocation | dst2 ) |
Перекрестные ссылки m_dst1, m_dst2, m_item1 и m_item2.
Используется в ForceSwapEntities() и HandleForceSwapEntities().
void DeferredHandEvent | ( | InventoryMode | mode, |
HandEventBase | e ) |
Используется в HandEvent().
void DeferredTakeToDst | ( | InventoryMode | mode, |
notnull InventoryLocation | src, | ||
notnull InventoryLocation | dst ) |
Перекрестные ссылки m_dst и m_src.
Используется в HandleTakeToDst() и TakeToDst().
|
protected |
Перекрестные ссылки CancelWeaponEvent(), Class::CastTo(), Error() и m_DeferredWeaponEvent.
Используется в HandleHandEvent(), HandleSwapEntities(), HandleTakeToDst(), ValidateHandEvent(), ValidateSwap() и ValidateSyncMove().
|
protected |
Перекрестные ссылки DeferredForceSwapEntities(), InventoryLocation::DumpToStringNullSafe(), GetDayZPlayerOwner(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), m_DeferredEvent, GameInventory::MakeSrcAndDstForForceSwap() и ToString().
|
protected |
Используется в AbortWeaponEvent(), ForceSwapEntities(), HandEvent(), HandleForceSwapEntities(), HandleHandEvent(), HandleInventory(), HandleSwapEntities(), HandleTakeToDst(), HandleWeaponEvents(), IsServerOrLocalPlayer(), NetSyncCurrentStateID(), OnAfterStoreLoad(), OnEventForRemoteWeapon(), OnHandleStoredInputUserData(), OnHandleStoredJunctureData(), OnHandsStateChanged(), OnInputUserDataForRemote(), OnInputUserDataProcess(), OnInventoryJunctureFromServer(), OnServerInventoryCommand(), PlayerCheckDropRequest(), PlayerCheckRequestDst(), PlayerCheckRequestSrc(), PlayerCheckSwapItemsRequest(), ProcessInputData(), StoreInputForRemotes(), SwapEntities(), SyncHandEventToRemote(), TakeToDst(), ValidateDestroy(), ValidateHandEvent(), ValidateSwap() и ValidateSyncMove().
|
protected |
Let the client know a failure happened
If singleplayer or the client is executing this
Перекрестные ссылки DeferredHandEvent(), GetDayZPlayerOwner(), GetGame(), IsProcessing(), m_DeferredEvent, OnInventoryFailure(), InventoryInputUserData::SerializeHandEvent() и DayZPlayerSyncJunctures::SJ_INVENTORY_FAILURE.
|
protected |
Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutShortMS, DeferredForceSwapEntities(), InventoryLocation::DumpToStringNullSafe(), Error(), GetDayZPlayerOwner(), GetGame(), inventoryDebugPrint(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), InventoryInputUserData::SendInputUserDataSwap() и ToString().
Используется в HandleInventoryManipulation().
|
protected |
Default structure suffices
Перекрестные ссылки EnableMovableOverride(), Error(), GetDayZPlayerOwner(), hndDebugPrint(), Debug::InventoryHFSMLog(), LogManager::IsInventoryHFSMLogEnable(), InventoryInputUserData::SendInputUserDataHandEvent(), InventoryInputUserData::SendServerHandEventViaInventoryCommand(), SendServerHandEventViaJuncture() и ToString().
Используется в HandleInventoryManipulation().
Перекрестные ссылки Class::CastTo(), GetDayZPlayerOwner(), HandAnimEventFactory(), hndDebugPrint(), hndDebugSpamALot(), LogManager::IsInventoryHFSMLogEnable(), SyncHandEventToRemote() и WeaponActionTypeToString().
Перекрестные ссылки ScriptInputUserData::CanStoreInputUserData(), HandleForceSwapEntities(), HandleHandEvent(), HandleSwapEntities(), HandleTakeToDst() и m_DeferredEvent.
|
protected |
Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutShortMS, InventoryLocation::DumpToStringNullSafe(), EnableMovableOverride(), Error(), GetDayZPlayerOwner(), GetGame(), inventoryDebugPrint(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), GameInventory::MakeSrcAndDstForSwap(), InventoryInputUserData::SendInputUserDataSwap() и ToString().
Используется в HandleInventoryManipulation().
|
protected |
Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutShortMS, DeferredTakeToDst(), InventoryLocation::DumpToStringNullSafe(), EnableMovableOverride(), Error(), GetDayZPlayerOwner(), GetGame(), inventoryDebugPrint(), Debug::InventoryHFSMLog(), Debug::InventoryMoveLog(), LogManager::IsInventoryHFSMLogEnable(), LogManager::IsInventoryMoveLogEnable(), InventoryInputUserData::SendInputUserDataMove() и ToString().
Используется в HandleInventoryManipulation().
Перекрестные ссылки Class::CastTo(), fsmDebugSpam(), GetDayZPlayerOwner(), LogManager::IsWeaponLogEnable(), m_DeferredWeaponEvent, m_DeferredWeaponTimer, WeaponActionTypeToString(), WeaponAnimEventFactory(), wpnDebugPrint() и wpnDebugSpamALot().
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside of a non-static system)
pre-init arrays
Перекрестные ссылки hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable(), m_FSwapping, m_FSwappingInst, m_MovingTo, m_Swapping и m_Taking.
|
protected |
Перекрестные ссылки Class::CastTo().
|
protected |
Перекрестные ссылки Class::CastTo().
|
protected |
Перекрестные ссылки m_DeferredEvent и m_DeferredPostedHandEvent.
Используется в HandEvent(), DayZPlayer::HandleADS() и ManBase::OnQuickBarSingleUse().
|
protected |
Перекрестные ссылки Class::CastTo().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner() и GetGame().
Перекрестные ссылки GetDayZPlayerOwner() и DayZPlayer::OnItemInHandsChanged().
Перекрестные ссылки GetDayZPlayerOwner() и DayZPlayer::OnItemInHandsChanged().
|
protected |
Перекрестные ссылки CreateWeaponEventFromContext(), Error(), fsmDebugSpam(), GetDayZPlayerOwner() и LogManager::IsWeaponLogEnable().
|
protected |
Перекрестные ссылки hndDebugSpam() и LogManager::IsInventoryHFSMLogEnable().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), LogManager::IsSyncLogEnable(), ProcessInputData() и syncDebugPrint().
|
protected |
Juncture is only ever Server Req->Client Ack and Perform->Server Perform, never remote
Перекрестные ссылки GetDayZPlayerOwner(), LogManager::IsSyncLogEnable(), ProcessInputData() и syncDebugPrint().
|
protected |
Перекрестные ссылки hndDebugPrint() и LogManager::IsInventoryHFSMLogEnable().
Используется в OnHandsStateChanged().
|
protected |
Перекрестные ссылки hndDebugPrint() и LogManager::IsInventoryHFSMLogEnable().
Используется в OnHandsStateChanged().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable(), OnHandsEnteredStableState() и OnHandsExitedStableState().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), LogManager::IsSyncLogEnable(), ProcessInputData() и syncDebugPrint().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), LogManager::IsSyncLogEnable(), StoreInputUserData() и syncDebugPrint().
|
protected |
TODO(kumarjac): Notify player here
Используется в HandEvent() и OnInventoryJunctureFailureFromServer().
|
protected |
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:
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
Перекрестные ссылки GetGame(), INPUT_UDT_INVENTORY и OnInventoryFailure().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), LogManager::IsSyncLogEnable(), StoreJunctureData() и syncDebugPrint().
|
protected |
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), LogManager::IsSyncLogEnable(), ProcessInputData() и syncDebugPrint().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner().
Используется в ValidateDestroy().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner().
Используется в ValidateSyncMove().
|
protected |
Перекрестные ссылки CheckRequestSrc() и GetDayZPlayerOwner().
Используется в ValidateDestroy(), ValidateSwap() и ValidateSyncMove().
|
protected |
Перекрестные ссылки GameInventory::c_MaxItemDistanceRadius и GetDayZPlayerOwner().
Используется в ValidateSwap().
|
protected |
Перекрестные ссылки Error(), LogManager::IsWeaponLogEnable(), m_DeferredWeaponEvent и wpnDebugPrint().
|
protected |
It should be impossible for juncture to be ran on remote
Serializer can be updated and re-written to when we may want to only correct the client instead of denying the inventory command
Only inform client about failure
General purpose serializer change from read to write here if the validation doesn't update it
Only send juncture back to client
Перекрестные ссылки Error(), GetDayZPlayerOwner(), DayZPlayerSyncJunctures::SJ_INVENTORY, DayZPlayerSyncJunctures::SJ_INVENTORY_FAILURE, StoreInputForRemotes(), ValidateDestroy(), ValidateHandEvent(), ValidateSwap() и ValidateSyncMove().
Используется в OnHandleStoredInputUserData(), OnHandleStoredJunctureData(), OnInputUserDataForRemote() и OnServerInventoryCommand().
Используется в ValidateHandEvent(), ValidateSwap() и ValidateSyncMove().
override bool ReserveInventory | ( | HumanInventory | inventory | ) |
Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutShortMS и m_dst.
|
staticprotected |
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
Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutMS, InventoryLocation::DumpToStringNullSafe(), Error(), GetGame(), LogManager::IsSyncLogEnable(), InventoryInputUserData::SerializeHandEvent(), DayZPlayerSyncJunctures::SJ_INVENTORY и syncDebugPrint().
Используется в HandleHandEvent().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), GetInstanceType(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable() и ToString().
|
protected |
Используется в OnInputUserDataProcess().
|
protected |
Используется в OnInventoryJunctureFromServer().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), m_DeferredEvent, GameInventory::MakeSrcAndDstForSwap() и ToString().
|
protected |
Перекрестные ссылки GetDayZPlayerOwner(), hndDebugPrint(), INPUT_UDT_HAND_REMOTE_EVENT и LogManager::IsInventoryHFSMLogEnable().
Используется в HandleInventory().
|
protected |
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
Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutMS, DeferredTakeToDst(), InventoryLocation::DumpToStringNullSafe(), GetDayZPlayerOwner(), GetGame(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), LogManager::IsSyncLogEnable(), m_DeferredEvent, InventoryInputUserData::SerializeMove(), DayZPlayerSyncJunctures::SJ_INVENTORY, syncDebugPrint() и ToString().
Используется в EntityAI::PredictiveMoveItemFromHandsToInventory().
|
protected |
TODO(kumarjac): Probably should be called through inventory juncture, we shouldn't allow the client to delete until the server says it is okay as there can be more reasons than "cheater" for it to be rejected such as desync
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
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
Перекрестные ссылки GameInventory::c_MaxItemDistanceRadius, InventoryLocation::DumpToStringNullSafe(), Error(), GetDayZPlayerOwner(), GetGame(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), PlayerCheckDropRequest(), PlayerCheckRequestSrc() и ToString().
Используется в ProcessInputData().
|
protected |
Pass partial information to guards so guards can do minimal checks if needed The guards can't prevent event so it would be incorrect to pass full InventoryValidation struct. We have to make sure guards don't inadvertantly produce different results in the FSM as that will create desync (two players attempting to put a rag into the same fireplace slot at the same time)
kumarjac: This indicates a failure in replication relationships as player full inventory should be synchronized always if player exists on the remote
TODO(kumarjac): Is this one correct to be 'RemoveMovableOverride' or are the other Validate methdos wrong with 'EnableMovableOverride'?
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
'HandEventBase.CheckRequestEx' updates failure reason
if it already happened on server, remote just needs to comply TODO(kumarjac): Move m_IsRemote check to inside of HandEventBase.CanPerformEventEx
'HandEventBase.CanPerformEventEx' updates failure reason
Check if this this is being executed on the server and not by a juncture or AI
Continuing on with execution of rest of the function
Is called twice unfortunately... but it works so won't change
TODO(kumarjac): We should probably set the result to failure like so
Перекрестные ссылки CheckForRope(), EnableMovableOverride(), Error(), GetDayZPlayerOwner(), GetInstanceType(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), LogManager::IsSyncLogEnable(), RemoveMovableOverride(), InventoryInputUserData::SerializeHandEvent() и syncDebugPrint().
Используется в ProcessInputData().
|
protected |
kumarjac: This indicates a failure in replication relationships as player full inventory should be synchronized always if player exists on the remote
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
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
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
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
Check if this this is being executed on the server and not by a juncture or AI
Continuing on with execution of rest of the function
Перекрестные ссылки GameInventory::c_InventoryReservationTimeoutShortMS, GameInventory::c_MaxItemDistanceRadius, GameInventory::CanForceSwapEntitiesEx(), InventoryLocation::DumpToStringNullSafe(), EnableMovableOverride(), Error(), GetDayZPlayerOwner(), GetInstanceType(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), LogManager::IsSyncLogEnable(), PlayerCheckRequestSrc(), PlayerCheckSwapItemsRequest(), RemoveMovableOverride(), InventoryInputUserData::SerializeSwap(), syncDebugPrint(), ToString() и TryAcquireTwoInventoryJuncturesFromServer().
Используется в ProcessInputData().
|
protected |
kumarjac: This indicates a failure in replication relationships as player full inventory should be synchronized always if player exists on the remote
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
kumarjac: This indicates a failure in replication relationships as player full inventory should be synchronized always if player exists on the remote
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
Check if this this is being executed on the server and not by a juncture or AI so we can lock the item and ensure replication relationships are setup
TODO(kumarjac): We should continue with the execution and not have this special block but making a change here now will require testing
Is called twice unfortunately...
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
Перекрестные ссылки GameInventory::c_MaxItemDistanceRadius, CheckForRope(), InventoryLocation::DumpToStringNullSafe(), EnableMovableOverride(), Error(), GetDayZPlayerOwner(), GetGame(), GetInstanceType(), GetTime(), Debug::InventoryMoveLog(), LogManager::IsInventoryMoveLogEnable(), LogManager::IsSyncLogEnable(), GameInventory::LocationCanMoveEntity(), GameInventory::LocationCanMoveEntitySyncCheck(), PlayerCheckRequestDst(), PlayerCheckRequestSrc(), RemoveMovableOverride(), syncDebugPrint(), ToString() и TryAcquireInventoryJunctureFromServer().
Используется в ProcessInputData().
m_DeferredEvent = NULL |
Используется в ForceSwapEntities(), HandEvent(), HandleInventoryManipulation(), IsProcessing(), SwapEntities() и TakeToDst().
|
protected |
Используется в CancelHandEvent() и IsProcessing().
|
protected |
deferred hand event
Используется в CancelWeaponEvent(), DeferredWeaponFailed(), HandleWeaponEvents() и PostWeaponEvent().
Используется в CancelWeaponEvent() и HandleWeaponEvents().
ref InventoryLocation m_dst |
Используется в ClearInventoryReservation(), DeferredTakeToDst(), WeaponStateBase::LoadCurrentFSMState(), WeaponStateBase::OnAbort(), WeaponStateBase::OnEntry(), WeaponStateBase::OnExit(), WeaponEventBase::ReadFromContext(), ReserveInventory(), WeaponStateBase::SaveCurrentFSMState(), WeaponEventBase::WeaponEventDetachMagazine(), WeaponEventBase::WeaponEventSwapMagazine() и WeaponEventBase::WriteToContext().
ref InventoryLocation m_dst1 |
Используется в DeferredForceSwapEntities().
ref InventoryLocation m_dst2 |
Используется в DeferredForceSwapEntities().
ref HandEventBase m_event |
DeferredSwapEntities m_item1 |
Используется в DeferredForceSwapEntities().
EntityAI m_item2 |
Используется в DeferredForceSwapEntities().
class DeferredEvent m_src |
Используется в DeferredTakeToDst().