Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
actionminetree.c
Go to the documentation of this file.
6
7class ActionMineTreeCB : ActionContinuousBaseCB
8{
9 private const float TIME_BETWEEN_MATERIAL_DROPS_DEFAULT = 4;
10
11 override void CreateActionComponent()
12 {
13 m_ActionData.m_ActionComponent = new CAContinuousMineWood(TIME_BETWEEN_MATERIAL_DROPS_DEFAULT);
14 }
15};
16
18{
20
22 {
25 return data;
26 }
27
28 override bool CanBeUsedInFreelook()
29 {
30 return false;
31 }
32
33 override void OnActionInfoUpdate( PlayerBase player, ActionTarget target, ItemBase item )
34 {
35 m_Text = "#harvest" + " " + GetYieldName(player, target, item);
36 }
37
38 string GetYieldName( PlayerBase player, ActionTarget target, ItemBase item )
39 {
40 //given the circumstances, the implementation bellow is the path of least resistance
41 Object targetObject = target.GetObject();
42 WoodBase wood = WoodBase.Cast(targetObject);
43 RockBase rock = RockBase.Cast(targetObject);
44 string yieldName;
45 if (wood || rock)
46 {
47 map<string,int> output_map = new map<string,int>;
48 if (wood)
49 {
50 wood.GetMaterialAndQuantityMapEx(item, output_map, m_HarvestType);
51 }
52 else
53 {
54 rock.GetMaterialAndQuantityMap(item, output_map);
55 }
56 if (output_map.Count() > 0)
57 {
58 yieldName = MiscGameplayFunctions.GetItemDisplayName(output_map.GetKey(0));
59 }
60 }
61 return yieldName;
62 }
63
64}
65
67{
68 void ActionMineTree()
69 {
70 m_CallbackClass = ActionMineTreeCB;
71 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_HACKTREE;
72 m_FullBody = true;
73 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
74 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
75 }
76
78 {
79 m_ConditionTarget = new CCTCursor(UAMaxDistances.SMALL);
80 m_ConditionItem = new CCINonRuined;
81 }
82
83 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
84 {
85 //Action not allowed if player has broken legs
86 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
87 return false;
89 Object targetObject = target.GetObject();
90
91 return targetObject.IsTree() && targetObject.IsCuttable();
92 }
93
95 override bool CanContinue(ActionData action_data)
96 {
97 if (!action_data.m_Player.IsPlayerInStance(action_data.m_PossibleStanceMask) || !m_ConditionItem || !m_ConditionItem.CanContinue(action_data.m_Player,action_data.m_MainItem))
98 return false;
99
100 return ActionConditionContinue(action_data);
101 }
102
103 override void OnExecuteServer(ActionData action_data)
104 {
105 MineActionData mad = MineActionData.Cast(action_data);
106 if (mad.m_EffecterID == -1)
107 {
108 mad.m_EffecterID = SEffectManager.CreateParticleServer(action_data.m_Target.GetObject().GetPosition(), new TreeEffecterParameters("TreeEffecter", EffecterBase.NOT_DEFINED_LIFESPAN, 0.1));
109 }
110 else
111 {
113 }
114 }
115
116 override bool HasMultipleExecution(ActionData action_data)
117 {
118 return true;
119 }
120
121 override void OnEndServer(ActionData action_data)
122 {
123 super.OnEndServer(action_data);
124 MineActionData mad = MineActionData.Cast(action_data);
126 }
127};
override void CreateConditionComponents()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnEndServer(ActionData action_data)
override bool ActionConditionContinue(ActionData action_data)
int m_CommandUID
Definition actionbase.c:31
int m_StanceMask
Definition actionbase.c:33
ActionBase ActionData
Definition actionbase.c:30
override void OnExecuteServer(ActionData action_data)
override bool CanContinue(ActionData action_data)
not checking target damage anymore, callback takes care of that
override bool HasMultipleExecution(ActionData action_data)
ActionMineBase ActionContinuousBase ActionMineTree()
MineActionData TIME_BETWEEN_MATERIAL_DROPS_DEFAULT
class ActionTargets ActionTarget
void CreateActionComponent()
string m_Text
Definition actionbase.c:64
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
override ActionData CreateActionData()
override bool CanBeUsedInFreelook()
EHarvestType m_HarvestType
string GetYieldName(PlayerBase player, ActionTarget target, ItemBase item)
EHarvestType m_HarvestType
void GetMaterialAndQuantityMap(ItemBase item, out map< string, int > output_map)
Definition rockbase.c:19
Manager class for managing Effect (EffectParticle, EffectSound).
static void DestroyEffecterParticleServer(int effecterID)
static void ReactivateParticleServer(int effecterID)
static int CreateParticleServer(vector pos, EffecterParameters parameters)
returns unique effecter ID
const float SMALL
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
eBrokenLegs
Definition ebrokenlegs.c:2
void EffecterBase()
void WoodBase()
Definition woodbase.c:30
EHarvestType
Definition woodbase.c:2