DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionDrinkPondContinuous.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
6 }
7}
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
15 {
16 m_CallbackClass = ActionDrinkPondContinuousCB;
17 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DRINKPOND;
18 m_FullBody = true;
19 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
20 m_Text = "#drink";
21 }
22
23 override bool IsDrink()
24 {
25 return true;
26 }
27
28 override typename GetInputType()
29 {
31 }
32
34 {
37 }
38
39 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
40 {
41 if (item && item.IsHeavyBehaviour())
42 return false;
43
44 return player.CanEatAndDrink();
45 }
46
47 override void OnStart(ActionData action_data)
48 {
49 super.OnStart(action_data);
50
51 action_data.m_Player.TryHideItemInHands(true);
52 }
53
54 override void OnEnd(ActionData action_data)
55 {
56 action_data.m_Player.TryHideItemInHands(false);
57 }
58
59 override void OnFinishProgressServer(ActionData action_data)
60 {
61 Param1<float> nacdata = Param1<float>.Cast(action_data.m_ActionComponent.GetACData());
62 float amount = UAQuantityConsumed.DRINK;
63 action_data.m_Player.Consume(null, amount, EConsumeType.ENVIRO_POND);
64 }
65
66 override void OnEndAnimationLoopServer(ActionData action_data)
67 {
68 if (action_data.m_Player.HasBloodyHands() && !action_data.m_Player.GetInventory().FindAttachment(InventorySlots.GLOVES))
69 {
70 action_data.m_Player.SetBloodyHandsPenalty();
71 }
72 }
73
74 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
75 {
76 super.WriteToContext(ctx, action_data);
77
78 if (HasTarget())
79 {
80 ctx.Write(action_data.m_Target.GetCursorHitPos());
81 return;
82 }
83
84 ctx.Write(vector.Zero);
85 }
86
87 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
88 {
89 super.ReadFromContext(ctx, action_recive_data);
90
91 if (HasTarget())
92 {
93 vector cursorPosition;
94 if (!ctx.Read(cursorPosition))
95 return false;
96
97 action_recive_data.m_Target.SetCursorHitPos(cursorPosition);
98 }
99
100 return true;
101 }
102}
void CreateConditionComponents()
Definition ActionBase.c:218
bool HasTarget()
Definition ActionBase.c:232
ref CCIBase m_ConditionItem
Definition ActionBase.c:55
ref CCTBase m_ConditionTarget
Definition ActionBase.c:56
bool IsDrink()
Definition ActionBase.c:276
protected string m_Text
Definition ActionBase.c:49
protected bool m_FullBody
Definition ActionBase.c:52
protected int m_StanceMask
Definition ActionBase.c:53
void ActionDrinkPondContinuous()
ActionDrinkPondContinuousCB WATER_DRANK_PER_SEC
protected const string ALLOWED_WATER_SURFACES
class ActionTargets ActionTarget
EConsumeType
Definition EConsumeType.c:2
void ReadFromContext(ParamsReadContext ctx)
Definition Hand_Events.c:63
void WriteToContext(ParamsWriteContext ctx)
Definition Hand_Events.c:65
override void OnEnd()
Definition JumpEvents.c:57
protected void OnStart(Param par=null)
protected ActionData m_ActionData
protected void OnFinishProgressServer(ActionData action_data)
protected void OnEndAnimationLoopServer(ActionData action_data)
PlayerBase m_Player
Definition ActionBase.c:33
ref CABase m_ActionComponent
Definition ActionBase.c:30
ref ActionTarget m_Target
Definition ActionBase.c:32
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Param GetACData()
Definition CABase.c:48
provides access to slot configuration
Serialization general interface. Serializer API works with:
Definition Serializer.c:56
proto bool Write(void value_out)
proto bool Read(void value_in)
const float DEFAULT
const float DRINK_POND
const string STILL
const string FRESH
fake
static const vector Zero
Definition EnConvert.c:110
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
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.