DayZ 1.27
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
23 {
24 m_ConditionItem = new CCINone();
25 m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT);
26 }
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 && lock.GetHierarchyParent() && Fence.Cast(lock.GetHierarchyParent()))
51 {
52 ConstructionActionData constructionActionData = player.GetConstructionActionData();
53 constructionActionData.SetCombinationLock(lock);
54
55 return true;
56 }
57
58 return false;
59 }
60
61 override void OnFinishProgressServer(ActionData action_data)
62 {
63 //set dialed number
64 ConstructionActionData constructionActionData = action_data.m_Player.GetConstructionActionData();
65 CombinationLock combination_lock = constructionActionData.GetCombinationLock();
66 if (combination_lock)
67 {
68 combination_lock.DialNextNumber();
69
70 //check for unlock state
71 if (!combination_lock.IsLockedOnGate())
72 {
73 if (GetGame().IsMultiplayer())
74 ClearActionJuncture(action_data);
75 else
76 ClearInventoryReservationEx(action_data);
77
78 EntityAI target_entity = EntityAI.Cast(action_data.m_Target.GetObject());
79 combination_lock.UnlockServer(action_data.m_Player, target_entity.GetHierarchyParent());
80 }
81 }
82 }
83}
int m_CommandUIDProne
Определения ActionBase.c:32
int m_CommandUID
Определения ActionBase.c:31
ActionBase ActionData
Определения ActionBase.c:30
ActionDialCombinationLockOnTargetCB ActionContinuousBaseCB ActionDialCombinationLockOnTarget()
class ActionTargets ActionTarget
void ClearActionJuncture(ActionData action_data)
Определения ActionBase.c:1083
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:1214
void ClearInventoryReservationEx(ActionData action_data)
Определения ActionBase.c:1025
void CreateConditionComponents()
Определения ActionBase.c:230
ActionData m_ActionData
Определения AnimatedActionBase.c:3
override GetInputType()
Определения ActionContinuousBase.c:179
void OnFinishProgressServer(ActionData action_data)
Определения ActionContinuousBase.c:283
override bool HasProneException()
Определения AnimatedActionBase.c:318
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:240
Определения CCINone.c:2
Определения CCTNonRuined.c:2
void SetCombinationLock(CombinationLock combination_lock)
Определения ConstructionActionData.c:210
string GetDialNumberText()
Определения ConstructionActionData.c:215
CombinationLock GetCombinationLock()
Определения ConstructionActionData.c:205
Определения Building.c:6
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:112
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()