24 [
Attribute(
category:
"Respawn Handler",
desc:
"If enabled, previous controlled entity prior to respawn will be destroyed (killed).")]
27 [
Attribute(
category:
"Respawn Handler",
desc:
"If enabled, previous controlled entity prior to respawn will be destroyed (killed).")]
35 super.OnPostInit(owner);
39 Debug.Error(
string.Format(
"%1 could not find %2! (should be a child of)",
Type().
ToString(), SCR_RespawnSystemComponent));
48 int playerId = requestComponent.GetPlayerController().GetPlayerId();
49 #ifdef _ENABLE_RESPAWN_LOGS
50 Print(
string.Format(
"%1::CanHandleRequest_S(playerId: %2, data: %3)",
Type().
ToString(),
84 int playerId = requestComponent.GetPlayerController().GetPlayerId();
85 #ifdef _ENABLE_RESPAWN_LOGS
86 Print(
string.Format(
"%1::HandleRequest_S(playerId: %2, data: %3)",
Type().
ToString(),
98 Debug.BeginTimeMeasure();
105 Debug.Error(
string.Format(
"Bad %1 implementation! Result is %2, but entity is %3!",
113 Debug.EndTimeMeasure(
"SpawnEntity_S");
127 requestComponent.StartSpawnPreload(
data.GetPosition());
138 return !requestComponent.IsPreloading();
149 int playerId = requestComponent.GetPlayerId();
150 #ifdef _ENABLE_RESPAWN_LOGS
151 Print(
string.Format(
"%1::FinalizeRequest_S(playerId: %2, data: %3)",
Type().
ToString(),
160 respawnSystem.OnPlayerSpawnFinalize_S(requestComponent,
this,
data, entity);
179 #ifdef _ENABLE_RESPAWN_LOGS
180 Print(
string.Format(
"%1::ValidateData_S(playerId: %1, data: %2)",
Type().
ToString(), requestComponent.GetPlayerId(),
data),
LogLevel.NORMAL);
182 return data.IsValid();
195 #ifdef _ENABLE_RESPAWN_LOGS
196 Print(
string.Format(
"%1::CanRequestSpawn_S(playerId: %2, data: %3)",
Type().
ToString(),
197 requestComponent.GetPlayerId(),
data),
LogLevel.NORMAL);
200 SCR_RespawnSystemComponent respawnSystem = SCR_RespawnSystemComponent.GetInstance();
201 return respawnSystem.CanRequestSpawn_S(requestComponent,
this,
data, result);
216 int playerId = requestComponent.GetPlayerId();
217 #ifdef _ENABLE_RESPAWN_LOGS
218 Print(
string.Format(
"%1::SpawnEntity_S(playerId: %2, data: %3)",
Type().
ToString(),
227 IEntity previousEntity =
GetGame().GetPlayerManager().GetPlayerControlledEntity(playerId);
231 params.TransformMode = ETransformMode.WORLD;
239 Debug.BeginTimeMeasure();
248 Debug.EndTimeMeasure(
"Resource::Load");
249 Debug.BeginTimeMeasure();
257 Debug.EndTimeMeasure(
"Game::SpawnEntityPrefab");
266 spawnedEntity = entity;
276 #ifdef _ENABLE_RESPAWN_LOGS
292 if (!baseControllerComponent)
307 #ifdef _ENABLE_RESPAWN_LOGS
308 Print(
string.Format(
"%1::PrepareEntity_S(playerId: %2, entity: %3, data: %4)",
Type().
ToString(),
309 requestComponent.GetPlayerController().GetPlayerId(),
325 int playerId = requestComponent.GetPlayerController().GetPlayerId();
326 #ifdef _ENABLE_RESPAWN_LOGS
327 Print(
string.Format(
"%1::AssignEntity_S(playerId: %2, entity: %3, data: %4)",
Type().
ToString(),
336 IEntity previous = playerController.GetControlledEntity();
337 if (previous == entity)
357 #ifdef _ENABLE_RESPAWN_LOGS
358 Print(
string.Format(
"%1::HandleSpawnEntityFailure_S(playerId: %2, entity: %2, data: %3, res: %4)",
Type().
ToString(),
363 respawnSystem.OnSpawnPlayerEntityFailure_S(requestComponent,
this, entity,
data,
reason);
366 RplComponent.DeleteRplEntity(entity,
false);
389 #ifdef _ENABLE_RESPAWN_LOGS
390 Print(
string.Format(
"%1::HandleEntityChange_S(playerId: %2, previousEntity: %3, newEntity: %4, data: %5)",
Type().
ToString(),
391 requestComponent.GetPlayerController().GetPlayerId(),
399 respawnSystem.OnPlayerEntityChange_S(requestComponent,
this, previousEntity, newEntity,
data);
409 damageManager.SetHealthScaled(0.0);
413 RplComponent.DeleteRplEntity(previousEntity,
false);
ArmaReforgerScripted GetGame()
ref array< string > angles
ResourceName resourceName
SCR_BaseGameMode GetGameMode()
Get all prefabs that have the spawner data
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
bool ValidateData_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data)
SCR_RespawnSystemComponent GetRespawnSystemComponent()
bool AssignEntity_S(SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data)
SCR_ESpawnResult CanHandleRequest_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data)
void OnFinalizeDone_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
SCR_SpawnHandlerComponentClass m_RespawnSystemComponent
bool ShouldDeleteEntityOnSpawnFailure_S(SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data, SCR_ESpawnResult reason)
bool CanFinalize_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
bool ValidatePrefab_S(ResourceName resourceName)
void HandleEntityChange_S(SCR_SpawnRequestComponent requestComponent, IEntity previousEntity, IEntity newEntity, SCR_SpawnData data)
bool CanRequestSpawn_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, out SCR_ESpawnResult result)
SCR_ESpawnResult SpawnEntity_S(SCR_SpawnRequestComponent requestComponent, notnull SCR_SpawnData data, out IEntity spawnedEntity)
bool m_bDestroyPreviousControlledEntity
void HandleSpawnEntityFailure_S(SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data, SCR_ESpawnResult reason)
SCR_ESpawnResult FinalizeRequest_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
bool m_bDeletePreviousControlledEntity
void OnFinalizeBegin_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
Called when the finalisation process begins.
bool PrepareEntity_S(SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data)
SCR_ESpawnResult HandleRequest_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, out IEntity spawnedEntity)
enum EVehicleType IEntity
proto external bool IsActive()
proto external Managed FindComponent(typename typeName)
Object holding reference to resource. In destructor release the resource.
void SetInitialMainEntity(notnull IEntity entity)
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
SCR_FieldOfViewSettings Attribute
proto external PlayerController GetPlayerController()
proto external string ToString()
Plain C++ pointer, no weak pointers, no memory management.
proto native vector Vector(float x, float y, float z)