DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionDialCombinationLockOnTarget.c
См. документацию.
2{
3 private const float REPEAT_AFTER_SEC = 0.5;
4
5 override void CreateActionComponent()
6 {
7 m_ActionData.m_ActionComponent = new CAContinuousRepeat(REPEAT_AFTER_SEC);
8 }
9}
10
12{
14 {
16 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENITEM;
17 m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_OPENITEM;
18 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
19 m_Text = "#dial_combination_lock";
20 }
21
27
28 override bool HasProneException()
29 {
30 return true;
31 }
32
33 override typename GetInputType()
34 {
36 }
37
38 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
39 {
40 ConstructionActionData constructionActionData = player.GetConstructionActionData();
41 m_Text = "#dial_combination_lock " + constructionActionData.GetDialNumberText();
42 }
43
44 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
45 {
46 if (!target.GetObject())
47 return false;
48
49 CombinationLock lock = CombinationLock.Cast(target.GetObject());
50 if (!lock)
51 return false;
52
53 EntityAI parent = lock.GetHierarchyParent();
54 if (!parent)
55 return false;
56
57 int facingSide = lock.GetLockSideByComponentIndex(target.GetComponentIndex());
58 if (facingSide == -1)
59 return false;
60
61 if (parent.CanUseConstruction())
62 {
63 ConstructionActionData constructionActionData = player.GetConstructionActionData();
64 constructionActionData.SetCombinationLock(lock);
65 constructionActionData.SetCombinationLockSide(facingSide);
66 return true;
67 }
68
69 return false;
70 }
71
72 override void OnFinishProgressServer(ActionData action_data)
73 {
74 //set dialed number
75 ConstructionActionData constructionActionData = action_data.m_Player.GetConstructionActionData();
76 CombinationLock combinationLock = constructionActionData.GetCombinationLock();
77 int lockSide = constructionActionData.GetCombinationLockSide();
78 if (combinationLock && lockSide != -1)
79 {
80 combinationLock.DialNextNumber(lockSide);
81 }
82 }
83}
string m_Text
Определения ActionBase.c:57
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:1342
void CreateConditionComponents()
Определения ActionBase.c:245
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
float m_SpecialtyWeight
Определения ActionBase.c:77
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
ActionDialCombinationLockOnTargetCB ActionContinuousBaseCB ActionDialCombinationLockOnTarget()
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
ActionData m_ActionData
Определения AnimatedActionBase.c:3
override GetInputType()
Определения ActionContinuousBase.c:179
void OnFinishProgressServer(ActionData action_data)
Определения ActionContinuousBase.c:289
PlayerBase m_Player
Определения ActionBase.c:40
Определения ActionBase.c:22
override bool HasProneException()
Определения AnimatedActionBase.c:325
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:244
Определения CCINone.c:2
Определения CCTNonRuined.c:2
void SetCombinationLock(CombinationLock combination_lock)
Определения ConstructionActionData.c:401
string GetDialNumberText()
Определения ConstructionActionData.c:406
CombinationLock GetCombinationLock()
Определения ConstructionActionData.c:396
int GetCombinationLockSide()
Определения ConstructionActionData.c:461
void SetCombinationLockSide(int lockSide)
Определения ConstructionActionData.c:456
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:114
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602