DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Hand_Events.c
См. документацию.
1
2
26
34
38class HandEventBase
39{
40 int m_EventID = 0;
41 int m_AnimationID = -1;
44
51
52 void HandEventBase (Man p = null, InventoryLocation src = null) { Class.CastTo(m_Player, p); m_Src = src; }
54
56 {
57 return m_Player && (m_Player.GetInstanceType() != DayZPlayerInstanceType.INSTANCETYPE_CLIENT && m_Player.GetInstanceType() != DayZPlayerInstanceType.INSTANCETYPE_REMOTE);
58 }
59
60 bool IsOwner()
61 {
62 return m_Player && (m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_CLIENT || m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_AI_SERVER || m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_AI_SINGLEPLAYER);
63 }
64
65 bool IsProxy()
66 {
67 return m_Player && (m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_REMOTE || m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_AI_REMOTE);
68 }
69
70 void ReadFromContext (ParamsReadContext ctx) { } // actual read is in CreateHandEventFromContext
71
79
82 {
83 if (m_Src)
84 return m_Src.GetItem();
85 return null;
86 }
87 EntityAI GetSecondSrcEntity () { return null; }
88 InventoryLocation GetDst () { return null; }
89 int GetAnimationID () { return m_AnimationID; }
90 bool AcquireInventoryJunctureFromServer (notnull Man player) { return false; }
91 bool CheckRequest () { return true; }
93 {
97 if (validation.m_IsRemote || validation.m_IsJuncture)
98 return true;
99
100 return CheckRequest();
101 }
102 bool CanPerformEvent () { return true; }
104 bool CheckRequestSrc () { return true; }
105 bool IsServerSideOnly () { return false; }
106
107 static HandEventBase HandEventFactory (HandEventID id, Man p = null, InventoryLocation src = null)
108 {
109 switch (id)
110 {
111 case HandEventID.UNKNOWN: return null;
112 case HandEventID.TAKE: return new HandEventTake(p, src);
113 case HandEventID.MOVETO: return new HandEventMoveTo(p, src);
114 case HandEventID.DROP: return new HandEventDrop(p, src);
115 case HandEventID.THROW: return new HandEventThrow(p, src);
116 case HandEventID.SWAP: return new HandEventSwap(p, src);
117 case HandEventID.FORCESWAP: return new HandEventForceSwap(p, src);
118 case HandEventID.DESTROY: return new HandEventDestroy(p, src);
119 case HandEventID.CREATED: return new HandEventCreated(p, src);
120 case HandEventID.DESTROYED: return new HandEventDestroyed(p, src);
121 case HandEventID.REPLACE: return new HandEventDestroyAndReplaceWithNew(p, src);
122 case HandEventID.REPLACE2: return new HandEventDestroyAndReplaceWithNewElsewhere(p, src);
123 case HandEventID.REPLACE3: return new HandEventDestroyElsewhereAndReplaceWithNewInHands(p, src);
124 case HandEventID.REPLACED: return new HandEventReplaced(p, src);
125 case HandEventID.ANIMEVENT_CHANGE_HIDE: return HandAnimEventChanged(p, src);
126 case HandEventID.HUMANCOMMAND_ACTION_FINISHED : return HandEventHumanCommandActionFinished(p, src);
127 case HandEventID.HUMANCOMMAND_ACTION_ABORTED : return HandEventHumanCommandActionAborted(p, src);
128 }
129 Error("[hndfsm] HandEventFactory - unregistered hand event with id=" + id);
130 return null;
131 }
132
134 {
135 int eventID = -1;
136 if (!ctx.Read(eventID))
137 {
138 Error("[hndfsm] CreateHandEventFromContext - cannot read eventID");
139 return null;
140 }
141 Man player;
142 if (!ctx.Read(player))
143 {
144 Error("[hndfsm] CreateHandEventFromContext - cannot read player");
145 return null;
146 }
149
150 int animID = -1;
151 if (!ctx.Read(animID))
152 {
153 Error("[hndfsm] CreateHandEventFromContext - cannot read animID");
154 return null;
155 }
156 HandEventBase b = HandEventFactory(eventID, player, src);
157 if (b)
158 {
159 b.m_AnimationID = animID;
160 b.ReadFromContext(ctx);
161 }
162 return b;
163 }
164
165 string DumpToString ()
166 {
167 string res = "{ HandEv id=" + typename.EnumToString(HandEventID, GetEventID());
168 res = res + " pl=" + Object.GetDebugName(m_Player);
169 res = res + " src=" + InventoryLocation.DumpToStringNullSafe(m_Src);
170 res = res + " }";
171 return res;
172 }
173
175 {
177 if (!il)
178 {
179 il = GetSrc();
180 }
181
182 if (il && !m_Player.GetHumanInventory().HasInventoryReservation(il.GetItem(),il))
183 {
184 if (m_Player.GetHumanInventory().AddInventoryReservationEx(il.GetItem(), il, GameInventory.c_InventoryReservationTimeoutShortMS))
185 {
186 return true;
187 }
188 }
189
190 return false;
191 }
192
194 {
196 if (il)
197 {
198 il = GetSrc();
199 }
200
201 if (il)
202 {
203 m_Player.GetHumanInventory().ClearInventoryReservationEx(il.GetItem(), il);
204 }
205 }
206};
207
209{
210 void HandEventTake (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.TAKE; }
211
213 {
216 return dst;
217 }
218
219 override bool CheckRequestSrc ()
220 {
222 {
223 Debug.InventoryHFSMLog("CANNOT perform", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CheckRequestSrc", m_Player.ToString() );
224 if (LogManager.IsSyncLogEnable()) syncDebugPrint("[cheat] HandleInputData man=" + Object.GetDebugName(m_Player) + " failed src1 check with cmd=" + typename.EnumToString(HandEventID, GetEventID()) + " src1=" + InventoryLocation.DumpToStringNullSafe(GetSrc()));
225 return false; // stale packet
226 }
227 return true;
228 }
229
234
235 override bool CanPerformEventEx(InventoryValidation validation)
236 {
237 if (validation.m_IsJuncture)
238 {
239 return true;
240 }
241
243 {
244 #ifdef ENABLE_LOGGING
246 {
247 Debug.InventoryHFSMLog("CANNOT perform", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CanPerformEvent", m_Player.ToString() );
248 }
249 #endif
250 //if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[desync] HandleInputData man=" + Object.GetDebugName(m_Player) + " CANNOT perform ev=" + DumpToString());
251 return false;
252 }
253
254 return super.CanPerformEventEx(validation);
255 }
256
257 override bool AcquireInventoryJunctureFromServer (notnull Man player)
258 {
261 if (src && dst)
262 {
263 return TryAcquireInventoryJunctureFromServer(player, src, dst);
264 }
265 Error("[hndfsm] HandEventTake. AcquireInventoryJunctureFromServer: no src or dst for ev=" + DumpToString());
266 return JunctureRequestResult.ERROR;
267 }
268};
269
270class HandEventMoveTo extends HandEventBase
271{
273
274 void HandEventMoveTo (Man p = null, InventoryLocation src = null, InventoryLocation dst = null) { m_EventID = HandEventID.MOVETO; m_Dst = dst; }
275
277 {
279 super.ReadFromContext(ctx);
280 m_Dst.ReadFromContext(ctx);
281 }
283 {
284 super.WriteToContext(ctx);
285 m_Dst.WriteToContext(ctx);
286 }
287
288 override InventoryLocation GetDst () { return m_Dst; }
289
290 override bool CheckRequestSrc ()
291 {
293 {
294 if (LogManager.IsSyncLogEnable()) syncDebugPrint("[cheat] HandleInputData man=" + Object.GetDebugName(m_Player) + " failed src1 check with cmd=" + typename.EnumToString(HandEventID, GetEventID()) + " src1=" + InventoryLocation.DumpToStringNullSafe(GetSrc()));
295 return false; // stale packet
296 }
297 return true;
298 }
299
304
305 override bool CanPerformEvent ()
306 {
308 {
309 #ifdef ENABLE_LOGGING
311 {
312 Debug.InventoryHFSMLog("CANNOT perform", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CanPerformEvent", m_Player.ToString() );
313 }
314 #endif
315 return false;
316 }
317 return true;
318 }
319
320 override bool AcquireInventoryJunctureFromServer (notnull Man player)
321 {
324 if (src && dst)
325 {
326 return TryAcquireInventoryJunctureFromServer(player, src, dst);
327 }
328 Error("[hndfsm] HandEventMoveTo. AcquireInventoryJunctureFromServer: no src or dst for ev=" + DumpToString());
329 return JunctureRequestResult.ERROR;
330 }
331
332 override string DumpToString ()
333 {
334 string res = "{ HandEventMoveTo id=" + typename.EnumToString(HandEventID, GetEventID()) + " pl=" + Object.GetDebugName(m_Player) + " src=" + InventoryLocation.DumpToStringNullSafe(m_Src) + " dst=" + InventoryLocation.DumpToStringNullSafe(m_Dst) + " }";
335 return res;
336 }
337};
338
340class HandEventRemove extends HandEventBase
341{
343 {
344 return m_Dst;
345 }
346
347 override bool CheckRequestSrc ()
348 {
350 {
351 #ifdef ENABLE_LOGGING
353 {
354 Debug.InventoryHFSMLog("Check src - failed, src = " + InventoryLocation.DumpToStringNullSafe(GetSrc()), typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CheckRequestSrc", m_Player.ToString() );
355 }
356 #endif
357 return false; // stale packet
358 }
359 return true;
360 }
361
366
367 override bool CanPerformEvent ()
368 {
370 {
371 #ifdef ENABLE_LOGGING
373 {
374 Debug.InventoryHFSMLog("CANNOT perform", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CanPerformEvent", m_Player.ToString() );
375 }
376 #endif
377 return false;
378 }
379 return true;
380 }
381
382 override bool AcquireInventoryJunctureFromServer (notnull Man player)
383 {
386 if (src && dst)
387 {
388 return TryAcquireInventoryJunctureFromServer(player, src, dst);
389 }
390 Error("[hndfsm] HandEventThrow. AcquireInventoryJunctureFromServer: no src or dst for ev=" + DumpToString());
391 return JunctureRequestResult.ERROR;
392 }
393
394 ref InventoryLocation m_Dst;
395};
396
398{
399 void HandEventDrop (Man p = null, InventoryLocation src = null)
400 {
401 m_EventID = HandEventID.DROP;
402 m_CanPerformDrop = true;
403 }
404
406 {
407 super.ReadFromContext(ctx);
408
411 if (!m_Dst)
412 {
413 m_Dst = new InventoryLocation();
414 }
415 }
416
418 {
419 super.WriteToContext(ctx);
420
423 }
424
425 override bool CheckRequestEx(InventoryValidation validation)
426 {
428 if (!validation.m_IsJuncture && IsAuthoritative())
429 {
431 }
432
433 if (!m_CanPerformDrop)
434 {
435 validation.m_Reason = InventoryValidationReason.DROP_PREVENTED;
436 return false;
437 }
438
439 return super.CheckRequestEx(validation);
440 }
441
442 override bool CanPerformEventEx(InventoryValidation validation)
443 {
444 if (!m_CanPerformDrop)
445 {
446 return false;
447 }
448
450 if (!validation.m_IsJuncture && !validation.m_IsRemote && !GetDst() && (GetGame().IsMultiplayer() && GetGame().IsClient()))
451 {
452 return true;
453 }
454
456 if (!validation.m_IsRemote && !GetDst())
457 {
458 m_Dst = new InventoryLocation();
460
461 if (!m_CanPerformDrop)
462 {
463 validation.m_Reason = InventoryValidationReason.DROP_PREVENTED;
464 return false;
465 }
466 }
467
468 return super.CanPerformEventEx(validation);
469 }
470
472};
473
474class HandEventThrow extends HandEventRemove
475{
476 void HandEventThrow (Man p = null, InventoryLocation src = null)
477 {
478 m_EventID = HandEventID.THROW;
479 if( src )
480 {
481 vector mat[4];
482 EntityAI entity = GetSrcEntity();
483 if (entity)
484 {
485 m_Dst = new InventoryLocation;
486 entity.GetTransform(mat);
487 m_Dst.SetGround(entity, mat);
488 }
489 else
490 {
491 Error("[hndfsm] HandEventThrow src entity null!");
492 }
493 }
494 }
495
497 {
498 super.ReadFromContext(ctx);
499
500 m_Dst = new InventoryLocation;
501 m_Dst.ReadFromContext(ctx);
502
503 float x, y, z;
504 ctx.Read(x);
505 ctx.Read(y);
506 ctx.Read(z);
507 m_Force[0] = x;
508 m_Force[1] = y;
509 m_Force[2] = z;
510 }
511
513 {
514 super.WriteToContext(ctx);
515
516 m_Dst.WriteToContext(ctx);
517
518 ctx.Write(m_Force[0]);
519 ctx.Write(m_Force[1]);
520 ctx.Write(m_Force[2]);
521 }
522
523 void SetForce(vector force) { m_Force = force; }
524 vector GetForce() { return m_Force; }
525
527};
528
529class HandEventSwap extends HandEventBase
530{
531 // super.m_Src == src location of new item (that will be taken)
532 ref InventoryLocation m_Dst;
536
537 void HandEventSwap (Man p = null, InventoryLocation src = null, InventoryLocation src2 = null, InventoryLocation dst = null, InventoryLocation dst2 = null)
538 {
539 m_EventID = HandEventID.SWAP;
540 m_Dst = dst;
541 m_Src2 = src2;
542 m_Dst2 = dst2;
543 }
544
546 {
547 super.ReadFromContext(ctx);
548
552
553 m_Src2.ReadFromContext(ctx);
554 m_Dst.ReadFromContext(ctx);
555 m_Dst2.ReadFromContext(ctx);
556 ctx.Read(m_Animation2ID);
557 }
558
560 {
561 super.WriteToContext(ctx);
562
563 m_Src2.WriteToContext(ctx);
564 m_Dst.WriteToContext(ctx);
565 m_Dst2.WriteToContext(ctx);
567 }
568
570 {
571 return m_Dst;
572 }
573
575 {
576 return m_Src2.GetItem();
577 }
578
579 override bool CheckRequestSrc ()
580 {
581 //return false;
582
584 {
585 if (LogManager.IsSyncLogEnable()) syncDebugPrint("[cheat] HandleInputData man=" + Object.GetDebugName(m_Player) + " failed src1 check with cmd=" + typename.EnumToString(HandEventID, GetEventID()) + " src1=" + InventoryLocation.DumpToStringNullSafe(GetSrc()));
586 return false; // stale packet
587 }
589 {
590 if (LogManager.IsSyncLogEnable()) syncDebugPrint("[cheat] HandleInputData man=" + Object.GetDebugName(m_Player) + " failed src2 check with cmd=" + typename.EnumToString(HandEventID, GetEventID()) + " src2=" + InventoryLocation.DumpToStringNullSafe(m_Src2));
591 return false; // stale packet
592 }
593 return true;
594 }
595
596 override bool CheckRequest ()
597 {
599 {
600 #ifdef ENABLE_LOGGING
602 {
603 Debug.InventoryHFSMLog("CheckSwapItemsRequest - failed", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CheckRequest", m_Player.ToString() );
604 }
605 #endif
606 }
607 else if (!m_Player.GetHumanInventory().CanAddSwappedEntity(m_Src, m_Src2, m_Dst, m_Dst2))
608 {
609 #ifdef ENABLE_LOGGING
611 {
612 Debug.InventoryHFSMLog("CanAddSwappedEntity - failed", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CheckRequest", m_Player.ToString() );
613 }
614 #endif
615 }
616 else
617 return true;
618
619 return false;
620 }
621
622 override bool CanPerformEvent ()
623 {
625 return true;
626
627 #ifdef ENABLE_LOGGING
629 {
630 Debug.InventoryHFSMLog("CANNOT perform", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CanPerformEvent", m_Player.ToString() );
631 }
632 #endif
633 return false;
634 }
635
636 override bool AcquireInventoryJunctureFromServer (notnull Man player)
637 {
639 }
640
641 override string DumpToString ()
642 {
643 return "{ HandEventSwap id=" + typename.EnumToString(HandEventID, GetEventID()) + " pl=" + Object.GetDebugName(m_Player) + " src1=" + InventoryLocation.DumpToStringNullSafe(m_Src) + " src2=" + InventoryLocation.DumpToStringNullSafe(m_Src2) + " dst1=" + InventoryLocation.DumpToStringNullSafe(m_Dst) + " dst2=" + InventoryLocation.DumpToStringNullSafe(m_Dst2) + " }";
644 }
645
647 {
648 DayZPlayer player = DayZPlayer.Cast(m_Player);
649 player.ForceStandUpForHeavyItemsSwap( m_Src.GetItem(), m_Src2.GetItem() );
650 }
651
652 override bool ReserveInventory()
653 {
654 if (!m_Player.GetHumanInventory().HasInventoryReservation(m_Dst.GetItem(), m_Dst) && !m_Player.GetHumanInventory().HasInventoryReservation(m_Dst2.GetItem(), m_Dst2))
655 {
656 if (m_Player.GetHumanInventory().AddInventoryReservationEx(m_Dst.GetItem(), m_Dst, GameInventory.c_InventoryReservationTimeoutShortMS))
657 {
658 if (m_Player.GetHumanInventory().AddInventoryReservationEx(m_Dst2.GetItem(), m_Dst2, GameInventory.c_InventoryReservationTimeoutShortMS))
659 {
660 return true;
661 }
662 else
663 {
664 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst.GetItem(), m_Dst);
665 }
666 }
667 }
668 return false;
669 }
670
672 {
673 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst.GetItem(), m_Dst);
674 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst2.GetItem(), m_Dst2);
675 }
676};
677
679{
680 void HandEventForceSwap (Man p = null, InventoryLocation src = null, InventoryLocation src2 = null, InventoryLocation dst = null, InventoryLocation dst2 = null) { m_EventID = HandEventID.FORCESWAP; }
681
682 override bool CheckRequest ()
683 {
684 bool test1 = false;
685 EntityAI inHands = m_Player.GetHumanInventory().GetEntityInHands();
686 if (GetSrcEntity() && inHands && m_Dst && m_Dst.IsValid())
687 {
689 #ifdef ENABLE_LOGGING
691 {
692 if (!test1)
693 Debug.InventoryHFSMLog("CheckSwapItemsRequest failed", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CheckRequest", m_Player.ToString() );
694 }
695 #endif
696 }
697 return test1;
698 }
699
700 override bool CanPerformEvent ()
701 {
702 bool test2 = GameInventory.CanForceSwapEntitiesEx(m_Src.GetItem(), m_Dst, m_Src2.GetItem(), m_Dst2); // null here means 'do not search for dst2' (already have valid one from constructor)
703 #ifdef ENABLE_LOGGING
705 {
706 if (!test2)
707 Debug.InventoryHFSMLog("CanForceSwapEntitiesEx failed", typename.EnumToString(HandEventID, GetEventID()) , "n/a", "CanPerformEvent", m_Player.ToString() );
708 }
709 #endif
710 return test2;
711 }
712};
713
714class HandEventDestroy extends HandEventBase
715{
716 void HandEventDestroy (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.DESTROY; }
717
718 override bool IsServerSideOnly () { return true; }
719};
720
721class HandEventCreated extends HandEventBase
722{
723 void HandEventCreated (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.CREATED; }
724};
725
726class HandEventDestroyed extends HandEventBase
727{
728 void HandEventDestroyed (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.DESTROYED; }
729};
730
732{
733 string m_Type;
735
736 void HandEvengReplaceWithNewBase (Man p = null, InventoryLocation src = null, ReplaceItemWithNewLambdaBase lambda = NULL) { m_EventID = HandEventID.REPLACE; m_Lambda = lambda; }
737
739 {
740 super.ReadFromContext(ctx);
741 ctx.Read(m_Type);
742 Error("[hndfsm] HandEventDestroyAndReplaceWithNew - Cannot serialize lambda (read)");
743 }
745 {
746 super.WriteToContext(ctx);
747 ctx.Write(m_Type);
748 Error("[hndfsm] HandEventDestroyAndReplaceWithNew - Cannot serialize lambda (write)");
749 }
750
751 override bool IsServerSideOnly () { return true; }
752
754 {
757 return dst;
758 }
759
760 override string DumpToString ()
761 {
762 string res = "{ HandEvenReplaceWithNewBase id=" + typename.EnumToString(HandEventID, GetEventID()) + " pl=" + Object.GetDebugName(m_Player) + " src=" + InventoryLocation.DumpToStringNullSafe(GetSrc()) + " lambda=" + m_Lambda + " dst=" + InventoryLocation.DumpToStringNullSafe(GetDst()) + " }";
763 return res;
764 }
765};
766
768{
769 void HandEventDestroyAndReplaceWithNew (Man p = null, InventoryLocation src = null, ReplaceItemWithNewLambdaBase lambda = NULL) { m_EventID = HandEventID.REPLACE; m_Lambda = lambda; }
770};
771
776
777class HandEventDestroyElsewhereAndReplaceWithNewInHands extends HandEventReplaceWithNewBase
778{
779 void HandEventDestroyElsewhereAndReplaceWithNewInHands (Man p = null, InventoryLocation src = null, ReplaceItemWithNewLambdaBase lambda = NULL) { m_EventID = HandEventID.REPLACE3; m_Lambda = lambda; }
780};
781
782class HandEventReplaced extends HandEventBase
783{
784 void HandEventReplaced (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.REPLACED; }
785};
786
787// anim events
788
789class HandAnimEventChanged extends HandEventBase
790{
791 void HandAnimEventChanged (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.ANIMEVENT_CHANGE_HIDE; }
792};
793
795{
796 switch (type)
797 {
798 case WeaponEvents.CHANGE_HIDE: return new HandAnimEventChanged(p, src);
799 case WeaponEvents.CHANGE_SHOW: return new HandAnimEventChanged(p, src);
800 }
801 return null;
802}
803
806class HandEventHumanCommandActionFinished extends HandEventBase
807{
808 void HandEventHumanCommandActionFinished (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.HUMANCOMMAND_ACTION_FINISHED; }
809};
812class HandEventHumanCommandActionAborted extends HandEventBase
813{
814 void HandEventHumanCommandActionAborted (Man p = null, InventoryLocation src = null) { m_EventID = HandEventID.HUMANCOMMAND_ACTION_ABORTED; }
815};
816
818
void syncDebugPrint(string s)
Определения Debug.c:1
InventoryValidationReason
Определения Inventory.c:37
@ UNKNOWN
24 - Any other error. Can be returned from any call.
Определения BIOSErrorModule.c:56
@ DROP
Определения EAnimSoundEventID.c:3
DayZPlayer m_Player
Определения Hand_Events.c:42
static HandEventBase HandEventFactory(HandEventID id, Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:107
bool m_IsRemote
Определения Hand_Events.c:50
JUNCTURE_ACQUIRED
Определения Hand_Events.c:30
static HandEventBase CreateHandEventFromContext(ParamsReadContext ctx)
Определения Hand_Events.c:133
int GetAnimationID()
Определения Hand_Events.c:89
bool IsAuthoritative()
Определения Hand_Events.c:55
InventoryLocation GetSrc()
Определения Hand_Events.c:80
ref InventoryLocation m_Src
Определения Hand_Events.c:43
bool m_IsJuncture
Определения Hand_Events.c:49
HandEventBase HandAnimEventFactory(WeaponEvents type, Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:794
JUNCTURE_DENIED
Определения Hand_Events.c:31
JunctureRequestResult
Определения Hand_Events.c:28
JUNCTURE_NOT_REQUIRED
Определения Hand_Events.c:29
m_EventID
bool CheckRequestEx(InventoryValidation validation)
Определения Hand_Events.c:92
HandEventID GetEventID()
Определения Hand_Events.c:53
HandEventID
events
Определения Hand_Events.c:7
@ FORCESWAP
Определения Hand_Events.c:14
@ HUMANCOMMAND_ACTION_FINISHED
Определения Hand_Events.c:22
@ DESTROYED
Определения Hand_Events.c:17
@ DESTROY
Определения Hand_Events.c:15
@ MOVETO
Определения Hand_Events.c:10
@ TAKE
Определения Hand_Events.c:9
@ REPLACE
Определения Hand_Events.c:18
@ REPLACED
Определения Hand_Events.c:21
@ REPLACE2
Определения Hand_Events.c:19
@ REPLACE3
Определения Hand_Events.c:20
@ ANIMEVENT_CHANGE_HIDE
Определения Hand_Events.c:24
@ CREATED
Определения Hand_Events.c:16
@ THROW
Определения Hand_Events.c:12
@ HUMANCOMMAND_ACTION_ABORTED
Определения Hand_Events.c:23
@ SWAP
swapping from ground
Определения Hand_Events.c:13
int m_AnimationID
Определения Hand_Events.c:41
bool IsOwner()
Определения Hand_Events.c:60
void HandEventBase(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:52
string DumpToString()
Определения Hand_Events.c:165
EntityAI GetSrcEntity()
Определения Hand_Events.c:81
InventoryLocation GetDst()
Определения Hand_Events.c:88
bool IsProxy()
Определения Hand_Events.c:65
Icon x
Icon y
bool OptionalLocationReadFromContext(out InventoryLocation loc, notnull ParamsReadContext ctx)
Определения InventoryLocation.c:662
bool OptionalLocationWriteToContext(InventoryLocation loc, notnull ParamsWriteContext ctx)
Определения InventoryLocation.c:640
bool TryAcquireInventoryJunctureFromServer(notnull Man player, notnull InventoryLocation src, notnull InventoryLocation dst)
Определения Junctures.c:2
bool TryAcquireTwoInventoryJuncturesFromServer(notnull Man player, notnull InventoryLocation src1, notnull InventoryLocation src2, notnull InventoryLocation dst1, notnull InventoryLocation dst2)
Определения Junctures.c:35
EntityAI GetItem()
Определения RadialQuickbarMenu.c:37
Super root of all classes in Enforce script.
Определения EnScript.c:11
static void InventoryHFSMLog(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Определения Debug.c:147
Определения Debug.c:2
Определения Building.c:6
const int c_InventoryReservationTimeoutShortMS
Определения Inventory.c:713
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...
static bool SetGroundPosByOwner(EntityAI owner, notnull EntityAI item, out InventoryLocation ground)
Определения Inventory.c:1255
static bool CanForceSwapEntitiesEx(notnull EntityAI item1, InventoryLocation item1_dst, notnull EntityAI item2, out InventoryLocation item2_dst)
Определения Inventory.c:664
const float c_MaxItemDistanceRadius
anti-cheats
Определения Inventory.c:813
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)
script counterpart to engine's class Inventory
Определения Inventory.c:79
void HandAnimEventChanged(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:791
override bool CanPerformEvent()
Определения Hand_Events.c:305
override InventoryLocation GetDst()
Определения Hand_Events.c:212
override bool AcquireInventoryJunctureFromServer(notnull Man player)
Определения Hand_Events.c:257
override bool CheckRequest()
Определения Hand_Events.c:230
override bool ReserveInventory()
Определения Hand_Events.c:652
ref InventoryLocation m_Dst2
src of old item in hands
Определения Hand_Events.c:534
void HandEventCreated(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:723
string m_Type
Определения Hand_Events.c:733
override EntityAI GetSecondSrcEntity()
Определения Hand_Events.c:574
ref ReplaceItemWithNewLambdaBase m_Lambda
Определения Hand_Events.c:734
void HandEventHumanCommandActionFinished(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:808
void CheckAndExecuteForceStandUp()
Определения Hand_Events.c:646
void HandEventTake(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:210
override bool IsServerSideOnly()
Определения Hand_Events.c:718
void HandEventReplaced(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:784
void HandEventSwap(Man p=null, InventoryLocation src=null, InventoryLocation src2=null, InventoryLocation dst=null, InventoryLocation dst2=null)
Определения Hand_Events.c:537
void HandEventDestroy(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:716
void HandEventMoveTo(Man p=null, InventoryLocation src=null, InventoryLocation dst=null)
destination for item in hands
Определения Hand_Events.c:274
override string DumpToString()
Определения Hand_Events.c:332
override void ReadFromContext(ParamsReadContext ctx)
Определения Hand_Events.c:276
override void ClearInventoryReservation()
Определения Hand_Events.c:671
override void WriteToContext(ParamsWriteContext ctx)
Определения Hand_Events.c:282
void HandEvengReplaceWithNewBase(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
Определения Hand_Events.c:736
override bool CheckRequestSrc()
Определения Hand_Events.c:219
void HandEventDestroyed(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:728
override bool CanPerformEventEx(InventoryValidation validation)
Определения Hand_Events.c:235
void HandEventHumanCommandActionAborted(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:814
ref InventoryLocation m_Src2
destination for new item (i.e. hands)
Определения Hand_Events.c:533
ref InventoryLocation m_Dst
Определения Hand_Events.c:272
int m_Animation2ID
destination for old item that was in hands
Определения Hand_Events.c:535
Abstracted event, not to be used, only inherited.
Определения Hand_Events.c:209
void HandEventDestroyAndReplaceWithNewElsewhere(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
Определения Hand_Events.c:774
void HandEventDrop(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:399
override void ReadFromContext(ParamsReadContext ctx)
Определения Hand_Events.c:405
vector GetForce()
Определения Hand_Events.c:524
void HandEventThrow(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:476
bool m_CanPerformDrop
Определения Hand_Events.c:471
override void WriteToContext(ParamsWriteContext ctx)
Определения Hand_Events.c:417
override bool CheckRequestEx(InventoryValidation validation)
Определения Hand_Events.c:425
vector m_Force
Определения Hand_Events.c:526
void SetForce(vector force)
Определения Hand_Events.c:523
override bool CanPerformEventEx(InventoryValidation validation)
Определения Hand_Events.c:442
Определения Hand_Events.c:398
void HandEventDestroyAndReplaceWithNew(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
Определения Hand_Events.c:769
void HandEventDestroyElsewhereAndReplaceWithNewInHands(Man p=null, InventoryLocation src=null, ReplaceItemWithNewLambdaBase lambda=NULL)
Определения Hand_Events.c:779
void HandEventForceSwap(Man p=null, InventoryLocation src=null, InventoryLocation src2=null, InventoryLocation dst=null, InventoryLocation dst2=null)
Определения Hand_Events.c:680
override bool CheckRequest()
Определения Hand_Events.c:682
override bool CanPerformEvent()
Определения Hand_Events.c:700
Определения Hand_Events.c:679
proto native void SetHands(notnull EntityAI parent, EntityAI e)
sets current inventory location type to Hands
static string DumpToStringNullSafe(InventoryLocation loc)
Определения InventoryLocation.c:226
bool ReadFromContext(ParamsReadContext ctx)
Определения InventoryLocation.c:296
proto native EntityAI GetItem()
returns item of current inventory location
InventoryLocation.
Определения InventoryLocation.c:29
bool m_IsJuncture
Определения Inventory.c:45
InventoryValidationReason m_Reason
Определения Inventory.c:49
bool m_IsRemote
Определения Inventory.c:46
Определения Inventory.c:44
static bool IsSyncLogEnable()
Определения Debug.c:678
static bool IsInventoryHFSMLogEnable()
Определения Debug.c:668
Определения Debug.c:594
Определения ObjectTyped.c:2
base class for transformation operations (creating one item from another)
Определения ReplaceItemWithNewLambdaBase.c:5
proto bool Write(void value_out)
proto bool Read(void value_in)
Определения EnConvert.c:106
DayZPlayerInstanceType
defined in C++
Определения dayzplayer.c:1068
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
Serializer ParamsWriteContext
Определения gameplay.c:16
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
ERROR
Определения EnDebug.c:2
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
WeaponEvents
events
Определения human.c:963