Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_SpawnPoint.c
Go to the documentation of this file.
1 [EntityEditorProps(category: "GameScripted/GameMode", description: "Spawn point entity", visible: false)]
3 {
4  // [Attribute()]
5  // protected ref SCR_UIInfo m_Info;
6 
7  // SCR_UIInfo GetInfo()
8  // {
9  // return m_Info;
10  // }
11 }
12 
15 typedef ScriptInvokerBase<SpawnPointDelegateMethod> SpawnPointInvoker;
16 
17 void SpawnPointFinalizeSpawnInvoker(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity);
19 typedef ScriptInvokerBase<SpawnPointFinalizeSpawnInvoker> SCR_SpawnPointFinalizeSpawn_Invoker;
20 
21 void SpawnPointNameChangedInvoker(RplId id, string name);
23 typedef ScriptInvokerBase<SpawnPointNameChangedInvoker> SCR_SpawnPointNameChanged_Invoker;
24 
25 //------------------------------------------------------------------------------------------------
28 {
29  protected RplComponent m_RplComponent;
30 
31  [Attribute("0", desc: "Find empty position for spawning within given radius. When none is found, entity position will be used.")]
32  protected float m_fSpawnRadius;
33 
34  [Attribute("Red", UIWidgets.EditBox, "Determines which faction can spawn on this spawn point."), RplProp(onRplName: "OnSetFactionKey")]
35  protected string m_sFaction;
36 
37  [Attribute("0")]
38  protected bool m_bShowInDeployMapOnly;
39 
40  [Attribute("0", desc: "Use custom timer when deploying on this spawn point. Takes the remaining respawn time from SCR_TimedSpawnPointComponent")]
41  protected bool m_bTimedSpawnPoint;
42 
43  protected SCR_UIInfo m_LinkedInfo;
44  protected SCR_FactionAffiliationComponent m_FactionAffiliationComponent;
45 
46  [Attribute()]
47  protected ref SCR_UIInfo m_Info;
48 
49  [Attribute("0", desc: "Allow usage of Spawn Positions in range")]
50  protected bool m_bUseNearbySpawnPositions;
51 
52  [Attribute("100", desc: "Spawn position detection radius, in metres")]
53  protected float m_fSpawnPositionUsageRange;
54 
55  [Attribute("0", desc: "Additional respawn time (in seconds) when spawning on this spawn point"), RplProp()]
56  protected float m_fRespawnTime;
57 
58  // List of all spawn points
59  private static ref array<SCR_SpawnPoint> m_aSpawnPoints = new array<SCR_SpawnPoint>();
60 
61  static ref ScriptInvoker Event_OnSpawnPointCountChanged = new ScriptInvoker();
62  static ref ScriptInvoker Event_SpawnPointFactionAssigned = new ScriptInvoker();
63  static ref SpawnPointInvoker Event_SpawnPointAdded = new SpawnPointInvoker();
64  static ref SpawnPointInvoker Event_SpawnPointRemoved = new SpawnPointInvoker();
65  static ref SCR_SpawnPointFinalizeSpawn_Invoker s_OnSpawnPointFinalizeSpawn;
66 
67  [RplProp()]
68  protected string m_sSpawnPointName;
69 
70  static ref SCR_SpawnPointNameChanged_Invoker OnSpawnPointNameChanged = new SCR_SpawnPointNameChanged_Invoker();
71 
72  // spawn point will work as a spawn point group if it has any SCR_Position as its children
73  protected ref array<SCR_Position> m_aChildren = {};
74 
79  protected ref set<int> m_ReservationLocks = new set<int>();
80 
81  protected ref ScriptInvokerBool m_OnSetSpawnPointEnabled;
82 
83  [Attribute("1"), RplProp(onRplName: "OnSetEnabled")]
84  protected bool m_bSpawnPointEnabled;
85 
86  //------------------------------------------------------------------------------------------------
87  bool IsSpawnPointVisibleForPlayer(int pid)
88  {
89  return true;
90  }
91 
92  //------------------------------------------------------------------------------------------------
93  bool IsSpawnPointEnabled()
94  {
95  return m_bSpawnPointEnabled;
96  }
97 
98  //------------------------------------------------------------------------------------------------
99  void SetSpawnPointEnabled_S(bool enabled)
100  {
101  if (enabled == m_bSpawnPointEnabled)
102  return;
103 
104  m_bSpawnPointEnabled = enabled;
105  OnSetEnabled();
106  Replication.BumpMe();
107  }
108 
109  //------------------------------------------------------------------------------------------------
110  protected void OnSetEnabled()
111  {
112  if (m_OnSetSpawnPointEnabled)
113  m_OnSetSpawnPointEnabled.Invoke(m_bSpawnPointEnabled);
114  }
115 
116  //------------------------------------------------------------------------------------------------
117  ScriptInvokerBool GetOnSpawnPointEnabled()
118  {
119  if (!m_OnSetSpawnPointEnabled)
120  m_OnSetSpawnPointEnabled = new ScriptInvokerBool();
121 
122  return m_OnSetSpawnPointEnabled;
123  }
124 
125  //------------------------------------------------------------------------------------------------
126  static SCR_SpawnPointFinalizeSpawn_Invoker GetOnSpawnPointFinalizeSpawn()
127  {
128  if (!s_OnSpawnPointFinalizeSpawn)
129  s_OnSpawnPointFinalizeSpawn = new SCR_SpawnPointFinalizeSpawn_Invoker();
130 
131  return s_OnSpawnPointFinalizeSpawn;
132  }
133 
134  //------------------------------------------------------------------------------------------------
135  float GetRespawnTime()
136  {
137  return m_fRespawnTime;
138  }
139 
140  //------------------------------------------------------------------------------------------------
141  void SetRespawnTime(float time)
142  {
143  m_fRespawnTime = time;
144  Replication.BumpMe();
145  }
146 
147  //------------------------------------------------------------------------------------------------
157  bool CanReserveFor_S(int playerId, out SCR_ESpawnResult result = SCR_ESpawnResult.SPAWN_NOT_ALLOWED)
158  {
159  if (IsSpawnPointEnabled())
160  {
161  return true;
162  }
163  else
164  {
165  result = SCR_ESpawnResult.NOT_ALLOWED_SPAWNPOINT_DISABLED;
166  return false;
167  }
168  }
169 
170  //------------------------------------------------------------------------------------------------
177  bool IsReservedFor_S(int playerId)
178  {
179  return m_ReservationLocks.Contains(playerId);
180  }
181 
182  //------------------------------------------------------------------------------------------------
189  bool ReserveFor_S(int playerId)
190  {
191  #ifdef _ENABLE_RESPAWN_LOGS
192  PrintFormat("%1::ReserveFor_S(playerId: %2, pointId: %3)", Type().ToString(), playerId, GetRplId());
193  #endif
194 
195  if (!m_ReservationLocks.Insert(playerId))
196  {
197  Debug.Error(string.Format("SCR_SpawnPoint reservation for playerId: %1 failed!", playerId));
198  return false;
199  }
200 
201  return true;
202  }
203 
204  //------------------------------------------------------------------------------------------------
210  void ClearReservationFor_S(int playerId)
211  {
212  #ifdef _ENABLE_RESPAWN_LOGS
213  PrintFormat("%1::ClearReservationFor_S(playerId: %2, pointId: %3)", Type().ToString(), playerId, GetRplId());
214  #endif
215 
216  int index = m_ReservationLocks.Find(playerId);
217  if (index != -1)
218  {
219  m_ReservationLocks.Remove(index);
220  }
221  }
222 
223  //------------------------------------------------------------------------------------------------
227  float GetSpawnRadius()
228  {
229  return m_fSpawnRadius;
230  }
231 
232  //------------------------------------------------------------------------------------------------
234  void SetSpawnRadius(float radius)
235  {
236  m_fSpawnRadius = radius;
237  }
238 
239  //------------------------------------------------------------------------------------------------
240  static void ShowSpawnPointDescriptors(bool show, Faction faction)
241  {
242  if (!m_aSpawnPoints)
243  return;
244 
245  string factionKey = string.Empty;
246  if (faction)
247  factionKey = faction.GetFactionKey();
248 
249  foreach (SCR_SpawnPoint spawnPoint : m_aSpawnPoints)
250  {
251  if (!spawnPoint)
252  continue;
253 
254  auto mapDescriptor = SCR_MapDescriptorComponent.Cast(spawnPoint.FindComponent(SCR_MapDescriptorComponent));
255  if (!mapDescriptor)
256  continue;
257 
258  bool visible = show && !factionKey.IsEmpty() && spawnPoint.GetFactionKey() == factionKey;
259  if (mapDescriptor.Item())
260  mapDescriptor.Item().SetVisible(visible);
261  }
262  }
263 
264  //------------------------------------------------------------------------------------------------
268  RplId GetRplId()
269  {
270  if (!m_RplComponent)
271  return RplId.Invalid();
272 
273  return m_RplComponent.Id();
274  }
275 
276  //------------------------------------------------------------------------------------------------
277  static SCR_SpawnPoint GetSpawnPointByRplId(RplId id)
278  {
279  if (!id.IsValid())
280  return null;
281 
282  Managed instance = Replication.FindItem(id);
283  if (!instance)
284  return null;
285 
286  RplComponent rplComponent = RplComponent.Cast(instance);
287  if (rplComponent)
288  return SCR_SpawnPoint.Cast(rplComponent.GetEntity());
289 
290  return SCR_SpawnPoint.Cast(instance);
291  }
292 
293  //------------------------------------------------------------------------------------------------
294  protected bool GetEmptyPositionAndRotationInRange(out vector pos, out vector rot)
295  {
296  SCR_SpawnPositionComponentManager spawnPosManagerComponent = SCR_SpawnPositionComponentManager.GetInstance();
297  if (!spawnPosManagerComponent)
298  return false;
299 
300  array<SCR_SpawnPositionComponent> positions = {};
301  int count = spawnPosManagerComponent.GetSpawnPositionsInRange(GetOrigin(), m_fSpawnPositionUsageRange, positions);
302  if (count < 0)
303  return false;
304 
305  SCR_SpawnPositionComponent position;
306 
307  while (!positions.IsEmpty())
308  {
309  position = positions.GetRandomElement();
310 
311  if (position.IsFree())
312  {
313  pos = position.GetOwner().GetOrigin();
314  rot = position.GetOwner().GetAngles();
315  return true;
316  }
317  else
318  {
319  positions.RemoveItem(position);
320  }
321  }
322 
323  return false;
324  }
325 
326  //------------------------------------------------------------------------------------------------
328  void SetUseNearbySpawnPositions(bool use)
329  {
330  m_bUseNearbySpawnPositions = use;
331  }
332 
333  //------------------------------------------------------------------------------------------------
334  void GetPositionAndRotation(out vector pos, out vector rot)
335  {
336  if (m_bUseNearbySpawnPositions)
337  {
338  if (GetEmptyPositionAndRotationInRange(pos, rot))
339  return;
340  }
341 
342  if (m_aChildren.Count() > 1)
343  {
344  int id = m_aChildren.GetRandomIndex();
345  SCR_WorldTools.FindEmptyTerrainPosition(pos, m_aChildren[id].GetOrigin(), GetSpawnRadius());
346  rot = m_aChildren[id].GetAngles();
347  }
348  else
349  {
350  SCR_WorldTools.FindEmptyTerrainPosition(pos, GetOrigin(), GetSpawnRadius());
351  rot = GetAngles();
352  }
353  }
354 
355  //------------------------------------------------------------------------------------------------
357  static SCR_SpawnPoint GetSpawnPointByIndex(int spawnPointIndex)
358  {
359  if (spawnPointIndex >= 0 && spawnPointIndex < m_aSpawnPoints.Count())
360  return m_aSpawnPoints[spawnPointIndex];
361 
362  return null;
363  }
364 
365  //------------------------------------------------------------------------------------------------
367  static int GetSpawnPointIndex(SCR_SpawnPoint spawnPoint)
368  {
369  return m_aSpawnPoints.Find(spawnPoint);
370  }
371 
372  //------------------------------------------------------------------------------------------------
373  bool IsSpawnPointActive()
374  {
375  return true;
376  }
377 
378  //------------------------------------------------------------------------------------------------
382  static int CountSpawnPoints()
383  {
384  return m_aSpawnPoints.Count();
385  }
386 
387  //------------------------------------------------------------------------------------------------
388  bool GetVisibleInDeployMapOnly()
389  {
390  return m_bShowInDeployMapOnly;
391  }
392 
393  //------------------------------------------------------------------------------------------------
394  void SetVisibleInDeployMapOnly(bool visible)
395  {
396  m_bShowInDeployMapOnly = visible;
397  }
398 
399  //------------------------------------------------------------------------------------------------
400  protected void ApplyFactionChange(FactionAffiliationComponent owner, Faction previousFaction, Faction newFaction)
401  {
402  SetFaction(newFaction);
403  }
404 
405  //------------------------------------------------------------------------------------------------
406  void SetFaction(Faction faction)
407  {
408  if (!faction)
409  SetFactionKey(string.Empty);
410  else
411  SetFactionKey(faction.GetFactionKey());
412  }
413 
414  //------------------------------------------------------------------------------------------------
415  void SetFactionKey(string factionKey)
416  {
417  if (factionKey == m_sFaction)
418  return;
419 
420  m_sFaction = factionKey;
421  OnSetFactionKey();
422  Replication.BumpMe();
423  }
424  protected void OnSetFactionKey()
425  {
426  Event_SpawnPointFactionAssigned.Invoke(this);
427  }
428 
429  //------------------------------------------------------------------------------------------------
430  void SetSpawnPositionRange(float range)
431  {
432  m_fSpawnPositionUsageRange = range;
433  }
434 
435  //------------------------------------------------------------------------------------------------
436  float GetSpawnPositionRange()
437  {
438  return m_fSpawnPositionUsageRange;
439  }
440 
441  //------------------------------------------------------------------------------------------------
442  array<SCR_Position> GetChildSpawnPoints()
443  {
444  return m_aChildren;
445  }
446 
447  //------------------------------------------------------------------------------------------------
449  string GetFactionKey()
450  {
451  return m_sFaction;
452  }
453 
454  //------------------------------------------------------------------------------------------------
458  private bool GetIsInRange(ChimeraCharacter character, float range)
459  {
460  return character && vector.DistanceSq(character.GetOrigin(), GetOrigin()) < range*range;
461  }
462 
463  //------------------------------------------------------------------------------------------------
465  static array<SCR_SpawnPoint> GetSpawnPoints()
466  {
467  return m_aSpawnPoints;
468  }
469 
470  //------------------------------------------------------------------------------------------------
472  static SCR_SpawnPoint GetRandomSpawnPointDeathmatch()
473  {
474  if (!m_aSpawnPoints || m_aSpawnPoints.IsEmpty())
475  return null;
476 
477  return m_aSpawnPoints.GetRandomElement();
478  }
479 
480  //------------------------------------------------------------------------------------------------
482  static SCR_SpawnPoint GetRandomSpawnPoint(SCR_ChimeraCharacter character)
483  {
484  if (!character)
485  return null;
486 
487  return GetRandomSpawnPointForFaction(character.GetFactionKey());
488  }
489 
490  //------------------------------------------------------------------------------------------------
492  static array<SCR_SpawnPoint> GetSpawnPointsForPlayer(SCR_ChimeraCharacter character)
493  {
494  string factionKey = string.Empty;
495  if (character)
496  factionKey = character.GetFactionKey();
497 
498  return GetSpawnPointsForFaction(factionKey);
499  }
500 
501  //------------------------------------------------------------------------------------------------
504  static array<SCR_SpawnPoint> GetSpawnPointsForFaction(string factionKey)
505  {
506  array<SCR_SpawnPoint> factionSpawnPoints = new array<SCR_SpawnPoint>();
507  if (factionKey.IsEmpty())
508  return factionSpawnPoints;
509 
510  array<SCR_SpawnPoint> spawnPoints = GetSpawnPoints();
511  foreach (SCR_SpawnPoint spawnPoint : spawnPoints)
512  {
513  if (spawnPoint && spawnPoint.GetFactionKey() == factionKey)
514  factionSpawnPoints.Insert(spawnPoint);
515  }
516  return factionSpawnPoints;
517  }
518  //------------------------------------------------------------------------------------------------
522  static int GetSpawnPointCountForFaction(string factionKey)
523  {
524  if (factionKey.IsEmpty())
525  return 0;
526 
527  int count = 0;
528  foreach (SCR_SpawnPoint spawnPoint : GetSpawnPoints())
529  {
530  if (!spawnPoint) continue;
531  if (spawnPoint.GetFactionKey() == factionKey)
532  count++;
533  }
534  return count;
535  }
536 
537  //------------------------------------------------------------------------------------------------
539  static SCR_SpawnPoint GetRandomSpawnPointForFaction(string factionKey)
540  {
541  array<SCR_SpawnPoint> spawnPoints = GetSpawnPointsForFaction(factionKey);
542  if (!spawnPoints.IsEmpty())
543  return spawnPoints.GetRandomElement();
544 
545  return null;
546  }
547 
548  //------------------------------------------------------------------------------------------------
549  // todo(koudelkaluk): get back to this
550 
551  //------------------------------------------------------------------------------------------------
552  // SCR_UIInfo GetInfo()
553  // {
554  // if (m_LinkedInfo)
555  // return m_LinkedInfo;
556  // else
557  // return GetInfoFromPrefab();
558  // }
559 
560  // protected SCR_UIInfo GetInfoFromPrefab()
561  // {
562 
563  // SCR_SpawnPointClass prefabData = SCR_SpawnPointClass.Cast(GetPrefabData());
564  // if (!prefabData)
565  // return null;
566 
567  // return prefabData.GetInfo();
568  // }
569 
570  //------------------------------------------------------------------------------------------------
571  SCR_UIInfo GetInfo()
572  {
573  if (m_LinkedInfo)
574  return m_LinkedInfo;
575  else
576  return m_Info;
577  }
578 
579  //------------------------------------------------------------------------------------------------
580  void SetInfo(SCR_UIInfo info)
581  {
582  m_Info = info;
583  }
584 
585  //------------------------------------------------------------------------------------------------
586  string GetSpawnPointName()
587  {
588  if (SCR_StringHelper.IsEmptyOrWhiteSpace(m_sSpawnPointName) && GetInfo())
589  return GetInfo().GetName();
590  else
591  return m_sSpawnPointName;
592 
593  return string.Empty;
594  }
595 
596  //------------------------------------------------------------------------------------------------
597  void SetSpawnPointName(string name)
598  {
599  m_sSpawnPointName = name;
600  Replication.BumpMe();
601  OnSpawnPointNameChanged.Invoke(GetRplId(), m_sSpawnPointName);
602  }
603 
604  //------------------------------------------------------------------------------------------------
605  bool IsTimed()
606  {
607  return m_bTimedSpawnPoint;
608  }
609 
610  //------------------------------------------------------------------------------------------------
611  void SetIsTimed(bool isTimed)
612  {
613  m_bTimedSpawnPoint = isTimed;
614  }
615 
616  //------------------------------------------------------------------------------------------------
617  void LinkInfo(SCR_UIInfo info)
618  {
619  m_LinkedInfo = info;
620  }
621 
622 #ifdef WORKBENCH
623  //------------------------------------------------------------------------------------------------
624  override void SetColorAndText()
625  {
626  m_sText = m_sFaction;
627 
628  // Fetch faction data
629  FactionManager factionManager = GetGame().GetFactionManager();
630  if (factionManager)
631  {
632  Faction faction = factionManager.GetFactionByKey(m_sFaction);
633  if (faction)
634  {
635  m_iColor = faction.GetFactionColor().PackToInt();
636  }
637  }
638  }
639 #endif
640 
641  //------------------------------------------------------------------------------------------------
642  /*
643  Authority:
644  During the spawn process, prior to passing the ownership to the remote project spawned entity
645  can be prepared (e.g. moved to position, seated in vehicle, items spawned in inventory).
646 
647  This method is the place to do so, but at this point the spawning process can still fail and
648  terminate if preparation fails (returns false). Player is then informed about spawn.
649 
650  Following a successful preparation is CanSpawnFinalize_S, and SpawnFinalize_S after which
651  the process is sucessfully ended.
652 
653  \param requestComponent Player request component
654  \param data Data received for this request
655  \param entity Spawned entity (to prepare)
656 
657  \return True if successful (move to finalizing the request), false (to terminate the process).
658  */
659  bool PrepareSpawnedEntity_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
660  {
661  if (!IsSpawnPointEnabled())
662  return false;
663 
664  // WS target position, pitch yaw roll angles in degrees
665  vector position, rotation;
666  GetPositionAndRotation(position, rotation);
667 
668  // apply transformation
669  entity.SetOrigin(position);
670  entity.SetAngles(rotation);
671  return true;
672  }
673 
674  //------------------------------------------------------------------------------------------------
690  bool CanFinalizeSpawn_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
691  {
692  return IsSpawnPointEnabled();
693  }
694 
695  //------------------------------------------------------------------------------------------------
701  void OnFinalizeSpawnDone_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
702  {
703  if (s_OnSpawnPointFinalizeSpawn)
704  s_OnSpawnPointFinalizeSpawn.Invoke(requestComponent, data, entity);
705  }
706 
707  //------------------------------------------------------------------------------------------------
708  override void EOnInit(IEntity owner)
709  {
710  super.EOnInit(owner);
711  if (!GetGame().GetWorldEntity())
712  return;
713 
714  m_RplComponent = RplComponent.Cast(FindComponent(RplComponent));
715 
716  IEntity child = GetChildren();
717  while (child)
718  {
719  if (SCR_Position.Cast(child))
720  m_aChildren.Insert(SCR_Position.Cast(child));
721  child = child.GetSibling();
722  }
723 
724  InitFactionAffiliation(owner);
725 
726  // Add to list of all points
727  m_aSpawnPoints.Insert(this);
728  Event_OnSpawnPointCountChanged.Invoke(m_sFaction);
729  Event_SpawnPointAdded.Invoke(this);
730 
731  ClearFlags(EntityFlags.ACTIVE);
732  }
733 
734  //------------------------------------------------------------------------------------------------
735  protected void InitFactionAffiliation(IEntity owner)
736  {
739  {
740  m_FactionAffiliationComponent.GetOnFactionChanged().Insert(ApplyFactionChange);
741  Faction faction = m_FactionAffiliationComponent.GetAffiliatedFaction();
742  if (faction)
743  m_sFaction = faction.GetFactionKey();
744  }
745  }
746 
747  //------------------------------------------------------------------------------------------------
748  override bool RplSave(ScriptBitWriter writer)
749  {
750  writer.WriteString(m_sSpawnPointName);
751 
752  return true;
753  }
754 
755  //------------------------------------------------------------------------------------------------
756  override protected bool RplLoad(ScriptBitReader reader)
757  {
758  // Raise callback about adding of this point
759  Event_SpawnPointAdded.Invoke(this);
760 
761  // Update faction related stats
762  OnSetFactionKey();
763  Event_OnSpawnPointCountChanged.Invoke(m_sFaction);
764 
765  reader.ReadString(m_sSpawnPointName);
766 
767  return true;
768  }
769 
770  //------------------------------------------------------------------------------------------------
771  void SCR_SpawnPoint(IEntitySource src, IEntity parent)
772  {
773  SetEventMask(EntityEvent.INIT);
774  SetFlags(EntityFlags.STATIC, true);
775  }
776 
777  //------------------------------------------------------------------------------------------------
778  void ~SCR_SpawnPoint()
779  {
780  // Remove from list of all points
781  if (m_aSpawnPoints)
782  {
783  m_aSpawnPoints.RemoveItem(this);
784  }
785 
786  //~ Raise events
787  Event_OnSpawnPointCountChanged.Invoke(m_sFaction);
788  Event_SpawnPointRemoved.Invoke(this);
789 
790  // Remove callbacks
792  {
793  m_FactionAffiliationComponent.GetOnFactionChanged().Remove(ApplyFactionChange);
794  }
795  }
796 }
SCR_SpawnPointNameChanged_Invoker
ScriptInvokerBase< SpawnPointNameChangedInvoker > SCR_SpawnPointNameChanged_Invoker
Definition: SCR_SpawnPoint.c:23
Event_OnSpawnPointCountChanged
protected ref ScriptInvoker Event_OnSpawnPointCountChanged
Definition: SCR_EditableFactionComponent.c:35
SCR_ESpawnResult
SCR_ESpawnResult
Definition: SCR_ESpawnResult.c:8
EntityEditorProps
enum EQueryType EntityEditorProps(category:"GameScripted/Sound", description:"THIS IS THE SCRIPT DESCRIPTION.", color:"0 0 255 255")
Definition: SCR_AmbientSoundsComponent.c:12
SCR_Position
SCR_PositionClass GenericEntityClass SCR_Position(IEntitySource src, IEntity parent)
Definition: SCR_Position.c:56
RplProp
SCR_RplTestEntityClass RplProp
Used for handling entity spawning requests for SCR_CatalogEntitySpawnerComponent and inherited classe...
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
SpawnPointNameChangedInvoker
func SpawnPointNameChangedInvoker
Definition: SCR_SpawnPoint.c:22
SCR_StringHelper
Definition: SCR_StringHelper.c:1
SpawnPointInvoker
ScriptInvokerBase< SpawnPointDelegateMethod > SpawnPointInvoker
Definition: SCR_SpawnPoint.c:15
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition: SCR_RespawnBriefingComponent.c:17
SCR_WorldTools
Definition: SCR_WorldTools.c:1
SCR_SpawnPoint
Spawn point entity defines positions on which players can possibly spawn.
Definition: SCR_SpawnPoint.c:27
SCR_SpawnPointClass
Definition: SCR_SpawnPoint.c:2
func
func
Definition: SCR_AIThreatSystem.c:5
SCR_SpawnData
Definition: SCR_SpawnData.c:9
GetOrigin
vector GetOrigin()
Definition: SCR_AIUtilityComponent.c:279
Attribute
typedef Attribute
Post-process effect of scripted camera.
m_Info
protected ref SCR_HintUIInfo m_Info
Definition: SCR_BaseHintCondition.c:3
ScriptInvokerBool
ScriptInvokerBase< ScriptInvokerBoolMethod > ScriptInvokerBool
Definition: SCR_ScriptInvokerHelper.c:41
m_aChildren
protected ref array< SCR_ScenarioFrameworkLayerBase > m_aChildren
Definition: SCR_ScenarioFrameworkLayerBase.c:57
rotation
RespawnSystemComponentClass GameComponentClass vector vector rotation
Definition: RespawnSystemComponent.c:23
SCR_SpawnPointFinalizeSpawn_Invoker
ScriptInvokerBase< SpawnPointFinalizeSpawnInvoker > SCR_SpawnPointFinalizeSpawn_Invoker
Definition: SCR_SpawnPoint.c:19
SpawnPointDelegateMethod
func SpawnPointDelegateMethod
Definition: SCR_SpawnPoint.c:14
SCR_UIInfo
Definition: SCR_UIInfo.c:7
Faction
Definition: Faction.c:12
m_RplComponent
protected RplComponent m_RplComponent
Definition: SCR_CampaignBuildingManagerComponent.c:42
index
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Definition: SCR_DestructionSynchronizationComponent.c:17
m_FactionAffiliationComponent
protected FactionAffiliationComponent m_FactionAffiliationComponent
Definition: SCR_BaseSupportStationComponent.c:122
GetChildren
void GetChildren(out array< SCR_ScenarioFrameworkLayerBase > children)
Definition: SCR_ScenarioFrameworkLayerBase.c:359
data
Get all prefabs that have the spawner data
Definition: SCR_EntityCatalogManagerComponent.c:305
SCR_FactionAffiliationComponent
Definition: SCR_FactionAffiliationComponent.c:10
IsValid
override bool IsValid(IEntity actionOwner, IEntity actionUser, SCR_BaseUseSupportStationAction action, vector actionPosition, out ESupportStationReasonInvalid reasonInvalid, out int supplyCost)
Definition: SCR_BaseDamageHealSupportStationComponent.c:98
position
vector position
Definition: SCR_DestructibleTreeV2.c:30
SpawnPointFinalizeSpawnInvoker
func SpawnPointFinalizeSpawnInvoker
Definition: SCR_SpawnPoint.c:18
SCR_PositionClass
Definition: SCR_Position.c:2
m_sText
class SCR_BaseEditorAttribute m_sText
category
params category
Definition: SCR_VehicleDamageManagerComponent.c:180