Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actionactivatetrap.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
5 m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.DEFAULT_DEPLOY);
6 }
7
8 override void InitActionComponent()
9 {
10 super.InitActionComponent();
11
12 RegisterAnimationEvent("CraftingAction", UA_IN_CRAFTING);
13 }
14}
15
17{
19 {
20 m_CallbackClass = ActionActivateTrapCB;
21 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_CRAFTING;
22 m_FullBody = true;
23 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
24 m_Sound = "craft_universal_0";
25 m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
26
27 m_Text = "#activate";
28 }
29
31 {
32 m_ConditionTarget = new CCTNonRuined( UAMaxDistances.DEFAULT );
33 m_ConditionItem = new CCINotPresent;
34 }
35
36 override typename GetInputType()
37 {
39 }
40
41 override bool HasProgress()
42 {
43 return true;
44 }
45
46 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
47 {
48 ItemBase targetItem = ItemBase.Cast(target.GetObject());
49 if (targetItem && targetItem.IsBeingPlaced())
50 return false;
51
52 if (player.PhysicsGetLinkedEntity() != null)
53 return false;
54
55 Object targetObject = target.GetObject();
56 if (targetObject != null)
57 {
58 if (targetObject.IsInherited(TrapBase))
59 {
60 TrapBase trap = TrapBase.Cast(targetObject);
61 if (trap.IsActivable() && trap.IsPlaceableAtPosition(trap.GetPosition()))
62 return true;
63 }
64 else if (targetObject.IsInherited(TrapSpawnBase))
65 {
66 TrapSpawnBase spawnTrap = TrapSpawnBase.Cast(targetObject);
67
68 if (spawnTrap && !spawnTrap.IsActive())
69 return spawnTrap.IsPlaceableAtPosition(spawnTrap.GetPosition());
70 }
71 }
72
73 return false;
74 }
75
76 override void OnStartAnimationLoop( ActionData action_data )
77 {
78 super.OnStartAnimationLoop( action_data );
79
80 if ( !GetGame().IsMultiplayer() || GetGame().IsServer() )
81 {
82 TrapBase trap = TrapBase.Cast( action_data.m_Target.GetObject() );
83 if ( trap )
84 {
85 Param1<bool> play = new Param1<bool>( true );
86 GetGame().RPCSingleParam( trap, SoundTypeTrap.ACTIVATING, play, true );
87 }
88 }
89 }
90
91 override void OnEnd( ActionData action_data )
92 {
93 if ( !GetGame().IsMultiplayer() || GetGame().IsServer() )
94 {
95 TrapBase trap = TrapBase.Cast( action_data.m_Target.GetObject());
96 if ( trap )
97 {
98 Param1<bool> play = new Param1<bool>( false );
99 GetGame().RPCSingleParam( trap, SoundTypeTrap.ACTIVATING, play, true );
100 }
101 }
102 }
103
104 override void OnEndAnimationLoop(ActionData action_data)
105 {
106 super.OnEndAnimationLoop(action_data);
107
108 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
109 {
110 TrapBase trap = TrapBase.Cast( action_data.m_Target.GetObject());
111 Param1<bool> play = new Param1<bool>(false);
112 GetGame().RPCSingleParam(trap, SoundTypeTrap.ACTIVATING, play, true);
113 }
114 }
115
116 override void OnFinishProgressServer(ActionData action_data)
117 {
118 Object targetObject = action_data.m_Target.GetObject();
119 if (targetObject != null)
120 {
121 vector orientation = action_data.m_Player.GetOrientation();
122 vector position = targetObject.GetPosition();
123
124 if (targetObject.IsInherited(TrapBase))
125 {
126 TrapBase trap = TrapBase.Cast(targetObject);
127 trap.OnPlacementComplete(action_data.m_Player, position, orientation);
128 trap.StartActivate(action_data.m_Player);
129 }
130 else if (targetObject.IsInherited(TrapSpawnBase))
131 {
132 TrapSpawnBase spawnTrap = TrapSpawnBase.Cast( targetObject );
133 spawnTrap.OnPlacementComplete(action_data.m_Player, position, orientation);
134 }
135 }
136 }
137}
override void OnStartAnimationLoop(ActionData action_data)
override void OnEndAnimationLoop(ActionData action_data)
ActionActivateTrapCB ActionContinuousBaseCB ActionActivateTrap()
int m_CommandUID
Definition actionbase.c:31
int m_StanceMask
Definition actionbase.c:33
override GetInputType()
ActionData m_ActionData
bool HasProgress()
For UI: hiding of progress bar.
Definition actionbase.c:250
void CreateConditionComponents()
Definition actionbase.c:230
void OnFinishProgressServer(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
Definition trap_bear.c:228
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
proto native CGame GetGame()
void OnEnd()
Definition sound.c:226
const int UA_IN_CRAFTING
Definition constants.c:483
EffectSound m_Sound
SoundTypeTrap
Definition trapbase.c:2