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

◆ Can() [2/2]

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

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

898 {
899 if (( (condition_mask & m_ConditionMask) != condition_mask ) || ( !IsFullBodyEx(player, target, item) && !player.IsPlayerInStance(GetStanceMaskEx(player, target, item)) ) || player.IsRolling())
900 return false;
901
902 if (HasTarget())
903 {
904 if (!FirearmActionBase.Cast(this))
905 {
906 EntityAI entity = EntityAI.Cast(target.GetObject());
907 if (entity && !target.GetObject().IsMan())
908 {
909 Man man = entity.GetHierarchyRootPlayer();
910 if (man && man != player)
911 return false;
912 }
913 }
914
915 if (m_ConditionTarget && !m_ConditionTarget.Can(player, target))
916 return false;
917 }
918
919 if (m_ConditionItem && !m_ConditionItem.Can(player, item))
920 return false;
921
922 if (!ActionCondition(player, target, item))
923 return false;
924
925 if (IsFullBodyEx(player, target, item))
926 {
927 int nextStance = GetClosestPossibleStance(player, target, item);
928 int stanceIdx = DayZPlayerUtils.ConvertStanceMaskToStanceIdx(nextStance);
929 if (stanceIdx != -1 && !DayZPlayerUtils.PlayerCanChangeStance(player, stanceIdx ))
930 return false;
931 }
932
933 return true;
934 }
class LogManager EntityAI
void DayZPlayerUtils()
cannot be instantiated
Определения DayZPlayerUtils.c:465
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:409
int GetClosestPossibleStance(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:636
int GetStanceMaskEx(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:617
bool HasTarget()
Определения ActionBase.c:244
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
bool IsFullBodyEx(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:739
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().