DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionLoadMagazine.c
См. документацию.
8
10{
12 {
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_FILLMAG;
15 m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_FILLMAG;
16 m_Text = "#load_magazine";
17 }
18
19 override bool HasProneException()
20 {
21 return true;
22 }
23
29
31 {
32 Magazine trg;
33 Magazine itm;
34 return ( Class.CastTo(trg, target.GetObject()) && Class.CastTo(itm, item) && itm.GetAmmoCount() < itm.GetAmmoMax() && trg.GetAmmoCount() != 0 && itm.IsCompatiableAmmo( trg ) );
35 }
36
37 override bool ActionConditionContinue( ActionData action_data )
38 {
39 return CanLoadMagazine(action_data.m_Target, action_data.m_MainItem);
40 }
41
42 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
43 {
44 return CanLoadMagazine(target, item);
45 }
46
48 {
49 return true;
50 }
51
52 override void OnExecuteServer( ActionData action_data )
53 {
54 //Param1<float> timeSpendParam;
55 //if( !Class.CastTo(timeSpendParam, action_data.m_ActionComponent.GetACData()) ) return;
56
57 Magazine trg;
58 Magazine itm;
59 if ( Class.CastTo(trg, action_data.m_Target.GetObject()) && Class.CastTo(itm, action_data.m_MainItem) )
60 {
61 float dmg;
62 string ammoType;
63
64 if ( trg.ServerAcquireCartridge(dmg, ammoType) )
65 {
66 if ( !itm.ServerStoreCartridge(dmg, ammoType) )
67 trg.ServerStoreCartridge(dmg, ammoType);
68 else
69 itm.ApplyManipulationDamage(); //damages magazine
70 }
71
72 trg.SetSynchDirty();
73 itm.SetSynchDirty();
74 }
75 }
76};
77
85
87{
94
95 override bool HasProneException()
96 {
97 return true;
98 }
99
100 override typename GetInputType()
101 {
103 }
104
106 {
109 }
110
111 override bool HasTarget()
112 {
113 return false;
114 }
115
117 {
118 Magazine mag = Magazine.Cast( item );
119
120 return mag && player.GetWeaponManager().GetPreparedMagazine() != null && mag.GetAmmoCount() < mag.GetAmmoMax();
121 }
122
123 override bool ActionConditionContinue( ActionData action_data )
124 {
125 return CanLoadMagazine(action_data.m_Player, action_data.m_MainItem);
126 }
127
128 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
129 {
130 return CanLoadMagazine(player, item);
131 }
132
133 override void OnExecuteServer( ActionData action_data )
134 {
135 //Param1<float> timeSpendParam;
136 //if( !Class.CastTo(timeSpendParam, action_data.m_ActionComponent.GetACData()) ) return;
137
138 Magazine itm = Magazine.Cast(action_data.m_MainItem);
139 Magazine trg = action_data.m_Player.GetWeaponManager().GetPreparedMagazine();
140
141 if ( !itm || !trg )
142 return;
143
144 float dmg;
145 string ammoType;
146
147 if ( trg.ServerAcquireCartridge(dmg, ammoType) )
148 {
149 if ( !itm.ServerStoreCartridge(dmg, ammoType) )
150 trg.ServerStoreCartridge(dmg, ammoType);
151 else
152 itm.ApplyManipulationDamage(); //damages magazine
153 }
154
155 trg.SetSynchDirty();
156 itm.SetSynchDirty();
157 //manipulationDamage
158 //if(trg.GetAmmoCount() > 0 )
159 //trg.SetSynchDirty();
160 //itm.SetSynchDirty();
161 }
162};
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
string m_Text
Определения ActionBase.c:58
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override void OnExecuteServer(ActionData action_data)
Определения ActionLoadMagazine.c:52
override bool ActionConditionContinue(ActionData action_data)
Определения ActionLoadMagazine.c:37
override void CreateConditionComponents()
Определения ActionLoadMagazine.c:24
void ActionLoadMagazine()
Определения ActionLoadMagazine.c:11
override bool CanBePerformedFromQuickbar()
Определения ActionLoadMagazine.c:47
override bool HasProneException()
Определения ActionLoadMagazine.c:19
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionLoadMagazine.c:42
bool CanLoadMagazine(ActionTarget target, ItemBase item)
Определения ActionLoadMagazine.c:30
override void CreateActionComponent()
Определения ActionLoadMagazine.c:3
override void CreateConditionComponents()
Определения ActionLoadMagazine.c:105
override bool HasProneException()
Определения ActionLoadMagazine.c:95
override bool ActionConditionContinue(ActionData action_data)
Определения ActionLoadMagazine.c:123
override GetInputType()
Определения ActionLoadMagazine.c:100
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionLoadMagazine.c:128
bool CanLoadMagazine(PlayerBase player, ItemBase item)
Определения ActionLoadMagazine.c:116
void ActionLoadMagazineQuick()
Определения ActionLoadMagazine.c:88
override void OnExecuteServer(ActionData action_data)
Определения ActionLoadMagazine.c:133
override bool HasTarget()
Определения ActionLoadMagazine.c:111
override void CreateActionComponent()
Определения ActionLoadMagazine.c:80
int m_CommandUID
Определения AnimatedActionBase.c:143
int m_CommandUIDProne
Определения AnimatedActionBase.c:144
Определения CCINonRuined.c:2
Определения CCTNonRuined.c:2
Определения CCTSelf.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:112
const float MAG_LOAD
Определения ActionConstants.c:94
Определения ActionConstants.c:28
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.