1 [
EntityEditorProps(
category:
"GameScripted/GameMode", description:
"Spawn protection component for gamemode.", color:
"0 0 255 255")]
8 [
Attribute(defvalue:
"0.1",
desc:
"How long should be player protected?")]
9 protected float m_fProtectionTime;
11 [
Attribute(defvalue:
"1",
desc:
"Should be protection disabled if player shoots?")]
12 protected bool m_bDisableOnAttack;
15 protected bool m_bAllowPlayerSpawnpoints;
25 #ifdef _ENABLE_RESPAWN_LOGS
26 PrintFormat(
"%1::PreparePlayerEntity_S(playerId: %2, entity: %3)", Type().ToString(),
27 requestComponent.GetPlayerId(), entity);
33 if (!m_bAllowPlayerSpawnpoints)
39 if (SCR_PlayerRadioSpawnPoint.Cast(spawnData.GetSpawnPoint()))
44 SCR_DamageManagerComponent damageManager = SCR_DamageManagerComponent.Cast(entity.FindComponent(SCR_DamageManagerComponent));
48 #ifdef _ENABLE_RESPAWN_LOGS
49 PrintFormat(
" %1::EnableDamageHandling(false, playerId: %2, entity: %3)", Type().ToString(),
50 requestComponent.GetPlayerId(), entity);
54 damageManager.EnableDamageHandling(
false);
57 if (m_bDisableOnAttack)
59 EventHandlerManagerComponent eventHandlerManager = EventHandlerManagerComponent.Cast(entity.FindComponent(EventHandlerManagerComponent));
60 if (eventHandlerManager)
97 IEntity weaponEntity = currentWeapon.GetOwner();
102 IEntity parent = weaponEntity.GetParent();
103 if (parent && parent.IsInherited(ChimeraCharacter))
113 SCR_DamageManagerComponent damageManager = SCR_DamageManagerComponent.Cast(playerEntity.FindComponent(SCR_DamageManagerComponent));
114 if (!damageManager && damageManager.IsDamageHandlingEnabled())
117 damageManager.EnableDamageHandling(
true);
119 #ifdef _ENABLE_RESPAWN_LOGS
120 PrintFormat(
" %1::EnableDamageHandling(true, playerId: %2, entity: %3)", Type().ToString(),
121 GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(playerEntity), playerEntity);
124 if (!m_bDisableOnAttack)
127 EventHandlerManagerComponent eventHandlerManager = EventHandlerManagerComponent.Cast(playerEntity.FindComponent(EventHandlerManagerComponent));
128 if (eventHandlerManager)