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

◆ OnFinishProgressServer()

override void ActionRepairCarPart::OnFinishProgressServer ( ActionData action_data)
inlineprivate

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

79 {
80 Object tgObject = action_data.m_Target.GetObject();
81
82 string damageZone = RepairCarPartActionData.Cast(action_data).m_DamageZone;
83 if (!GetGame().IsMultiplayer())
84 damageZone = m_CurrentDamageZone;
85
86 if (tgObject)
87 {
88 CarDoor carDoor = CarDoor.Cast(tgObject);
89 if (carDoor)
90 {
91 int newDmgLevel = Math.Clamp(carDoor.GetHealthLevel(damageZone) - 1, GameConstants.STATE_WORN, GameConstants.STATE_RUINED);
92 float zoneMax = carDoor.GetMaxHealth("", "");
93 float randomValue = Math.RandomFloatInclusive(zoneMax * 0.05, zoneMax * 0.15);
94
95 switch (newDmgLevel)
96 {
97 case GameConstants.STATE_BADLY_DAMAGED:
98 carDoor.SetHealth("", "", (zoneMax * GameConstants.DAMAGE_RUINED_VALUE) + randomValue);
99 break;
100
101 case GameConstants.STATE_DAMAGED:
102 carDoor.SetHealth("", "", (zoneMax * GameConstants.DAMAGE_BADLY_DAMAGED_VALUE) + randomValue);
103 break;
104
105 case GameConstants.STATE_WORN:
106 carDoor.SetHealth("", "", (zoneMax * GameConstants.DAMAGE_DAMAGED_VALUE) + randomValue);
107 break;
108
109 default:
110 break;
111 }
112
113 if (action_data.m_MainItem.HasQuantity())
114 {
115 if (action_data.m_MainItem.GetQuantity() > 1)
116 {
117 int qnt = action_data.m_MainItem.GetQuantity();
118 qnt -= action_data.m_MainItem.GetQuantityMax() * 0.25;
119 action_data.m_MainItem.SetQuantity(qnt);
120 }
121 else
122 action_data.m_MainItem.Delete();
123 }
124 }
125 }
126 }
string m_CurrentDamageZone
Определения ActionRepairCarPart.c:18
class LOD Object
proto native CGame GetGame()

Перекрестные ссылки ActionData, Math::Clamp(), GameConstants::DAMAGE_BADLY_DAMAGED_VALUE, GameConstants::DAMAGE_DAMAGED_VALUE, GameConstants::DAMAGE_RUINED_VALUE, GetGame(), m_CurrentDamageZone, Math::RandomFloatInclusive(), GameConstants::STATE_BADLY_DAMAGED, GameConstants::STATE_DAMAGED, GameConstants::STATE_RUINED и GameConstants::STATE_WORN.