DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionCraftBolts.c
См. документацию.
2{
3 private const float TIME_TO_CRAFT = 3.0;
4
5 override void CreateActionComponent()
6 {
7 m_ActionData.m_ActionComponent = new CAContinuousRepeat(TIME_TO_CRAFT);
8 }
9};
10
12{
13 const ref set<string> CUTTING_TYPES = new set<string>();
14
15 protected bool m_IsKnifeInHands;
17
19 {
20 CUTTING_TYPES.Clear();
21 CUTTING_TYPES.Insert("Sickle");
22 CUTTING_TYPES.Insert("KukriKnife");
23 CUTTING_TYPES.Insert("FangeKnife");
24 CUTTING_TYPES.Insert("KitchenKnife");
25 CUTTING_TYPES.Insert("SteakKnife");
26 CUTTING_TYPES.Insert("StoneKnife");
27 CUTTING_TYPES.Insert("Cleaver");
28 CUTTING_TYPES.Insert("CombatKnife");
29 CUTTING_TYPES.Insert("Jambiya");
30 CUTTING_TYPES.Insert("HuntingKnife");
31 CUTTING_TYPES.Insert("Machete");
32 CUTTING_TYPES.Insert("CrudeMachete");
33 CUTTING_TYPES.Insert("OrientalMachete");
34 CUTTING_TYPES.Insert("WoodAxe");
35 CUTTING_TYPES.Insert("Hatchet");
36 CUTTING_TYPES.Insert("FirefighterAxe");
37 CUTTING_TYPES.Insert("AK_Bayonet");
38 CUTTING_TYPES.Insert("M9A1_Bayonet");
39 CUTTING_TYPES.Insert("SKS_Bayonet");
40 CUTTING_TYPES.Insert("BoneKnife");
41 CUTTING_TYPES.Insert("Sword");
42 CUTTING_TYPES.Insert("Scimitar");
43 CUTTING_TYPES.Insert("DonerKnife");
44 CUTTING_TYPES.Insert("Akinaka");
45 }
46
48 {
50 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_CRAFTING;
51 m_FullBody = true;
52 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
53 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
54
55 m_Text = "#STR_CraftBolt0";
56
58 }
59
61 {
64 }
65
66 protected bool IsCuttingType(Object item)
67 {
68 return CUTTING_TYPES.Find(item.ClassName()) >= 0;
69 }
70
71 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
72 {
73 if (IsCuttingType(item))
74 {
75 //knife in hands
76 if (target.GetObject())
77 return (target.GetObject().ClassName() == "WoodenStick");
78 }
79 else if (target.GetObject())
80 {
81 // material in hands
82 return IsCuttingType(target.GetObject());
83 }
84
85 return false;
86 }
87
88 override void OnStartServer(ActionData action_data)
89 {
90 super.OnStartServer(action_data);
91
93 m_ResultEntity = null;
94 }
95
96 override void OnFinishProgressServer(ActionData action_data)
97 {
98 ItemBase knife;
99 ItemBase material;
100
101 bool added = false;
102
104 {
105 //knife in hands
106 knife = action_data.m_MainItem;
107 material = ItemBase.Cast(action_data.m_Target.GetObject());
108 }
109 else
110 {
111 // material in hands
112 material = action_data.m_MainItem;
113 knife = ItemBase.Cast(action_data.m_Target.GetObject());
114 }
115
116 if (!material || !knife)
117 return;
118
119 if (m_ResultEntity)
120 {
121 if (m_ResultEntity.GetAmmoCount() < m_ResultEntity.GetAmmoMax())
122 {
123 m_ResultEntity.ServerAddAmmoCount(1);
124 added = true;
125 }
126 }
127
128 if (!added)
129 {
130 m_ResultEntity = Ammunition_Base.Cast(action_data.m_Player.SpawnEntityOnGroundRaycastDispersed("Ammo_ImprovisedBolt_1"));
131 m_ResultEntity.SetHealth("", "", material.GetHealth("", ""));
132 m_ResultEntity.ServerSetAmmoCount(1);
133 }
134
135 material.AddQuantity(-1);
136 knife.AddHealth("","",-3);
137 }
138};
bool m_FullBody
Определения ActionBase.c:60
string m_Text
Определения ActionBase.c:57
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
float m_SpecialtyWeight
Определения ActionBase.c:77
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
int m_StanceMask
Определения ActionBase.c:61
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionCraftBolts.c:71
void InitCuttingTypes()
Определения ActionCraftBolts.c:18
const ref set< string > CUTTING_TYPES
Определения ActionCraftBolts.c:13
override void OnFinishProgressServer(ActionData action_data)
Определения ActionCraftBolts.c:96
Ammunition_Base m_ResultEntity
Определения ActionCraftBolts.c:16
override void CreateConditionComponents()
Определения ActionCraftBolts.c:60
override void OnStartServer(ActionData action_data)
Определения ActionCraftBolts.c:88
bool IsCuttingType(Object item)
Определения ActionCraftBolts.c:66
bool m_IsKnifeInHands
Определения ActionCraftBolts.c:15
void ActionCraftBolts()
Определения ActionCraftBolts.c:47
override void CreateActionComponent()
Определения ActionCraftBolts.c:5
const float TIME_TO_CRAFT
Определения ActionCraftBolts.c:3
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
ammo pile base
Определения AmmunitionPiles.c:3
int m_CommandUID
Определения AnimatedActionBase.c:147
Определения CCINonRuined.c:2
Определения CCTNonRuined.c:2
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602