DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionMineTree.c
См. документацию.
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()
Определения ActionActivateTrap.c:30
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionActivateTrap.c:46
override void OnEndServer(ActionData action_data)
Определения ActionArmExplosive.c:67
override bool ActionConditionContinue(ActionData action_data)
Определения ActionAttachExplosivesTrigger.c:27
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
override void OnExecuteServer(ActionData action_data)
Определения ActionDigOutStash.c:57
override bool CanContinue(ActionData action_data)
not checking target damage anymore, callback takes care of that
Определения ActionMineTree.c:95
override bool HasMultipleExecution(ActionData action_data)
Определения ActionMineTree.c:116
ActionMineBase ActionContinuousBase ActionMineTree()
Определения ActionMineTree.c:68
MineActionData TIME_BETWEEN_MATERIAL_DROPS_DEFAULT
class ActionTargets ActionTarget
map
Определения ControlsXboxNew.c:4
eBrokenLegs
Определения EBrokenLegs.c:2
void EffecterBase()
Определения EffectManager.c:690
void WoodBase()
Определения WoodBase.c:30
EHarvestType
Определения WoodBase.c:2
string m_Text
Определения ActionBase.c:58
void CreateActionComponent()
Определения AnimatedActionBase.c:61
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override bool CanBeUsedInFreelook()
Определения ActionMineTree.c:28
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionMineTree.c:33
string GetYieldName(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionMineTree.c:38
EHarvestType m_HarvestType
Определения ActionMineTree.c:19
override ActionData CreateActionData()
Определения ActionMineTree.c:21
Определения ActionMineTree.c:18
Определения CCINonRuined.c:2
Определения CCTCursor.c:2
Определения InventoryItem.c:731
EHarvestType m_HarvestType
Определения ActionMineTree.c:3
int m_EffecterID
Определения ActionMineTree.c:4
Определения ActionMineTree.c:2
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
void GetMaterialAndQuantityMap(ItemBase item, out map< string, int > output_map)
Определения RockBase.c:19
Определения RockBase.c:2
static void DestroyEffecterParticleServer(int effecterID)
Определения EffectManager.c:630
static int CreateParticleServer(vector pos, EffecterParameters parameters)
returns unique effecter ID
Определения EffectManager.c:577
static void ReactivateParticleServer(int effecterID)
Определения EffectManager.c:602
Manager class for managing Effect (EffectParticle, EffectSound)
Определения EffectManager.c:6
const float SMALL
Определения ActionConstants.c:111
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602