DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionDisarmExplosive.c
См. документацию.
2{
3 override void CreateActionComponent()
4 {
6 }
7}
8
10{
12 {
13 m_CallbackClass = ActionDisarmExplosiveCB;
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 {
23 m_ConditionItem = new CCINonRuined();
24 m_ConditionTarget = new CCTCursor();
25 }
26
27 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
28 {
29 if (!target)
30 {
31 return false;
32 }
33
34 ExplosivesBase explosive;
35 if (Class.CastTo(explosive, target.GetObject()) && item)
36 {
37 return explosive.GetArmed() && explosive.CanBeDisarmed();
38 }
39
40 return false;
41 }
42
43 override void OnStartServer(ActionData action_data)
44 {
45 super.OnStartServer(action_data);
46
47 ExplosivesBase item = ExplosivesBase.Cast(action_data.m_Target.GetObject());
48 if (item.GetDisarmSoundset() != string.Empty)
49 item.StartItemSoundServer(SoundConstants.ITEM_EXPLOSIVE_DISARM);
50 }
51
52 override void OnEndServer(ActionData action_data)
53 {
54 super.OnEndServer(action_data);
55
56 ExplosivesBase item = ExplosivesBase.Cast(action_data.m_Target.GetObject());
57 if (item.GetDisarmSoundset() != string.Empty)
58 item.StopItemSoundServer(SoundConstants.ITEM_EXPLOSIVE_DISARM);
59 }
60
61 override void OnFinishProgressServer(ActionData action_data)
62 {
63 ExplosivesBase explosive = ExplosivesBase.Cast(action_data.m_Target.GetObject());
64 ToolBase tool = ToolBase.Cast(action_data.m_MainItem);
65
66 if (Math.RandomIntInclusive(0, 100) < tool.GetDisarmRate())
67 {
68 explosive.OnBeforeDisarm();
69 explosive.Disarm(true);
70 }
71 else
72 {
73 explosive.SetHealth("", "", 0.0);
74 }
75
76 MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, UADamageApplied.DEFUSE_TOOLS);
77 }
78}
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
ActionDisarmExplosiveCB ActionContinuousBaseCB ActionDisarmExplosive()
Определения ActionDisarmExplosive.c:11
class ActionTargets ActionTarget
void ExplosivesBase()
Определения ExplosivesBase.c:42
void CreateConditionComponents()
Определения ActionBase.c:230
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void OnFinishProgressServer(ActionData action_data)
Определения ActionContinuousBase.c:283
override void CreateActionComponent()
Определения ActionDisarmExplosive.c:3
override void OnStartServer(ActionData action_data)
Определения AnimatedActionBase.c:489
override void OnEndServer(ActionData action_data)
Определения AnimatedActionBase.c:497
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:240
Определения CCINonRuined.c:2
Определения CCTCursor.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения InventoryItem.c:731
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
Определения BoneKnife.c:2
const float DEFUSE_TOOLS
Определения ActionConstants.c:155
const float DISARM_MINE
Определения ActionConstants.c:89
Определения ActionConstants.c:28
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
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].
Определения EnMath.c:54