Shotgun reloading, nicer UI, mroe
This commit is contained in:
parent
5baa31e570
commit
7215d129dd
|
@ -6,13 +6,23 @@ function SWEP:Reload()
|
||||||
if self:GetDelayReload() > CurTime() then
|
if self:GetDelayReload() > CurTime() then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
if self:GetShotgunReloading() == 1 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
if self:Clip1() >= self.Primary.ClipSize then
|
if self:Clip1() >= self.Primary.ClipSize then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
self:SendWeaponAnim( ACT_VM_RELOAD )
|
|
||||||
self:GetOwner():GetViewModel():SetPlaybackRate( 2.5 )
|
if self.ShotgunReloading then
|
||||||
self:SetDelayReload( CurTime() + self:SequenceDuration()/2.5 )
|
self:SendWeaponAnim( ACT_SHOTGUN_RELOAD_START )
|
||||||
self:SetRefillTime( CurTime() + self:SequenceDuration()/2.5 )
|
self:GetOwner():GetViewModel():SetPlaybackRate( 2.5 )
|
||||||
--self:SetClip1( self.Primary.ClipSize )
|
self:SetDelayReload( CurTime() + 0.1 )
|
||||||
|
self:SetShotgunReloading( 1 )
|
||||||
|
else
|
||||||
|
self:SendWeaponAnim( ACT_VM_RELOAD )
|
||||||
|
self:GetOwner():GetViewModel():SetPlaybackRate( 2.5 )
|
||||||
|
self:SetDelayReload( CurTime() + self:SequenceDuration()/2.5 )
|
||||||
|
self:SetRefillTime( CurTime() + self:SequenceDuration()/2.5 )
|
||||||
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
|
@ -45,7 +45,7 @@ function SWEP:PrimaryAttack( mine )
|
||||||
self:FireBullets( {
|
self:FireBullets( {
|
||||||
Attacker = self:GetOwner(),
|
Attacker = self:GetOwner(),
|
||||||
Tracer = 1,
|
Tracer = 1,
|
||||||
Damage = 25,
|
Damage = self.DamageClose,
|
||||||
Force = 1,
|
Force = 1,
|
||||||
Num = 1,
|
Num = 1,
|
||||||
Dir = newdir,
|
Dir = newdir,
|
||||||
|
|
|
@ -45,7 +45,23 @@ function SWEP:Think()
|
||||||
self:SetBubbleRecoil( math.Approach( self:GetBubbleRecoil(), up and 1 or 0, FrameTime()/(up and self.BubbleRecoilUp or self.BubbleRecoilDown) ) )
|
self:SetBubbleRecoil( math.Approach( self:GetBubbleRecoil(), up and 1 or 0, FrameTime()/(up and self.BubbleRecoilUp or self.BubbleRecoilDown) ) )
|
||||||
|
|
||||||
if self:GetRefillTime() != -1 and CurTime() >= self:GetRefillTime() then
|
if self:GetRefillTime() != -1 and CurTime() >= self:GetRefillTime() then
|
||||||
self:SetClip1( self.Primary.ClipSize )
|
self:SetClip1( self.ShotgunReloading and (self:Clip1() + 1) or self.Primary.ClipSize )
|
||||||
self:SetRefillTime( -1 )
|
self:SetRefillTime( -1 )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if self:GetShotgunReloading() == 1 then
|
||||||
|
if p:KeyDown( IN_ATTACK ) or (self:GetDelayReload() <= CurTime() and self:Clip1() == self.Primary.ClipSize) then
|
||||||
|
self:SendWeaponAnim( ACT_SHOTGUN_RELOAD_FINISH )
|
||||||
|
self:GetOwner():GetViewModel():SetPlaybackRate( 2.5 )
|
||||||
|
self:SetRefillTime( -1 )
|
||||||
|
self:SetShotgunReloading( 0 )
|
||||||
|
else
|
||||||
|
if self:GetDelayReload() <= CurTime() then
|
||||||
|
self:SendWeaponAnim( ACT_VM_RELOAD )
|
||||||
|
self:GetOwner():GetViewModel():SetPlaybackRate( 2.5 )
|
||||||
|
self:SetDelayReload( CurTime() + 0.2 )
|
||||||
|
self:SetRefillTime( CurTime() + 0.1 )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -76,6 +76,7 @@ function SWEP:SetupDataTables()
|
||||||
self:NetworkVar( "Float", 4, "BubbleSpread" )
|
self:NetworkVar( "Float", 4, "BubbleSpread" )
|
||||||
self:NetworkVar( "Float", 5, "BubbleRecoil" )
|
self:NetworkVar( "Float", 5, "BubbleRecoil" )
|
||||||
self:NetworkVar( "Int", 0, "BurstCount" )
|
self:NetworkVar( "Int", 0, "BurstCount" )
|
||||||
|
self:NetworkVar( "Int", 1, "ShotgunReloading" )
|
||||||
|
|
||||||
self:SetRefillTime( -1 )
|
self:SetRefillTime( -1 )
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,7 +24,7 @@ SWEP.DamageFar = 11
|
||||||
SWEP.BubbleSpreadUp = 0.2
|
SWEP.BubbleSpreadUp = 0.2
|
||||||
SWEP.BubbleRecoilUp = 0.2
|
SWEP.BubbleRecoilUp = 0.2
|
||||||
SWEP.BubbleSpreadDown = 0.3
|
SWEP.BubbleSpreadDown = 0.3
|
||||||
SWEP.BubbleRecoilDown = 0.3
|
SWEP.BubbleRecoilDown = 0.2
|
||||||
|
|
||||||
SWEP.SpreadStart = 1
|
SWEP.SpreadStart = 1
|
||||||
SWEP.SpreadEnd = 3
|
SWEP.SpreadEnd = 3
|
||||||
|
@ -32,4 +32,4 @@ SWEP.SpreadEnd = 3
|
||||||
SWEP.RecoilUp = 45
|
SWEP.RecoilUp = 45
|
||||||
SWEP.RecoilSpeed = 40
|
SWEP.RecoilSpeed = 40
|
||||||
SWEP.RecoilDistStart = 2
|
SWEP.RecoilDistStart = 2
|
||||||
SWEP.RecoilDistEnd = 3
|
SWEP.RecoilDistEnd = 5
|
|
@ -19,4 +19,6 @@ SWEP.Primary.ClipSize = 5
|
||||||
SWEP.Delay = ( 60 / 180 )
|
SWEP.Delay = ( 60 / 180 )
|
||||||
SWEP.MaxBurst = 1
|
SWEP.MaxBurst = 1
|
||||||
SWEP.DamageClose = 25
|
SWEP.DamageClose = 25
|
||||||
SWEP.DamageFar = 13
|
SWEP.DamageFar = 13
|
||||||
|
|
||||||
|
SWEP.ShotgunReloading = true
|
|
@ -17,5 +17,5 @@ SWEP.Sound_Fire = {
|
||||||
|
|
||||||
SWEP.Primary.ClipSize = 32
|
SWEP.Primary.ClipSize = 32
|
||||||
SWEP.Delay = ( 60 / 1600 )
|
SWEP.Delay = ( 60 / 1600 )
|
||||||
SWEP.DamageClose = 25
|
SWEP.DamageClose = 14
|
||||||
SWEP.DamageFar = 13
|
SWEP.DamageFar = 10
|
|
@ -19,4 +19,6 @@ SWEP.Primary.ClipSize = 4
|
||||||
SWEP.Delay = ( 60 / 80 )
|
SWEP.Delay = ( 60 / 80 )
|
||||||
SWEP.MaxBurst = 1
|
SWEP.MaxBurst = 1
|
||||||
SWEP.DamageClose = 25
|
SWEP.DamageClose = 25
|
||||||
SWEP.DamageFar = 13
|
SWEP.DamageFar = 13
|
||||||
|
|
||||||
|
SWEP.ShotgunReloading = true
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
SWEP.Base = "cnr"
|
SWEP.Base = "cnr"
|
||||||
|
|
||||||
SWEP.PrintName = "SWORDFISH DELUXE"
|
SWEP.PrintName = "SWORDFISH-5"
|
||||||
SWEP.Slot = 0
|
SWEP.Slot = 0
|
||||||
|
|
||||||
SWEP.ViewModel = "models/weapons/cstrike/c_smg_mp5.mdl"
|
SWEP.ViewModel = "models/weapons/cstrike/c_smg_mp5.mdl"
|
||||||
|
@ -17,5 +17,18 @@ SWEP.Sound_Fire = {
|
||||||
|
|
||||||
SWEP.Primary.ClipSize = 30
|
SWEP.Primary.ClipSize = 30
|
||||||
SWEP.Delay = ( 60 / 900 )
|
SWEP.Delay = ( 60 / 900 )
|
||||||
SWEP.DamageClose = 25
|
SWEP.DamageClose = 16
|
||||||
SWEP.DamageFar = 13
|
SWEP.DamageFar = 10
|
||||||
|
|
||||||
|
SWEP.BubbleSpreadUp = 0.8
|
||||||
|
SWEP.BubbleRecoilUp = 0.8
|
||||||
|
SWEP.BubbleSpreadDown = 0.2
|
||||||
|
SWEP.BubbleRecoilDown = 0.2
|
||||||
|
|
||||||
|
SWEP.SpreadStart = 0
|
||||||
|
SWEP.SpreadEnd = 10
|
||||||
|
|
||||||
|
SWEP.RecoilUp = 60
|
||||||
|
SWEP.RecoilSpeed = 180
|
||||||
|
SWEP.RecoilDistStart = 1
|
||||||
|
SWEP.RecoilDistEnd = 5
|
|
@ -22,7 +22,7 @@ SWEP.DamageClose = 25
|
||||||
SWEP.DamageFar = 21
|
SWEP.DamageFar = 21
|
||||||
|
|
||||||
SWEP.BubbleSpreadUp = 0.8
|
SWEP.BubbleSpreadUp = 0.8
|
||||||
SWEP.BubbleRecoilUp = 0.8
|
SWEP.BubbleRecoilUp = 0.2
|
||||||
SWEP.BubbleSpreadDown = 0.1
|
SWEP.BubbleSpreadDown = 0.1
|
||||||
SWEP.BubbleRecoilDown = 0.1
|
SWEP.BubbleRecoilDown = 0.1
|
||||||
|
|
||||||
|
@ -32,4 +32,4 @@ SWEP.SpreadEnd = 4
|
||||||
SWEP.RecoilUp = 33
|
SWEP.RecoilUp = 33
|
||||||
SWEP.RecoilSpeed = 60
|
SWEP.RecoilSpeed = 60
|
||||||
SWEP.RecoilDistStart = 0.8
|
SWEP.RecoilDistStart = 0.8
|
||||||
SWEP.RecoilDistEnd = 2.2
|
SWEP.RecoilDistEnd = 4
|
|
@ -22,7 +22,7 @@ SWEP.DamageClose = 25
|
||||||
SWEP.DamageFar = 13
|
SWEP.DamageFar = 13
|
||||||
|
|
||||||
SWEP.BubbleSpreadUp = 0.6
|
SWEP.BubbleSpreadUp = 0.6
|
||||||
SWEP.BubbleRecoilUp = 0.6
|
SWEP.BubbleRecoilUp = 0.3
|
||||||
SWEP.BubbleSpreadDown = 0.2
|
SWEP.BubbleSpreadDown = 0.2
|
||||||
SWEP.BubbleRecoilDown = 0.2
|
SWEP.BubbleRecoilDown = 0.2
|
||||||
|
|
||||||
|
@ -31,5 +31,5 @@ SWEP.SpreadEnd = 5
|
||||||
|
|
||||||
SWEP.RecoilUp = 45
|
SWEP.RecoilUp = 45
|
||||||
SWEP.RecoilSpeed = 60
|
SWEP.RecoilSpeed = 60
|
||||||
SWEP.RecoilDistStart = 1
|
SWEP.RecoilDistStart = 2
|
||||||
SWEP.RecoilDistEnd = 3
|
SWEP.RecoilDistEnd = 4
|
|
@ -34,6 +34,18 @@ surface.CreateFont( "CNR_HUD_4", {
|
||||||
weight = 0,
|
weight = 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
surface.CreateFont( "CNR_SEL_1", {
|
||||||
|
font = "Bahnschrift Light",
|
||||||
|
size = ScreenScaleH(18),
|
||||||
|
weight = 0,
|
||||||
|
})
|
||||||
|
|
||||||
|
surface.CreateFont( "CNR_SEL_2", {
|
||||||
|
font = "Bahnschrift Light",
|
||||||
|
size = ScreenScaleH(10),
|
||||||
|
weight = 0,
|
||||||
|
})
|
||||||
|
|
||||||
local special1 = {
|
local special1 = {
|
||||||
normal = 12,
|
normal = 12,
|
||||||
colon = 5,
|
colon = 5,
|
||||||
|
@ -147,12 +159,12 @@ hook.Add("HUDPaint", "CNR_HUD", function()
|
||||||
MonoDraw( fuckhead, "CNR_HUD_4", b_x + b, b_y + s(12), color_black, false, special1 )
|
MonoDraw( fuckhead, "CNR_HUD_4", b_x + b, b_y + s(12), color_black, false, special1 )
|
||||||
|
|
||||||
do
|
do
|
||||||
local n_w, n_h = s(128), s(42)
|
local n_w, n_h = s(56), s(42)
|
||||||
local n_x, n_y = b_x + b + b_w, b_y
|
local n_x, n_y = b_x + b + b_w, b_y
|
||||||
surface.SetDrawColor( color_white )
|
surface.SetDrawColor( color_white )
|
||||||
surface.DrawRect( n_x, n_y, n_w, n_h )
|
surface.DrawRect( n_x, n_y, n_w, n_h )
|
||||||
draw.SimpleText( "ROUND NUMBER", "CNR_HUD_3", n_x + b, n_y + s(4), color_black )
|
draw.SimpleText( "ROUND", "CNR_HUD_3", n_x + b, n_y + s(4), color_black )
|
||||||
draw.SimpleText( gamelogic:GetRound(), "CNR_HUD_4", n_x + b, n_y + s(12), color_black )
|
draw.SimpleText( gamelogic:GetRound() .. "/" .. CONVARS["rounds_max"]:GetInt(), "CNR_HUD_4", n_x + b, n_y + s(12), color_black )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,9 @@
|
||||||
|
|
||||||
local teams = {
|
|
||||||
{
|
|
||||||
Name = "Side A",
|
|
||||||
ID = TEAM_SIDEA,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Side B",
|
|
||||||
ID = TEAM_SIDEB,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Spectate",
|
|
||||||
ID = TEAM_SPECTATOR,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
function GM:ShowTeam()
|
function GM:ShowTeam()
|
||||||
if IsValid( teampanel ) then teampanel:Remove() return end
|
if IsValid( teampanel ) then teampanel:Remove() return end
|
||||||
local s = ScreenScaleH
|
local s = ScreenScaleH
|
||||||
teampanel = vgui.Create( "DFrame" )
|
teampanel = vgui.Create( "DFrame" )
|
||||||
teampanel:SetSize( s(320), s(160) )
|
teampanel:SetSize( s(320), s(240) )
|
||||||
teampanel:Center()
|
teampanel:Center()
|
||||||
teampanel:MakePopup()
|
teampanel:MakePopup()
|
||||||
|
|
||||||
|
@ -27,10 +12,30 @@ function GM:ShowTeam()
|
||||||
surface.DrawRect( 0, 0, w, h )
|
surface.DrawRect( 0, 0, w, h )
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- the ids are undefined pretty early and whatever
|
||||||
|
local teams = {
|
||||||
|
{
|
||||||
|
Name = "Side A",
|
||||||
|
ID = TEAM_SIDEA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name = "Side B",
|
||||||
|
ID = TEAM_SIDEB,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name = "Spectate",
|
||||||
|
ID = TEAM_SPECTATOR,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name = "Auto-Select",
|
||||||
|
ID = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
for i, v in ipairs( teams ) do
|
for i, v in ipairs( teams ) do
|
||||||
local button = teampanel:Add( "DButton" )
|
local button = teampanel:Add( "DButton" )
|
||||||
button:SetSize( s(320), s(32) )
|
button:SetSize( s(320), s(48) )
|
||||||
button:DockMargin( 0, s(2), 0, 0 )
|
button:DockMargin( 0, s(2), 0, 0 )
|
||||||
button:Dock( TOP )
|
button:Dock( TOP )
|
||||||
|
|
||||||
|
@ -40,12 +45,50 @@ function GM:ShowTeam()
|
||||||
surface.SetDrawColor( color_black )
|
surface.SetDrawColor( color_black )
|
||||||
surface.DrawOutlinedRect( 0, 0, w, h, s(1) )
|
surface.DrawOutlinedRect( 0, 0, w, h, s(1) )
|
||||||
|
|
||||||
draw.SimpleText( v.Name, "CNR_HUD_1", s(4), s(4), color_black )
|
draw.SimpleText( v.Name, "CNR_SEL_1", s(4), s(4), color_black )
|
||||||
|
|
||||||
|
local plys = team.GetPlayers( v.ID )
|
||||||
|
local mew = { [1] = {} }
|
||||||
|
local curr = 1
|
||||||
|
|
||||||
|
for _, v in ipairs( plys ) do
|
||||||
|
local concat = ""
|
||||||
|
local nick = v:Nick()
|
||||||
|
if #nick > 8 then
|
||||||
|
nick = nick:Left(8) .. ".."
|
||||||
|
end
|
||||||
|
concat = concat .. nick
|
||||||
|
--if i!= #plys then
|
||||||
|
-- concat = concat .. ", "
|
||||||
|
--end
|
||||||
|
if #mew[curr] > 5 then
|
||||||
|
curr = curr + 1
|
||||||
|
end
|
||||||
|
if !mew[curr] then
|
||||||
|
mew[curr] = {}
|
||||||
|
end
|
||||||
|
table.insert( mew[curr], concat )
|
||||||
|
end
|
||||||
|
|
||||||
|
local bump = 0
|
||||||
|
for _, row in ipairs( mew ) do
|
||||||
|
bump = 0
|
||||||
|
for i, v in ipairs( row ) do
|
||||||
|
local tada = v .. ((i!=#row) and ", " or "")
|
||||||
|
draw.SimpleText( tada, "CNR_SEL_2", s(4)+bump, s(4+16 + s((_-1)*4)), color_black )
|
||||||
|
surface.SetFont( "CNR_SEL_2" )
|
||||||
|
bump = bump + surface.GetTextSize( tada )
|
||||||
|
end
|
||||||
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
function button:DoClick()
|
function button:DoClick()
|
||||||
RunConsoleCommand( "changeteam", v.ID )
|
if v.ID == true then
|
||||||
|
RunConsoleCommand( "changeteam", team.BestAutoJoinTeam() )
|
||||||
|
else
|
||||||
|
RunConsoleCommand( "changeteam", v.ID )
|
||||||
|
end
|
||||||
teampanel:Remove()
|
teampanel:Remove()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -45,6 +45,23 @@ if SERVER then
|
||||||
-- Begin pregame
|
-- Begin pregame
|
||||||
state = STATE_PREGAME
|
state = STATE_PREGAME
|
||||||
gamelogic:SetPregameStartedAt( RealTime() )
|
gamelogic:SetPregameStartedAt( RealTime() )
|
||||||
|
net.Start( "CNR_Logic_Pregame" )
|
||||||
|
net.Broadcast()
|
||||||
|
|
||||||
|
-- Begin preparations for a new round
|
||||||
|
gamelogic:SetMoney( 0 )
|
||||||
|
|
||||||
|
-- Swap teams
|
||||||
|
if CONVARS["rounds_swap"]:GetBool() and gamelogic:GetRound() > (gamelogic:GetSwappedAtRound()-1)+CONVARS["rounds_swap"]:GetInt() then
|
||||||
|
gamelogic:SetTeamSwap( !gamelogic:GetTeamSwap() )
|
||||||
|
gamelogic:SetSwappedAtRound( gamelogic:GetRound() )
|
||||||
|
end
|
||||||
|
|
||||||
|
LOGIC:SetSpawnpoints()
|
||||||
|
|
||||||
|
for i, v in player.Iterator() do
|
||||||
|
v:Spawn()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -69,6 +86,7 @@ if SERVER then
|
||||||
gamelogic:SetRoundFinishedAt( RealTime() )
|
gamelogic:SetRoundFinishedAt( RealTime() )
|
||||||
net.Start( "CNR_Logic_Postgame" )
|
net.Start( "CNR_Logic_Postgame" )
|
||||||
net.Broadcast()
|
net.Broadcast()
|
||||||
|
gamelogic:SetRound( gamelogic:GetRound() + 1 )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -76,10 +94,11 @@ if SERVER then
|
||||||
if (gamelogic:GetRoundFinishedAt() + CONVARS["time_postgame"]:GetInt()) <= RealTime() then
|
if (gamelogic:GetRoundFinishedAt() + CONVARS["time_postgame"]:GetInt()) <= RealTime() then
|
||||||
state = STATE_PREGAME
|
state = STATE_PREGAME
|
||||||
gamelogic:SetPregameStartedAt( RealTime() )
|
gamelogic:SetPregameStartedAt( RealTime() )
|
||||||
|
net.Start( "CNR_Logic_Pregame" )
|
||||||
|
net.Broadcast()
|
||||||
|
|
||||||
-- Begin preparations for a new round
|
-- Begin preparations for a new round
|
||||||
gamelogic:SetMoney( 0 )
|
gamelogic:SetMoney( 0 )
|
||||||
gamelogic:SetRound( gamelogic:GetRound() + 1 )
|
|
||||||
|
|
||||||
-- Swap teams
|
-- Swap teams
|
||||||
if CONVARS["rounds_swap"]:GetBool() and gamelogic:GetRound() > (gamelogic:GetSwappedAtRound()-1)+CONVARS["rounds_swap"]:GetInt() then
|
if CONVARS["rounds_swap"]:GetBool() and gamelogic:GetRound() > (gamelogic:GetSwappedAtRound()-1)+CONVARS["rounds_swap"]:GetInt() then
|
||||||
|
@ -92,8 +111,6 @@ if SERVER then
|
||||||
for i, v in player.Iterator() do
|
for i, v in player.Iterator() do
|
||||||
v:Spawn()
|
v:Spawn()
|
||||||
end
|
end
|
||||||
net.Start( "CNR_Logic_Pregame" )
|
|
||||||
net.Broadcast()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -58,8 +58,12 @@ function GM:ScalePlayerDamage( ply, hitgroup, dmginfo )
|
||||||
end
|
end
|
||||||
|
|
||||||
function GM:PlayerInitialSpawn( pl, transition )
|
function GM:PlayerInitialSpawn( pl, transition )
|
||||||
pl:SetTeam( TEAM_UNASSIGNED )
|
if pl:IsBot() then
|
||||||
pl:ConCommand( "gm_showteam" )
|
pl:SetTeam( team.BestAutoJoinTeam() )
|
||||||
|
else
|
||||||
|
pl:SetTeam( TEAM_UNASSIGNED )
|
||||||
|
pl:ConCommand( "gm_showteam" )
|
||||||
|
end
|
||||||
end
|
end
|
||||||
function GM:PlayerSpawnAsSpectator( pl )
|
function GM:PlayerSpawnAsSpectator( pl )
|
||||||
pl:StripWeapons()
|
pl:StripWeapons()
|
||||||
|
@ -155,4 +159,35 @@ hook.Add( "Move", "CNR_Move", function( ply, mv )
|
||||||
mv:SetMaxClientSpeed( 0 )
|
mv:SetMaxClientSpeed( 0 )
|
||||||
mv:SetMaxSpeed( 0 )
|
mv:SetMaxSpeed( 0 )
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
if SERVER then
|
||||||
|
util.AddNetworkString( "CNR_Kill" )
|
||||||
|
|
||||||
|
function GM:DoPlayerDeath( ply, attacker, dmginfo )
|
||||||
|
ply:CreateRagdoll()
|
||||||
|
ply:AddDeaths( 1 )
|
||||||
|
if ( attacker:IsValid() && attacker:IsPlayer() ) then
|
||||||
|
if ( attacker == ply ) then
|
||||||
|
attacker:AddFrags( -1 )
|
||||||
|
else
|
||||||
|
attacker:AddFrags( 1 )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
net.Start( "CNR_Kill" )
|
||||||
|
net.WriteEntity( ply )
|
||||||
|
net.WriteEntity( attacker )
|
||||||
|
net.WriteEntity( dmginfo:GetInflictor() )
|
||||||
|
net.Broadcast()
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local c_attacker = Color( 255, 100, 100 )
|
||||||
|
local c_victim = Color( 100, 100, 255 )
|
||||||
|
net.Receive( "CNR_Kill", function()
|
||||||
|
local victim = net.ReadEntity()
|
||||||
|
local attacker = net.ReadEntity()
|
||||||
|
local inflictor = net.ReadEntity()
|
||||||
|
|
||||||
|
chat.AddText( c_attacker, attacker:Nick(), color_white, " [", inflictor:GetPrintName(), "] ", c_victim, victim:Nick(), color_white )
|
||||||
|
end)
|
||||||
|
end
|
|
@ -5,13 +5,6 @@ GM.Email = "publicfesiug@outlook.com"
|
||||||
GM.Website = "https://github.com/Fesiug/copsnrobbers"
|
GM.Website = "https://github.com/Fesiug/copsnrobbers"
|
||||||
GM.TeamBased = true
|
GM.TeamBased = true
|
||||||
|
|
||||||
AddCSLuaFile("cl_hud.lua")
|
|
||||||
AddCSLuaFile("cl_selectteam.lua")
|
|
||||||
if CLIENT then
|
|
||||||
include ("cl_hud.lua")
|
|
||||||
include ("cl_selectteam.lua")
|
|
||||||
end
|
|
||||||
|
|
||||||
AddCSLuaFile("player_class_cnr.lua")
|
AddCSLuaFile("player_class_cnr.lua")
|
||||||
include ("player_class_cnr.lua")
|
include ("player_class_cnr.lua")
|
||||||
|
|
||||||
|
@ -21,6 +14,13 @@ AddCSLuaFile("logic.lua")
|
||||||
AddCSLuaFile("playerbs.lua")
|
AddCSLuaFile("playerbs.lua")
|
||||||
include ("playerbs.lua")
|
include ("playerbs.lua")
|
||||||
|
|
||||||
|
AddCSLuaFile("cl_hud.lua")
|
||||||
|
AddCSLuaFile("cl_selectteam.lua")
|
||||||
|
if CLIENT then
|
||||||
|
include ("cl_hud.lua")
|
||||||
|
include ("cl_selectteam.lua")
|
||||||
|
end
|
||||||
|
|
||||||
function GM:Initialize()
|
function GM:Initialize()
|
||||||
-- Do stuff
|
-- Do stuff
|
||||||
end
|
end
|
||||||
|
@ -39,4 +39,10 @@ concommand.Add( "cnr_cheat_weapons", function( p )
|
||||||
p:Give( "cnr_usp" )
|
p:Give( "cnr_usp" )
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
if SERVER then
|
||||||
|
function GM:ShowTeam( ply )
|
||||||
|
ply:SendLua( "GAMEMODE:ShowTeam()" )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Include module loader here
|
-- Include module loader here
|
Loading…
Reference in New Issue