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

◆ ActionCondition()

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

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

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 }
class LogManager EntityAI
CarFluid
Type of vehicle's fluid. (native, do not change or extend)
Определения Car.c:19
void CarScript()
Определения CarScript.c:280
const int LIQUID_WATER
Определения constants.c:539

Перекрестные ссылки ActionTarget, vector::Distance(), InventorySlots::GetSlotIdFromString() и LIQUID_WATER.