DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionDrinkPondContinuous.c
См. документацию.
8
10{
11 private const float WATER_DRANK_PER_SEC = 35;
12 protected const string ALLOWED_WATER_SURFACES = string.Format("%1|%2", UAWaterType.FRESH, UAWaterType.STILL);
13
14 //protected ref TTypenameArray m_IgnoredObjectTypes = new TTypenameArray();
15
17 {
18 m_CallbackClass = ActionDrinkPondContinuousCB;
19 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DRINKPOND;
20 m_FullBody = true;
21 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
22 m_Text = "#drink";
23 }
24
25 override bool IsDrink()
26 {
27 return true;
28 }
29
30 override typename GetInputType()
31 {
33 }
34
35 override bool CanBeUsedInFreelook()
36 {
37 return false;
38 }
39
45
46 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
47 {
50 if (target.GetObject() && target.GetObject().GetWaterSourceObjectType() != EWaterSourceObjectType.NONE)
51 return false;
52
53 if (item && item.IsHeavyBehaviour())
54 return false;
55
56 return player.CanEatAndDrink();
57 }
58
59 override void OnStart(ActionData action_data)
60 {
61 super.OnStart(action_data);
62
63 action_data.m_Player.TryHideItemInHands(true);
64 }
65
66 override void OnEnd(ActionData action_data)
67 {
68 action_data.m_Player.TryHideItemInHands(false);
69 }
70
71 override void OnFinishProgressServer(ActionData action_data)
72 {
73 Param1<float> nacdata = Param1<float>.Cast(action_data.m_ActionComponent.GetACData());
74 if (nacdata)
75 {
76 EConsumeType consumeType;
77 int liquidSource = CCTLiquid.Cast(m_ConditionTarget).GetLiquidType();
78 switch (liquidSource)
79 {
81 consumeType = EConsumeType.ENVIRO_WELL;
82 break;
83
84 default:
85 consumeType = EConsumeType.ENVIRO_POND;
86 break;
87 }
88
89 PlayerConsumeData consumeData = new PlayerConsumeData();
90
91 consumeData.m_Type = consumeType;
92 consumeData.m_Amount = UAQuantityConsumed.DRINK;
93 consumeData.m_Source = null;
94 consumeData.m_Agents = action_data.m_Player.GetBloodyHandsPenaltyAgents();
95 consumeData.m_LiquidType = liquidSource;
96
97 action_data.m_Player.Consume(consumeData);
98 }
99 }
100
101 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
102 {
103 super.WriteToContext(ctx, action_data);
104
105 if (HasTarget())
106 {
107 ctx.Write(action_data.m_Target.GetCursorHitPos());
108 return;
109 }
110
111 ctx.Write(vector.Zero);
112 }
113
114 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
115 {
116 super.ReadFromContext(ctx, action_recive_data);
117
118 if (HasTarget())
119 {
120 vector cursorPosition;
121 if (!ctx.Read(cursorPosition))
122 return false;
123
124 action_recive_data.m_Target.SetCursorHitPos(cursorPosition);
125 }
126
127 return true;
128 }
129
130 override bool IsLockTargetOnUse()
131 {
132 return false;
133 }
134
136 [Obsolete("1.30: No replacement. Method is no longer needed as liquid source is now checked and provided by the CCTLiquid target condition.")]
137 protected int GetLiquidSource(ActionTarget target)
138 {
139 vector hitPosition = target.GetCursorHitPos();
140 string surfaceType;
141 int liquidSource;
142
143 g_Game.SurfaceGetType3D(hitPosition[0], hitPosition[1], hitPosition[2], surfaceType);
144 string path = "CfgSurfaces " + surfaceType + " liquidType";
145 liquidSource = g_Game.ConfigGetInt(path);
146
147 return liquidSource;
148 }
149}
override void OnFinishProgressServer(ActionData action_data)
Определения ActionActivateTrap.c:131
bool CanBeUsedInFreelook()
Определения ActionBase.c:406
bool m_FullBody
Определения ActionBase.c:60
string m_Text
Определения ActionBase.c:57
bool HasTarget()
Определения ActionBase.c:259
bool IsLockTargetOnUse()
Определения ActionBase.c:102
void CreateConditionComponents()
Определения ActionBase.c:245
GetInputType()
Определения ActionBase.c:230
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
bool IsDrink()
Определения ActionBase.c:320
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:441
int m_StanceMask
Определения ActionBase.c:61
int GetLiquidSource(ActionTarget target)
DEPRECATED.
Определения ActionDrinkPondContinuous.c:137
void ActionDrinkPondContinuous()
Определения ActionDrinkPondContinuous.c:16
ActionDrinkPondContinuousCB WATER_DRANK_PER_SEC
const string ALLOWED_WATER_SURFACES
Определения ActionDrinkPondContinuous.c:12
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
DayZGame g_Game
Определения DayZGame.c:4074
EConsumeType
Определения EConsumeType.c:2
EWaterSourceObjectType
Определения EWaterSourceObjectType.c:2
void ReadFromContext(ParamsReadContext ctx)
Определения Hand_Events.c:70
void WriteToContext(ParamsWriteContext ctx)
Определения Hand_Events.c:72
string path
Определения OptionSelectorMultistate.c:142
void OnStart(Param par=null)
Определения PPERequestPlatformsBase.c:787
ActionData m_ActionData
Определения AnimatedActionBase.c:3
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ref CABase m_ActionComponent
Определения ActionBase.c:37
Определения ActionBase.c:22
override void CreateActionComponent()
Определения ActionDrinkPondContinuous.c:3
Param GetACData()
Определения CABase.c:48
Определения CCINone.c:2
int GetLiquidType()
Определения CCTLiquid.c:1009
Определения CCTLiquid.c:2
Определения PlayerBaseClient.c:2
EConsumeType m_Type
Определения PlayerConsumeData.c:8
float m_Amount
Определения PlayerConsumeData.c:3
int m_LiquidType
Определения PlayerConsumeData.c:5
int m_Agents
Определения PlayerConsumeData.c:4
ItemBase m_Source
Определения PlayerConsumeData.c:7
proto bool Write(void value_out)
proto bool Read(void value_in)
const float DEFAULT
Определения ActionConstants.c:114
const float DRINK
Определения ActionConstants.c:14
const float DRINK_POND
Определения ActionConstants.c:74
Определения ActionConstants.c:28
const string FRESH
fake
Определения ActionConstants.c:166
const string STILL
Определения ActionConstants.c:167
Определения ActionConstants.c:164
static const vector Zero
Определения EnConvert.c:123
Определения EnConvert.c:119
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
void Obsolete(string msg="")
Определения EnScript.c:371
const int LIQUID_HOTWATER
Определения 3_Game/DayZ/constants.c:590
const int LIQUID_GROUP_DRINKWATER
Определения 3_Game/DayZ/constants.c:593
const int LIQUID_CLEANWATER
Определения 3_Game/DayZ/constants.c:591
const int LIQUID_SNOW
Определения 3_Game/DayZ/constants.c:586
void OnEnd()
Определения Sound.c:226