CopsNRobbers/gamemodes/copsnrobbers/gamemode/shared.lua

139 lines
3.1 KiB
Lua
Raw Normal View History

2023-12-21 13:58:05 -05:00
GM.Name = "Cops 'n Robbers"
GM.Author = "Fesiug"
GM.Email = "publicfesiug@outlook.com"
GM.Website = "https://github.com/Fesiug/copsnrobbers"
GM.TeamBased = true
AddCSLuaFile("cl_hud.lua")
if CLIENT then
include ("cl_hud.lua")
end
AddCSLuaFile("player_class_cnr.lua")
include ("player_class_cnr.lua")
2023-12-21 19:04:34 -05:00
AddCSLuaFile("logic.lua")
include ("logic.lua")
2023-12-21 13:58:05 -05:00
function GM:Initialize()
-- Do stuff
end
function GM:OnDamagedByExplosion( ply, dmginfo )
-- ply:SetDSP( 35, false )
end
function GM:PlayerCanJoinTeam( ply, teamid )
local TimeBetweenSwitches = 0.5
if ( ply.LastTeamSwitch && RealTime() - ply.LastTeamSwitch < TimeBetweenSwitches ) then
ply.LastTeamSwitch = ply.LastTeamSwitch + 0.5
ply:ChatPrint( Format( "Please wait %i more seconds before trying to change team again", ( TimeBetweenSwitches - ( RealTime() - ply.LastTeamSwitch ) ) + 1 ) )
return false
end
if ( ply:Team() == teamid ) then
ply:ChatPrint( "You're already on that team" )
return false
end
return true
end
-- Write this so at the end of a round you can shittalk
local sv_alltalk = GetConVar( "sv_alltalk" )
function GM:PlayerCanHearPlayersVoice( pListener, pTalker )
local alltalk = sv_alltalk:GetInt()
if ( alltalk >= 1 ) then return true, alltalk == 2 end
return pListener:Team() == pTalker:Team(), false
end
function GM:PlayerShouldTaunt( ply, actid )
return false
end
function GM:AllowPlayerPickup( ply, object )
return false
end
function GM:PlayerDeathSound()
return true
end
function GM:CreateTeams()
TEAM_SIDEA = 1
team.SetUp( TEAM_SIDEA, "Side A", Color( 200, 200, 255 ) )
team.SetSpawnPoint( TEAM_SIDEA, "info_player_counterterrorist" )
TEAM_SIDEB = 2
team.SetUp( TEAM_SIDEB, "Side B", Color( 255, 200, 200 ) )
team.SetSpawnPoint( TEAM_SIDEB, "info_player_terrorist" )
team.SetSpawnPoint( TEAM_SPECTATOR, "worldspawn" )
end
function GM:ScalePlayerDamage( ply, hitgroup, dmginfo )
-- More damage if we're shot in the head
if ( hitgroup == HITGROUP_HEAD ) then
dmginfo:ScaleDamage( 2 )
end
end
function GM:PlayerSpawn( p, transition )
player_manager.SetPlayerClass( p, "player_cnr" )
if ( self.TeamBased and ( p:Team() == TEAM_SPECTATOR or p:Team() == TEAM_UNASSIGNED ) ) then
self:PlayerSpawnAsSpectator( p )
return
end
p:UnSpectate()
p:SetSlowWalkSpeed( 190 )
p:SetWalkSpeed( 320 )
p:SetRunSpeed( 320 )
if ( !transition ) then
GAMEMODE:PlayerLoadout( p )
end
GAMEMODE:PlayerSetModel( p )
p:SetupHands()
end
function GM:PlayerLoadout( p )
if p:Team() == TEAM_SIDEA then
p:Give("cnr_m4a1")
p:Give("cnr_usp")
elseif p:Team() == TEAM_SIDEB then
p:Give("cnr_ak47")
p:Give("cnr_glock")
end
return true
end
function GM:PlayerSetModel( p )
if p:Team() == TEAM_SIDEA then
p:SetModel( "models/player/combine_soldier.mdl" )
elseif p:Team() == TEAM_SIDEB then
p:SetModel( "models/player/group03/male_07.mdl" )
end
end
concommand.Add( "cnr_cheat_weapons", function( p )
p:Give( "cnr_ak47" )
p:Give( "cnr_glock" )
p:Give( "cnr_m4a1" )
p:Give( "cnr_m4s90" )
p:Give( "cnr_m249" )
p:Give( "cnr_mac10" )
p:Give( "cnr_mossberg" )
p:Give( "cnr_mp5" )
p:Give( "cnr_p220" )
p:Give( "cnr_usp" )
end)
-- Include module loader here
2023-12-21 19:04:34 -05:00