Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MoveTask.c
Go to the documentation of this file.
1[EntityEditorProps(category: "GameScripted/Tasks", description: "Move task.", color: "0 0 255 255")]
5
7{
8 [Attribute("5")]
9 protected float m_fMaxDistance;
10
11 //------------------------------------------------------------------------------------------------
12 void PeriodicalCheck()
13 {
14 if (!SCR_TaskSystem.GetInstance())
15 return;
16
17 array<ref SCR_TaskExecutor> assignees = GetTaskAssignees();
18
19 SCR_TaskExecutorPlayer playerExecutor;
20 IEntity controlledEntity;
21 foreach (SCR_TaskExecutor assignee : assignees)
22 {
23 playerExecutor = SCR_TaskExecutorPlayer.Cast(assignee);
24 if (!playerExecutor)
25 continue;
26
27 int id = playerExecutor.GetPlayerID();
28 controlledEntity = SCR_PossessingManagerComponent.GetPlayerMainEntity(id);
29 if (!controlledEntity)
30 continue;
31
32 float distance = vector.Distance(controlledEntity.GetOrigin(), GetOrigin());
33 if (distance < m_fMaxDistance)
34 {
36 return;
37 }
38 }
39 }
40
41 //------------------------------------------------------------------------------------------------
42 override void SetTaskCompletionType(EEditorTaskCompletionType newTaskCompletionType)
43 {
44 if (m_iTaskCompletionType == newTaskCompletionType)
45 return;
46
47 super.SetTaskCompletionType(newTaskCompletionType);
48
49 if (Replication.IsClient())
50 return;
51
53 SetEventMask(EntityEvent.FRAME);
54 else
55 ClearEventMask(EntityEvent.FRAME);
56 }
57
58 //------------------------------------------------------------------------------------------------
59 override void EOnInit(IEntity owner)
60 {
61 super.EOnInit(owner);
62
64 }
65
66 //------------------------------------------------------------------------------------------------
68 {
69 if (SCR_Global.IsEditMode(this))
70 return;
71
72 if (Replication.IsClient())
73 return;
74
76 SetEventMask(EntityEvent.FRAME);
77 }
78
79 //------------------------------------------------------------------------------------------------
81 {
82 if (SCR_Global.IsEditMode(this) || !GetGame().GetGameMode())
83 return;
84
85 if (Replication.IsClient())
86 return;
87
89 ClearEventMask(EntityEvent.FRAME);
90 }
91
92}
EEditorTaskCompletionType
Way of determening if a task is completed automaticly, manually or always manually (In the latter cas...
ArmaReforgerScripted GetGame()
Definition game.c:1398
vector GetOrigin()
void PeriodicalCheck()
override void SetTaskState(SCR_ETaskState state)
SCR_BaseGameMode GetGameMode()
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
float distance
void SetTaskCompletionType(EEditorTaskCompletionType completionType)
EEditorTaskCompletionType m_iTaskCompletionType
void ~SCR_MoveTask()
void SCR_MoveTask(IEntitySource src, IEntity parent)
SCR_ETaskState
Definition SCR_Task.c:3
array< ref SCR_TaskExecutor > GetTaskAssignees()
Definition SCR_Task.c:447
proto external vector GetOrigin()
Main replication API.
Definition Replication.c:14
static bool IsEditMode()
Definition Functions.c:1566
override void EOnInit(IEntity owner)
SCR_FieldOfViewSettings Attribute
EntityEvent
Various entity events.
Definition EntityEvent.c:14