DayZ 1.27
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 }
void CarScript()
Определения CarScript.c:280
bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
Определения ActionBase.c:1158
int m_CommandUID
Определения AnimatedActionBase.c:143
override int GetSeatIndexFromDoor(string pDoorSelection)
Определения OffroadHatchback.c:427
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:327
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602

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