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

◆ ActionCondition()

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

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

14 {
15 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
16 return false;
17
18 BoatScript boat = BoatScript.Cast(target.GetObject());
19 if (!boat)
20 return false;
21
22 if (GetGame().IsDedicatedServer())
23 return true;
24
25 string damageZone = "";
26 array<string> selections = new array<string>();
27 boat.GetActionComponentNameList(target.GetComponentIndex(), selections);
28
29 foreach (string selection : selections)
30 {
31 if (boat && DamageSystem.GetDamageZoneFromComponentName(boat, selection, damageZone))
32 {
33 if (damageZone == "Engine")
34 continue;
35
36 int zoneHP = boat.GetHealthLevel(damageZone);
37 if (zoneHP > GameConstants.STATE_WORN && zoneHP < GameConstants.STATE_RUINED)
38 {
39 m_CurrentDamageZone = damageZone;
40 return true;
41 }
42 }
43 }
44
45 return false;
46 }
eBrokenLegs
Определения EBrokenLegs.c:2
proto native CGame GetGame()

Перекрестные ссылки ActionTarget, GetGame(), ActionRepairVehiclePartBase::m_CurrentDamageZone, GameConstants::STATE_RUINED и GameConstants::STATE_WORN.