42 WeaponEventContinuousLoadBulletStart
__lS_ =
new WeaponEventContinuousLoadBulletStart;
43 WeaponEventContinuousLoadBulletEnd
__lE_ =
new WeaponEventContinuousLoadBulletEnd;
44 WeaponEventAnimBulletShow
__bs_ =
new WeaponEventAnimBulletShow;
45 WeaponEventAnimBulletHide
__bh_ =
new WeaponEventAnimBulletHide;
46 WeaponEventAnimBulletEject
__be_ =
new WeaponEventAnimBulletEject;
47 WeaponEventAnimBulletInMagazine
__bM_ =
new WeaponEventAnimBulletInMagazine;
48 WeaponEventAnimBulletShow2
_bs2_ =
new WeaponEventAnimBulletShow2;
95 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot remove ammo pile from inv");
100 Print(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering m_srcMagazine = NULL");
138 if (!
il || !
il.IsValid())
145 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - exit");
155 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot remove ammo pile from wpn - exit");
197 if (!
il || !
il.IsValid())
204 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - abort");
214 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot remove ammo pile from wpn - abort");
228 if (!
super.SaveCurrentFSMState(
ctx))
233 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.SaveCurrentFSMState: cannot save m_srcMagazine for weapon=" +
m_weapon);
239 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.SaveCurrentFSMState: cannot write m_srcMagazinePrevLocation for weapon=" +
m_weapon);
248 if (!
super.LoadCurrentFSMState(
ctx, version))
253 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.LoadCurrentFSMState: cannot read m_srcMagazine for weapon=" +
m_weapon);
259 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.LoadCurrentFSMState: cannot read m_srcMagazinePrevLocation for weapon=" +
m_weapon);
298 WeaponEventContinuousLoadBulletStart
__lS_ =
new WeaponEventContinuousLoadBulletStart;
299 WeaponEventContinuousLoadBulletEnd
__lE_ =
new WeaponEventContinuousLoadBulletEnd;
300 WeaponEventAnimCocked
__wc_ =
new WeaponEventAnimCocked;
301 WeaponEventAnimBulletShow
__bs_ =
new WeaponEventAnimBulletShow;
302 WeaponEventAnimBulletHide
__bh_ =
new WeaponEventAnimBulletHide;
303 WeaponEventAnimBulletEject
__be_ =
new WeaponEventAnimBulletEject;
304 WeaponEventAnimBulletInMagazine
__bM_ =
new WeaponEventAnimBulletInMagazine;
305 WeaponEventAnimBulletShow2
_bs2_ =
new WeaponEventAnimBulletShow2;
330 m_fsm.SetInitialState(
m_start);
353 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot remove ammo pile from inv");
358 Print(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast m_srcMagazine = NULL");
396 if (!
il || !
il.IsValid())
403 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - exit");
413 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot remove ammo pile from wpn - exit");
455 if (!
il || !
il.IsValid())
462 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - abort");
472 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot remove ammo pile from wpn - abort");
486 if (!
super.SaveCurrentFSMState(
ctx))
491 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.SaveCurrentFSMState: cannot save m_srcMagazine for weapon=" +
m_weapon);
497 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.SaveCurrentFSMState: cannot write m_srcMagazinePrevLocation for weapon=" +
m_weapon);
505 if (!
super.LoadCurrentFSMState(
ctx, version))
510 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.LoadCurrentFSMState: cannot read m_srcMagazine for weapon=" +
m_weapon);
516 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.LoadCurrentFSMState: cannot read m_srcMagazinePrevLocation for weapon=" +
m_weapon);
void wpnDebugPrint(string s)
void DayZPlayerUtils()
cannot be instantiated
class WeaponGuardIsDestroyed extends WeaponGuardBase m_weapon
FindInventoryLocationType
flags for searching locations in inventory
bool OptionalLocationReadFromContext(out InventoryLocation loc, notnull ParamsReadContext ctx)
bool OptionalLocationWriteToContext(InventoryLocation loc, notnull ParamsWriteContext ctx)
enum FSMTransition WeaponTransition
ref LoopedChambering_Wait4ShowBullet2 m_w4sb2
ref InventoryLocation m_srcMagazinePrevLocation
source of the cartridge
ref WeaponEndAction m_endLoop
ref WeaponStateBase m_start
class WeaponEndAction extends WeaponStartAction m_action
ref WeaponChambering_Base m_chamber
ref WeaponEjectCasingMultiMuzzle m_eject
script counterpart to engine's class Inventory
static proto native bool LocationSyncMoveEntity(notnull InventoryLocation src_loc, notnull InventoryLocation dst_loc)
synchronously removes item from current inventory location and adds it to destination no anims involv...
static proto native bool LocationCanMoveEntity(notnull InventoryLocation src, notnull InventoryLocation dst)
queries if the entity contained in inv_loc.m_item can be moved to another location This is a shorthan...
provides access to slot configuration
static bool IsWeaponLogEnable()
Serialization general interface. Serializer API works with:
signalize mechanism manipulation
weapon finite state machine
const float MAX_DROP_MAGAZINE_DISTANCE_SQ
simple class starting animation action specified by m_action and m_actionType
override bool IsWaitingForActionFinish()
represent weapon state base
ref BulletHide_W4T m_hideB
ref WeaponChamberFromInnerMag_W4T m_chamberFromInnerMag
void LoopedChamberingEjectLast(Weapon_Base w=NULL, WeaponStateBase parent=NULL, WeaponActions action=WeaponActions.NONE, int startActionType=-1, int endActionType=-1)
ref WeaponStartAction m_endLoop
Magazine m_srcMagazine
destination of the ejected cartridge
ref LoopedChambering_Wait4ShowBullet2 m_w4sb2
ref WeaponChambering_Cartridge m_chamber
override bool IsWaitingForActionFinish()
override void OnEntry(WeaponEventBase e)
ref WeaponStateBase m_start
source of the cartridge
override bool LoadCurrentFSMState(ParamsReadContext ctx, int version)
ref WeaponEjectCasing m_eject
ref InventoryLocation m_srcMagazinePrevLocation
source of the cartridge
override void OnAbort(WeaponEventBase e)
void WeaponEjectCasing(Weapon_Base w=NULL, WeaponStateBase parent=NULL)
void LoopedChambering(Weapon_Base w=NULL, WeaponStateBase parent=NULL, WeaponActions action=WeaponActions.NONE, int startActionType=-1, int endActionType=-1)
override void OnExit(WeaponEventBase e)
override bool SaveCurrentFSMState(ParamsWriteContext ctx)
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
void Error(string err)
Messagebox with error message.
proto void Print(void var)
Prints content of variable to console/log.