DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionFillCoolant.c
См. документацию.
2{
3 private const float TIME_TO_REPEAT = 0.075;
4
9};
10
12{
13 const string RADIATOR_SELECTION_NAME = "radiator";
14
16 {
18 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_EMPTY_VESSEL;
19 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
20 m_FullBody = true;
21 m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
22 m_LockTargetOnUse = false;
23 m_Text = "#refill_car";
24
25 }
26
28 {
31 }
32
33 override bool IsUsingProxies()
34 {
35 return true;
36 }
37
38 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
39 {
40 if (!target)
41 return false;
42
43 if (item.GetQuantity() <= 0)
44 return false;
45
46 if (item.GetLiquidType() != LIQUID_WATER)
47 return false;
48
49 if (item.GetIsFrozen())
50 {
51 return false;
52 }
53
54 Car car = Car.Cast( target.GetParent() );
55 if (!car)
56 return false;
57
58 if (car.GetFluidFraction( CarFluid.COOLANT ) >= 0.95)
59 return false;
60
61 array<string> selections = new array<string>;
62 target.GetObject().GetActionComponentNameList(target.GetComponentIndex(), selections);
63
64 CarScript carS = CarScript.Cast(car);
65
66 if (carS)
67 {
68 EntityAI radiator = null;
69 EntityAI carAI;
70
71 if (CastTo(carAI, car))
72 {
73 radiator = carAI.GetInventory().FindAttachment(InventorySlots.GetSlotIdFromString("CarRadiator"));
74 if (radiator && !radiator.IsRuined())
75 {
76 for (int s = 0; s < selections.Count(); s++)
77 {
78 if (selections[s] == carS.GetActionCompNameCoolant())
79 {
80 float dist = vector.Distance( carS.GetCoolantPtcPosWS(), player.GetPosition() );
81
82 if (dist < carS.GetActionDistanceCoolant())
83 return true;
84 }
85 }
86 }
87 }
88 }
89
90 return false;
91 }
92};
class ActionTargets ActionTarget
CarFluid
Type of vehicle's fluid. (native, do not change or extend)
Определения Car.c:19
float m_SpecialtyWeight
Определения ActionBase.c:77
int m_StanceMask
Определения ActionBase.c:62
string m_Text
Определения ActionBase.c:58
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
bool m_LockTargetOnUse
Определения ActionBase.c:60
bool m_FullBody
Определения ActionBase.c:61
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override void CreateConditionComponents()
Определения ActionFillCoolant.c:27
override bool IsUsingProxies()
Определения ActionFillCoolant.c:33
void ActionFillCoolant()
Определения ActionFillCoolant.c:15
const string RADIATOR_SELECTION_NAME
Определения ActionFillCoolant.c:13
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionFillCoolant.c:38
const float TIME_TO_REPEAT
Определения ActionFillCoolant.c:3
override void CreateActionComponent()
Определения ActionFillCoolant.c:5
int m_CommandUID
Определения AnimatedActionBase.c:143
Определения CCINonRuined.c:2
Определения CCTObject.c:27
Определения CivilianSedan.c:2
Определения Building.c:6
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
provides access to slot configuration
Определения InventorySlots.c:6
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
const float FUEL
Определения ActionConstants.c:17
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
Определения EnConvert.c:106
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
const int LIQUID_WATER
Определения constants.c:539