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

◆ PerformActionFromQuickbar()

void ActionManagerClient::PerformActionFromQuickbar ( ItemBase mainItem,
ItemBase targetItem )
inlineprotected

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

969 {
970 ItemBase itemInHand = m_Player.GetItemInHands();
971 ActionTarget target;
972 ItemBase parent = null;
973 if (targetItem)
974 parent = ItemBase.Cast(targetItem.GetHierarchyParent());
975 target = new ActionTarget(targetItem, parent, -1, vector.Zero, -1);
976 bool hasTarget = targetItem != NULL;
977
978 if (mainItem)
979 {
980 ActionBase picked_action;
981 array<ActionBase_Basic> actions;
982 int i;
983
984 mainItem.GetActions(QuickaBarActionInput, actions);
985 if (actions)
986 {
987 for (i = 0; i < actions.Count(); i++)
988 {
989 picked_action = ActionBase.Cast(actions[i]);
990 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand))
991 {
992 if (hasTarget == picked_action.HasTarget())
993 {
994 ActionStart(picked_action, target, mainItem);
995 return;
996 }
997 }
998 }
999 }
1000
1001 //First continuous actions
1002 mainItem.GetActions(ContinuousDefaultActionInput, actions);
1003 if (actions)
1004 {
1005 for (i = 0; i < actions.Count(); i++)
1006 {
1007 picked_action = ActionBase.Cast(actions[i]);
1008 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
1009 {
1010 if (hasTarget == picked_action.HasTarget())
1011 {
1012 ActionStart(picked_action, target, mainItem);
1013 return;
1014 }
1015 }
1016 }
1017 }
1018 //Second check single use actions
1019 mainItem.GetActions(DefaultActionInput, actions);
1020 if (actions)
1021 {
1022 for (i = 0; i < actions.Count(); i++)
1023 {
1024 picked_action = ActionBase.Cast(actions[i]);
1025 if (picked_action && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
1026 {
1027 if (hasTarget == picked_action.HasTarget())
1028 {
1029 ActionStart(picked_action, target, mainItem);
1030 return;
1031 }
1032 }
1033 }
1034 }
1035
1036 }
1037 }
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
void ActionStart(ActionBase action, ActionTarget target, ItemBase item, Param extra_data=NULL)
Определения ActionManagerClient.c:598

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

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