DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionStartEngine.c
См. документацию.
8
10{
11 private const int SOUND_IGNITION_DELAY = 700; // ms, delay for ignition sound to match animation of hand touching the key
12 private const float ROUGH_SPECIALTY_WEIGHT = 0.5;
13 static const float MINIMUM_BATTERY_ENERGY = 5.0;
14
15 bool m_BatteryCon = false;
16 bool m_SparkCon = false;
17 bool m_BeltCon = false;
18 bool m_FuelCon = false;
19
21 {
22 m_CallbackClass = ActionStartCarCB;
23 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_STARTENGINE;
24 m_StanceMask = DayZPlayerConstants.STANCEMASK_ALL;
25 m_SpecialtyWeight = ROUGH_SPECIALTY_WEIGHT;
26 m_LockTargetOnUse = false;
27 m_Text = "#start_the_car";
28 }
29
31 {
32 m_ConditionTarget = new CCTNone();
33 m_ConditionItem = new CCINone();
34 }
35
36 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
37 {
38 HumanCommandVehicle vehCommand = player.GetCommand_Vehicle();
39 if (vehCommand)
40 {
41 Transport trans = vehCommand.GetTransport();
42 if (trans)
43 {
44 Car car;
45 if (Class.CastTo(car, trans) && !car.EngineIsOn())
46 {
47 if (car.GetHealthLevel("Engine") >= GameConstants.STATE_RUINED)
48 {
49 return false;
50 }
51
52 return car.CrewMemberIndex(player) == DayZPlayerConstants.VEHICLESEAT_DRIVER);
53 }
54 }
55 }
56
57 return false;
58 }
59
60 override void OnStartServer(ActionData action_data)
61 {
62 super.OnStartServer(action_data);
63
64 HumanCommandVehicle vehCommand = action_data.m_Player.GetCommand_Vehicle();
65 if (!vehCommand)
66 return;
67
68 CarScript car = CarScript.Cast(vehCommand.GetTransport());
69 if (!car)
70 return;
71
72 if (car.CheckOperationalState())
73 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(car.SetCarEngineSoundState, SOUND_IGNITION_DELAY, false, CarEngineSoundState.STARTING);
74
75 }
76
77 override void OnEndServer(ActionData action_data)
78 {
79 super.OnEndServer(action_data);
80
81 HumanCommandVehicle vehCommand = action_data.m_Player.GetCommand_Vehicle();
82 if (!vehCommand)
83 return;
84
85 Transport trans = vehCommand.GetTransport();
86 if (!trans)
87 return;
88
89 CarScript car;
90 if (Class.CastTo(car, trans))
91 car.SetCarEngineSoundState(CarEngineSoundState.NONE);
92 }
93
94 override void OnFinishProgressServer(ActionData action_data)
95 {
96 HumanCommandVehicle vehCommand = action_data.m_Player.GetCommand_Vehicle();
97 if (vehCommand)
98 {
99 Transport trans = vehCommand.GetTransport();
100 if (trans)
101 {
102 CarScript car;
103 if (Class.CastTo(car, trans))
104 {
105 car.EngineStart();
106 }
107 }
108 }
109 }
110
111 override void OnExecuteServer(ActionData action_data)
112 {
113 HumanCommandVehicle vehCommand = action_data.m_Player.GetCommand_Vehicle();
114 if (vehCommand)
115 {
116 Transport trans = vehCommand.GetTransport();
117 if (trans)
118 {
119 CarScript car;
120 if (Class.CastTo(car, trans))
121 {
122 car.OnBeforeEngineStart();
123 }
124 }
125 }
126 }
127
128 override bool CanBeUsedInVehicle()
129 {
130 return true;
131 }
132
133 override bool HasTarget()
134 {
135 return false;
136 }
137}
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
static const float MINIMUM_BATTERY_ENERGY
Определения ActionStartEngine.c:13
ActionStartCarCB SOUND_IGNITION_DELAY
bool m_SparkCon
DEPRECATED.
Определения ActionStartEngine.c:16
bool m_BatteryCon
DEPRECATED.
Определения ActionStartEngine.c:15
void ActionStartEngine()
DEPRECATED.
Определения ActionStartEngine.c:20
bool m_FuelCon
DEPRECATED.
Определения ActionStartEngine.c:18
bool m_BeltCon
DEPRECATED.
Определения ActionStartEngine.c:17
const float ROUGH_SPECIALTY_WEIGHT
Определения ActionStartEngine.c:12
class ActionTargets ActionTarget
bool CanBeUsedInVehicle()
Определения ActionBase.c:323
bool HasTarget()
Определения ActionBase.c:244
void CreateConditionComponents()
Определения ActionBase.c:230
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void OnFinishProgressServer(ActionData action_data)
Определения ActionContinuousBase.c:283
override void CreateActionComponent()
Определения ActionStartEngine.c:3
override void OnStartServer(ActionData action_data)
Определения AnimatedActionBase.c:489
override void OnEndServer(ActionData action_data)
Определения AnimatedActionBase.c:497
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:240
void OnExecuteServer(ActionData action_data)
Определения AnimatedActionBase.c:175
Определения CCINone.c:2
Определения CCTNone.c:2
override ScriptCallQueue GetCallQueue(int call_category)
Определения DayZGame.c:1187
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения constants.c:659
proto native Transport GetTransport()
Определения human.c:690
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
proto void CallLater(func fn, int delay=0, bool repeat=false, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
Base native class for all motorized wheeled vehicles.
Определения Boat.c:28
const float START_ENGINE
Определения ActionConstants.c:101
Определения ActionConstants.c:28
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 STATE_RUINED
Определения constants.c:846
const int CALL_CATEGORY_GAMEPLAY
Определения tools.c:10