DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionGetInTransport.c
См. документацию.
2{
4 {
5 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
6 m_Text = "#get_in_vehicle";
7 }
8
9
15
16 override typename GetInputType()
17 {
19 }
20
21 override bool HasProgress()
22 {
23 return false;
24 }
25
26 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
27 {
28 Transport trans = null;
29
30 if (!target)
31 {
32 return false;
33 }
34
35 if (!Class.CastTo(trans, target.GetObject()))
36 {
37 return false;
38 }
39
40 if (player.GetItemInHands() && player.GetItemInHands().IsHeavyBehaviour())
41 {
42 return false;
43 }
44
45 if (player.GetCommand_Vehicle())
46 {
47 return false;
48 }
49
50 int componentIndex = target.GetComponentIndex();
51 int crew_index = trans.CrewPositionIndex(componentIndex);
52 if (crew_index < 0)
53 {
54 return false;
55 }
56
57 Human crew = trans.CrewMember(crew_index);
58 if (crew)
59 {
60 return false;
61 }
62
63 if (!trans.CrewCanGetThrough(crew_index) || !trans.IsAreaAtDoorFree(crew_index))
64 {
65 return false;
66 }
67
68 array<string> selections = new array<string>();
69 trans.GetActionComponentNameList(componentIndex, selections);
70
71 for (int i = 0; i < selections.Count(); i++)
72 {
73 if (trans.CanReachSeatFromDoors(selections[i], player.GetPosition(), 1.0))
74 {
75 return true;
76 }
77 }
78
79 return false;
80 }
81
82 override void Start(ActionData action_data)
83 {
84 super.Start( action_data );
85
86 Transport trans = Transport.Cast(action_data.m_Target.GetObject());
87 int componentIndex = action_data.m_Target.GetComponentIndex();
88 int crew_index = trans.CrewPositionIndex(componentIndex);
89
90
91 int seat = trans.GetSeatAnimationType(crew_index);
92 HumanCommandVehicle vehCommand = action_data.m_Player.StartCommand_Vehicle(trans, crew_index, seat);
93 if (vehCommand)
94 {
95 vehCommand.SetVehicleType(trans.GetAnimInstance());
96
97 GetDayZGame().GetBacklit().OnEnterCar();
98 if (action_data.m_Player.GetInventory())
99 {
100 action_data.m_Player.GetInventory().LockInventory(LOCK_FROM_SCRIPT);
101 }
102 }
103 }
104
105 override void OnStartServer(ActionData action_data)
106 {
107 super.OnStartServer(action_data);
108
109 CarScript car = CarScript.Cast(action_data.m_Target.GetObject());
110 if (car)
111 {
112 car.ForceUpdateLightsStart();
113 }
114 }
115
116 override bool CanBeUsedInRestrain()
117 {
118 return true;
119 }
120
121 override void OnUpdate(ActionData action_data)
122 {
123 if (action_data.m_State == UA_START)
124 {
125 if (!action_data.m_Player.GetCommand_Vehicle() || !action_data.m_Player.GetCommand_Vehicle().IsGettingIn())
126 {
127 End(action_data);
128 }
129 }
130 }
131
132 override int GetActionCategory()
133 {
134 return AC_INTERACT;
135 }
136
137 override void OnEndClient(ActionData action_data)
138 {
139 if (action_data.m_Player.GetInventory())
140 {
141 action_data.m_Player.GetInventory().UnlockInventory(LOCK_FROM_SCRIPT);
142 }
143 }
144
145 override void OnEndServer(ActionData action_data)
146 {
147 super.OnEndServer(action_data);
148
149 if (action_data.m_Player.GetInventory())
150 {
151 action_data.m_Player.GetInventory().UnlockInventory(LOCK_FROM_SCRIPT);
152 }
153
154 CarScript car = CarScript.Cast(action_data.m_Target.GetObject());
155 if (car)
156 {
157 car.ForceUpdateLightsEnd();
158 }
159 }
160
161 override bool AddActionJuncture(ActionData action_data)
162 {
163 Transport trans = Transport.Cast(action_data.m_Target.GetObject());
164 bool accepted = false;
165 int nextSeat = trans.CrewPositionIndex( action_data.m_Target.GetComponentIndex() );
166 Transport transport = Transport.Cast(action_data.m_Target.GetObject());
168 if (transport)
169 {
170 il.SetVehicle(transport, action_data.m_Player, nextSeat);
171
172 //Lock target
173 if (GetGame().AddInventoryJunctureEx(action_data.m_Player, action_data.m_Player, il, true, 10000))
174 {
175 accepted = true;
176 action_data.m_ReservedInventoryLocations.Insert(il);
177 }
178 }
179
180 return accepted;
181 }
182};
const int AC_INTERACT
Определения _constants.c:4
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
DayZGame GetDayZGame()
Определения DayZGame.c:3870
proto static native void End()
Finalizes the testing process.
int m_StanceMask
Определения ActionBase.c:62
void ActionBase()
Определения ActionBase.c:82
string m_Text
Определения ActionBase.c:58
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
override void Start(ActionData action_data)
Определения ActionGetInTransport.c:82
override bool HasProgress()
Определения ActionGetInTransport.c:21
override void OnEndServer(ActionData action_data)
Определения ActionGetInTransport.c:145
override void OnStartServer(ActionData action_data)
Определения ActionGetInTransport.c:105
override bool AddActionJuncture(ActionData action_data)
Определения ActionGetInTransport.c:161
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionGetInTransport.c:26
override void CreateConditionComponents()
Определения ActionGetInTransport.c:10
override bool CanBeUsedInRestrain()
Определения ActionGetInTransport.c:116
override GetInputType()
Определения ActionGetInTransport.c:16
override void OnUpdate(ActionData action_data)
Определения ActionGetInTransport.c:121
void ActionGetInTransport()
Определения ActionGetInTransport.c:3
override int GetActionCategory()
Определения ActionGetInTransport.c:132
override void OnEndClient(ActionData action_data)
Определения ActionGetInTransport.c:137
Определения CCINone.c:2
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
proto native void SetVehicleType(int pVehicleType)
Определения human.c:690
proto native void SetVehicle(notnull EntityAI parent, EntityAI e, int idx)
InventoryLocation.
Определения InventoryLocation.c:29
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
override bool IsAreaAtDoorFree(int currentSeat, float maxAllowedObjHeight=0.5, float horizontalExtents=0.5, float playerHeight=1.7)
Определения Car.c:102
Base native class for all motorized wheeled vehicles.
Определения Boat.c:28
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
const int UA_START
Определения constants.c:467