Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionemptymagazine.c
Go to the documentation of this file.
1
class
EmptyMagazineActionData
:
ActionData
2
{
3
Magazine
m_magazinePile
;
4
}
5
6
class
ActionEmptyMagazineCB :
ActionContinuousBaseCB
7
{
8
override
void
CreateActionComponent
()
9
{
10
m_ActionData.m_ActionComponent =
new
CAContinuousRepeat
(
UATimeSpent
.
MAG_EMPTY
);
11
}
12
};
13
14
class
ActionEmptyMagazine
:
ActionContinuousBase
15
{
16
void
ActionEmptyMagazine
()
17
{
18
m_CallbackClass
= ActionEmptyMagazineCB;
19
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONMOD_EMPTYMAG;
20
m_CommandUIDProne
=
DayZPlayerConstants
.CMD_ACTIONFB_EMPTYMAG;
21
m_Text
=
"#empty_magazine"
;
22
}
23
24
override
bool
SetupAction
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item, out
ActionData
action_data,
Param
extra_data = NULL)
25
{
26
if
( super.SetupAction( player, target, item, action_data, extra_data))
27
{
28
EmptyMagazineActionData
emActionData =
EmptyMagazineActionData
.Cast(action_data);
29
emActionData.
m_magazinePile
= NULL;
30
return
true
;
31
}
32
return
false
;
33
}
34
35
override
ActionData
CreateActionData
()
36
{
37
EmptyMagazineActionData
action_data =
new
EmptyMagazineActionData
;
38
return
action_data;
39
}
40
41
override
void
CreateConditionComponents
()
42
{
43
m_ConditionItem
=
new
CCINonRuined
;
44
m_ConditionTarget
=
new
CCTNone
;
45
}
46
47
override
bool
HasProneException
()
48
{
49
return
true
;
50
}
51
52
bool
CanEmpty
(
ItemBase
item)
53
{
54
Magazine mag;
55
return
( item &&
Class
.
CastTo
(mag, item) && mag.GetAmmoCount() > 0 );
56
}
57
58
override
bool
ActionConditionContinue
(
ActionData
action_data )
59
{
60
return
CanEmpty
(action_data.m_MainItem);
61
}
62
63
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
64
{
65
Magazine itm;
66
return
CanEmpty
(item);
67
}
68
69
override
bool
HasTarget
()
70
{
71
return
false
;
72
}
73
74
override
void
OnExecuteServer
(
ActionData
action_data )
75
{
76
EmptyMagazineActionData
emActionData =
EmptyMagazineActionData
.Cast(action_data);
77
78
Magazine mag;
79
if
(!
Class
.
CastTo
(mag, action_data.m_MainItem))
80
return
;
81
82
float
dmg;
83
string
ammoType;
84
85
if
(!mag.ServerAcquireCartridge(dmg,ammoType))
86
return
;
87
88
mag.ApplyManipulationDamage();
89
90
string
magazineTypeName;
91
g_Game
.ConfigGetText(
"CfgAmmo "
+ ammoType +
" spawnPileType"
, magazineTypeName);
92
93
if
(!
DayZPlayerUtils
.HandleStoreCartridge(action_data.m_Player, NULL, -1, dmg, ammoType, magazineTypeName,
false
))
94
{
95
array< Magazine >
piles;
96
vector
posHead;
97
MiscGameplayFunctions.GetHeadBonePos(action_data.m_Player,posHead);
98
vector
posTarget = action_data.m_Player.GetPosition() + (action_data.m_Player.GetDirection() *
DEFAULT_SPAWN_DISTANCE
);
99
100
if
(!emActionData.
m_magazinePile
)
101
{
102
piles = MiscGameplayFunctions.CreateMagazinePilesDispersed(magazineTypeName,posHead,posTarget,
UAItemsSpreadRadius
.
NARROW
,1,dmg,action_data.m_Player);
103
if
(piles.Count() > 0)
104
emActionData.
m_magazinePile
= piles[0];
105
}
106
else
107
{
108
if
(emActionData.
m_magazinePile
.GetAmmoMax() > emActionData.
m_magazinePile
.GetAmmoCount() && emActionData.
m_magazinePile
.GetType() == magazineTypeName && (
vector
.
DistanceSq
(action_data.m_Player.GetPosition(), emActionData.
m_magazinePile
.GetPosition()) < (
UAMaxDistances
.
DEFAULT
*
UAMaxDistances
.
DEFAULT
)))
109
{
110
emActionData.
m_magazinePile
.ServerStoreCartridge(dmg,ammoType);
111
}
112
else
113
{
114
piles = MiscGameplayFunctions.CreateMagazinePilesFromBulletDispersed(ammoType,posHead,posTarget,
UAItemsSpreadRadius
.
VERY_NARROW
,1,dmg,action_data.m_Player);
115
if
(piles.Count() > 0)
116
emActionData.
m_magazinePile
= piles[0];
117
}
118
}
119
}
120
}
121
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
ActionBaseCB::CreateActionComponent
void CreateActionComponent()
Definition
animatedactionbase.c:61
ActionBase::m_Text
string m_Text
Definition
actionbase.c:64
ActionBase::m_ConditionItem
ref CCIBase m_ConditionItem
Definition
actionbase.c:70
ActionBase::m_ConditionTarget
ref CCTBase m_ConditionTarget
Definition
actionbase.c:71
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase::ActionContinuousBase
void ActionContinuousBase()
Definition
actioncontinuousbase.c:124
ActionEmptyMagazine::ActionConditionContinue
override bool ActionConditionContinue(ActionData action_data)
Definition
actionemptymagazine.c:58
ActionEmptyMagazine::OnExecuteServer
override void OnExecuteServer(ActionData action_data)
Definition
actionemptymagazine.c:74
ActionEmptyMagazine::ActionEmptyMagazine
void ActionEmptyMagazine()
Definition
actionemptymagazine.c:16
ActionEmptyMagazine::CreateActionData
override ActionData CreateActionData()
Definition
actionemptymagazine.c:35
ActionEmptyMagazine::CreateConditionComponents
override void CreateConditionComponents()
Definition
actionemptymagazine.c:41
ActionEmptyMagazine::CanEmpty
bool CanEmpty(ItemBase item)
Definition
actionemptymagazine.c:52
ActionEmptyMagazine::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionemptymagazine.c:63
ActionEmptyMagazine::HasTarget
override bool HasTarget()
Definition
actionemptymagazine.c:69
ActionEmptyMagazine::SetupAction
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Definition
actionemptymagazine.c:24
ActionEmptyMagazine::HasProneException
override bool HasProneException()
Definition
actionemptymagazine.c:47
AnimatedActionBase::m_CommandUIDProne
int m_CommandUIDProne
Definition
animatedactionbase.c:144
AnimatedActionBase::m_CommandUID
int m_CommandUID
Definition
animatedactionbase.c:143
AnimatedActionBase::m_CallbackClass
m_CallbackClass
Definition
animatedactionbase.c:145
CAContinuousRepeat
Definition
cacontinuousrepeat.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTNone
Definition
cctnone.c:2
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
EmptyMagazineActionData
Definition
actionemptymagazine.c:2
EmptyMagazineActionData::m_magazinePile
Magazine m_magazinePile
Definition
actionemptymagazine.c:3
ItemBase
Definition
inventoryitem.c:742
Param
Base Param Class with no parameters.
Definition
param.c:12
PlayerBase
Definition
playerbaseclient.c:2
UAItemsSpreadRadius
Definition
actionconstants.c:124
UAItemsSpreadRadius::NARROW
const float NARROW
Definition
actionconstants.c:127
UAItemsSpreadRadius::VERY_NARROW
const float VERY_NARROW
Definition
actionconstants.c:126
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::DEFAULT
const float DEFAULT
Definition
actionconstants.c:112
UATimeSpent
Definition
actionconstants.c:28
UATimeSpent::MAG_EMPTY
const float MAG_EMPTY
Definition
actionconstants.c:93
array< Magazine >
vector
Definition
enconvert.c:119
vector::DistanceSq
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
DayZPlayerUtils
void DayZPlayerUtils()
cannot be instantiated
Definition
dayzplayerutils.c:465
Class::CastTo
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
DEFAULT_SPAWN_DISTANCE
const float DEFAULT_SPAWN_DISTANCE
Definition
recipebase.c:3
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actionemptymagazine.c
Generated by
1.17.0