DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionActivateTrap.c
См. документацию.
2{
3 override void CreateActionComponent()
4 {
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 ( !g_Game.IsMultiplayer() || g_Game.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 g_Game.RPCSingleParam( trap, SoundTypeTrap.ACTIVATING, play, true );
87 }
88 }
89 }
90
91 override void OnEnd( ActionData action_data )
92 {
93 if ( !g_Game.IsMultiplayer() || g_Game.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 g_Game.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 (!g_Game.IsMultiplayer() || g_Game.IsServer())
109 {
110 TrapBase trap = TrapBase.Cast( action_data.m_Target.GetObject());
111 Param1<bool> play = new Param1<bool>(false);
112 g_Game.RPCSingleParam(trap, SoundTypeTrap.ACTIVATING, play, true);
113 }
114 }
115
116 override void OnStartServer(ActionData action_data)
117 {
118 super.OnStartServer(action_data);
119
120 ItemBase targetItem = ItemBase.Cast(action_data.m_Target.GetObject());
121 if (targetItem)
122 {
123 if (targetItem.GetPlaceSoundset() != string.Empty)
124 targetItem.StartItemSoundServer(SoundConstants.ITEM_PLACE);
125
126 if (targetItem.GetLoopDeploySoundset() != string.Empty)
127 targetItem.StartItemSoundServer(SoundConstants.ITEM_DEPLOY_LOOP);
128 }
129 }
130
131 override void OnFinishProgressServer(ActionData action_data)
132 {
133 super.OnFinishProgressServer(action_data);
134
135 ItemBase targetObject = ItemBase.Cast(action_data.m_Target.GetObject());
136 if (targetObject != null)
137 {
138 vector orientation = action_data.m_Player.GetOrientation();
139 vector position = targetObject.GetPosition();
140
141 if (targetObject.IsInherited(TrapBase))
142 {
143 TrapBase trap = TrapBase.Cast(targetObject);
144 trap.OnPlacementComplete(action_data.m_Player, position, orientation);
145 trap.StartActivate(action_data.m_Player);
146 }
147 else if (targetObject.IsInherited(TrapSpawnBase))
148 {
149 TrapSpawnBase spawnTrap = TrapSpawnBase.Cast( targetObject );
150 spawnTrap.OnPlacementComplete(action_data.m_Player, position, orientation);
151 }
152
153 if (targetObject.GetDeploySoundset() != string.Empty)
154 targetObject.StartItemSoundServer(SoundConstants.ITEM_DEPLOY);
155
156 if (targetObject.GetLoopDeploySoundset() != string.Empty)
157 targetObject.StopItemSoundServer(SoundConstants.ITEM_DEPLOY_LOOP);
158 }
159 }
160}
ActionActivateTrapCB ActionContinuousBaseCB ActionActivateTrap()
Определения ActionActivateTrap.c:18
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
DayZGame g_Game
Определения DayZGame.c:3942
EffectSound m_Sound
Определения HungerSoundHandler.c:18
SoundTypeTrap
Определения TrapBase.c:2
override void InitActionComponent()
Определения ActionActivateTrap.c:8
override void CreateActionComponent()
Определения ActionActivateTrap.c:3
bool HasProgress()
For UI: hiding of progress bar.
Определения ActionBase.c:256
void CreateConditionComponents()
Определения ActionBase.c:236
ActionData m_ActionData
Определения AnimatedActionBase.c:3
override GetInputType()
Определения ActionContinuousBase.c:179
void OnEndAnimationLoop(ActionData action_data)
Определения ActionContinuousBase.c:226
void OnStartAnimationLoop(ActionData action_data)
Определения ActionContinuousBase.c:208
void OnFinishProgressServer(ActionData action_data)
Определения ActionContinuousBase.c:283
override void OnStartServer(ActionData action_data)
Определения AnimatedActionBase.c:489
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:240
Определения CCINotPresent.c:2
Определения CCTNonRuined.c:2
override string GetDeploySoundset()
Определения BarbedWire.c:392
override string GetLoopDeploySoundset()
Определения BarbedWire.c:397
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
Определения Trap_Bear.c:228
Определения Trap_Bear.c:2
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
Определения Trap_RabbitSnare.c:77
override bool IsPlaceableAtPosition(vector position)
Определения Trap_FishNet.c:39
Определения Trap_FishNet.c:2
const float DEFAULT
Определения ActionConstants.c:112
const float DEFAULT_DEPLOY
Определения ActionConstants.c:38
Определения ActionConstants.c:28
Определения EnConvert.c:119
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
void OnEnd()
Определения Sound.c:226
static const string Empty
Определения EnString.c:7
const int UA_IN_CRAFTING
Определения 3_Game/DayZ/constants.c:486