DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionDetach.c
См. документацию.
5
7{
8 string m_ItemName = "";
9
11 {
12 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_HANDS;
13 m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_PICKUP_HANDS;
14 m_Text = "#take_to_hands";
15 }
16
18 {
19 m_ConditionItem = new CCINone;
20 m_ConditionTarget = new CCTCursorNoRuinCheck();
21 }
22
23 override bool HasProneException()
24 {
25 return true;
26 }
27
28 override typename GetInputType()
29 {
31 }
32
33 override bool HasProgress()
34 {
35 return false;
36 }
37
38 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
39 {
40 ItemBase tgt_item = ItemBase.Cast( target.GetObject() );
41 EntityAI tgt_parent = EntityAI.Cast( target.GetParent() );
42 EntityAI tgt_entity = EntityAI.Cast( target.GetObject() );
43
44 if ( !tgt_item || !tgt_entity || !tgt_parent )
45 return false;
46
47 if ( !tgt_parent || !tgt_item.IsItemBase() || !tgt_item.IsTakeable() || tgt_item.IsBeingPlaced() )
48 return false;
49
50 if ( player.GetCommand_Vehicle() )
51 return false;
52
53 if ( player.GetInventory().CanAddEntityIntoHands(tgt_entity) ) //&& !player.GetInventory().CanAddEntityIntoInventory(tgt_entity) )
54 {
55 if ( tgt_entity.GetHierarchyRootPlayer() != player )
56 {
57 if ( tgt_entity.CanDetachAttachment( tgt_parent ) && tgt_parent.CanReleaseAttachment( tgt_entity ) )
58 return true;
59 }
60 }
61
62 return false;
63 }
64
65 override void OnExecute( ActionData action_data )
66 {
67 if (GetGame().IsDedicatedServer())
68 {
69 ClearActionJuncture(action_data);
70 return;
71 }
72
73 ActionManagerClient am = ActionManagerClient.Cast(action_data.m_Player.GetActionManager());
74 am.UnlockInventory(action_data);
75
76 EntityAI ntarget = EntityAI.Cast(action_data.m_Target.GetObject());
77 action_data.m_Player.PredictiveTakeEntityToHands(ntarget);
78 }
79
80 override void CreateAndSetupActionCallback( ActionData action_data )
81 {
82 EntityAI target = EntityAI.Cast(action_data.m_Target.GetObject());
83 ActionBaseCB callback;
84 if (!target)
85 return;
86
87 if (target.IsHeavyBehaviour())
88 {
89 Class.CastTo(callback, action_data.m_Player.StartCommand_Action(DayZPlayerConstants.CMD_ACTIONFB_PICKUP_HEAVY,GetCallbackClassTypename(),DayZPlayerConstants.STANCEMASK_ERECT));
90 }
91 else
92 {
93 if( action_data.m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT) )
94 {
95 Class.CastTo(callback, action_data.m_Player.AddCommandModifier_Action(DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_HANDS,GetCallbackClassTypename()));
96 }
97 else
98 {
99 Class.CastTo(callback, action_data.m_Player.StartCommand_Action(DayZPlayerConstants.CMD_ACTIONFB_PICKUP_HANDS,GetCallbackClassTypename(),DayZPlayerConstants.STANCEMASK_PRONE));
100 }
101 }
102 callback.SetActionData(action_data);
103 callback.InitActionComponent();
104 action_data.m_Callback = callback;
105 }
106};
int m_CommandUIDProne
Определения ActionBase.c:32
int m_CommandUID
Определения ActionBase.c:31
ActionBase ActionData
Определения ActionBase.c:30
void ActionDetach()
Определения ActionDetach.c:10
DetachActionData m_ItemName
class ActionTargets ActionTarget
void ClearActionJuncture(ActionData action_data)
Определения ActionBase.c:1083
bool HasProgress()
For UI: hiding of progress bar.
Определения ActionBase.c:250
void InitActionComponent()
Определения AnimatedActionBase.c:66
void SetActionData(ActionData action_data)
Определения AnimatedActionBase.c:109
Определения AnimatedActionBase.c:2
override void CreateConditionComponents()
Определения ActionInteractBase.c:49
override GetInputType()
Определения ActionInteractBase.c:61
void UnlockInventory(ActionData action_data)
Определения ActionManagerClient.c:588
void CreateAndSetupActionCallback(ActionData action_data)
Определения AnimatedActionBase.c:324
override bool HasProneException()
Определения AnimatedActionBase.c:318
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:240
void OnExecute(ActionData action_data)
Определения AnimatedActionBase.c:171
Определения CCINone.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
int m_AttSlot
Определения ActionDetach.c:3
Определения ActionDetach.c:2
Определения Building.c:6
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.