From c9e9fe3fc4c14074dcd71581b86d5be7f0588256 Mon Sep 17 00:00:00 2001 From: stickz Date: Wed, 30 Mar 2016 19:25:46 -0400 Subject: [PATCH 1/5] Add Spawn Protection Player Variable --- .../morbusgame/gamemode/server/player/sv_player.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua b/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua index c976692..34773ea 100644 --- a/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua +++ b/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua @@ -39,8 +39,8 @@ function GM:PlayerInitialSpawn(ply) ply.DamageFactor = 1 ply:InitSanity() ply:SetNWInt("Mute_Status",0) - - + + ply:SpawnProtected = false --ply:SetForceRPName( 0 ) -- 0 = no, 1 = yes --ply:SetForceGender( 0 ) -- 0 = don't force, 1 = male, 2 = female @@ -640,4 +640,4 @@ function WhoIsRemscar() end SendMsg("Remscar is not playing on this server") end -concommand.Add("remscar",WhoIsRemscar) \ No newline at end of file +concommand.Add("remscar",WhoIsRemscar) From cf9ff601137cd3c2d9d074aac01fe3bac406b89e Mon Sep 17 00:00:00 2001 From: stickz Date: Wed, 30 Mar 2016 19:32:19 -0400 Subject: [PATCH 2/5] Add Spawn Protection ConVar --- MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua b/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua index f8a1980..6733515 100644 --- a/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua +++ b/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua @@ -68,8 +68,11 @@ CreateConVar("morbus_mission_time_min", "120", FCVAR_NOTIFY) CreateConVar("morbus_mission_next_time_max", "80", FCVAR_NOTIFY) CreateConVar("morbus_mission_next_time_min", "220", FCVAR_NOTIFY) - CreateConVar("morbus_rpnames_optional", "0", FCVAR_NOTIFY) + +--This cvar sets the time swarms are spawn protected after swarming +CreateConVar("morbus_swarm_protection_time", "3", FCVAR_NOTIFY) + ----------------------------------------------- util.AddNetworkString("RoundLog") From dd72acb340f8360e54dddd8c688475d97c97b888 Mon Sep 17 00:00:00 2001 From: stickz Date: Wed, 30 Mar 2016 19:33:18 -0400 Subject: [PATCH 3/5] Fix Typo --- MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua b/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua index 6733515..89d3a30 100644 --- a/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua +++ b/MorbusGamemode/gamemodes/morbusgame/gamemode/init.lua @@ -70,7 +70,7 @@ CreateConVar("morbus_mission_next_time_min", "220", FCVAR_NOTIFY) CreateConVar("morbus_rpnames_optional", "0", FCVAR_NOTIFY) ---This cvar sets the time swarms are spawn protected after swarming +--This cvar sets the time swarms are spawn protected for after spawning CreateConVar("morbus_swarm_protection_time", "3", FCVAR_NOTIFY) ----------------------------------------------- From 2153a08cd5fd4a44f673537f3594439e955a87cb Mon Sep 17 00:00:00 2001 From: stickz Date: Wed, 30 Mar 2016 19:43:18 -0400 Subject: [PATCH 4/5] Set Boolean Value on GM:PlayerSpawn(ply) Enable spawn protection when the player spawns. Create a timer to disable it after the convar specified time. --- .../gamemode/server/player/sv_player.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua b/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua index 34773ea..2ae7db5 100644 --- a/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua +++ b/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player.lua @@ -215,6 +215,23 @@ function GM:PlayerSpawn(ply) end + --Enable spawn protection when a new swarn alien spawns + --Create a timer to disable it after the convar time + if ply:IsSwarm() then + --ply:PrintMessage(HUD_PRINTTALK, "Spawn protection activated!") + + ply.SpawnProtected = true + + local ProtectionTime = GetConVar("morbus_swarm_protection_time"):GetInt() + timer.Simple(ProtectionTime , function() + if IsValid(ply) && ply:IsGame() then + ply.SpawnProtected = false + end + end) + end + + + ply:ResetViewRoll() ply:SetNWBool("alienform", false) From 63f663efeff780fc84909091648ab19f5ddbf934 Mon Sep 17 00:00:00 2001 From: stickz Date: Wed, 30 Mar 2016 19:47:45 -0400 Subject: [PATCH 5/5] Block Damage When Protected --- .../morbusgame/gamemode/server/player/sv_player_damage.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player_damage.lua b/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player_damage.lua index 53597a4..1b5f7d7 100644 --- a/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player_damage.lua +++ b/MorbusGamemode/gamemodes/morbusgame/gamemode/server/player/sv_player_damage.lua @@ -73,6 +73,11 @@ function GM:PlayerTakeDamage(ent, infl, att, amount, dmginfo) end end + --if the entity taking damage is swarm & has spawn protection + if ent:IsSwarm() && ent.SpawnProtected == true then + --scale damage to almost nothing + dmginfo:ScaleDamage(0.01) + end end // Brood Alien damage reudction upgrades