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

◆ Execute()

override int CAContinuousMineWood::Execute ( ActionData action_data)
inlineprotected

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

50 {
51 Object targetObject;
52 Class.CastTo(targetObject, action_data.m_Target.GetObject());
53 if ( !action_data.m_Player || !m_DataLoaded )
54 {
55 return UA_ERROR;
56 }
57
58 if ( (action_data.m_MainItem && action_data.m_MainItem.IsDamageDestroyed()) || targetObject.IsDamageDestroyed() )
59 {
60 return UA_FINISHED;
61 }
62 else
63 {
65 {
66 m_TimeElpased += action_data.m_Player.GetDeltaT();
67 }
68 else
69 {
70 if ( GetGame().IsServer() )
71 {
72 float damage = 0;
73 if (m_AmountOfDrops > 0)
74 damage = (1 / m_AmountOfDrops) * 100;
75
76 targetObject.DecreaseHealth("", "", damage, targetObject.CanBeAutoDeleted());
77 CreatePrimaryItems(action_data);
78 if (action_data.m_MainItem)
79 action_data.m_MainItem.DecreaseHealth( "", "", m_AdjustedDamageToMiningItemEachDrop );
80 else
81 {
82 DamagePlayersHands(action_data.m_Player);
83 }
84
85 if ( targetObject.IsDamageDestroyed() ) //client does not know the target is destroyed yet, happens on the next Execute!
86 {
87 if ( m_SpentUnits )
88 {
91 }
92
93 if ( WoodBase.Cast(targetObject) )
94 {
95 WoodBase target_woodbase = WoodBase.Cast(targetObject);
96
97 if (target_woodbase.GetSecondaryOutput() != "")
98 CreateSecondaryItems(action_data,target_woodbase.GetSecondaryOutput(),target_woodbase.GetSecondaryDropsAmount());
99 }
100
101 if (action_data.m_MainItem)
102 {
103 targetObject.OnTreeCutDown( action_data.m_MainItem );
104 }
105 else
106 {
107 targetObject.OnTreeCutDown( action_data.m_Player );
108 }
109 }
110 }
111
113 if (m_AmountOfDrops > 0 && m_CurrentAssumedDrops >= m_AmountOfDrops) //assumed end, client does not know the target is destroyed yet
114 {
115 OnCompletePogress(action_data);
116 return UA_FINISHED;
117 }
118
120 OnCompletePogress(action_data);
121 }
122 return UA_PROCESSING;
123 }
124 }
void WoodBase()
Определения WoodBase.c:30
void SetACData(Param units)
Определения CABase.c:40
void OnCompletePogress(ActionData action_data)
Определения CAContinuousBase.c:8
void CreateSecondaryItems(ActionData action_data, string material_secondary="", int quantity_secondary=-1)
Определения CAContinuousMineWood.c:193
void DamagePlayersHands(PlayerBase player)
Определения CAContinuousMineWood.c:228
float m_AdjustedTimeBetweenMaterialDrops
Определения CAContinuousMineWood.c:4
int m_AmountOfDrops
Определения CAContinuousMineWood.c:9
ref Param1< float > m_SpentUnits
Определения CAContinuousMineWood.c:13
void CreatePrimaryItems(ActionData action_data)
Определения CAContinuousMineWood.c:150
float m_AdjustedDamageToMiningItemEachDrop
Определения CAContinuousMineWood.c:8
int m_CurrentAssumedDrops
Определения CAContinuousMineWood.c:10
float m_TimeElpased
Определения CAContinuousMineWood.c:3
bool m_DataLoaded
Определения CAContinuousMineWood.c:14
class LOD Object
proto native CGame GetGame()
const int UA_FINISHED
Определения constants.c:464
const int UA_ERROR
Определения constants.c:483
const int UA_PROCESSING
Определения constants.c:462

Перекрестные ссылки ActionData, Class::CastTo(), CreatePrimaryItems(), CreateSecondaryItems(), DamagePlayersHands(), GetGame(), m_AdjustedDamageToMiningItemEachDrop, m_AdjustedTimeBetweenMaterialDrops, m_AmountOfDrops, m_CurrentAssumedDrops, m_DataLoaded, m_SpentUnits, m_TimeElpased, CAContinuousBase::OnCompletePogress(), CABase::SetACData(), UA_ERROR, UA_FINISHED, UA_PROCESSING и WoodBase().