Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
weapon_utils.c
Go to the documentation of this file.
1
bool
pushToChamberFromAttachedMagazine
(
Weapon_Base
weapon,
int
muzzleIndex)
2
{
3
Magazine mag = weapon.GetMagazine(muzzleIndex);
4
if
(mag && !mag.IsDamageDestroyed())
5
{
6
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromAttachedMagazine, using attached magazine mag="
+ mag.ToString()); }
7
float
damage;
8
string
type;
9
if
(mag && mag.LocalAcquireCartridge(damage, type))
10
{
11
weapon.SelectionBulletShow();
12
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromAttachedMagazine, ok - cartridge acquired: dmg="
+ damage +
" type="
+ type); }
13
}
14
else
15
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromAttachedMagazine, error - cannot take cartridge from magazine"
);
16
17
if
(weapon.PushCartridgeToChamber(muzzleIndex, damage, type))
18
{
19
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromAttachedMagazine, ok - loaded chamber"
); }
20
return
true
;
21
}
22
else
23
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromAttachedMagazine, error - cannot load chamber!"
);
24
}
25
else
26
{
27
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromAttachedMagazine - magazine destroyer or no attached"
); }
28
//Error("[wpnfsm] " + Object.GetDebugName(weapon) + " chamberFromAttachedMagazine, error - no magazine attached");
29
}
30
return
false
;
31
}
32
33
bool
pushToChamberFromInnerMagazine
(
Weapon_Base
weapon,
int
muzzleIndex)
34
{
35
36
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromInnerMagazine, using inner magazine."
); }
37
float
damage;
38
string
type;
39
if
(weapon.PopCartridgeFromInternalMagazine(muzzleIndex,damage, type))
40
{
41
weapon.SelectionBulletShow();
42
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromInnerMagazine, ok - cartridge acquired: dmg="
+ damage +
" type="
+ type); }
43
}
44
else
45
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromInnerMagazine, error - cannot take cartridge from magazine"
);
46
47
if
(weapon.PushCartridgeToChamber(muzzleIndex, damage, type))
48
{
49
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromInnerMagazine, ok - loaded chamber"
); }
50
return
true
;
51
}
52
else
53
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" chamberFromInnerMagazine, error - cannot load chamber!"
);
54
55
return
false
;
56
}
57
58
void
ejectBulletAndStoreInMagazine
(
Weapon_Base
weapon,
int
muzzleIndex, Magazine mag,
DayZPlayer
p)
59
{
60
float
damage = 0;
61
string
type =
string
.Empty;
62
string
magazineTypeName = weapon.GetChamberedCartridgeMagazineTypeName(muzzleIndex);
63
if
(weapon.EjectCartridge(muzzleIndex, damage, type))
64
{
65
if
(
LogManager
.
IsWeaponLogEnable
())
66
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" ejectBulletAndStoreInMagazine, ejected chambered cartridge"
);
67
}
68
else
69
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" ejectBulletAndStoreInMagazine, error - cannot eject chambered cartridge!"
);
70
71
72
if
(mag == null)
73
{
74
if
(!
g_Game
.IsMultiplayer() ||
g_Game
.IsServer())
75
{
77
if
(
DayZPlayerUtils
.HandleStoreCartridge(p, weapon, muzzleIndex, damage, type, magazineTypeName))
78
{
79
if
(
LogManager
.
IsWeaponLogEnable
())
80
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" ejectBulletAndStoreInMagazine, ok - cartridge stored in magazine"
);
81
}
82
else
83
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" ejectBulletAndStoreInMagazine, error - cannot store cartridge!"
);
84
if
(!
g_Game
.IsMultiplayer() ||
g_Game
.IsServer())
85
}
86
}
87
else
88
{
89
if
(mag.LocalStoreCartridge(damage, type))
90
{
91
mag.SetSynchDirty();
92
if
(
LogManager
.
IsWeaponLogEnable
())
93
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" ejectBulletAndStoreInMagazine, ok - cartridge stored in user defined magazine"
);
94
}
95
else
96
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(weapon) +
" ejectBulletAndStoreInMagazine, error - cannot store cartridge in magazine"
);
97
}
98
}
99
100
bool
magazinesHaveEqualSizes
(notnull Magazine mag, notnull Magazine mag2)
101
{
102
int
w, h;
103
g_Game
.GetInventoryItemSize(mag, w, h);
104
int
w2, h2;
105
g_Game
.GetInventoryItemSize(mag2, w2, h2);
106
if
(w == w2 && h == h2)
107
{
108
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] guard - same inventory sizes"
); }
109
return
true
;
110
}
111
112
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] guard - different inventory sizes"
); }
113
return
false
;
114
}
115
wpnDebugPrint
void wpnDebugPrint(string s)
Definition
debug.c:9
DayZPlayer
Definition
dayzplayerimplement.c:87
LogManager
Definition
debug.c:692
LogManager::IsWeaponLogEnable
static bool IsWeaponLogEnable()
Definition
debug.c:816
Object
Definition
objecttyped.c:2
Weapon_Base
shorthand
Definition
boltactionrifle_base.c:6
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
DayZPlayerUtils
void DayZPlayerUtils()
cannot be instantiated
Definition
dayzplayerutils.c:465
Error
void Error(string err)
Messagebox with error message.
Definition
endebug.c:90
pushToChamberFromInnerMagazine
bool pushToChamberFromInnerMagazine(Weapon_Base weapon, int muzzleIndex)
Definition
weapon_utils.c:33
magazinesHaveEqualSizes
bool magazinesHaveEqualSizes(notnull Magazine mag, notnull Magazine mag2)
Definition
weapon_utils.c:100
ejectBulletAndStoreInMagazine
void ejectBulletAndStoreInMagazine(Weapon_Base weapon, int muzzleIndex, Magazine mag, DayZPlayer p)
Definition
weapon_utils.c:58
pushToChamberFromAttachedMagazine
bool pushToChamberFromAttachedMagazine(Weapon_Base weapon, int muzzleIndex)
Definition
weapon_utils.c:1
Games
Dayz
scripts
4_world
entities
firearms
fsm
weapon_utils.c
Generated by
1.17.0