DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionDisarmMine.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
6 }
7}
8
10{
11 void ActionDisarmMine()
12 {
13 m_CallbackClass = ActionDisarmMineCB;
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
15 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
16 m_FullBody = true;
17
18 m_Text = "#disarm";
19 }
20
22 {
25 }
26
27 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
28 {
29 if (!target)
30 {
31 return false;
32 }
33
34 LandMineTrap targetMine;
35 if (Class.CastTo(targetMine, target.GetObject()) && item && IsInReach(player, target, UAMaxDistances.DEFAULT))
36 {
37 return targetMine.IsActive() && targetMine.CanBeDisarmed();
38 }
39
40 return false;
41 }
42
43 override void OnStartAnimationLoop(ActionData action_data)
44 {
45 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
46 {
47 LandMineTrap targetMine = LandMineTrap.Cast(action_data.m_Target.GetObject());
48 Param1<bool> play = new Param1<bool>(true);
49 GetGame().RPCSingleParam(targetMine, SoundTypeMine.DISARMING, play, true);
50 }
51 }
52
53 override void OnAnimationEvent(ActionData action_data)
54 {
55 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
56 {
57 LandMineTrap targetMine = LandMineTrap.Cast(action_data.m_Target.GetObject());
58 Param1<bool> play = new Param1<bool>(true);
59 GetGame().RPCSingleParam(targetMine, SoundTypeMine.DISARMING, play, true);
60 }
61 }
62
63 override void OnEndAnimationLoop( ActionData action_data )
64 {
65 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
66 {
67 LandMineTrap targetMine = LandMineTrap.Cast(action_data.m_Target.GetObject());
68 Param1<bool> play = new Param1<bool>(false);
69 GetGame().RPCSingleParam(targetMine, SoundTypeMine.DISARMING, play, true);
70 }
71 }
72
73 override void OnFinishProgressServer(ActionData action_data)
74 {
75 LandMineTrap targetMine;
76 Class.CastTo(targetMine, action_data.m_Target.GetObject());
77
78 ToolBase tool;
79 Class.CastTo(tool, action_data.m_MainItem);
80
81 if (Math.RandomIntInclusive(0, 100) < tool.GetDisarmRate())
82 {
83 targetMine.Disarm();
84 }
85 else
86 {
87 targetMine.OnSteppedOn(action_data.m_Player);
88 }
89
90 MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, 2);
91 }
92};
void CreateConditionComponents()
Definition ActionBase.c:218
ref CCIBase m_ConditionItem
Definition ActionBase.c:55
ref CCTBase m_ConditionTarget
Definition ActionBase.c:56
protected bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
Definition ActionBase.c:927
protected string m_Text
Definition ActionBase.c:49
protected bool m_FullBody
Definition ActionBase.c:52
protected int m_StanceMask
Definition ActionBase.c:53
ActionDisarmMineCB ActionContinuousBaseCB ActionDisarmMine()
class ActionTargets ActionTarget
void LandMineTrap()
SoundTypeMine
protected ActionData m_ActionData
void OnStartAnimationLoop(ActionData action_data)
void OnEndAnimationLoop(ActionData action_data)
protected void OnFinishProgressServer(ActionData action_data)
ItemBase m_MainItem
Definition ActionBase.c:28
PlayerBase m_Player
Definition ActionBase.c:33
ref CABase m_ActionComponent
Definition ActionBase.c:30
ref ActionTarget m_Target
Definition ActionBase.c:32
override void CreateActionComponent()
void OnAnimationEvent(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
void RPCSingleParam(Object target, int rpc_type, Param param, bool guaranteed, PlayerIdentity recipient=null)
see CGame.RPC
Definition Game.c:882
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition EnMath.c:7
const float DEFAULT
const float DISARM_MINE
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Definition EnMath.c:53