DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionRepositionPluggedItem.c
См. документацию.
2{
3 // Through this action players can reposition already placed electric devices without unplugging them from the power source.
5 {
7 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_HANDS;
8 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
9
10 m_Text = "#reposition";
11 }
12
13 override typename GetInputType()
14 {
16 }
17
18 override bool HasProgress()
19 {
20 return false;
21 }
22
23 override bool CanBeUsedOnBack()
24 {
25 return false;
26 }
27
28 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
29 {
30 ItemBase targetItem = ItemBase.Cast(target.GetObject());
31 EntityAI targetParent = EntityAI.Cast(targetItem.GetHierarchyParent());
32 if (!targetItem || !targetItem.IsTakeable() || targetItem.IsBeingPlaced() || (targetItem.GetCompEM() && !targetItem.GetCompEM().IsPlugged()) || ( targetItem.GetHierarchyParent() && !BaseBuildingBase.Cast(targetItem.GetHierarchyParent()) ) || ((targetParent && !targetItem.CanDetachAttachment(targetParent)) || (targetParent && !targetParent.CanReleaseAttachment(targetItem))))
33 return false;
34
35 if (targetItem.HasEnergyManager() && targetItem.GetCompEM().IsPlugged())
36 return player.GetInventory().CanAddEntityIntoHands(targetItem);
37
38 return false;
39 }
40
41 override bool CanContinue(ActionData action_data)
42 {
43 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
44 return ent && ent.GetCompEM().GetCordLength() > 0;
45 }
46
47 override void Start(ActionData action_data)
48 {
49 super.Start(action_data);
50
51 ItemBase ntarget = ItemBase.Cast(action_data.m_Target.GetObject());
52 if (GetGame().IsMultiplayer() && GetGame().IsServer())
53 action_data.m_Player.PlacingStartServer(ntarget);
54 else
55 action_data.m_Player.PlacingStartLocal(ntarget);
56 }
57
58 override void OnExecuteServer(ActionData action_data)
59 {
60 ClearActionJuncture(action_data);
61
62 if (GetGame().IsMultiplayer())
63 return;
64
66 ItemBase ntarget = ItemBase.Cast(action_data.m_Target.GetObject());
67 ClearInventoryReservationEx(action_data);
68
69 action_data.m_Player.PredictiveTakeEntityToHands(ntarget);
70 }
71
72 override void OnExecuteClient(ActionData action_data)
73 {
75 ItemBase ntarget = ItemBase.Cast(action_data.m_Target.GetObject());
76 ClearInventoryReservationEx(action_data);
77
78 action_data.m_Player.PredictiveTakeEntityToHands(ntarget);
79 }
80
81 override void CreateAndSetupActionCallback(ActionData action_data)
82 {
83 EntityAI target = EntityAI.Cast(action_data.m_Target.GetObject());
84 ActionBaseCB callback;
85 if (!target)
86 return;
87
88 if (target.IsHeavyBehaviour())
89 {
90 Class.CastTo(callback, action_data.m_Player.StartCommand_Action(DayZPlayerConstants.CMD_ACTIONFB_PICKUP_HEAVY,GetCallbackClassTypename(), DayZPlayerConstants.STANCEMASK_ERECT));
91 }
92 else
93 {
94 Class.CastTo(callback, action_data.m_Player.AddCommandModifier_Action(DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_HANDS,GetCallbackClassTypename()));
95 }
96
97 callback.SetActionData(action_data);
98 callback.InitActionComponent();
99 action_data.m_Callback = callback;
100 }
101
104}
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
void ClearActionJuncture(ActionData action_data)
Определения ActionBase.c:1083
int m_StanceMask
Определения ActionBase.c:62
string m_Text
Определения ActionBase.c:58
void ClearInventoryReservationEx(ActionData action_data)
Определения ActionBase.c:1025
void InitActionComponent()
Определения AnimatedActionBase.c:66
void SetActionData(ActionData action_data)
Определения AnimatedActionBase.c:109
Определения AnimatedActionBase.c:2
void ActionInteractBase()
Определения ActionInteractBase.c:43
override void OnExecuteClient(ActionData action_data)
Определения ActionRepositionPluggedItem.c:72
override bool CanContinue(ActionData action_data)
Определения ActionRepositionPluggedItem.c:41
override void OnExecuteServer(ActionData action_data)
Определения ActionRepositionPluggedItem.c:58
override bool HasProgress()
Определения ActionRepositionPluggedItem.c:18
override bool CanBeUsedOnBack()
Определения ActionRepositionPluggedItem.c:23
ItemBase m_SourceForReplug
DEPRECATED.
Определения ActionRepositionPluggedItem.c:103
override void CreateAndSetupActionCallback(ActionData action_data)
Определения ActionRepositionPluggedItem.c:81
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionRepositionPluggedItem.c:28
override void Start(ActionData action_data)
Определения ActionRepositionPluggedItem.c:47
int m_CommandUID
Определения AnimatedActionBase.c:143
GetCallbackClassTypename()
Определения AnimatedActionBase.c:312
Определения Fence.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
InventoryLocation.
Определения InventoryLocation.c:29
override bool CanDetachAttachment(EntityAI parent)
Определения GardenLime.c:42
override bool IsTakeable()
Определения BaseBuildingBase.c:988
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.