DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousEmptyMagazine.c
См. документацию.
2{
3 protected float m_TargetUnits;
4 protected float m_SpentQuantity;
5 protected float m_Time;
6 protected float m_TimeToEjectOneBullet;
7 protected ref Param1<float> m_SpentUnits;
8
9 void CAContinuousEmptyMagazine( float eject_time )
10 {
11 m_TimeToEjectOneBullet = eject_time;
12 m_Time = 0;
13 }
14
15 override void Setup( ActionData action_data )
16 {
17 if ( !m_SpentUnits )
18 {
19 m_SpentUnits = new Param1<float>(0);
20 }
21 else
22 {
23 m_SpentUnits.param1 = 0;
24 }
26 Magazine itm;
27 Class.CastTo(itm, action_data.m_MainItem);
28 m_TargetUnits = itm.GetAmmoCount();
29
30 }
31
32 override int Execute( ActionData action_data )
33 {
34 if ( !action_data.m_Player )
35 {
36 return UA_ERROR;
37 }
38
39 if ( m_TargetUnits == 0 )
40 {
41 return UA_FINISHED;
42 }
43 else
44 {
46 {
47 m_Time += action_data.m_Player.GetDeltaT();
49 {
50 m_Time = 0;
51 m_SpentQuantity += 1;
52 }
53 return UA_PROCESSING;
54 }
55 else
56 {
57 CalcAndSetQuantity( action_data );
58 OnCompletePogress(action_data);
59 return UA_FINISHED;
60 }
61 }
62 }
63
64 override int Cancel( ActionData action_data )
65 {
66 if ( !action_data.m_Player || !action_data.m_MainItem )
67 {
68 return UA_ERROR;
69 }
70
71 CalcAndSetQuantity( action_data );
72 return UA_CANCEL;
73 }
74
75 override float GetProgress()
76 {
77 //float progress = m_SpentQuantity/m_TargetUnits;
79 }
80
81 //---------------------------------------------------------------------------
82
83 void CalcAndSetQuantity( ActionData action_data )
84 {
85 if ( GetGame().IsServer() )
86 {
87 if ( action_data.m_MainItem )
88 {
89 Magazine itm;
90 Class.CastTo(itm, action_data.m_MainItem);
91 if ( m_SpentUnits )
92 {
95 }
96 itm.ServerAddAmmoCount(-m_SpentQuantity);
97 }
98 }
99 }
100};
ActionBase ActionData
Определения ActionBase.c:30
void CalcAndSetQuantity()
Определения FireplaceBase.c:2640
void SetACData(Param units)
Определения CABase.c:40
void OnCompletePogress(ActionData action_data)
Определения CAContinuousBase.c:8
override int Execute(ActionData action_data)
Определения CAContinuousEmptyMagazine.c:32
ref Param1< float > m_SpentUnits
Определения CAContinuousEmptyMagazine.c:7
void CAContinuousEmptyMagazine(float eject_time)
Определения CAContinuousEmptyMagazine.c:9
override float GetProgress()
Определения CAContinuousEmptyMagazine.c:75
override void Setup(ActionData action_data)
Определения CAContinuousEmptyMagazine.c:15
void CalcAndSetQuantity(ActionData action_data)
Определения CAContinuousEmptyMagazine.c:83
override int Cancel(ActionData action_data)
Определения CAContinuousEmptyMagazine.c:64
Super root of all classes in Enforce script.
Определения EnScript.c:11
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
const int UA_FINISHED
Определения constants.c:464
const int UA_ERROR
Определения constants.c:483
const int UA_PROCESSING
Определения constants.c:462
const int UA_CANCEL
Определения constants.c:465