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

◆ ActionCondition()

override bool ActionCarDoorsOutside::ActionCondition ( PlayerBase player,
ActionTarget target,
ItemBase item )
inlineprotected

reach check from outside of car

player is outside of vehicle

player is looking at one of the doors, can't open if obstructed

if player is in car and cannot reach doors

is in reach, should open the door

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

20 {
21 CarScript car = null;
22
24 if (!IsInReach(player, target, UAMaxDistances.DEFAULT))
25 {
26 return false;
27 }
28
30 if (Class.CastTo(car, target.GetParent()))
31 {
32 array<string> selections = new array<string>();
33
34 CarDoor carDoor = CarDoor.Cast(target.GetObject());
35 if (carDoor)
36 {
37 carDoor.GetActionComponentNameList(target.GetComponentIndex(), selections);
38
39 string animSource = "";
40
41 for (int i = 0; i < selections.Count(); i++)
42 {
43 animSource = car.GetAnimSourceFromSelection(selections[i]);
44 if (animSource != "")
45 {
46 int idx = car.GetSeatIndexFromDoor(animSource);
47 if (idx != -1 && !car.IsAreaAtDoorFree(idx))
48 {
49 return false;
50 }
51
53 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
54
55 float animationPhase = car.GetAnimationPhase(animSource);
57 return (m_IsOpening && animationPhase <= 0.5 ) || ( !m_IsOpening && animationPhase > 0.5);
58 }
59 }
60 }
61 }
62
63 return false;
64 }
bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
Определения ActionBase.c:1197
int m_CommandUID
Определения AnimatedActionBase.c:143
override int GetSeatIndexFromDoor(string pDoorSelection)
Определения OffroadHatchback.c:428
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:328
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602

Перекрестные ссылки ActionTarget(), Class::CastTo(), UAMaxDistances::DEFAULT, CarScript::GetAnimSourceFromSelection(), CarScript::GetSeatIndexFromDoor(), ActionBase::IsInReach(), AnimatedActionBase::m_CommandUID и m_IsOpening.