From 2736f498f30220b858fc6fac23e7ddc4a597df6d Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Mon, 30 May 2016 14:42:09 -0400 Subject: Inital commit --- gamemode/shared.lua | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 gamemode/shared.lua (limited to 'gamemode/shared.lua') diff --git a/gamemode/shared.lua b/gamemode/shared.lua new file mode 100644 index 0000000..e00c4a1 --- /dev/null +++ b/gamemode/shared.lua @@ -0,0 +1,122 @@ + +GM.Name = "ReDead" +GM.Author = "twoski" +GM.Email = "" +GM.Website = "" +GM.TeamBased = true + +CreateConVar( "sv_redead_max_zombies", "45", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "Controls the amount of zombie NPCs that can be spawned at any time. (def 45)" ) +CreateConVar( "sv_redead_zombies_per_player", "3", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "Controls the amount of zombie NPCs that spawn per player. (def 3)" ) +CreateConVar( "sv_redead_zombies_per_player_zombie", "2", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "Controls the amount of zombie NPCs that spawn per player zombie. (def 2)" ) +CreateConVar( "sv_redead_wave_length", "4", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "Controls how long each wave is. (def 4 minutes)" ) +CreateConVar( "sv_redead_wave_time", "25", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "Controls the delay between zombie group spawning. (def 25 seconds)" ) +CreateConVar( "sv_redead_team_dmg", "0", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "Controls whether teammates can hurt eachother. (def 0)" ) +CreateConVar( "sv_redead_dmg_scale", "1", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "Controls bullet damage scaling. (def 1.0)" ) +CreateConVar( "sv_redead_setup_time", "60", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "How much time before the first wave? (def 60 seconds)" ) +CreateConVar( "sv_redead_post_game_time", "45", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "How much time before the next map loads? (def 45 seconds)" ) +CreateConVar( "sv_redead_minimum_players", "6", { FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_SERVER_CAN_EXECUTE }, "How many players need to be present for a zombie lord to be picked? (def 6 players)" ) + +TEAM_ARMY = 1 +TEAM_ZOMBIES = 2 + +function GM:CreateTeams() + + team.SetUp( TEAM_ARMY, GAMEMODE.ArmyTeamName, Color( 80, 80, 255 ), true ) + team.SetSpawnPoint( TEAM_ARMY, "info_player_army" ) + + team.SetUp( TEAM_ZOMBIES, GAMEMODE.ZombieTeamName, Color( 255, 80, 80 ), true ) + team.SetSpawnPoint( TEAM_ZOMBIES, "info_player_zombie" ) + +end + +function GM:ShouldCollide( ent1, ent2 ) + + if ent1:IsPlayer() and ent1:Team() == TEAM_ARMY and ent2.IsWood then + + return false + + elseif ent2:IsPlayer() and ent2:Team() == TEAM_ARMY and ent1.IsWood then + + return false + + end + + return self.BaseClass:ShouldCollide( ent1, ent2 ) + +end + +function GM:Move( ply, mv ) + + if ply:Team() == TEAM_ARMY then + + if ply:GetNWFloat( "Stamina", 0 ) <= 5 then + + mv:SetMaxSpeed( 110 ) + + end + + else + + if mv:GetSideSpeed() > 0 then + + mv:SetSideSpeed( 175 ) + + elseif mv:GetSideSpeed() < 0 then + + mv:SetSideSpeed( -175 ) + + end + + end + + return self.BaseClass:Move( ply, mv ) + +end + +function GM:PlayerNoClip( pl, on ) + + if ( game.SinglePlayer() ) then return true end + + if pl:IsAdmin() or pl:IsSuperAdmin() then return true end + + return false + +end + +function IncludeItems() + + local folder = string.Replace( GM.Folder, "gamemodes/", "" ) + + for c,d in pairs( file.Find( folder.."/gamemode/items/*.lua", "LUA" ) ) do + + include( folder.."/gamemode/items/"..d ) + + if SERVER then + + AddCSLuaFile( folder.."/gamemode/items/"..d ) + + end + + end + +end + +IncludeItems() + +function IncludeEvents() + + local folder = string.Replace( GM.Folder, "gamemodes/", "" ) + + for c,d in pairs( file.Find( folder.."/gamemode/events/*.lua", "LUA" ) ) do + + if SERVER then + + include( folder.."/gamemode/events/"..d ) + + end + + end + +end + +IncludeEvents() \ No newline at end of file -- cgit v1.2.3-70-g09d2