DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
FirearmActionLoadBullet.c
См. документацию.
2{
4 {
5 m_Text = "#load_bullet";
6 }
7
8 override int GetActionCategory()
9 {
11 }
12
13 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
14 {
15 if (!super.ActionCondition(player, target, item))
16 return false;
17
18 HumanCommandWeapons hcw = player.GetCommandModifier_Weapons();
19 if (!target.GetObject())
20 return false;
21
22 Magazine mag = null;
23 EntityAI entity = EntityAI.Cast(target.GetObject());
24 if (entity && entity.IsManagingArrows() && entity.IsDamageDestroyed())
25 {
26 ArrowManagerBase arrowManager = ArrowManagerBase.Cast(entity.GetArrowManager());
27 if (arrowManager)
28 mag = Magazine.Cast(arrowManager.GetFirstArrow());
29 }
30 else
31 mag = Magazine.Cast(target.GetObject());
32
33 Weapon_Base weapon = Weapon_Base.Cast(item);
34 return mag && player.GetWeaponManager().CanLoadBullet(weapon, mag) && hcw && hcw.GetRunningAction() != WeaponActions.CHAMBERING;
35 }
36
37 override void Start(ActionData action_data)
38 {
39 super.Start(action_data);
40
41 Magazine mag;
42 EntityAI entity = EntityAI.Cast(action_data.m_Target.GetObject());
43 if (entity && entity.IsManagingArrows() && entity.IsDamageDestroyed())
44 {
45 ArrowManagerBase arrowManager = ArrowManagerBase.Cast(entity.GetArrowManager());
46 if (arrowManager)
47 {
48 mag = Magazine.Cast(arrowManager.AcquireFirstArrow(false));
49 mag.SetPosition(action_data.m_Player.GetPosition());
50 }
51 }
52 else
53 mag = Magazine.Cast(action_data.m_Target.GetObject());
54
55 action_data.m_Player.GetWeaponManager().LoadBullet(mag, this);
56 }
57
59 {
60 EntityAI entity = EntityAI.Cast(target.GetObject());
61 if (!entity || (entity && entity.IsManagingArrows() && !entity.IsDamageDestroyed()))
62 return null;
63
64 ArrowManagerBase arrowManager = entity.GetArrowManager();
65 if (arrowManager)
66 return arrowManager.GetFirstArrow();
67
68 return null;
69 }
70
72 {
73 return true;
74 }
75
77 {
78 return true;
79 }
80}
81
83{
85
86 override typename GetInputType()
87 {
89 }
90
92 {
93 m_ConditionItem = new CCINonRuined();
94 m_ConditionTarget = new CCTSelf();
95 }
96
97 override bool HasProgress()
98 {
99 return false;
100 }
101
102 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
103 {
104 if (!super.ActionCondition(player, target, item))
105 return false;
106
107 HumanCommandWeapons hcw = player.GetCommandModifier_Weapons();
108 Weapon_Base weapon = Weapon_Base.Cast(item);
109
110 return player.GetWeaponManager().CanLoadBullet(weapon, player.GetWeaponManager().GetPreparedMagazine(), true) && hcw && hcw.GetRunningAction() != WeaponActions.CHAMBERING;
111 }
112
113 override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
114 {
115 if (super.SetupAction(player, target, item, action_data, extra_data))
116 {
117 #ifndef SERVER
118 ActionTarget newTarget = new ActionTarget(player.GetWeaponManager().GetPreparedMagazine(), null, -1, vector.Zero, -1);
119 action_data.m_Target = newTarget;
120 #endif
121
122 return true;
123 }
124
125 return false;
126 }
127
128 override void Start(ActionData action_data)
129 {
130 super.Start(action_data);
131
132 Magazine mag = Magazine.Cast(action_data.m_Target.GetObject());
133 action_data.m_Player.GetWeaponManager().LoadBullet(mag, this);
134 }
135}
const int AC_SINGLE_USE
Определения _constants.c:2
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
void Start()
Plays all elements this effects consists of.
Определения Effect.c:155
FirearmActionLoadBullet FirearmActionBase FirearmActionLoadBulletQuick()
class GP5GasMask extends MaskBase ItemBase
bool HasProgress()
For UI: hiding of progress bar.
Определения ActionBase.c:250
bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBase.c:156
string m_Text
Определения ActionBase.c:58
void CreateConditionComponents()
Определения ActionBase.c:230
EntityAI AcquireFirstArrow(bool keepTransform=false)
Определения ArrowManagerBase.c:92
EntityAI GetFirstArrow()
Определения ArrowManagerBase.c:82
Определения CCINonRuined.c:2
Определения CCTSelf.c:2
Определения Building.c:6
void FirearmActionBase()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения FirearmActionBase.c:26
override GetInputType()
Определения FirearmActionBase.c:15
override int GetActionCategory()
Определения FirearmActionLoadBullet.c:8
override bool CanBePerformedFromQuickbar()
Определения FirearmActionLoadBullet.c:76
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения FirearmActionLoadBullet.c:13
override void Start(ActionData action_data)
Определения FirearmActionLoadBullet.c:37
void FirearmActionLoadBullet()
Определения FirearmActionLoadBullet.c:3
override Object GetDisplayInteractObject(PlayerBase player, ActionTarget target)
Определения FirearmActionLoadBullet.c:58
override bool CanBePerformedFromInventory()
Определения FirearmActionLoadBullet.c:71
proto native int GetRunningAction()
returns -1 when no action is running or RELOAD,MECHANISM, ....
Определения human.c:994
Определения InventoryItem.c:731
Определения ObjectTyped.c:2
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
shorthand
Определения BoltActionRifle_Base.c:6
static const vector Zero
Определения EnConvert.c:110
Определения EnConvert.c:106
WeaponActions
actions
Определения human.c:816
void HumanCommandWeapons()
Определения human.c:1113