diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..57c25cb --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +# Auto detect text files and perform LF normalization +* text=auto +*.ogg filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.mdl filter=lfs diff=lfs merge=lfs -text +*.dx90.vtx filter=lfs diff=lfs merge=lfs -text +*.phy filter=lfs diff=lfs merge=lfs -text +*.vvd filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.vtf filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d94de52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.dx80.vtx +*.sw.vtx \ No newline at end of file diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-01.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-01.ogg new file mode 100644 index 0000000..a438eac --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-01.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27981bbdab49c8fca46f8a39f5c2bd2f2cd75697977944aa90dd0d5a1506830c +size 6777 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-02.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-02.ogg new file mode 100644 index 0000000..4f9c259 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-02.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:597473d56972406ecaff9d0035a0c7539b6eb3e557c6ac7b5d1c42b6309c2cf3 +size 7402 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-03.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-03.ogg new file mode 100644 index 0000000..b689546 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-03.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b835a09ee2700db293ebdc2cb9d0f8b7b4778c15e017e3d1d000cbed2b0116a5 +size 6422 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-04.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-04.ogg new file mode 100644 index 0000000..fc5069d --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-04.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5889d27f4fc7f0e8c59a014159dfb11e2efb0eaaae8ece09f4f8d38a30238ca3 +size 6978 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-05.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-05.ogg new file mode 100644 index 0000000..bcd2275 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-05.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76bbff4920d727381959a31bd5901b0a7288b6f515b2559cfccf447bbbd4a16b +size 7049 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-06.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-06.ogg new file mode 100644 index 0000000..9f9cfe9 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-06.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf18a69b6c9ad76520ce4e913e12aae88e9a546bf703bac21bfdd10cc44da676 +size 6264 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-07.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-07.ogg new file mode 100644 index 0000000..81cbb7f --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/confirm-07.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a42691ef419414d001970c9a4abeed35dadf575c2c33b2f01c5600d35e523a59 +size 7410 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-01.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-01.ogg new file mode 100644 index 0000000..3e503e0 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-01.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e2df1816ba1d578b387497e73f5fa7d1df747dd6f8024949a03415f51298be3 +size 19195 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-02.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-02.ogg new file mode 100644 index 0000000..a794924 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-02.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1333584965cbedc268110f00ba761ab14b6dbee9f08f38ff4961b77b8497c24 +size 24303 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-03.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-03.ogg new file mode 100644 index 0000000..9c01bdd --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-03.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11e034cf4b398baa2a1e7d04d46b632b2f7bb5b1efd2965207ade601dea6b502 +size 23946 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-04.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-04.ogg new file mode 100644 index 0000000..b595bdf --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-04.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6be64656c7bc5606216a34d7328e42987ec5cf64d94939923f707bcda2908ba3 +size 20570 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-05.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-05.ogg new file mode 100644 index 0000000..1442661 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-05.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bf25f3bae0bc8793ae0d79a7a45d6ac193a5bbfeb368f08dde4abe4bf66a0db +size 19098 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-06.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-06.ogg new file mode 100644 index 0000000..eaa0cc8 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-06.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b8cd5be388b19e4a744b8fe0a2584d330e9c51d66dbfe762c8d9183c769094 +size 21639 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-07.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-07.ogg new file mode 100644 index 0000000..aac69a3 --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-07.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aae6513e9e244c7b048d58ba038a3ef8833a5154904b789d3e1fcf5290b6f15 +size 21470 diff --git a/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-08.ogg b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-08.ogg new file mode 100644 index 0000000..52dca8d --- /dev/null +++ b/gamemodes/copsnrobbers/content/sound/cnr/impact/flesh-08.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38af06a47c7dfdee94d8b5b1888ab2a940783b377deb16cb3e73539434dc0e24 +size 19111 diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr/cl_vm.lua b/gamemodes/copsnrobbers/entities/weapons/cnr/cl_vm.lua index a38519e..b5b5ed1 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr/cl_vm.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr/cl_vm.lua @@ -10,8 +10,8 @@ function SWEP:GetViewModelPosition( pos, ang ) newpos:Add( ang:Forward() * self.ActivePos.y ) newpos:Add( ang:Up() * self.ActivePos.z ) - newpos:Add( ang:Right() * 2 * math.sin( CurTime() * math.pi * 2 ) * speed ) - newpos:Add( ang:Up() * -0.5 * math.abs( math.sin( CurTime() * math.pi * 2 ) ) * speed ) + newpos:Add( ang:Right() * 1 * math.sin( CurTime() * math.pi * 2 ) * speed ) + newpos:Add( ang:Up() * -0.25 * math.abs( math.sin( CurTime() * math.pi * 2 ) ) * speed ) return newpos, newang end \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr/sh_animate.lua b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_animate.lua new file mode 100644 index 0000000..0332a6a --- /dev/null +++ b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_animate.lua @@ -0,0 +1,21 @@ + +function SWEP:SendAnim( anim ) + if !self:GetOwner():IsValid() then return 0 end + local vm = self:GetOwner():GetViewModel() + if !vm:IsValid() then return 0 end + + if !self.Animations then return 0 end + local AnimData = self.Animations[anim] + if !AnimData then return 0 end + + vm:SendViewModelMatchingSequence( vm:LookupSequence(AnimData.Source) ) + + if AnimData.Delay_Reload then + self:SetDelayReload( CurTime() + AnimData.Delay_Reload ) + end + if AnimData.Delay_Refill then + self:SetRefillTime( CurTime() + AnimData.Delay_Refill ) + end + + return vm:SequenceDuration() +end \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr/sh_reload.lua b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_reload.lua index 4cb1803..9c5dc82 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr/sh_reload.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_reload.lua @@ -19,10 +19,9 @@ function SWEP:Reload() 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 ) + self:SendAnim( "reload" ) + --self:SetDelayReload( CurTime() + animtime*0.9 ) + --self:SetRefillTime( CurTime() + animtime*0.5 ) end return true end \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr/sh_shoot.lua b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_shoot.lua index bf9f4ba..ff06f66 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr/sh_shoot.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_shoot.lua @@ -13,7 +13,7 @@ function SWEP:PrimaryAttack( mine ) return false end if self:Clip1() == 0 then - self:EmitSound( "weapons/clipempty_rifle.wav", 90, 100, 1, CHAN_STATIC ) + self:EmitSound( "weapons/clipempty_rifle.wav", 60, 100, 1, CHAN_STATIC ) self:SetDelay( CurTime() + self.Delay ) return false end @@ -24,11 +24,11 @@ function SWEP:PrimaryAttack( mine ) self:SetDelay( CurTime() + self.Delay ) self:SetBurstCount( self:GetBurstCount() + 1 ) - self:SendWeaponAnim( ACT_VM_PRIMARYATTACK ) + self:SendAnim( "fire" ) self:SetClip1( self:Clip1() - 1 ) - self:EmitSound( self.Sound_Fire[ math.random( 1, #self.Sound_Fire ) ], 90, 100, 1, CHAN_STATIC ) - self:EmitSound( self.Sound_Mech[ math.random( 1, #self.Sound_Mech ) ], 90, 100, 0.125, 255+2 ) + self:EmitSound( self.Sound_Fire[ math.random( 1, #self.Sound_Fire ) ], 80, 100, 1, CHAN_STATIC ) + self:EmitSound( self.Sound_Mech[ math.random( 1, #self.Sound_Mech ) ], 60, 100, 0.125, CHAN_BODY ) local dir = self:GetOwner():EyeAngles() local newdir = Vector() diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr/sh_think.lua b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_think.lua index b0cfb8b..d08b919 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr/sh_think.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr/sh_think.lua @@ -51,16 +51,12 @@ function SWEP:Think() 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:SendAnim( "reload_start" ) 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 ) + self:SendAnim( "reload" ) end end end diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr/shared.lua b/gamemodes/copsnrobbers/entities/weapons/cnr/shared.lua index 3108eba..22f5b28 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr/shared.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr/shared.lua @@ -25,7 +25,7 @@ SWEP.Sound_Mech = { SWEP.Delay = ( 60 / 900 ) SWEP.MaxBurst = math.huge -SWEP.ActivePos = Vector( 2, -2, -2 ) +SWEP.ActivePos = vector_origin--Vector( 2, -2, -2 ) SWEP.BubbleSpreadUp = 0.8 SWEP.BubbleRecoilUp = 0.8 @@ -59,6 +59,9 @@ AddCSLuaFile("sh_shoot.lua") AddCSLuaFile("sh_reload.lua") include ("sh_reload.lua") +AddCSLuaFile("sh_animate.lua") + include ("sh_animate.lua") + AddCSLuaFile("cl_vm.lua") if CLIENT then include ("cl_vm.lua") @@ -85,7 +88,7 @@ SWEP.m_WeaponDeploySpeed = 10 SWEP.BobScale = 0 SWEP.SwayScale = 0 function SWEP:Deploy() - self:SendWeaponAnim( ACT_VM_IDLE ) + self:SendAnim( "draw" ) return true end function SWEP:Holster() diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr_ak47.lua b/gamemodes/copsnrobbers/entities/weapons/cnr_ak47.lua index 943ecd1..675b489 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr_ak47.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr_ak47.lua @@ -31,4 +31,7 @@ SWEP.SpreadEnd = 10 SWEP.RecoilUp = 55 SWEP.RecoilSpeed = 90 SWEP.RecoilDistStart = 1 -SWEP.RecoilDistEnd = 10 \ No newline at end of file +SWEP.RecoilDistEnd = 10 + +-- Model source: +-- https://gamebanana.com/mods/209669 \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr_deagle.lua b/gamemodes/copsnrobbers/entities/weapons/cnr_deagle.lua index 91afa48..7506e3e 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr_deagle.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr_deagle.lua @@ -31,5 +31,5 @@ SWEP.SpreadEnd = 15 SWEP.RecoilUp = 33 SWEP.RecoilSpeed = 30/0.1 -SWEP.RecoilDistStart = 30 -SWEP.RecoilDistEnd = 30 \ No newline at end of file +SWEP.RecoilDistStart = 20 +SWEP.RecoilDistEnd = 20 \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr_glock.lua b/gamemodes/copsnrobbers/entities/weapons/cnr_glock.lua index e782dfe..f35d95f 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr_glock.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr_glock.lua @@ -32,4 +32,7 @@ SWEP.SpreadEnd = 3 SWEP.RecoilUp = 45 SWEP.RecoilSpeed = 40 SWEP.RecoilDistStart = 2 -SWEP.RecoilDistEnd = 5 \ No newline at end of file +SWEP.RecoilDistEnd = 5 + +-- Model source: +-- https://gamebanana.com/mods/206952 \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr_m4a1.lua b/gamemodes/copsnrobbers/entities/weapons/cnr_m4a1.lua index 959a9e3..e086329 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr_m4a1.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr_m4a1.lua @@ -4,10 +4,10 @@ SWEP.Base = "cnr" SWEP.PrintName = "N4A4" SWEP.Slot = 0 -SWEP.ViewModel = "models/weapons/cstrike/c_rif_m4a1.mdl" -SWEP.ViewModelFOV = 90 +SWEP.ViewModel = "models/cnr/m4a1_view.mdl" +SWEP.ViewModelFOV = 74 SWEP.WorldModel = "models/weapons/w_rif_m4a1.mdl" -SWEP.ActivePos = Vector( 0, -2, -2 ) +SWEP.ActivePos = vector_origin SWEP.Sound_Fire = { "cnr/weapons/m4a1/fire-01.ogg", @@ -18,4 +18,27 @@ SWEP.Sound_Fire = { SWEP.Primary.ClipSize = 30 SWEP.Delay = ( 60 / 900 ) SWEP.DamageClose = 25 -SWEP.DamageFar = 13 \ No newline at end of file +SWEP.DamageFar = 13 + +-- Model source: +-- https://gamebanana.com/mods/210362 + +SWEP.Animations = { + ["idle"] = { + Source = "idle", + }, + ["fire"] = { + Source = "fire", + }, + ["draw"] = { + Source = "draw", + }, + ["melee"] = { + Source = "melee1", + }, + ["reload"] = { + Source = "reload", + Delay_Reload = 4, + Delay_Refill = 1.5, + }, +} \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr_mac10.lua b/gamemodes/copsnrobbers/entities/weapons/cnr_mac10.lua index e886490..3a45836 100644 --- a/gamemodes/copsnrobbers/entities/weapons/cnr_mac10.lua +++ b/gamemodes/copsnrobbers/entities/weapons/cnr_mac10.lua @@ -18,4 +18,7 @@ SWEP.Sound_Fire = { SWEP.Primary.ClipSize = 32 SWEP.Delay = ( 60 / 1600 ) SWEP.DamageClose = 14 -SWEP.DamageFar = 10 \ No newline at end of file +SWEP.DamageFar = 10 + +-- Model source: +-- https://gamebanana.com/mods/209072 \ No newline at end of file diff --git a/gamemodes/copsnrobbers/entities/weapons/cnr_uzi.lua b/gamemodes/copsnrobbers/entities/weapons/cnr_uzi.lua new file mode 100644 index 0000000..fff5d0c --- /dev/null +++ b/gamemodes/copsnrobbers/entities/weapons/cnr_uzi.lua @@ -0,0 +1,37 @@ + +SWEP.Base = "cnr" + +SWEP.PrintName = "STAP-9" +SWEP.Slot = 0 + +SWEP.ViewModel = "models/weapons/cstrike/c_smg_tmp.mdl" +SWEP.ViewModelFOV = 90 +SWEP.WorldModel = "models/weapons/w_smg_mp5.mdl" +SWEP.ActivePos = Vector( 2, -2, -2 ) + +SWEP.Sound_Fire = { + "cnr/weapons/uzi/fire-01.ogg", + "cnr/weapons/uzi/fire-02.ogg", + "cnr/weapons/uzi/fire-03.ogg", +} + +SWEP.Primary.ClipSize = 32 +SWEP.Delay = ( 60 / 750 ) +SWEP.DamageClose = 16 +SWEP.DamageFar = 10 + +SWEP.BubbleSpreadUp = 0.8 +SWEP.BubbleRecoilUp = 0.6 +SWEP.BubbleSpreadDown = 0.2 +SWEP.BubbleRecoilDown = 0.2 + +SWEP.SpreadStart = 0 +SWEP.SpreadEnd = 10 + +SWEP.RecoilUp = 60 +SWEP.RecoilSpeed = 120 +SWEP.RecoilDistStart = 0.8 +SWEP.RecoilDistEnd = 5 + +-- Model source: +-- https://gamebanana.com/mods/209113 \ No newline at end of file diff --git a/gamemodes/copsnrobbers/gamemode/cl_hud.lua b/gamemodes/copsnrobbers/gamemode/cl_hud.lua index 3bee64e..cda2f3c 100644 --- a/gamemodes/copsnrobbers/gamemode/cl_hud.lua +++ b/gamemodes/copsnrobbers/gamemode/cl_hud.lua @@ -4,6 +4,7 @@ local hide = { ["CHudBattery"] = true, ["CHudAmmo"] = true, ["CHudSecondaryAmmo"] = true, + ["CHudWeaponSelection"] = true, } hook.Add( "HUDShouldDraw", "HideHUD", function( name ) @@ -12,39 +13,20 @@ hook.Add( "HUDShouldDraw", "HideHUD", function( name ) end end ) -surface.CreateFont( "CNR_HUD_1", { - font = "Bahnschrift Light", - size = ScreenScaleH(24), - weight = 0, -}) -surface.CreateFont( "CNR_HUD_2", { - font = "Bahnschrift Bold", - size = ScreenScaleH(48), - weight = 0, -}) +local sizes = { 48, 28, 24, 18, 14, 10 } -surface.CreateFont( "CNR_HUD_3", { - font = "Bahnschrift Light", - size = ScreenScaleH(14), - weight = 0, -}) -surface.CreateFont( "CNR_HUD_4", { - font = "Bahnschrift Bold", - size = ScreenScaleH(28), - 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, -}) +for _, size in ipairs(sizes) do + surface.CreateFont( "CNR_HUD_" .. size, { + font = "Bahnschrift Light", + size = ScreenScaleH(size), + weight = 0, + }) + surface.CreateFont( "CNR_HUD_" .. size .. "B", { + font = "Bahnschrift Bold", + size = ScreenScaleH(size), + weight = 0, + }) +end local special1 = { normal = 12, @@ -58,8 +40,26 @@ local special2 = { clean1 = 6, } +local baby = Color( 0, 0, 0, 50 ) +local baby2 = Color( 0, 0, 0, 100 ) + +function qt( text, font, x, y, color, xalign, yalign ) + draw.SimpleText( text, font, x-1, y-1, baby2, xalign, yalign ) + draw.SimpleText( text, font, x, y-1, baby2, xalign, yalign ) + draw.SimpleText( text, font, x+1, y-1, baby2, xalign, yalign ) + + draw.SimpleText( text, font, x-1, y, baby2, xalign, yalign ) + draw.SimpleText( text, font, x+1, y, baby2, xalign, yalign ) + + draw.SimpleText( text, font, x-1, y+1, baby2, xalign, yalign ) + draw.SimpleText( text, font, x, y+1, baby2, xalign, yalign ) + draw.SimpleText( text, font, x+1, y+1, baby2, xalign, yalign ) + + draw.SimpleText( text, font, x, y, color, xalign, yalign ) +end + +local s = function( inp ) return math.Round( inp * ( ScrH() / 480 ) ) end function MonoDraw( text, font, x, y, color, rightalign, special ) - local s = ScreenScaleH local bump = 0 text = tostring(text) @@ -104,7 +104,6 @@ local gamelogic = NULL hook.Add("HUDPaint", "CNR_HUD", function() local p, sw, sh = LocalPlayer(), ScrW(), ScrH() local c = sw/2 - local s = ScreenScaleH local c1 = sw*0.125 local c2 = sw*(1-0.125) local b = s(8) @@ -112,7 +111,6 @@ hook.Add("HUDPaint", "CNR_HUD", function() local w = p:GetActiveWeapon() w = IsValid(w) and w or false - if !gamelogic:IsValid() then for i, ent in ents.Iterator() do if ( ent:GetClass() == "cnr_logic" ) then gamelogic = ent print("Located CNR game logic entity") break end @@ -127,9 +125,9 @@ hook.Add("HUDPaint", "CNR_HUD", function() local b_x, b_y = c1, sh - b_h - s(16) surface.SetDrawColor( color_white ) surface.DrawRect( b_x, b_y, b_w, b_h ) - draw.SimpleText( "HP", "CNR_HUD_1", c1 + b, sh - s(64+12), color_black ) + draw.SimpleText( "HP", "CNR_HUD_24", c1 + b, sh - s(64+12), color_black ) local dumbfuck = tostring(p:Health()):Left(1) == "1" and s(4) or 0 - MonoDraw( p:Health(), "CNR_HUD_2", c1 + b - dumbfuck, sh - s(64), color_black, false, special2 ) + MonoDraw( p:Health(), "CNR_HUD_48B", c1 + b - dumbfuck, sh - s(64), color_black, false, special2 ) end if w then @@ -137,8 +135,8 @@ hook.Add("HUDPaint", "CNR_HUD", function() local b_x, b_y = c2 - b_w, sh - b_h - s(16) surface.SetDrawColor( color_white ) surface.DrawRect( b_x, b_y, b_w, b_h ) - draw.SimpleText( "AMMO", "CNR_HUD_1", c2 - b, sh - s(64+12), color_black, TEXT_ALIGN_RIGHT ) - MonoDraw( w:Clip1(), "CNR_HUD_2", c2 - b, sh - s(64), color_black, true, special2 ) + draw.SimpleText( "AMMO", "CNR_HUD_24", c2 - b, sh - s(64+12), color_black, TEXT_ALIGN_RIGHT ) + MonoDraw( w:Clip1(), "CNR_HUD_48B", c2 - b, sh - s(64), color_black, true, special2 ) end local state = gamelogic:GetState() @@ -147,7 +145,7 @@ hook.Add("HUDPaint", "CNR_HUD", function() local b_x, b_y = c1, s(16) surface.SetDrawColor( color_white ) surface.DrawRect( b_x, b_y, b_w, b_h ) - draw.SimpleText( slut[ gamelogic:GetState() ], "CNR_HUD_3", b_x + b, b_y + s(4), color_black, TEXT_ALIGN_LEFT ) + draw.SimpleText( slut[ gamelogic:GetState() ], "CNR_HUD_14", b_x + b, b_y + s(4), color_black, TEXT_ALIGN_LEFT ) local fuckhead = "" local ltime = LOGIC:GetTimeLeft() if ltime > 60 then @@ -156,15 +154,15 @@ hook.Add("HUDPaint", "CNR_HUD", function() fuckhead = string.FormattedTime( ltime ) fuckhead = string.format( "%02i.%02i", fuckhead.s, fuckhead.ms ) end - MonoDraw( fuckhead, "CNR_HUD_4", b_x + b, b_y + s(12), color_black, false, special1 ) + MonoDraw( fuckhead, "CNR_HUD_28B", b_x + b, b_y + s(12), color_black, false, special1 ) do local n_w, n_h = s(56), s(42) local n_x, n_y = b_x + b + b_w, b_y surface.SetDrawColor( color_white ) surface.DrawRect( n_x, n_y, n_w, n_h ) - draw.SimpleText( "ROUND", "CNR_HUD_3", n_x + b, n_y + s(4), color_black ) - draw.SimpleText( gamelogic:GetRound() .. "/" .. CONVARS["rounds_max"]:GetInt(), "CNR_HUD_4", n_x + b, n_y + s(12), color_black ) + draw.SimpleText( "ROUND", "CNR_HUD_14", n_x + b, n_y + s(4), color_black ) + draw.SimpleText( gamelogic:GetRound() .. "/" .. CONVARS["rounds_max"]:GetInt(), "CNR_HUD_28B", n_x + b, n_y + s(12), color_black ) end end @@ -173,10 +171,175 @@ hook.Add("HUDPaint", "CNR_HUD", function() local b_x, b_y = c1, s(16) + b + s(42) surface.SetDrawColor( color_white ) surface.DrawRect( b_x, b_y, b_w, b_h ) - draw.SimpleText( "$", "CNR_HUD_3", b_x + b, b_y + s(8), color_black, TEXT_ALIGN_LEFT ) + draw.SimpleText( "$", "CNR_HUD_14", b_x + b, b_y + s(8), color_black, TEXT_ALIGN_LEFT ) local fuckhead = gamelogic:GetMoney() fuckhead = string.Comma( fuckhead ) - MonoDraw( fuckhead, "CNR_HUD_4", b_x + b_w - b, b_y, color_black, true, special1 ) + MonoDraw( fuckhead, "CNR_HUD_28B", b_x + b_w - b, b_y, color_black, true, special1 ) + end + + if DeathNotices then + local b_w, b_h = s(172), s(16) + for i, Data in pairs(DeathNotices) do + if (Data.Time+3) <= CurTime() then + DeathNotices[i] = nil + end + end + + table.sort(DeathNotices, function(a, b) + if !a then return true end + if !b then return true end + + return (a.Time > b.Time) + end) + + local spacing = 0 + + for i, Data in ipairs(DeathNotices) do + local stupidfuck = math.Clamp( math.TimeFraction( Data.Time, Data.Time+0.25, CurTime()), 0, 1 ) + local stupidfuck2 = math.Clamp( math.TimeFraction( Data.Time, Data.Time+0.5, CurTime()), 0, 1 ) + + if (Data.Time+2.5) <= CurTime() then + stupidfuck = 1 - math.Clamp( math.TimeFraction( Data.Time+2.75, Data.Time+3, CurTime()), 0, 1 ) + stupidfuck2 = 1 - math.Clamp( math.TimeFraction( Data.Time+2.5, Data.Time+3, CurTime()), 0, 1 ) + end + local b_x, b_y = c2 - b_w, s(16) + spacing + spacing = spacing + s(4) + (b_h) * stupidfuck + + render.SetScissorRect( b_x, b_y, b_x + (b_w * stupidfuck2), b_y + (b_h * stupidfuck), true ) + surface.SetDrawColor( color_white ) + surface.DrawRect( b_x, b_y, b_w * stupidfuck2, b_h * stupidfuck ) + qt( Data.AttackerName, "CNR_HUD_10", b_x + s(4), b_y + s(3), Data.AttackerColor, TEXT_ALIGN_LEFT ) + draw.SimpleText( Data.InflictorName, "CNR_HUD_14B", b_x + b_w/2, b_y + s(1), color_black, TEXT_ALIGN_CENTER ) + qt( Data.VictimName, "CNR_HUD_10", b_x + b_w - s(4), b_y + s(3), Data.VictimColor, TEXT_ALIGN_RIGHT ) + render.SetScissorRect( 0, 0, 0, 0, false ) + end + end + + + -- Weapon selection + do + local OrganizedWeapons = {} + + for i, v in ipairs( p:GetWeapons() ) do + if !OrganizedWeapons[v:GetSlot()+1] then OrganizedWeapons[v:GetSlot()+1] = {} end + local OrgSlot = OrganizedWeapons[v:GetSlot()+1] + + table.insert( OrgSlot, v ) + end + + local c_w, c_h = s(64), s(24) + local booster = 0 + booster = booster + c_h + s(4) + for i, v in ipairs( OrganizedWeapons ) do + booster = booster + c_h + s(4) + end + for SlotNumber, SlotData in ipairs( OrganizedWeapons ) do + booster = booster - c_h - s(4) + local c_x, c_y = c2 - c_w, sh - s(64+16) - booster + for i=#SlotData, 1, -1 do + local v = SlotData[i] + local eqp = p:GetActiveWeapon() == v + surface.SetDrawColor( eqp and color_black or color_white ) + surface.DrawRect( c_x, c_y, c_w, c_h ) + + draw.SimpleText( v:GetPrintName(), "CNR_HUD_10B", c_x + c_w - s(4), c_y + s(10+2), eqp and color_white or color_black, TEXT_ALIGN_RIGHT ) + c_x = c_x - c_w - s(4) + end + end + end +end) + +local function OW_GetOrganizedWeapons() + local p = LocalPlayer() + local OrganizedWeapons = {} + + for i, v in ipairs( p:GetWeapons() ) do + if !OrganizedWeapons[v:GetSlot()+1] then OrganizedWeapons[v:GetSlot()+1] = {} end + local OrgSlot = OrganizedWeapons[v:GetSlot()+1] + + table.insert( OrgSlot, v ) + end + return OrganizedWeapons +end + +local function OW_Reorganize() + local OW = OW_GetOrganizedWeapons() + local NEW = {} + + for SlotNum, SlotData in ipairs(OW) do + for WeaponIndex, WeaponEntity in ipairs(SlotData) do + table.insert( NEW, WeaponEntity ) + end + end + return NEW +end + +local slottocode = { + [1] = "slot1", + [2] = "slot2", + [3] = "slot3", + [4] = "slot4", + [5] = "slot5", + [6] = "slot6", + [7] = "slot7", + [8] = "slot8", + [9] = "slot9", + [0] = "slot0", +} + +local codetoslot = table.Flip( slottocode ) + +hook.Add("PlayerBindPress", "CNR_PlayerBindPress", function(p, bind, pressed, code) + if pressed then + if bind == "invnext" or bind == "invprev" then + local w = p:GetActiveWeapon() + local OW = OW_Reorganize() + + local FlippedOrgSlot = table.Flip( OW ) + local CurPos = FlippedOrgSlot[ w ] + + local toadvance = CurPos + if bind == "invnext" then + toadvance = toadvance + 1 + if toadvance > #OW then + toadvance = 1 + end + input.SelectWeapon( OW[toadvance] ) + elseif bind == "invprev" then + toadvance = toadvance - 1 + if toadvance <= 0 then + toadvance = #OW + end + input.SelectWeapon( OW[toadvance] ) + end + elseif codetoslot[bind] then + local w = p:GetActiveWeapon() + local ws = w:GetSlot()+1 + + local OW = OW_Reorganize() + local OW1 = OW_GetOrganizedWeapons()[ ws ] + + local FlippedOrgSlot = table.Flip( OW1 ) + local toadvance = FlippedOrgSlot[ w ] + + if slottocode[ws] != bind then + OW1 = OW_GetOrganizedWeapons()[ codetoslot[bind] ] + toadvance = 1 + else + toadvance = toadvance + 1 + end + do + if toadvance > #OW1 then + toadvance = 1 + end + input.SelectWeapon( OW1[toadvance] ) + end + elseif bind == "lastinv" then + local prev = p:GetPreviousWeapon() + if prev:IsValid() and prev:IsWeapon() then + input.SelectWeapon( prev ) + end + end end end) \ No newline at end of file diff --git a/gamemodes/copsnrobbers/gamemode/cl_selectteam.lua b/gamemodes/copsnrobbers/gamemode/cl_selectteam.lua index f24009a..d580143 100644 --- a/gamemodes/copsnrobbers/gamemode/cl_selectteam.lua +++ b/gamemodes/copsnrobbers/gamemode/cl_selectteam.lua @@ -45,7 +45,7 @@ function GM:ShowTeam() surface.SetDrawColor( color_black ) surface.DrawOutlinedRect( 0, 0, w, h, s(1) ) - draw.SimpleText( v.Name, "CNR_SEL_1", s(4), s(4), color_black ) + draw.SimpleText( v.Name, "CNR_HUD_18", s(4), s(4), color_black ) local plys = team.GetPlayers( v.ID ) local mew = { [1] = {} } @@ -75,8 +75,8 @@ function GM:ShowTeam() 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" ) + draw.SimpleText( tada, "CNR_HUD_10", s(4)+bump, s(4+16 + s((_-1)*4)), color_black ) + surface.SetFont( "CNR_HUD_10" ) bump = bump + surface.GetTextSize( tada ) end end diff --git a/gamemodes/copsnrobbers/gamemode/playerbs.lua b/gamemodes/copsnrobbers/gamemode/playerbs.lua index 32417bd..23f7ece 100644 --- a/gamemodes/copsnrobbers/gamemode/playerbs.lua +++ b/gamemodes/copsnrobbers/gamemode/playerbs.lua @@ -3,6 +3,7 @@ function GM:OnDamagedByExplosion( ply, dmginfo ) -- ply:SetDSP( 35, false ) + return true end function GM:PlayerCanJoinTeam( ply, teamid ) if ( ply:Team() == teamid ) then @@ -39,17 +40,48 @@ end function GM:CreateTeams() TEAM_SIDEA = 1 - team.SetUp( TEAM_SIDEA, "Side A", Color( 200, 200, 255 ) ) + team.SetUp( TEAM_SIDEA, "Side A", Color( 100, 100, 255 ) ) team.SetSpawnPoint( TEAM_SIDEA, "info_player_counterterrorist" ) TEAM_SIDEB = 2 - team.SetUp( TEAM_SIDEB, "Side B", Color( 255, 200, 200 ) ) + team.SetUp( TEAM_SIDEB, "Side B", Color( 255, 100, 100 ) ) team.SetSpawnPoint( TEAM_SIDEB, "info_player_terrorist" ) team.SetSpawnPoint( TEAM_SPECTATOR, "worldspawn" ) end +hook.Add("PostEntityTakeDamage", "CNR_DamageSound", function( ent, dmginfo, took ) + if took and ent:IsPlayer() then + ent:EmitSound( "cnr/impact/flesh-0" .. math.random(1,8) .. ".ogg", 70, 100, 1, CHAN_BODY ) + + local at = dmginfo:GetAttacker() + if at:IsValid() and at:IsPlayer() then + local rf = RecipientFilter() + rf:AddPlayer(at) + at:EmitSound( "cnr/impact/confirm-0" .. math.random(1,7) .. ".ogg", 0, 100, 0.5, CHAN_STATIC, nil, nil, rf ) + end + + end +end) + +if CLIENT then + hook.Add("CalcView", "CNR_CalcView", function( ply, pos, angles, fov ) + local rge = ply:GetRagdollEntity() + if rge:IsValid() then + local he = rge:GetAttachment(rge:LookupAttachment("eyes")) + local view = { + origin = he.Pos, + angles = he.Ang, + fov = fov, + drawviewer = false + } + + return view + end + end) +end + function GM:ScalePlayerDamage( ply, hitgroup, dmginfo ) -- More damage if we're shot in the head if ( hitgroup == HITGROUP_HEAD ) then @@ -144,7 +176,16 @@ end hook.Add( "StartCommand", "CNR_StartCommand", function( ply, cmd ) - if ( ply:IsBot() or !ply:Alive() ) then return end + if ( ply:IsBot() ) then + local wpn = ply:GetActiveWeapon() + if wpn:IsValid() and wpn:Clip1() == 0 then + cmd:AddKey(IN_RELOAD) + cmd:RemoveKey(IN_ATTACK) + end + + return + end + if ( !ply:Alive() ) then return end local gamelogic = LOGIC:GetLogic() if IsValid( gamelogic ) and gamelogic:GetState() == STATE_PREGAME then @@ -181,8 +222,9 @@ if SERVER then net.Broadcast() end else - local c_attacker = Color( 255, 100, 100 ) - local c_victim = Color( 100, 100, 255 ) + hook.Add("DrawDeathNotice", "CNR_DrawDeathNotice", function() + return true + end) net.Receive( "CNR_Kill", function() local victim = net.ReadEntity() local attacker = net.ReadEntity() @@ -191,11 +233,15 @@ else local name_victim = "???" local name_attacker = "???" local name_inflictor = "???" + local color_victim = color_white + local color_attacker = color_white if IsValid(victim) then name_victim = victim:Nick() + color_victim = team.GetColor(victim:Team()) end if IsValid(attacker) then name_attacker = attacker:Nick() + color_attacker = team.GetColor(attacker:Team()) end if IsValid(inflictor) then if inflictor.GetPrintName then @@ -205,6 +251,17 @@ else end end - chat.AddText( c_attacker, name_attacker, color_white, " [", name_inflictor, "] ", c_victim, name_victim, color_white ) + if !DeathNotices then DeathNotices = {} end + table.insert( DeathNotices, { + Time = CurTime(), + VictimEnt = victim, + VictimName = name_victim, + VictimColor = color_victim, + AttackerEnt = attacker, + AttackerName = name_attacker, + AttackerColor = color_attacker, + InflictorEnt = inflictor, + InflictorName = name_inflictor + }) end) end \ No newline at end of file diff --git a/gamemodes/copsnrobbers/gamemode/shared.lua b/gamemodes/copsnrobbers/gamemode/shared.lua index a0a4759..c70de3d 100644 --- a/gamemodes/copsnrobbers/gamemode/shared.lua +++ b/gamemodes/copsnrobbers/gamemode/shared.lua @@ -35,6 +35,7 @@ concommand.Add( "cnr_cheat_weapons", function( p ) p:Give( "cnr_mac10" ) p:Give( "cnr_mossberg" ) p:Give( "cnr_mp5" ) + p:Give( "cnr_uzi" ) p:Give( "cnr_p220" ) p:Give( "cnr_usp" ) end) diff --git a/materials/cnr/weapons/m4a1/v_m4a1_bullet.vmt b/materials/cnr/weapons/m4a1/v_m4a1_bullet.vmt new file mode 100644 index 0000000..dfb6b1b --- /dev/null +++ b/materials/cnr/weapons/m4a1/v_m4a1_bullet.vmt @@ -0,0 +1,4 @@ +VertexLitGeneric +{ + $color2 "[0.5 0.5 0.5]" +} \ No newline at end of file diff --git a/materials/cnr/weapons/m4a1/v_m4a1_main.vmt b/materials/cnr/weapons/m4a1/v_m4a1_main.vmt new file mode 100644 index 0000000..de88066 --- /dev/null +++ b/materials/cnr/weapons/m4a1/v_m4a1_main.vmt @@ -0,0 +1,18 @@ +VertexLitGeneric +{ + $basetexture "cnr/weapons/m4a1/v_m4a1_main" + $bumpmap "cnr/weapons/m4a1/v_m4a1_main_normal" + $phongexponenttexture "cnr/weapons/m4a1/v_m4a1_main_exponent" + $envmap env_cubemap + $nocull 1 + $normalmapalphaenvmapmask 1 + $envmaptint "[0.01 0.01 0.01]" + + $phong 1 + $phongboost 1 + $phongtint "[1 1 1]" + $phongfresnelranges "[1 4 7]" + $phongalbedotint 1 + $halflambert 1 + $color2 "[2 2 2]" +} \ No newline at end of file diff --git a/materials/cnr/weapons/m4a1/v_m4a1_main.vtf b/materials/cnr/weapons/m4a1/v_m4a1_main.vtf new file mode 100644 index 0000000..70213e8 --- /dev/null +++ b/materials/cnr/weapons/m4a1/v_m4a1_main.vtf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1327e987c87459b3d7c7b11ece448b68643da1b35dad09cf68aa74c1fcf3390f +size 699272 diff --git a/materials/cnr/weapons/m4a1/v_m4a1_main_exponent.vtf b/materials/cnr/weapons/m4a1/v_m4a1_main_exponent.vtf new file mode 100644 index 0000000..f7c9074 --- /dev/null +++ b/materials/cnr/weapons/m4a1/v_m4a1_main_exponent.vtf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cd20919548c443ffc582463e31ad360b3fc2eeccbbf005fccf04606389f111c +size 699272 diff --git a/materials/cnr/weapons/m4a1/v_m4a1_main_normal.vtf b/materials/cnr/weapons/m4a1/v_m4a1_main_normal.vtf new file mode 100644 index 0000000..a5dd409 --- /dev/null +++ b/materials/cnr/weapons/m4a1/v_m4a1_main_normal.vtf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97b8a2da5ce2dcae8cdd42cb2e1ffdaad1ed5bafff3eef04285724d274cbc9d0 +size 1398336 diff --git a/models/cnr/m4a1_view.dx90.vtx b/models/cnr/m4a1_view.dx90.vtx new file mode 100644 index 0000000..ff3ed66 --- /dev/null +++ b/models/cnr/m4a1_view.dx90.vtx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:096845c47d081a0539a0e91048a33fe2bb69b01fe674d408146c84ccbd4dfc33 +size 176327 diff --git a/models/cnr/m4a1_view.mdl b/models/cnr/m4a1_view.mdl new file mode 100644 index 0000000..2876eff --- /dev/null +++ b/models/cnr/m4a1_view.mdl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88e8a4ebe972e3a04b2f72cd852558bed11f9b8c8e29847d7dca78f58fe52734 +size 54456 diff --git a/models/cnr/m4a1_view.vvd b/models/cnr/m4a1_view.vvd new file mode 100644 index 0000000..b1cc7ff --- /dev/null +++ b/models/cnr/m4a1_view.vvd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:544f87cf23e64ad7a3e8f7b5e3dffe50a7732b06d92d4fba1530ee9293a1585a +size 780352 diff --git a/sound/cnr/weapons/uzi/fire-01.ogg b/sound/cnr/weapons/uzi/fire-01.ogg new file mode 100644 index 0000000..d590238 --- /dev/null +++ b/sound/cnr/weapons/uzi/fire-01.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:789d9cb9302a334e85f0ba2d510d8bf35f393855bfe6988ff825cb0a055697b7 +size 25154 diff --git a/sound/cnr/weapons/uzi/fire-02.ogg b/sound/cnr/weapons/uzi/fire-02.ogg new file mode 100644 index 0000000..9778a50 --- /dev/null +++ b/sound/cnr/weapons/uzi/fire-02.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d9c527bfb2d5d6f15a8dfc6b5fd44091c894cf07afdad306f00e7aa89136bce +size 25488 diff --git a/sound/cnr/weapons/uzi/fire-03.ogg b/sound/cnr/weapons/uzi/fire-03.ogg new file mode 100644 index 0000000..39e73aa --- /dev/null +++ b/sound/cnr/weapons/uzi/fire-03.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8c1637d4eac48fd96e3c43c1a498537a5421a2916c3252016780b1cfc5139a5 +size 27131