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

◆ Can() [2/2]

bool ActionBase::Can ( PlayerBase player,
ActionTarget target,
ItemBase item,
int condition_mask )
inlineprotected

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

862 {
863 if (( (condition_mask & m_ConditionMask) != condition_mask ) || ( !IsFullBodyEx(player, target, item) && !player.IsPlayerInStance(GetStanceMaskEx(player, target, item)) ) || player.IsRolling())
864 return false;
865
866 if (HasTarget())
867 {
868 if (!FirearmActionBase.Cast(this))
869 {
870 EntityAI entity = EntityAI.Cast(target.GetObject());
871 if (entity && !target.GetObject().IsMan())
872 {
873 Man man = entity.GetHierarchyRootPlayer();
874 if (man && man != player)
875 return false;
876 }
877 }
878
879 if (m_ConditionTarget && !m_ConditionTarget.Can(player, target))
880 return false;
881 }
882
883 if (m_ConditionItem && !m_ConditionItem.Can(player, item))
884 return false;
885
886 if (!ActionCondition(player, target, item))
887 return false;
888
889 if (IsFullBodyEx(player, target, item))
890 {
891 int nextStance = GetClosestPossibleStance(player, target, item);
892 int stanceIdx = DayZPlayerUtils.ConvertStanceMaskToStanceIdx(nextStance);
893 if (stanceIdx != -1 && !DayZPlayerUtils.PlayerCanChangeStance(player, stanceIdx ))
894 return false;
895 }
896
897 return true;
898 }
class LogManager EntityAI
void DayZPlayerUtils()
cannot be instantiated
Определения DayZPlayerUtils.c:465
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:403
int GetClosestPossibleStance(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:600
int GetStanceMaskEx(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:581
bool HasTarget()
Определения ActionBase.c:244
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
bool IsFullBodyEx(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:703
int m_ConditionMask
Определения ActionBase.c:69
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65

Перекрестные ссылки ActionCondition(), ActionTarget, DayZPlayerUtils(), GetClosestPossibleStance(), GetStanceMaskEx(), HasTarget(), IsFullBodyEx(), m_ConditionItem, m_ConditionMask и m_ConditionTarget.

Используется в _GetSelectedActions(), Can(), ActionManagerClient::CanPerformActionFromInventory(), ActionManagerClient::CanPerformActionFromQuickbar(), ActionManagerClient::CanSetActionFromInventory(), NoIndicationActionInputBase::GetAction(), ActionManagerClient::PerformActionFromInventory(), ActionManagerClient::PerformActionFromQuickbar(), ActionManagerClient::SetActionFromInventory(), ActionManagerServer::StartDeliveredAction(), CarHornShortActionInput::UpdatePossibleActions(), ToggleLightsActionInput::UpdatePossibleActions() и ToggleNVGActionInput::UpdatePossibleActions().