DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ ActionStart()

void ActionManagerClient::ActionStart ( ActionBase action,
ActionTarget target,
ItemBase item,
Param extra_data = NULL )
inlineprotected

См. определение в файле ActionManagerClient.c строка 626

627 {
628 if (!m_CurrentActionData && action && ActionPossibilityCheck(m_Player.GetCurrentCommandID()))
629 {
630#ifdef ENABLE_LOGGING
631 if ( LogManager.IsActionLogEnable() )
632 {
633 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp(), this.ToString() , "n/a", "ActionStart", m_Player.ToString() );
634 }
635#endif
639 m_ActionInputWantEnd = false;
640
641 if (action.CanBePerformedFromQuickbar())
642 m_Player.SetActionEndInput(action);
643
645#ifdef ENABLE_LOGGING
646 if (LogManager.IsActionLogEnable())
647 {
648 if ( target )
649 {
650 Debug.ActionLog("Item = " + item + ", " + target.DumpToString(), action.ToString() , "n/a", "ActionStart", m_Player.ToString());
651 }
652 else
653 {
654 Debug.ActionLog("Item = " + item + ", no target", action.ToString() , "n/a", "ActionStart", m_Player.ToString());
655 }
656 }
657#endif
658 m_Interrupted = false;
659 if (g_Game.IsMultiplayer() && !action.IsLocal())
660 {
661 if (!ScriptInputUserData.CanStoreInputUserData())
662 {
663 DPrint("ScriptInputUserData already posted - ActionManagerClient");
664#ifdef ENABLE_LOGGING
665 if (LogManager.IsActionLogEnable())
666 {
667 Debug.ActionLog("Cannot start because ScriptInputUserData is already used", action.ToString() , "n/a", "ActionStart", m_Player.ToString());
668 }
669#endif
670 return;
671 }
672 }
673
674 if (!action.SetupAction(m_Player, target, item, m_CurrentActionData, extra_data))
675 {
676 DPrint("Can not inicialize action" + action + " - ActionManagerClient");
677 m_CurrentActionData = NULL;
678 return;
679 }
680#ifdef ENABLE_LOGGING
681 if (LogManager.IsActionLogEnable())
682 {
683 Debug.ActionLog("Action data created wait to start", action.ToString() , "n/a", "ActionStart", m_Player.ToString());
684 }
685#endif
686
687 if (g_Game.IsMultiplayer() && !action.IsLocal())
688 {
689 ScriptInputUserData ctx = new ScriptInputUserData;
691 ctx.Write(action.GetID());
692
693 action.WriteToContext(ctx, m_CurrentActionData);
694
695 if (action.UseAcknowledgment())
696 {
699
701 }
702#ifdef ENABLE_LOGGING
703 if ( LogManager.IsActionLogEnable() )
704 {
705 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " ctx.Send()", this.ToString() , "n/a", "ActionStart", m_Player.ToString() );
706 }
707#endif
708 ctx.Send();
709
710 if (!action.UseAcknowledgment())
711 {
712 action.Start(m_CurrentActionData);
713 if (action.IsInstant())
714 OnActionEnd();
715 }
716 }
717 else
718 {
719 action.Start(m_CurrentActionData);
720 if (action.IsInstant())
721 OnActionEnd();
722 }
723 }
724 }
const int INPUT_UDT_STANDARD_ACTION_START
bool m_Interrupted
Определения ActionManagerBase.c:49
ref ActionData m_CurrentActionData
Определения ActionManagerBase.c:61
bool m_ActionInputWantEnd
Определения ActionManagerBase.c:53
bool ActionPossibilityCheck(int pCurrentCommandID)
Определения ActionManagerBase.c:262
int m_PendingActionAcknowledgmentID
Определения ActionManagerBase.c:59
bool m_ActionWantEndRequest
Определения ActionManagerBase.c:52
string Debug()
Определения CachedEquipmentStorageBase.c:26
DayZGame g_Game
Определения DayZGame.c:4074
DayZPlayer m_Player
Определения Hand_Events.c:42
int m_State
Определения ActionBase.c:38
override void OnActionEnd()
Определения ActionManagerClient.c:830
bool m_ActionWantEndRequest_Send
Определения ActionManagerClient.c:22
void HandleInputsOnActionStart(ActionBase action)
Определения ActionManagerClient.c:726
int m_LastAcknowledgmentID
Определения ActionManagerClient.c:8
bool m_ActionInputWantEnd_Send
Определения ActionManagerClient.c:23
proto native void Send()
proto bool Write(void value_out)
proto void DPrint(string var)
Prints content of variable to console/log. Should be used for critical messages so it will appear in ...
const int UA_AM_PENDING
Определения 3_Game/DayZ/constants.c:509

Перекрестные ссылки ActionBase(), Debug::ActionLog(), ActionPossibilityCheck(), ActionTarget(), ScriptInputUserData::CanStoreInputUserData(), DPrint(), g_Game, HandleInputsOnActionStart(), INPUT_UDT_STANDARD_ACTION_START, LogManager::IsActionLogEnable(), m_ActionInputWantEnd, m_ActionInputWantEnd_Send, m_ActionWantEndRequest, m_ActionWantEndRequest_Send, m_CurrentActionData, m_Interrupted, m_LastAcknowledgmentID, m_PendingActionAcknowledgmentID, m_Player, OnActionEnd(), ScriptInputUserData::Send(), UA_AM_PENDING и Serializer::Write().

Используется в InputsUpdate(), OnInstantAction(), PerformActionFromInventory(), PerformActionFromQuickbar() и PerformActionStart().