DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionAnimateCarSelection.c
Go to the documentation of this file.
2{
3 string m_AnimSource = "";
4
6 {
7 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
8 m_StanceMask = DayZPlayerConstants.STANCEMASK_ALL;
9 m_Text = "#manipulate";
10 }
11
13 {
16 }
17
18 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
19 {
20 if (!target)
21 {
22 return false;
23 }
24
25 if (!IsInReach(player, target, UAMaxDistances.DEFAULT))
26 {
27 return false;
28 }
29
30 Object targetObject = target.GetObject();
31 Entity targetEnt = Entity.Cast(targetObject);
32
33 array<string> selections = new array<string>();
34 targetObject.GetActionComponentNameList(target.GetComponentIndex(), selections);
35
36 CarScript car;
37 if (Class.CastTo(car, targetEnt))
38 {
39 for (int i = 0; i < selections.Count(); i++)
40 {
41 m_AnimSource = car.GetAnimSourceFromSelection(selections[i]);
42 if (m_AnimSource != "")
43 {
44 return true;
45 }
46 }
47 }
48
49 return false;
50 }
51
52 override void OnStartServer(ActionData action_data)
53 {
54 Entity targetEnt;
55 if (Class.CastTo(targetEnt, action_data.m_Target.GetObject()))
56 {
57 if (targetEnt.GetAnimationPhase(m_AnimSource) > 0.5)
58 {
59 targetEnt.SetAnimationPhase(m_AnimSource, 0.0);
60 }
61
62 if (targetEnt.GetAnimationPhase(m_AnimSource) <= 0.5)
63 {
64 targetEnt.SetAnimationPhase(m_AnimSource, 1.0);
65 }
66 }
67
68 CarScript car;
69 if (Class.CastTo(car, action_data.m_Target.GetObject()))
70 {
71 car.ForceUpdateLightsStart();
72 }
73 }
74
75 override void OnEndServer( ActionData action_data )
76 {
77 CarScript car;
78 if (Class.CastTo(car, action_data.m_Target.GetObject()))
79 {
80 car.ForceUpdateLightsEnd();
81 }
82 }
83};
ref CCIBase m_ConditionItem
Definition ActionBase.c:55
ref CCTBase m_ConditionTarget
Definition ActionBase.c:56
protected bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
Definition ActionBase.c:927
protected string m_Text
Definition ActionBase.c:49
protected int m_StanceMask
Definition ActionBase.c:53
class ActionTargets ActionTarget
override void OnEndServer(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnStartServer(ActionData action_data)
ref ActionTarget m_Target
Definition ActionBase.c:32
override string GetAnimSourceFromSelection(string selection)
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition Camera.c:2
const float DEFAULT
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.