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

◆ ActionCondition()

override bool ActionAnimateSeats::ActionCondition ( PlayerBase player,
ActionTarget target,
ItemBase item )
inlineprivate

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

9 {
10 if( !target ) return false;
11 if( !IsInReach(player, target, UAMaxDistances.DEFAULT) ) return false;
12
13 Object targetObject = target.GetObject();
14 Entity targetEnt = Entity.Cast(targetObject);
15 Transport transport;
16 CarScript car;
17 int crewIdx;
18
19 //string selection = targetObject.GetActionComponentName(target.GetComponentIndex());
20 array<string> selections = new array<string>();
21 targetObject.GetActionComponentNameList(target.GetComponentIndex(), selections);
22
23
24 if ( !Class.CastTo(transport, targetObject) )
25 return false;
26
27 if ( Class.CastTo(car, targetEnt) )
28 {
29 for (int i = 0; i < selections.Count(); i++)
30 {
31 m_AnimSource = car.GetAnimSourceFromSelection( selections[i]) ;
32 if ( m_AnimSource != "" )
33 {
34 //return true; //TODO:: NEED A LINK BETWEEN SeatBack and seat with crew after that we can REMOVE the return
35
36 HumanCommandVehicle vehCmd = player.GetCommand_Vehicle();
37
38 if ( m_AnimSource == "SeatDriver" )
39 {
40 if ( transport.CrewMember( DayZPlayerConstants.VEHICLESEAT_DRIVER ) )
41 return false;
42
43 if ( !vehCmd && car.GetCarDoorsState( "NivaDriverDoors" ) == CarDoorState.DOORS_CLOSED )
44 return false;
45 }
46
47 if ( m_AnimSource == "SeatCoDriver" )
48 {
49 if ( transport.CrewMember( DayZPlayerConstants.VEHICLESEAT_CODRIVER ) )
50 return false;
51
52 if ( !vehCmd && car.GetCarDoorsState( "NivaCoDriverDoors" ) == CarDoorState.DOORS_CLOSED )
53 return false;
54 }
55
56 if ( !vehCmd && !transport.CanReachSeatFromDoors(selections[i], player.GetPosition(), 1.0) )
57 return false;
58
59 return true;
60 }
61 }
62 }
63
64 return false;
65 }
CarDoorState
Определения CarScript.c:2
void CarScript()
Определения CarScript.c:280
bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
Определения ActionBase.c:1158
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:163
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:327
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
class LOD Object

Перекрестные ссылки ActionTarget, Class::CastTo(), UAMaxDistances::DEFAULT, CarScript::GetAnimSourceFromSelection(), CarScript::GetCarDoorsState(), ActionBase::IsInReach() и ActionAnimateCarSelection::m_AnimSource.