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

◆ Can() [2/2]

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

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

874 {
875 if (( (condition_mask & m_ConditionMask) != condition_mask ) || ( !IsFullBodyEx(player, target, item) && !player.IsPlayerInStance(GetStanceMaskEx(player, target, item)) ) || player.IsRolling())
876 return false;
877
878 if (HasTarget())
879 {
880 if (!FirearmActionBase.Cast(this))
881 {
882 EntityAI entity = EntityAI.Cast(target.GetObject());
883 if (entity && !target.GetObject().IsMan())
884 {
885 Man man = entity.GetHierarchyRootPlayer();
886 if (man && man != player)
887 return false;
888 }
889 }
890
891 if (m_ConditionTarget && !m_ConditionTarget.Can(player, target))
892 return false;
893 }
894
895 if (m_ConditionItem && !m_ConditionItem.Can(player, item))
896 return false;
897
898 if (!ActionCondition(player, target, item))
899 return false;
900
901 if (IsFullBodyEx(player, target, item))
902 {
903 int nextStance = GetClosestPossibleStance(player, target, item);
904 int stanceIdx = DayZPlayerUtils.ConvertStanceMaskToStanceIdx(nextStance);
905 if (stanceIdx != -1 && !DayZPlayerUtils.PlayerCanChangeStance(player, stanceIdx ))
906 return false;
907 }
908
909 return true;
910 }
class LogManager EntityAI
void DayZPlayerUtils()
cannot be instantiated
Определения DayZPlayerUtils.c:465
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:415
int GetClosestPossibleStance(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:612
int GetStanceMaskEx(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:593
bool HasTarget()
Определения ActionBase.c:250
ref CCIBase m_ConditionItem
Определения ActionBase.c:70
bool IsFullBodyEx(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:715
int m_ConditionMask
Определения ActionBase.c:75
ref CCTBase m_ConditionTarget
Определения ActionBase.c:71

Перекрестные ссылки 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().