DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionRepairBoatEngine.c
См. документацию.
2{
7}
8
10{
12 {
13 m_CallbackClass = ActionRepairBoatEngineCB;
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_FLAME_REPAIR;
15 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
16 m_FullBody = true;
17 m_LockTargetOnUse = false;
18 m_Text = "#repair";
19 }
20
21 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
22 {
23 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
24 return false;
25
26 Blowtorch bt = Blowtorch.Cast(item);
27 if (!bt.HasEnoughEnergyForRepair(UATimeSpent.BASEBUILDING_REPAIR_MEDIUM))
28 return false;
29
30 BoatScript boat = BoatScript.Cast(target.GetObject());
31 if (!boat || boat.EngineIsOn())
32 return false;
33
34 if (GetGame().IsDedicatedServer())
35 return true;
36
37 string damageZone = "";
38 array<string> selections = new array<string>();
39 boat.GetActionComponentNameList(target.GetComponentIndex(), selections, LOD.NAME_VIEW);
40
41 foreach (string selection : selections)
42 {
43 if (boat && DamageSystem.GetDamageZoneFromComponentName(boat, selection, damageZone))
44 {
45 if (damageZone == "Engine")
46 {
47 int zoneHP = boat.GetHealthLevel(damageZone);
48 if (zoneHP > GameConstants.STATE_WORN && zoneHP < GameConstants.STATE_RUINED)
49 {
50 m_CurrentDamageZone = damageZone;
51 return true;
52 }
53 }
54 }
55 }
56
57 return false;
58 }
59
60 override void AdjustVehicleHealthServer(ActionData action_data)
61 {
62 super.AdjustVehicleHealthServer(action_data);
63
64 MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, UADamageApplied.BUILD);
65 }
66
67 override void OnStartAnimationLoopServer(ActionData action_data)
68 {
69 super.OnStartAnimationLoopServer(action_data);
70
71 action_data.m_MainItem.GetCompEM().SwitchOn();
72 }
73
74 override void OnFinishProgressServer(ActionData action_data)
75 {
76 super.OnFinishProgressServer(action_data);
77 }
78
79 override void OnEndServer(ActionData action_data)
80 {
81 super.OnEndServer(action_data);
82
83 action_data.m_MainItem.GetCompEM().SwitchOff();
84 }
85}
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
ActionRepairBoatEngineCB ActionRepairVehiclePartCB ActionRepairBoatEngine()
Определения ActionRepairBoatEngine.c:11
class ActionTargets ActionTarget
eBrokenLegs
Определения EBrokenLegs.c:2
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void OnStartAnimationLoopServer(ActionData action_data)
Определения ActionContinuousBase.c:266
override void CreateActionComponent()
Определения ActionRepairBoatEngine.c:3
override void OnFinishProgressServer(ActionData action_data)
Определения ActionRepairVehiclePartBase.c:29
void AdjustVehicleHealthServer(ActionData action_data)
Определения ActionRepairVehiclePartBase.c:35
override void OnEndServer(ActionData action_data)
Определения AnimatedActionBase.c:497
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:240
Определения BoatScript.c:31
Определения constants.c:659
Определения InventoryItem.c:731
static const string NAME_VIEW
Определения gameplay.c:207
LOD class.
Определения gameplay.c:204
Определения PlayerBaseClient.c:2
const float BUILD
Определения ActionConstants.c:148
const float BASEBUILDING_REPAIR_MEDIUM
Определения ActionConstants.c:68
Определения ActionConstants.c:28
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
const int STATE_RUINED
Определения constants.c:846
const int STATE_WORN
Определения constants.c:849