84 return m_Src.GetItem();
122 case HandEventID.REPLACE2:
return new HandEventDestroyAndReplaceWithNewElsewhere(
p,
src);
123 case HandEventID.REPLACE3:
return new HandEventDestroyElsewhereAndReplaceWithNewInHands(
p,
src);
129 Error(
"[hndfsm] HandEventFactory - unregistered hand event with id=" +
id);
138 Error(
"[hndfsm] CreateHandEventFromContext - cannot read eventID");
144 Error(
"[hndfsm] CreateHandEventFromContext - cannot read player");
153 Error(
"[hndfsm] CreateHandEventFromContext - cannot read animID");
186 m_Player.GetHumanInventory().ClearInventoryReservationEx(
dst.GetItem(),
dst);
241 Error(
"[hndfsm] HandEventTake. AcquireInventoryJunctureFromServer: no src or dst for ev=" +
DumpToString());
256 m_Dst.ReadFromContext(
ctx);
261 m_Dst.WriteToContext(
ctx);
300 Error(
"[hndfsm] HandEventMoveTo. AcquireInventoryJunctureFromServer: no src or dst for ev=" +
DumpToString());
356 Error(
"[hndfsm] HandEventThrow. AcquireInventoryJunctureFromServer: no src or dst for ev=" +
DumpToString());
368 m_CanPerformDrop =
true;
375 ctx.Read(m_CanPerformDrop);
385 ctx.Write(m_CanPerformDrop);
395 if (!m_CanPerformDrop)
406 if (!m_CanPerformDrop)
419 if (!m_CanPerformDrop)
448 Error(
"[hndfsm] HandEventThrow src entity null!");
472 m_Dst.WriteToContext(
ctx);
474 ctx.Write(m_Force[0]);
475 ctx.Write(m_Force[1]);
476 ctx.Write(m_Force[2]);
491 int m_Animation2ID = -1;
509 m_Src2.ReadFromContext(
ctx);
510 m_Dst.ReadFromContext(
ctx);
511 m_Dst2.ReadFromContext(
ctx);
512 ctx.Read(m_Animation2ID);
519 m_Src2.WriteToContext(
ctx);
520 m_Dst.WriteToContext(
ctx);
521 m_Dst2.WriteToContext(
ctx);
522 ctx.Write(m_Animation2ID);
532 return m_Src2.GetItem();
561 else if (!
m_Player.GetHumanInventory().CanAddSwappedEntity(
m_Src, m_Src2, m_Dst, m_Dst2))
599 player.ForceStandUpForHeavyItemsSwap(
m_Src.GetItem(), m_Src2.GetItem());
608 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst.GetItem(), m_Dst);
616 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst.GetItem(), m_Dst);
617 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst2.GetItem(), m_Dst2);
685 Error(
"[hndfsm] HandEventDestroyAndReplaceWithNew - Cannot serialize lambda (read)");
691 Error(
"[hndfsm] HandEventDestroyAndReplaceWithNew - Cannot serialize lambda (write)");
749class HandEventHumanCommandActionFinished
extends HandEventBase
755class HandEventHumanCommandActionAborted
extends HandEventBase
void syncDebugPrint(string s)
InventoryValidationReason
eBleedingSourceType m_Type
static HandEventBase HandEventFactory(HandEventID id, Man p=null, InventoryLocation src=null)
static HandEventBase CreateHandEventFromContext(ParamsReadContext ctx)
InventoryLocation GetSrc()
ref InventoryLocation m_Src
HandEventBase HandAnimEventFactory(WeaponEvents type, Man p=null, InventoryLocation src=null)
bool CheckRequestEx(InventoryValidation validation)
@ HUMANCOMMAND_ACTION_FINISHED
@ HUMANCOMMAND_ACTION_ABORTED
@ SWAP
swapping from ground
void HandEventBase(Man p=null, InventoryLocation src=null)
InventoryLocation GetDst()
bool OptionalLocationReadFromContext(out InventoryLocation loc, notnull ParamsReadContext ctx)
bool OptionalLocationWriteToContext(InventoryLocation loc, notnull ParamsWriteContext ctx)
bool TryAcquireInventoryJunctureFromServer(notnull Man player, notnull InventoryLocation src, notnull InventoryLocation dst)
bool TryAcquireTwoInventoryJuncturesFromServer(notnull Man player, notnull InventoryLocation src1, notnull InventoryLocation src2, notnull InventoryLocation dst1, notnull InventoryLocation dst2)
Super root of all classes in Enforce script.
static void InventoryHFSMLog(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
script counterpart to engine's class Inventory
const int c_InventoryReservationTimeoutShortMS
static bool SetGroundPosByOwner(EntityAI owner, notnull EntityAI item, out InventoryLocation ground)
static bool CanForceSwapEntitiesEx(notnull EntityAI item1, InventoryLocation item1_dst, notnull EntityAI item2, out InventoryLocation item2_dst)
const float c_MaxItemDistanceRadius
anti-cheats
static proto native bool CheckSwapItemsRequest(notnull Man requestingPlayer, notnull InventoryLocation src1, notnull InventoryLocation src2, notnull InventoryLocation dst1, notnull InventoryLocation dst2, float radius)
static proto native bool CheckMoveToDstRequest(notnull Man requestingPlayer, notnull InventoryLocation src, notnull InventoryLocation dst, float radius)
static proto native bool CheckRequestSrc(notnull Man requestingPlayer, notnull InventoryLocation src, float radius)
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...
Abstracted event, not to be used, only inherited.
void HandAnimEventChanged(Man p=null, InventoryLocation src=null)
override bool CanPerformEvent()
override InventoryLocation GetDst()
override bool AcquireInventoryJunctureFromServer(notnull Man player)
override bool CheckRequest()
override bool ReserveInventory()
ref InventoryLocation m_Dst2
src of old item in hands
void HandEventCreated(Man p=null, InventoryLocation src=null)
override EntityAI GetSecondSrcEntity()
ref ReplaceItemWithNewLambdaBase m_Lambda
void HandEventHumanCommandActionFinished(Man p=null, InventoryLocation src=null)
void CheckAndExecuteForceStandUp()
void HandEventTake(Man p=null, InventoryLocation src=null)
override bool IsServerSideOnly()
void HandEventReplaced(Man p=null, InventoryLocation src=null)
void HandEventSwap(Man p=null, InventoryLocation src=null, InventoryLocation src2=null, InventoryLocation dst=null, InventoryLocation dst2=null)
void HandEventDestroy(Man p=null, InventoryLocation src=null)
void HandEventMoveTo(Man p=null, InventoryLocation src=null, InventoryLocation dst=null)
destination for item in hands
override string DumpToString()
override void ReadFromContext(ParamsReadContext ctx)
override void ClearInventoryReservation()
override void WriteToContext(ParamsWriteContext ctx)
void HandEvengReplaceWithNewBase(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
override bool CheckRequestSrc()
void HandEventDestroyed(Man p=null, InventoryLocation src=null)
override bool CanPerformEventEx(InventoryValidation validation)
void HandEventHumanCommandActionAborted(Man p=null, InventoryLocation src=null)
ref InventoryLocation m_Src2
destination for new item (i.e. hands)
ref InventoryLocation m_Dst
void HandEventDestroyAndReplaceWithNewElsewhere(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
void HandEventDrop(Man p=null, InventoryLocation src=null)
override void ReadFromContext(ParamsReadContext ctx)
void HandEventThrow(Man p=null, InventoryLocation src=null)
override void WriteToContext(ParamsWriteContext ctx)
override bool CheckRequestEx(InventoryValidation validation)
void SetForce(vector force)
override bool CanPerformEventEx(InventoryValidation validation)
void HandEventDestroyAndReplaceWithNew(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
void HandEventDestroyElsewhereAndReplaceWithNewInHands(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
void HandEventForceSwap(Man p=null, InventoryLocation src=null, InventoryLocation src2=null, InventoryLocation dst=null, InventoryLocation dst2=null)
override bool CheckRequest()
override bool CanPerformEvent()
static string DumpToStringNullSafe(InventoryLocation loc)
bool ReadFromContext(ParamsReadContext ctx)
static bool IsSyncLogEnable()
static bool IsInventoryHFSMLogEnable()
base class for transformation operations (creating one item from another)
Serialization general interface. Serializer API works with:
DayZPlayerInstanceType
defined in C++
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.