DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionDigOutStash.c
См. документацию.
2{
3 override void CreateActionComponent()
4 {
5 m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.DIG_STASH);
6 }
7}
8
10{
12 {
13 m_CallbackClass = ActionDigOutStashCB;
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIGUPCACHE;
15 m_FullBody = true;
16 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
17 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
18 m_Text = "#dig_stash";
19 }
20
22 {
23 m_ConditionTarget = new CCTObject(UAMaxDistances.DEFAULT);
24 m_ConditionItem = new CCINonRuined();
25 }
26
27 override bool Can(PlayerBase player, ActionTarget target, ItemBase item, int condition_mask)
28 {
29 if (!super.Can(player, target, item, condition_mask))
30 return false;
31
32 return player.CheckFreeSpace(vector.Forward, 1.0, false);
33 }
34
35
36 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
37 {
38 ItemBase target_IB;
39 if (Class.CastTo(target_IB, target.GetObject()))
40 {
41 if (target_IB.CanBeDigged())
42 {
43 return target_IB.IsInherited(UndergroundStash);
44 }
45 }
46
47 return false;
48 }
49
50 override void OnExecuteClient(ActionData action_data)
51 {
52 super.OnExecuteClient(action_data);
53
54 SpawnParticleShovelRaise(action_data);
55 }
56
57 override void OnExecuteServer(ActionData action_data)
58 {
59 super.OnExecuteServer(action_data);
60
61 if (!GetGame().IsMultiplayer())
62 {
63 SpawnParticleShovelRaise(action_data);
64 }
65 }
66
68 {
69 ParticleManager.GetInstance().PlayOnObject(ParticleList.DIGGING_STASH, action_data.m_Player);
70 }
71
72 override void OnFinishProgressServer( ActionData action_data )
73 {
74 EntityAI targetEntity = EntityAI.Cast(action_data.m_Target.GetObject());
75 if (!targetEntity)
76 {
77 ErrorEx("Cannot get entity=" + targetEntity);
78 return;
79 }
80
81 InventoryLocation target_IL = new InventoryLocation();
82 if (!targetEntity.GetInventory().GetCurrentInventoryLocation(target_IL))
83 {
84 ErrorEx("Cannot get inventory location of entity=" + targetEntity);
85 return;
86 }
87
88 // Dig out of stash
89 UndergroundStash stash;
90 if (Class.CastTo(stash, targetEntity))
91 {
92 ItemBase stashedItem = stash.GetStashedItem();
93 if (stashedItem)
94 {
95 DigOutStashLambda lambda(stash, "", action_data.m_Player);
96 action_data.m_Player.ServerReplaceItemWithNew(lambda);
97 }
98 else
99 g_Game.ObjectDelete(stash);
100 }
101
102 //Apply tool damage
103 MiscGameplayFunctions.DealEvinronmentAdjustedDmg(action_data.m_MainItem, action_data.m_Player, 10);
104 }
105
106 override string GetAdminLogMessage(ActionData action_data)
107 {
108 return string.Format("Player %1 Dug out %2 at position %3", action_data.m_Player, action_data.m_Target.GetObject(), action_data.m_Target.GetObject().GetPosition());
109 }
110}
111
113{
114 void DigOutStashLambda(EntityAI old_item, string new_item_type, PlayerBase player) {}
115
116 override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
117 {
118 super.CopyOldPropertiesToNew(old_item, new_item);
119 }
120}
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
ActionDigOutStashCB ActionContinuousBaseCB ActionDigOutStash()
Определения ActionDigOutStash.c:11
void SpawnParticleShovelRaise(ActionData action_data)
Определения ActionDigOutStash.c:67
class ActionTargets ActionTarget
DayZGame g_Game
Определения DayZGame.c:3868
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
string GetAdminLogMessage(ActionData action_data)
Определения ActionBase.c:1326
bool Can(PlayerBase player, ActionTarget target, ItemBase item, int condition_mask)
Определения ActionBase.c:861
void CreateConditionComponents()
Определения ActionBase.c:230
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void OnFinishProgressServer(ActionData action_data)
Определения ActionContinuousBase.c:283
override void CreateActionComponent()
Определения ActionDigOutStash.c:3
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:240
void OnExecuteServer(ActionData action_data)
Определения AnimatedActionBase.c:175
void OnExecuteClient(ActionData action_data)
Определения AnimatedActionBase.c:179
Определения CCINonRuined.c:2
Определения CCTObject.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
Определения ActionDigOutStash.c:116
void DigOutStashLambda(EntityAI old_item, string new_item_type, PlayerBase player)
Определения ActionDigOutStash.c:114
void DropEquipAndDestroyRootLambda(EntityAI old_item, string new_item_type, PlayerBase player)
Определения MiscGameplayFunctions.c:119
Определения Building.c:6
InventoryLocation.
Определения InventoryLocation.c:29
ItemBase GetStashedItem()
Определения UndergroundStash.c:13
Определения InventoryItem.c:731
static const int DIGGING_STASH
Определения ParticleList.c:96
Определения ParticleList.c:12
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:112
const float DIG_STASH
Определения ActionConstants.c:78
Определения ActionConstants.c:28
static const vector Forward
Определения EnConvert.c:109
Определения EnConvert.c:106
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
enum ShapeType ErrorEx
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.