Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
trap_rabbitsnare.c
Go to the documentation of this file.
1class Trap_RabbitSnare extends TrapSpawnBase
2{
3 override void InitTrapValues()
4 {
5 super.InitTrapValues();
6
7 m_DefectRate = 2.5; //Added damage after trap activation
8
9 m_InitWaitTimeMin = 120;
10 m_InitWaitTimeMax = 180;
11 m_UpdateWaitTime = 30;
12 m_SpawnUpdateWaitTime = 30;
13 m_MaxActiveTime = 1200;
14 m_IsFoldable = true;
15 m_MinimalDistanceFromPlayersToCatch = 15;
16
17 m_AnimationPhaseSet = "inventory";
18 m_AnimationPhaseTriggered = "placing";
19 m_AnimationPhaseUsed = "triggered";
20 }
21
22 override bool CanBePlaced(Man player, vector position)
23 {
25 return true;
26
27 int liquidType;
28 string surfaceType;
29 g_Game.SurfaceUnderObject(PlayerBase.Cast(player).GetHologramLocal().GetProjectionEntity(), surfaceType, liquidType);
30
31 return g_Game.IsSurfaceDigable(surfaceType);
32 }
33
34 override void SetupTrap()
35 {
36 if ( g_Game.IsServer() )
37 {
38 if ( GetHierarchyRootPlayer().CanDropEntity( this ) )
39 {
40 if ( IsRuined() )
41 {
42 PlayerBase player = PlayerBase.Cast( GetHierarchyRootPlayer() );
43 }
44 else
45 {
46 PlayerBase owner_player = PlayerBase.Cast( GetHierarchyRootPlayer() );
47
48 //GetDirection
49 vector trapPos = owner_player.GetDirection();
50 trapPos[1] = 0;
51 SetPosition( owner_player.GetPosition() + trapPos );
52
53 SetActive();
54
55 SetOrientation( owner_player.GetOrientation() );
56 }
57 }
58 }
59 }
60
61 override void InitCatchingComponent()
62 {
63 if (!m_CatchingContext)
64 {
65 int updateCount = m_MaxActiveTime/m_UpdateWaitTime;
66 Param2<EntityAI,int> par = new Param2<EntityAI,int>(this,updateCount);
67 m_CatchingContext = new CatchingContextTrapLandSnare(par);
68 }
69
70 super.InitCatchingComponent();
71 }
72
73 //================================================================
74 // ADVANCED PLACEMENT
75 //================================================================
76
77 override void OnPlacementComplete( Man player, vector position = "0 0 0", vector orientation = "0 0 0" )
78 {
79 super.OnPlacementComplete( player, position, orientation );
80 SetOrientation(orientation);
81 }
82
83 override bool IsDeployable()
84 {
85 return true;
86 }
87
88 override string GetDeploySoundset()
89 {
90 return "placeRabbitSnareTrap_SoundSet";
91 }
92
93 override string GetLoopDeploySoundset()
94 {
95 return "rabbitsnare_deploy_SoundSet";
96 }
97
98 override void SetActions()
99 {
100 super.SetActions();
101
102 // We remove the hunting trap deploy action in order to allow advanced placement
104
107 }
108
109 // ===============================================================
110 // ===================== DEPRECATED ============================
111 // ===============================================================
112
113 override void AlignCatch( ItemBase obj, string catch_name )
114 {
115 if ( catch_name == "Animal_LepusEuropaeus" )
116 {
117 obj.SetOrientation( GetOrientation() );
118
119 vector forward_vec = GetDirection();
120 vector side_vec = forward_vec.Perpend( ) * -0.22;
121 forward_vec = forward_vec * -0.3;
122
123 vector chatch_pos = obj.GetPosition() + forward_vec + side_vec;
124 obj.SetPosition( chatch_pos );
125 }
126 }
127}
128
129class RabbitSnareTrap extends Trap_RabbitSnare
130{
131
132}
PlaceObjectActionReciveData ActionReciveData ActionDeployObject()
void AddAction(typename actionName)
void RemoveAction(typename actionName)
vector GetOrientation()
override string GetDeploySoundset()
override string GetLoopDeploySoundset()
override void SetupTrap()
override bool CanBePlaced(Man player, vector position)
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
override void AlignCatch(ItemBase obj, string catch_name)
override void InitTrapValues()
override bool IsDeployable()
override void InitCatchingComponent()
override void SetActions()
vector Perpend()
Returns perpendicular vector.
Definition enconvert.c:222
DayZGame g_Game
Definition dayzgame.c:3942
proto native void SetPosition(vector position)
Set the world position of the Effect.
Definition effect.c:463
bool m_IsBeingPlaced
Definition itembase.c:4957
string m_AnimationPhaseTriggered
Definition trapbase.c:34
float m_DefectRate
Definition trapbase.c:19
void SetActive()
Definition trapbase.c:404
string m_AnimationPhaseSet
Definition trapbase.c:33