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

◆ CanPerformActionFromQuickbar()

bool ActionManagerClient::CanPerformActionFromQuickbar ( ItemBase mainItem,
ItemBase targetItem )
inlineprotected

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

911 {
912 ItemBase itemInHand = m_Player.GetItemInHands();
913 ActionTarget target;
914 target = new ActionTarget(targetItem, null, -1, vector.Zero, -1);
915 bool hasTarget = targetItem != NULL;
916
917 if (mainItem)
918 {
919 array<ActionBase_Basic> actions;
920 ActionBase picked_action;
921 int i;
922
923 mainItem.GetActions(QuickaBarActionInput, actions);
924 if (actions)
925 {
926 for (i = 0; i < actions.Count(); i++)
927 {
928 picked_action = ActionBase.Cast(actions[i]);
929 if (picked_action && picked_action.Can(m_Player,target, itemInHand))
930 {
931 if (hasTarget == picked_action.HasTarget())
932 return true;
933 }
934 }
935 }
936 //First check continuous actions
937 mainItem.GetActions(ContinuousDefaultActionInput, actions);
938 if (actions)
939 {
940 for (i = 0; i < actions.Count(); i++)
941 {
942 picked_action = ActionBase.Cast(actions[i]);
943 if (picked_action && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
944 {
945 if (hasTarget == picked_action.HasTarget())
946 return true;
947 }
948 }
949 }
950 //second single use actions
951 mainItem.GetActions(DefaultActionInput, actions);
952 if (actions)
953 {
954 for (i = 0; i < actions.Count(); i++)
955 {
956 picked_action = ActionBase.Cast(actions[i]);
957 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
958 {
959 if (hasTarget == picked_action.HasTarget())
960 return true;
961 }
962 }
963 }
964 }
965 return false;
966 }
void ContinuousDefaultActionInput(PlayerBase player)
Определения ActionInput.c:607
class ActionTargets ActionTarget
class GP5GasMask extends MaskBase ItemBase
DayZPlayer m_Player
Определения Hand_Events.c:42
bool HasTarget()
Определения ActionBase.c:244
bool CanBePerformedFromQuickbar()
Определения ActionBase.c:303
bool Can(PlayerBase player, ActionTarget target, ItemBase item, int condition_mask)
Определения ActionBase.c:861

Перекрестные ссылки ActionTarget, ActionBase::Can(), ActionBase::CanBePerformedFromQuickbar(), ContinuousDefaultActionInput(), ActionBase::HasTarget(), m_Player и vector::Zero.

Используется в ManBase::OnQuickBarContinuousUseStart().