This commit is contained in:
lifestorm
2024-08-04 22:55:00 +03:00
parent 0e770b2b49
commit 94063e4369
7342 changed files with 1718932 additions and 14 deletions

View File

@@ -0,0 +1,233 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Pulse Rifle"
SWEP.TrueName = "Overwatch Standard Issue Pulse-Rifle"
-- Technically you can omit all trivia info, but that's not fun! Do a bit of research and write some stuff in!
SWEP.Trivia_Class = "Pulse Rifle"
SWEP.Trivia_Desc = "Overwatch Pulse Rifle given to most combine soldiers, developed from the V952.71.2 Prototype. Later models feature a integrated reflex sight, which display a black screen unless viewed through a Combine Soldier's visor. Removing the sight renders the weapon inoperable; perhaps a failsafe against rebels looting the weapon."
SWEP.Trivia_Manufacturer = "The Combine"
SWEP.Trivia_Calibre = "Medium Pulse Capsule"
SWEP.Trivia_Mechanism = "Dark Energy Thumper"
SWEP.Trivia_Country = "Universal Union - Earth Overwatch"
SWEP.Trivia_Year = "Occupation Period 3, 203x"
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "The Combine"
end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/oar2/v_o2rifle.mdl"
SWEP.WorldModel = "models/weapons/w_IRifle.mdl"
SWEP.ViewModelFOV = 60
SWEP.Damage = 20
SWEP.DamageMin = 20
SWEP.Range = 250 -- in METRES
SWEP.Penetration = 15
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 925 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 60
SWEP.ReducedClipSize = 20
SWEP.Recoil = 0.45
SWEP.RecoilSide = 0.55
SWEP.RecoilRise = 1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 600 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 150
SWEP.AccuracyMOA = 5 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 95 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 225
SWEP.Primary.Ammo = "StriderMinigun" -- what ammo type the gun uses
SWEP.MagID = "oar" -- the magazine pool this gun draws from
SWEP.ShootVol = 115 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/oar2/ar2/fire1.wav"
SWEP.ShootSoundSilenced = "weapons/ar21/primary.wav"
SWEP.DistantShootSound = "weapons/oar/ar2.dist1.wav"
SWEP.MuzzleEffect = "muzzleflash_1"
SWEP.ShellModel = nil
SWEP.ShellScale = 0
SWEP.ShellMaterial = nil
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.95
SWEP.SightedSpeedMult = 0.65
SWEP.SightTime = 0.33
SWEP.VisualRecoilMult = 1
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-5.86, -6.494, 1.770),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 0, 2)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(0.532, -6, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 27
SWEP.AttachmentElements = {
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Tactical",
Slot = "tac",
Bone = "Base",
Offset = {
vpos = Vector(1.631, 4.261, 23.079), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, 0),
wpos = Vector(15.625, -0.1, -6.298),
wang = Angle(-8.829, -0.556, 90)
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Stock",
Slot = "stock",
DefaultAttName = "Standard Stock"
},
{
PrintName = "Fire Group",
Slot = "fcg",
DefaultAttName = "Standard FCG"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "ociw master", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-1.158, -1.022, 2.867), -- offset that the attachment will be relative to the bone
vang = Angle(0, 90, 0),
wpos = Vector(6.099, 1.1, -3.301),
wang = Angle(171.817, 180-1.17, 0),
},
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle_ironsight",
Time = 0
},
["draw"] = {
Source = "IR_draw",
Time = 0.4,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = {"IR_fire", "fire2", "fire3", "fire4"},
Time = 0.25,
},
["fire_iron"] = {
Source = "IR_idle",
Time = 0.25,
},
["reload"] = {
Source = "IR_reload",
Time = 1.7,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
SoundTable = {{s = "weapons/oar2/ar2/npc_ar2_reload.wav", t = 0}},
},
["reload_empty"] = {
Source = "reloadempty",
Time = 1.7,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
SoundTable = {{s = "weapons/oar2/ar2/npc_ar2_reload.wav", t = 0}},
},
}

View File

@@ -0,0 +1,267 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Heavy Pulse Rifle"
SWEP.TrueName = "Overwatch Hammer Issue"
-- Technically you can omit all trivia info, but that's not fun! Do a bit of research and write some stuff in!
SWEP.Trivia_Class = "Heavy Assault Rifle"
SWEP.Trivia_Desc = "A heavier, more powerful version of the Combine Pulse-Rifle. Extremely inaccurate when moving. Ball launcher not included and is sold separately."
SWEP.Trivia_Manufacturer = "The Combine"
SWEP.Trivia_Calibre = "High-Mass Pulse Capsule"
SWEP.Trivia_Mechanism = "Dark Energy Thumper"
SWEP.Trivia_Country = "Universal Union - Earth Overwatch"
SWEP.Trivia_Year = "Occupation Period 3, 203x"
SWEP.Slot = 3
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "The Combine"
end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/irifle2/c_irifle2.mdl"
SWEP.WorldModel = "models/weapons/irifle2/w_irifle2.mdl"
SWEP.ViewModelFOV = 90
SWEP.Damage = 23
SWEP.DamageMin = 23
SWEP.Range = 250 -- in METRES
SWEP.Penetration = 30
SWEP.DamageType = DMG_AIRBOAT
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 900 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 24 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 48
SWEP.ReducedClipSize = 12
SWEP.Recoil = 0.7
SWEP.RecoilSide = 0.5
SWEP.RecoilRise = 0.02
SWEP.Delay = 60 / 387 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 150
SWEP.AccuracyMOA = 8 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 150 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 600
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "ar21" -- the magazine pool this gun draws from
SWEP.ShootVol = 115 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/ar21/primary.wav"
SWEP.ShootSoundSilenced = "weapons/ar21/primary.wav"
SWEP.DistantShootSound = "weapons/ar21/primary.wav"
SWEP.MuzzleEffect = "muzzleflash_1"
SWEP.ShellModel = nil
SWEP.ShellScale = 0
SWEP.ShellMaterial = nil
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.94
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.33
SWEP.VisualRecoilMult = 1
SWEP.RecoilRise = 1
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(0, 0, 0),
Ang = Angle(0, 0, 0),
Magnification = 1.5,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = true
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-2, -6, 0)
SWEP.ActiveAng = Angle(2, 0, 0)
SWEP.HolsterPos = Vector(0.532, -6, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 27
SWEP.AttachmentElements = {
["extendedmag"] = {
VMBodygroups = {{ind = 1, bg = 1}},
WMBodygroups = {{ind = 1, bg = 1}},
},
["reducedmag"] = {
VMBodygroups = {{ind = 1, bg = 2}},
WMBodygroups = {{ind = 1, bg = 2}},
},
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Magic Zoom",
Slot = {"optic", "optic_lp"}, -- what kind of attachments can fit here, can be string or table
Bone = "ociw master", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0.01, -4.495, 4.716), -- offset that the attachment will be relative to the bone
vang = Angle(0, 90, 0),
wpos = Vector(6.099, 0.699, -6.301),
wang = Angle(171.817, 180-1.17, 0),
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 0),
},
{
PrintName = "Underbarrel",
Slot = {"ubgl"},
Bone = "ociw master",
Offset = {
vpos = Vector(-0.311, -9.306, -0.087),
vang = Angle(0, 90, 0),
wpos = Vector(17, 0.6, -4.676),
wang = Angle(-10, 0, 180)
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "ociw master",
Offset = {
vpos = Vector(-1.05, -4.038, 3.24), -- offset that the attachment will be relative to the bone
vang = Angle(0, 90, 90),
wpos = Vector(15.625, -0.1, -6.298),
wang = Angle(-8.829, -0.556, 90)
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Stock",
Slot = "stock",
DefaultAttName = "Standard Stock"
},
{
PrintName = "Fire Group",
Slot = "fcg",
DefaultAttName = "Standard FCG"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "ociw master", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-1.158, -1.022, 2.867), -- offset that the attachment will be relative to the bone
vang = Angle(0, 90, 0),
wpos = Vector(6.099, 1.1, -3.301),
wang = Angle(171.817, 180-1.17, 0),
},
},
}
SWEP.Animations = {
["idle"] = false,
["draw"] = {
Source = "IR_draw",
Time = 0.4,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = {"fire2", "fire3", "fire4"},
Time = 0.5,
},
["fire_iron"] = {
Source = "IR_fire",
Time = 0.1,
},
["reload"] = {
Source = "IR_reload",
Time = 2.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
SoundTable = {{s = "weapons/ar21/ar2_reload_push.wav", t = 0}},
},
["reload_empty"] = {
Source = "IR_reload",
Time = 2.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
SoundTable = {{s = "weapons/ar21/ar2_reload_push.wav", t = 0}},
},
}

View File

@@ -0,0 +1,584 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Oldie Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "M1911"
SWEP.TrueName = "M1911"
SWEP.Trivia_Class = "Pistol"
SWEP.Trivia_Desc = "Commonly known simply as Colt, the M1911 is one of the most famous handguns on the planet. It went through both World War's as a standard-issue US Army pistol, and despite that it was replaced in 1986, its further variations are still a sidearm of choice in different US Special Forces. M1911A1 is the further generation of a M1911 pistol, after World War I, the military's Model 1911 went through various changes including shorter trigger with frame cuts, improved sights, an arched mainspring housing and a redesigned grip safety."
SWEP.Trivia_Manufacturer = "Colt"
SWEP.Trivia_Calibre = ".45 ACP"
SWEP.Trivia_Mechanism = "Short Recoil"
SWEP.Trivia_Country = "Italy"
SWEP.Trivia_Year = 1911
SWEP.Slot = 1
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_1911/c_eft_1911/models/c_eft_1911.mdl"
SWEP.WorldModel = "models/weapons/w_pist_usp.mdl"
SWEP.ViewModelFOV = 70
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 14
SWEP.DamageMin = 14 -- damage done at maximum range
SWEP.Range = 100 -- in METRES
SWEP.Penetration = 3
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 12 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 17
SWEP.PhysBulletMuzzleVelocity = 200
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.CamAttachment = 3 -- if set, this attachment will control camera movement
SWEP.Recoil = 1.0
SWEP.RecoilSide = 0.3
SWEP.RecoilRise = 0.3
SWEP.RecoilPunch = -2
SWEP.Delay = 60 / 350 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_pistol"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 12 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 350 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.Primary.Ammo = "pistol" -- what ammo type the gun uses
SWEP.MagID = "1911" -- the magazine pool this gun draws from
SWEP.ShootVol = 110 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.FirstShootSound = "weapons/m1911/m1911_fp.wav"
SWEP.ShootSound = "weapons/m1911/m1911_fp.wav"
SWEP.ShootSoundSilenced = "weapons/m1911/m1911_silenced_fp.wav"
SWEP.DistantShootSound = "weapons/m1911/m1911_dist.wav"
SWEP.MuzzleEffect = "muzzleflash_pistol"
SWEP.ShellModel = "models/shells/shell_9mm.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.75
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.99
SWEP.SightedSpeedMult = 0.85
SWEP.SightTime = 0.2
SWEP.IronSightStruct = {
Pos = Vector(-3.725, 2.5, 2.025),
Ang = Angle(1, 0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "pistol"
SWEP.HoldtypeSights = "revolver"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL
SWEP.ActivePos = Vector(0, 2, 1.5)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-4, 0, -1)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelOffsetCrouch = Vector(0, 0, -2)
SWEP.CustomizePos = Vector(0, 2, 0.5)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 26
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[1] = "patron_001",
[2] = "patron_002"
}
SWEP.AttachmentElements = {
["default_barrel"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
["optic_mount"] = {
VMBodygroups = {{ind = 10, bg = 1}},
},
["trigger_mount"] = {
VMBodygroups = {{ind = 9, bg = 1}},
},
["default_mag"] = {
VMBodygroups = {{ind = 1, bg = 1}},
},
["default_hammer"] = {
VMBodygroups = {{ind = 7, bg = 1}},
},
["default_trigger"] = {
VMBodygroups = {{ind = 8, bg = 1}},
},
["default_grip"] = {
VMBodygroups = {{ind = 4, bg = 1}},
},
["default_catch"] = {
VMBodygroups = {{ind = 5, bg = 1}},
},
}
SWEP.ExtraSightDist = 20
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-12.5, 4, -2.5),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = "eft_optic_small", -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0.075, 21, 1.5),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
SlideAmount = { -- how far this attachment can slide in both directions.
-- overrides Offset
vmin = Vector(-0.075, 20, 1.5),
vmax = Vector(-0.075, 22, 1.5),
wmin = Vector(5.5, 0.5, -5.8),
wmax = Vector(6.5, 0.5, -5.9),
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 0),
InstalledEles = {"optic_mount"},
ExcludeFlags = {"triggermountattached"},
GivesFlags = {"opticmountattached"},
},
{
PrintName = "Barrel", -- print name
DefaultAttName = "Standard Barrel",
DefaultAttIcon = Material("vgui/entities/eft_attachments/1911_barrel_icon.png"),
Slot = "eft_barrel_1911", -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0.0734, 20.82208, -0.1864),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
InstalledEles = {"default_barrel"},
},
{
PrintName = "Muzzle Device", -- print name
DefaultAttName = "No Muzzle Device",
Slot = "eft_muzzle_1911", -- what kind of attachments can fit here, can be string or table
Bone = "mod_muzzle", -- relevant bone any attachments will be mostly referring to
RequireFlags = {"barrelthread"},
Offset = {
vpos = Vector(0, 0, 0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
},
{
PrintName = "Catch", -- print name
DefaultAttName = "Standard Catch",
DefaultAttIcon = Material("vgui/entities/eft_attachments/1911_catch_icon.png"),
Slot = "eft_catch_1911", -- what kind of attachments can fit here, can be string or table
Bone = "mod_catch", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0, 0, -0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
InstalledEles = {"default_catch"},
},
{
PrintName = "Hammer", -- print name
DefaultAttName = "Standard Hammer",
DefaultAttIcon = Material("vgui/entities/eft_attachments/1911_hammer_icon.png"),
Slot = "eft_hammer_1911", -- what kind of attachments can fit here, can be string or table
Bone = "mod_hammer", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0, 0, -0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
InstalledEles = {"default_hammer"},
},
{
PrintName = "Trigger", -- print name
DefaultAttName = "Standard Trigger",
DefaultAttIcon = Material("vgui/entities/eft_attachments/1911_trigger_icon.png"),
Slot = "eft_trigger_1911", -- what kind of attachments can fit here, can be string or table
Bone = "mod_trigger", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0, 0, -0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
InstalledEles = {"default_trigger"},
},
{
PrintName = "Grip", -- print name
DefaultAttName = "Standard Grip",
DefaultAttIcon = Material("vgui/entities/eft_attachments/1911_grip_icon.png"),
Slot = "eft_grip_1911", -- what kind of attachments can fit here, can be string or table
Bone = "mod_pistol_grip", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0, 0, -0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
InstalledEles = {"default_grip"},
},
{
PrintName = "Tactical", -- print name
DefaultAttName = "No Tactical",
Slot = "eft_tactical", -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 23.3, -0.5),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
InstalledEles = {"trigger_mount"},
ExcludeFlags = {"opticmountattached"},
GivesFlags = {"triggermountattached"},
},
{
PrintName = "Magazine",
DefaultAttName = "7-round Mag",
DefaultAttIcon = Material("vgui/entities/eft_attachments/1911_mag_icon.png"),
InstalledEles = {"default_mag"},
Bone = "mod_magazine",
Offset = {
vpos = Vector(0, 0, -0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(-5, 0, 0),
},
Slot = "eft1911_mag"
},
{
PrintName = "Caliber",
DefaultAttName = ".45 ACP FMJ",
DefaultAttIcon = Material("vgui/entities/eft_attachments/9x19_Icon.png"),
Slot = "ammo_eft_45"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["idle_empty"] = {
Source = "idle_empty"
},
["draw"] = {
Source = "draw",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "eft_shared/weap_in.wav",
t = 0
}
},
},
["draw_empty"] = {
Source = "draw_empty",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "eft_shared/weap_in.wav",
t = 0
}
},
},
["holster"] = {
Source = "holster",
LHIK = true,
Time = 0.5,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "eft_shared/weap_out.wav",
t = 0
}
},
},
["holster_empty"] = {
Source = "holster_Empty",
LHIK = true,
Time = 0.5,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "eft_shared/weap_out.wav",
t = 0
}
},
},
["ready"] = {
Source = "draw_first",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "weapons/eft_shared/grach_catch_slider.wav",
t = 0.65
},
{
s = "weapons/eft_shared/grach_catch_slider.wav",
t = 0.8
}
},
},
["fire"] = {
Source = "shoot",
Time = 0.2,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "shoot",
Time = 0.2,
ShellEjectAt = 0,
},
["fire_empty"] = {
Source = "shoot_dry",
Time = 0.1,
ShellEjectAt = 0,
},
["fire_iron_empty"] = {
Source = "shoot_dry",
Time = 0.1,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/eft_shared/grach_mag_button.wav",
t = 0.35
},
{
s = "weapons/eft_shared/grach_mag_out.wav",
t = 0.37
},
{
s = "weapons/eft_shared/grach_mag_pullout.wav",
t = 0.4
},
{
s = "weapons/eft_shared/grach_mag_pullin.wav",
t = 1.9
},
{
s = "weapons/eft_shared/grach_mag_in.wav",
t = 2
}
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
LastClip1OutTime = 1, -- when should the belt visually replenish on a belt fed
Time = 3.7,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/eft_shared/grach_mag_button.wav",
t = 0.35
},
{
s = "weapons/eft_shared/grach_mag_out.wav",
t = 0.37
},
{
s = "weapons/eft_shared/grach_mag_pullout.wav",
t = 0.4
},
{
s = "weapons/eft_shared/grach_mag_pullin.wav",
t = 2.1
},
{
s = "weapons/eft_shared/grach_mag_in.wav",
t = 2.2
},
{
s = "weapons/eft_shared/grach_catch_button.wav",
t = 2.9
},
{
s = "weapons/eft_shared/grach_catch_slider.wav",
t = 3
}
},
},
["reload_long"] = {
Source = "reload_extended",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 3,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/eft_shared/grach_mag_button.wav",
t = 0.35
},
{
s = "weapons/eft_shared/grach_mag_out.wav",
t = 0.37
},
{
s = "weapons/eft_shared/grach_mag_pullout.wav",
t = 0.4
},
{
s = "weapons/eft_shared/grach_mag_pullin.wav",
t = 2
},
{
s = "weapons/eft_shared/grach_mag_in.wav",
t = 2.1
}
},
},
["reload_long_empty"] = {
Source = "reload_empty_extended",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 3.7,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/eft_shared/grach_mag_button.wav",
t = 0.35
},
{
s = "weapons/eft_shared/grach_mag_out.wav",
t = 0.37
},
{
s = "weapons/eft_shared/grach_mag_pullout.wav",
t = 0.4
},
{
s = "weapons/eft_shared/grach_mag_pullin.wav",
t = 2.1
},
{
s = "weapons/eft_shared/grach_mag_in.wav",
t = 2.2
},
{
s = "weapons/eft_shared/grach_catch_button.wav",
t = 2.9
},
{
s = "weapons/eft_shared/grach_catch_slider.wav",
t = 3
}
},
},
["enter_inspect"] = {
Source = "customise_begin",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
},
["enter_inspect_empty"] = {
Source = "customise_begin_empty",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
},
["idle_inspect"] = {
Source = "customise_idle",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["idle_inspect_empty"] = {
Source = "customise_idle_empty",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "customise_end",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
["exit_inspect_empty"] = {
Source = "customise_end_empty",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
}

View File

@@ -0,0 +1,634 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Oldie Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "AKS-74u"
SWEP.Trivia_Class = "Carbine"
SWEP.Trivia_Desc = "Reduced version of AKS-74 assault rifle, developed in the early 80s for combat vehicle crews and airborne troops, also became very popular with law enforcement and special forces for its compact size."
SWEP.Trivia_Manufacturer = "Kalashnikov"
SWEP.Trivia_Calibre = "5.45x39mm"
SWEP.Trivia_Mechanism = "blowback-operated"
SWEP.Trivia_Country = "Russia"
SWEP.Trivia_Year = 1979
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_aks74u/eft_aks74u/models/c_eft_aks74u.mdl"
SWEP.WorldModel = "models/weapons/w_smg1.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 16
SWEP.DamageMin = 16 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 3
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 735 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 735
SWEP.Recoil = 0.6
SWEP.RecoilSide = 0.24
SWEP.RecoilRise = 0.35
SWEP.RecoilPunch = 2
SWEP.Delay = 60 / 650 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0,
}
}
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 14 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 300 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "smg1" -- what ammo type the gun uses
SWEP.MagID = "ak74" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/arccw_eft_aks74u/ak74_raw_close.wav"
SWEP.ShootSoundSilenced = "weapons/arccw_eft_aks74u/ak74_silenced_close.wav"
SWEP.DistantShootSound = "weapons/arccw_eft_aks74u/ak74_raw_far1.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_mp5"
SWEP.ShellModel = "models/shells/shell_556.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.CamAttachment = 3 -- if set, this attachment will control camera movement
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[0] = "patron_in_weapon",
[1] = "patron_001",
[2] = "patron_002",
[3] = "patron_003"
}
SWEP.SpeedMult = 0.9
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.25
SWEP.IronSightStruct = {
Pos = Vector(-3.65, 3, 1.39),
Ang = Angle(0, 0.0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 4, 1)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-1, 3, 0.5)
SWEP.CrouchAng = Angle(0, 0, -5)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(0, 4, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 27
SWEP.AttachmentElements = {
["handguard"] = {
VMBodygroups = {{ind = 5, bg = 1}},
},
["pgrip"] = {
VMBodygroups = {{ind = 1, bg = 1}},
},
["magazine"] = {
VMBodygroups = {{ind = 2, bg = 1}},
},
["Stock_Fold"] = {
VMBodygroups = {{ind = 4, bg = 1}},
},
["Stock_Gone"] = {
VMBodygroups = {{ind = 4, bg = 2}},
},
["Mount_scopes"] = {
VMBodygroups = {{ind = 6, bg = 1}},
},
["No_Mount"] = {
VMBodygroups = {{ind = 6, bg = 0}},
},
["Remove_Receiver"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
["Rear_Mount"] = {
--VMBodygroups = {{ind = 3, bg = 1}},
AttPosMods = {
[1] = {
vpos = Vector(0, -5, 0.2),
vang = Angle(90, -90, -90),
}
},
},
["b11_handguard"] = {
--VMBodygroups = {{ind = 3, bg = 1}},
AttPosMods = {
[5] = {
vpos = Vector(0, 2.5, -1.3),
vang = Angle(0, -90, 0),
},
[6] = {
vpos = Vector(1, 3.65, -0.35),
vang = Angle(90, -90, 0),
},
[7] = {
vpos = Vector(-1, 3.65, -0.35),
vang = Angle(-90, -90, 0),
}
},
},
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-4.3, 4.2, -8),
ang = Angle(0, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
DefaultAttIcon = Material("vgui/entities/eft_aks74u/ironsight.png"),
Slot = {"eft_optic_large", "eft_optic_medium", "eft_optic_small"}, -- what kind of attachments can fit here, can be string or table
Bone = "mod_topmount", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0.01, 0, 0.7),
vang = Angle(90, -90, -90),
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 180),
ExcludeFlags = {"NoReceiver"},
InstalledEles = {"Mount_scopes"},
},
{
PrintName = "Dust Cover", -- print name
DefaultAttName = "6P26 Dust Cover",
DefaultAttIcon = Material("vgui/entities/eft_aks74u/receiver_std.png"),
Slot = "eft_aks74u_receiever",
Bone = "mod_reciever", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0.0, 0, 0),
vang = Angle(0, 0, 0),
},
InstalledEles = {"Remove_Receiver"},
},
{
PrintName = "Handguard",
DefaultAttName = "6P26 Handguard",
DefaultAttIcon = Material("vgui/entities/eft_aks74u/handguard_std.png"),
InstalledEles = {"handguard"},
Slot = "eftaks74u_handguard",
Bone = "mod_handguard", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 0, 0),
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Muzzle Device",
DefaultAttName = "No Muzzle",
--DefaultAttIcon = Material("vgui/entities/eft_aks74u/handguard_std.png"),
Slot = "eft_muzzle_ak545",
Bone = "mod_handguard", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 5.8, -0.5),
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Underbarrel",
Slot = "eft_foregrip",
Bone = "mod_handguard",
DefaultAttName = "No Underbarrel",
Offset = {
vpos = Vector(0, 2.5, -1.7),
vang = Angle(0, -90, 0)
},
RequireFlags = {"lowerrail"},
},
{
PrintName = "Gadget - Left",
Slot = "eft_tactical",
Bone = "mod_handguard",
DefaultAttName = "No Gadget",
Offset = {
vpos = Vector(1.1, 3.5, -0.5),
vang = Angle(90, -90, 0)
},
RequireFlags = {"leftrail"},
},
{
PrintName = "Gadget - Right",
Slot = "eft_tactical",
Bone = "mod_handguard",
DefaultAttName = "No Gadget",
Offset = {
vpos = Vector(-1.1, 3.5, -0.5),
vang = Angle(-90, -90, 0)
},
RequireFlags = {"rightrail"},
},
{
PrintName = "Magazine",
Slot = "eft_mag_ak545",
Bone = "mod_magazine",
DefaultAttName = "6L20 30-round magazine",
DefaultAttIcon = Material("vgui/entities/eft_aks74u/mag_std.png"),
Offset = {
vpos = Vector(0, 0, -0),
vang = Angle(0, -90, 0)
},
InstalledEles = {"magazine"},
},
{
PrintName = "Pistol Grip",
Slot = {"eft_ak_pgrip"},
Bone = "mod_pistol_grip",
DefaultAttIcon = Material("vgui/entities/eft_aks74u/pgrip_std.png"),
DefaultAttName = "6P4 Texolite Grip",
--DefaultAttIcon = Material("vgui/entities/eft_aks74u/stock_unfolded.png"),
Offset = {
vpos = Vector(0, 0, 0),
vang = Angle(0, -90, 0)
},
InstalledEles = {"pgrip"},
},
{
PrintName = "Stock",
Slot = {"eft_aks74u_stock", "eftaks_stock"},
Bone = "mod_stock",
DefaultAttName = "Unfolded Stock",
DefaultAttIcon = Material("vgui/entities/eft_aks74u/stock_unfolded.png"),
Offset = {
vpos = Vector(0, 0, 0),
vang = Angle(0, 0, 0)
},
InstalledEles = {"Stock_Gone"},
},
{
PrintName = "Caliber",
Slot = {"eft_ammo_545x39"},
Bone = "mod_stock",
DefaultAttName = "5.45x39mm BP ammo",
DefaultAttIcon = Material("vgui/entities/eft_attachments/762x51_icon.png"),
Offset = {
vpos = Vector(0, 0, 0),
vang = Angle(0, 0, 0)
},
}
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw",
LHIK = false,
LHIKIn = 0.25,
LHIKOut = 0.25,
},
["holster"] = {
Source = "holster",
LHIK = false,
LHIKIn = 0.5,
LHIKOut = 0,
},
["ready"] = {
Source = {"ready_1", "ready_2", "ready_3"},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.8,
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_slider_up.wav",
t = 0.6
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_down.wav",
t = 0.9
}
},
},
["fire"] = {
Source = "fire",
Time = 0.1,
FrameRate = 300,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "fire",
Time = 0.1,
FrameRate = 300,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
}
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 1.7, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.2, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_up.wav",
t = 4
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_down.wav",
t = 4.4
}
},
},
["reload_saiga"] = {
Source = "reload_saiga",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
}
},
},
["reload_saiga_empty"] = {
Source = "reload_saiga_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 1.7, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.2, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_up.wav",
t = 4
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_down.wav",
t = 4.4
}
},
},
["reload_6l31"] = {
Source = "reload_6l31",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
}
},
},
["reload_6l31_empty"] = {
Source = "reload_6l31_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 1.7, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.2, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_up.wav",
t = 4
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_down.wav",
t = 4.4
}
},
},
["reload_drum"] = {
Source = "reload_drum",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
}
},
},
["reload_drum_empty"] = {
Source = "reload_drum_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 1.7, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.2, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft_aks74u/ak74_magrelease_button.wav",
t = 0.55
},
{
s = "weapons/arccw_eft_aks74u/ak74_magout_plastic.wav",
t = 0.65
},
{
s = "weapons/arccw_eft_aks74u/ak74_magin_plastic.wav",
t = 2.6
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_up.wav",
t = 4
},
{
s = "weapons/arccw_eft_aks74u/ak74_slider_down.wav",
t = 4.4
}
},
},
["enter_inspect"] = {
Source = "customize_begin",
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0,
},
["idle_inspect"] = {
Source = "customize_idle",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "customize_end",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
}

View File

@@ -0,0 +1,444 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Modern Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "MP-153"
SWEP.TrueName = "MP-153"
SWEP.Trivia_Class = "Semi-automatic shotgun"
SWEP.Trivia_Desc = "Smoothbore multi-shot. MP-153 shotgun, produced by Izhmekh. Reliable and practical hunting and self-defence weapon."
SWEP.Trivia_Manufacturer = "Izhmekh"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Gas-operated Rotating bolt"
SWEP.Trivia_Country = "Russia"
SWEP.Trivia_Year = 2000
SWEP.Slot = 4
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw/darsu_eft/c_mp153.mdl"
SWEP.WorldModel = "models/weapons/arccw/darsu_eft/c_mp153.mdl"
SWEP.ViewModelFOV = 70
SWEP.DefaultBodygroups = "000000000000"
SWEP.Num = 8 -- number of shots per trigger pull.
SWEP.Damage = 9
SWEP.DamageMin = 9 -- damage done at maximum range
SWEP.RangeMin = 20 -- in METRES
SWEP.Range = 70 -- in METRES
SWEP.Penetration = 3
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 4 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 8
SWEP.PhysBulletMuzzleVelocity = 415
SWEP.TriggerDelay = false
SWEP.ReloadInSights = true
SWEP.ReloadInSights_FOVMult = 1
SWEP.Recoil = 2.5
SWEP.RecoilSide = 2
SWEP.RecoilRise = 0.3
SWEP.RecoilPunch = 2.5
SWEP.VisualRecoilMult = 10
SWEP.RecoilPunchBackMax = 18
SWEP.RecoilPunchBackMaxSights = 19 -- may clip with scopes
SWEP.Delay = 60 / 120 -- 60 / RPM.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_shotgun"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 60 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 350 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 300
SWEP.Primary.Ammo = "buckshot" -- what ammo type the gun uses
SWEP.MagID = "MP153" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = {"weapons/darsu_eft/mp153/mr153_fire_close1.wav", "weapons/darsu_eft/mp153/mr153_fire_close2.wav"}
SWEP.ShootSoundSilenced = "weapons/darsu_eft/mp153/mr133_fire_silenced_close.wav"
SWEP.DistantShootSound = {"weapons/darsu_eft/mp153/mr153_fire_distant1.wav", "weapons/darsu_eft/mp153/mr153_fire_distant2.wav"}
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellModel = "models/weapons/arccw/eft_shells/patron_12x70_shell.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.5
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.CamAttachment = 3 -- if set, this attachment will control camera movement
SWEP.SpeedMult = 0.95
SWEP.SightedSpeedMult = 0.8
SWEP.SightTime = 0.5*0.93
SWEP.IronSightStruct = {
Pos = Vector(-4.281, -2, 0.681),
Ang = Angle(0.25, 0.004, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.Jamming = false
SWEP.HeatCapacity = 9
SWEP.HeatDissipation = 0.3
SWEP.HeatLockout = true -- overheating means you cannot fire until heat has been fully depleted
SWEP.HeatFix = true -- when the "fix" animation is played, all heat is restored.
SWEP.Malfunction = false
SWEP.MalfunctionJam = false -- After a malfunction happens, the gun will dryfire until reload is pressed. If unset, instead plays animation right after.
SWEP.MalfunctionTakeRound = false -- When malfunctioning, a bullet is consumed.
SWEP.MalfunctionWait = 0 -- The amount of time to wait before playing malfunction animation (or can reload)
SWEP.MalfunctionMean = 48 -- The mean number of shots between malfunctions, will be autocalculated if nil
SWEP.MalfunctionVariance = 0.2 -- The fraction of mean for variance. e.g. 0.2 means 20% variance
SWEP.MalfunctionSound = "weapons/arccw/malfunction.wav"
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "shotgun"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL
SWEP.ActivePos = Vector(0.2, -3.5, 0.7)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-1.2, -4.5, 0.2)
SWEP.CrouchAng = Angle(0, 0, -6)
SWEP.HolsterPos = Vector(0.2, -3.5, 0.7)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelOffsetCrouch = Vector(0, 0, -2)
SWEP.CustomizePos = Vector(0.2, -3.5, 0.7)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 18
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[1] = {"shellport", "patron_in_weapon"},
}
SWEP.AttachmentElements = {
["sightmount"] = {VMBodygroups = {{ind = 4, bg = 1}},},
["bottommount"] = {VMBodygroups = {{ind = 5, bg = 1}},},
["b660"] = {
VMBodygroups = {{ind = 1, bg = 1}},
AttPosMods = {
[3] = {
vpos = Vector(0, 46, 1.8),
vang = Angle(0, -90, 0),
},
},
},
["b710"] = {
VMBodygroups = {{ind = 1, bg = 2}},
AttPosMods = {
[3] = {
vpos = Vector(0, 47.8, 1.8),
vang = Angle(0, -90, 0),
},
},
},
["b750"] = {
VMBodygroups = {{ind = 1, bg = 3}},
AttPosMods = {
[3] = {
vpos = Vector(0, 49.4, 1.8),
vang = Angle(0, -90, 0),
},
},
},
["m5"] = {VMBodygroups = {{ind = 3, bg = 1}},},
["m6"] = {VMBodygroups = {{ind = 3, bg = 2}},},
["m7"] = {VMBodygroups = {{ind = 3, bg = 3}},},
["m8"] = {VMBodygroups = {{ind = 3, bg = 4}},},
["swooden"] = {VMBodygroups = {{ind = 6, bg = 1}},},
["spistol"] = {VMBodygroups = {{ind = 6, bg = 2}},},
["12rip"] = {VMBodygroups = {{ind = 10, bg = 1}},},
["12fl"] = {VMBodygroups = {{ind = 10, bg = 2}},},
["12dss"] = {VMBodygroups = {{ind = 10, bg = 3}},},
["12bmg"] = {VMBodygroups = {{ind = 10, bg = 4}},},
["12ap20"] = {VMBodygroups = {{ind = 10, bg = 5}},},
["12ftx"] = {VMBodygroups = {{ind = 10, bg = 6}},},
["12g40"] = {VMBodygroups = {{ind = 10, bg = 7}},},
["12cop"] = {VMBodygroups = {{ind = 10, bg = 8}},},
["12p3"] = {VMBodygroups = {{ind = 10, bg = 9}},},
["12p6u"] = {VMBodygroups = {{ind = 10, bg = 10}},},
["12sfp"] = {VMBodygroups = {{ind = 10, bg = 11}},},
["12lead"] = {VMBodygroups = {{ind = 10, bg = 10}},},
}
SWEP.ExtraSightDist = 6
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-10, 5.5, -2),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.ShotgunReload = true
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "None",
//DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_sights_standard.png"),
Slot = {"eft_optic_small", "eft_optic_medium", "eft_optic_large"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
CorrectiveAng = Angle(0, 180, 0),
InstalledEles = {"sightmount"},
Offset = {
vpos = Vector(0, 17, 2.7),
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Barrel", -- print name
DefaultAttName = "610mm barrel",
DefaultAttIcon = Material("vgui/entities/eft_attachments/mp153_b610.png"),
Slot = "eft_mp153_barrel", -- what kind of attachments can fit here, can be string or table
},
{
PrintName = "Muzzle Device",
Slot = "eft_muzzle_12g",
Bone = "weapon",
DefaultAttName = "None",
-- DefaultAttIcon = Material("vgui/entities/eft_attachments/att_scarl_muzzle_std.png"),
Offset = {
vpos = Vector(0, 44, 1.8),
vang = Angle(90, -90, -90),
},
},
{
PrintName = "Magazine", -- print name
DefaultAttName = "4-shell",
DefaultAttIcon = Material("vgui/entities/eft_attachments/mp153_m4.png"),
Slot = "eft_mp153_mag", -- what kind of attachments can fit here, can be string or table
},
{
PrintName = "Stock", -- print name
DefaultAttName = "Plastic stock",
DefaultAttIcon = Material("vgui/entities/eft_attachments/mp153_stock_std.png"),
Slot = "eft_mp153_stock", -- what kind of attachments can fit here, can be string or table
},
{
PrintName = "Left Tactical", -- print name
DefaultAttName = "No Tactical",
Slot = {"eft_tactical"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
InstalledEles = {"bottommount"},
Offset = {
vpos = Vector(1.3, 33.5, 1.35),
vang = Angle(0, -90, 120),
},
},
{
PrintName = "Bottom Tactical", -- print name
DefaultAttName = "No Tactical",
Slot = {"eft_tactical"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
InstalledEles = {"bottommount"},
Offset = {
vpos = Vector(0, 33.5, -.9),
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Right Tactical", -- print name
DefaultAttName = "No Tactical",
Slot = {"eft_tactical"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
InstalledEles = {"bottommount"},
Offset = {
vpos = Vector(-1.3, 33.5, 1.35),
vang = Angle(0, -90, 240),
},
},
{
PrintName = "Ammo",
DefaultAttName = "12/70 7mm buckshot",
DefaultAttIcon = Material("vgui/entities/eft_attachments/ammo/12g_def.png"),
Slot = "ammo_eft_12"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw",
Time = 1.2,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_draw.wav", t = 0},
},
},
["holster"] = {
Source = "holster",
Time = 1.2,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_holster.wav", t = 0},
},
},
["ready"] = {
Source = {"ready0", "ready1", "ready2"},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_draw.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 0.4},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 0.8},
},
},
["fire"] = {
Source = "fire",
Time = 0.15,
ShellEjectAt = 0.05,
SoundTable = {
{s = "eft_shared/weap_trigger_hammer.wav", t = 0.05}
},
},
["sgreload_start"] = {
Source = "reload_start",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
},
},
["sgreload_start_empty"] = {
Source = "reload_start_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr133_shell_pickup.wav", t = 0.15},
{s = "weapons/darsu_eft/mp153/mr133_shell_in_port.wav", t = 0.85},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 1.2},
},
},
["sgreload_insert"] = {
Source = "reload_loop",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_shell_pickup.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr133_shell_in_mag2.wav", t = 0.3},
},
},
["sgreload_finish"] = {
Source = "reload_end",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{s = "eft_shared/weap_handon.wav", t = 0.1},
},
},
["enter_inspect"] = {
Source = "enter_inspect",
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
},
},
["idle_inspect"] = {
Source = "idle_inspect",
},
["exit_inspect"] = {
Source = "exit_inspect",
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_draw.wav", t = 0.2},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 1.2},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 1.8},
},
},
["unjam"] = {
Source = {"jam0","jam1","jam2"},
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 0.8},
{s = "weapons/darsu_eft/mp153/mr133_shell_out_mag.wav", t = 1.2},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 1.52},
},
},
["fix"] = {
Source = {"misfire0","misfire1","misfire2"},
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.2,
-- ShellEjectAt = 0.8,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 0.7},
{s = "weapons/darsu_eft/mp153/mr133_shell_out_mag.wav", t = 0.75},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 0.9},
},
},
}

View File

@@ -0,0 +1,749 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Modern Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "MP-155"
SWEP.TrueName = "MP-155"
SWEP.Trivia_Class = "Semi-automatic shotgun"
SWEP.Trivia_Desc = "Russian smoothbore multi-shot MP-155 12 gauge shotgun, manufactured by IzhMekh (\"Izhevsky Mechanical Plant\"). The gun weighs less than its predecessor MP-153 and features enhanced ergonomics and an easy-to-replace barrel mechanism. The new design also makes it easier to use for left-handed users."
SWEP.Trivia_Manufacturer = "Izhmekh"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Gas-operated Rotating bolt"
SWEP.Trivia_Country = "Russia"
SWEP.Trivia_Year = 2017
SWEP.Slot = 4
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw/darsu_eft/c_mp153.mdl"
SWEP.WorldModel = "models/weapons/arccw/darsu_eft/c_mp153.mdl"
SWEP.ViewModelFOV = 70
SWEP.DefaultBodygroups = "1415003000"
SWEP.Num = 8 -- number of shots per trigger pull.
SWEP.Damage = 10
SWEP.DamageMin = 10 -- damage done at maximum range
SWEP.RangeMin = 20 -- in METRES
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 3
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 4 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 8
SWEP.PhysBulletMuzzleVelocity = 415
SWEP.TriggerDelay = false
SWEP.ReloadInSights = true
SWEP.ReloadInSights_FOVMult = 1
SWEP.Recoil = 2.5
SWEP.RecoilSide = 2
SWEP.RecoilRise = 0.3
SWEP.RecoilPunch = 2.5
SWEP.VisualRecoilMult = 10
SWEP.RecoilPunchBackMax = 18
SWEP.RecoilPunchBackMaxSights = 19 -- may clip with scopes
SWEP.Delay = 60 / 120 -- 60 / RPM.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_shotgun"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 48 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 350 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 300
SWEP.Primary.Ammo = "buckshot" -- what ammo type the gun uses
SWEP.MagID = "MP153" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = {"weapons/darsu_eft/mp153/mr153_fire_close1.wav", "weapons/darsu_eft/mp153/mr153_fire_close2.wav"}
SWEP.ShootSoundSilenced = "weapons/darsu_eft/mp153/mr133_fire_silenced_close.wav"
SWEP.DistantShootSound = {"weapons/darsu_eft/mp153/mr153_fire_distant1.wav", "weapons/darsu_eft/mp153/mr153_fire_distant2.wav"}
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellModel = "models/weapons/arccw/eft_shells/patron_12x70_shell.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.5
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.CamAttachment = 3 -- if set, this attachment will control camera movement
SWEP.SpeedMult = 0.94
SWEP.SightedSpeedMult = 0.8
SWEP.SightTime = 0.5*1.07
SWEP.IronSightStruct = {
Pos = Vector(-4.281, -2, 0.681),
Ang = Angle(0.25, 0.004, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.Jamming = false
SWEP.HeatCapacity = 9
SWEP.HeatDissipation = 0.3
SWEP.HeatLockout = true -- overheating means you cannot fire until heat has been fully depleted
SWEP.HeatFix = true -- when the "fix" animation is played, all heat is restored.
SWEP.Malfunction = false
SWEP.MalfunctionJam = false -- After a malfunction happens, the gun will dryfire until reload is pressed. If unset, instead plays animation right after.
SWEP.MalfunctionTakeRound = false -- When malfunctioning, a bullet is consumed.
SWEP.MalfunctionWait = 0 -- The amount of time to wait before playing malfunction animation (or can reload)
SWEP.MalfunctionMean = 48 -- The mean number of shots between malfunctions, will be autocalculated if nil
SWEP.MalfunctionVariance = 0.2 -- The fraction of mean for variance. e.g. 0.2 means 20% variance
SWEP.MalfunctionSound = "weapons/arccw/malfunction.wav"
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "shotgun"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL
SWEP.ActivePos = Vector(0.2, -3.5, 0.7)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-1.2, -4.5, 0.2)
SWEP.CrouchAng = Angle(0, 0, -6)
SWEP.HolsterPos = Vector(0.2, -3.5, 0.7)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelOffsetCrouch = Vector(0, 0, -2)
SWEP.CustomizePos = Vector(0.2, -3.5, 0.7)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 28
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[1] = {"shellport", "patron_in_weapon"},
}
SWEP.AttachmentElements = {
["sightmount"] = {VMBodygroups = {{ind = 4, bg = 1}},},
["bottommount"] = {VMBodygroups = {{ind = 5, bg = 2}},},
["m5"] = {VMBodygroups = {{ind = 3, bg = 6}},},
["m6"] = {VMBodygroups = {{ind = 3, bg = 7}},},
["m7"] = {VMBodygroups = {{ind = 3, bg = 8}},},
["m8"] = {VMBodygroups = {{ind = 3, bg = 9}},},
["ultimapistol"] = {
VMBodygroups = {{ind = 6, bg = 4}},
Override_IronSightStruct = {
Pos = Vector(-4.281, -4.5, -1.0),
Ang = Angle(0.25, 0.004, 0),
Magnification = 1.5,
}
},
["ultimatoprail"] = {
VMBodygroups = {{ind = 4, bg = 2}},
AttPosMods = {
[1] = {
vpos = Vector(0, 19, 2.9),
vang = Angle(0, -90, 0),
},
},
Override_IronSightStruct = {
Pos = Vector(-4.281, -4.5, -1.0),
Ang = Angle(0.25, 0.004, 0),
Magnification = 1.5,
},
NameChange = "MP-155 Ultima",
TrueNameChange = "MP-155 Ultima",
},
["ultimastock"] = {VMBodygroups = {{ind = 8, bg = 1}},},
["ultimapistolend"] = {VMBodygroups = {{ind = 7, bg = 1}},},
["ultimastockendL"] = {VMBodygroups = {{ind = 7, bg = 2}},},
["ultimastockendM"] = {VMBodygroups = {{ind = 7, bg = 3}},},
["ultimastockendS"] = {VMBodygroups = {{ind = 7, bg = 4}},},
["ultimacamera"] = {VMBodygroups = {{ind = 9, bg = 1}},},
["ultimahg"] = {VMBodygroups = {{ind = 2, bg = 2}},},
["12rip"] = {VMBodygroups = {{ind = 10, bg = 1}},},
["12fl"] = {VMBodygroups = {{ind = 10, bg = 2}},},
["12dss"] = {VMBodygroups = {{ind = 10, bg = 3}},},
["12bmg"] = {VMBodygroups = {{ind = 10, bg = 4}},},
["12ap20"] = {VMBodygroups = {{ind = 10, bg = 5}},},
["12ftx"] = {VMBodygroups = {{ind = 10, bg = 6}},},
["12g40"] = {VMBodygroups = {{ind = 10, bg = 7}},},
["12cop"] = {VMBodygroups = {{ind = 10, bg = 8}},},
["12p3"] = {VMBodygroups = {{ind = 10, bg = 9}},},
["12p6u"] = {VMBodygroups = {{ind = 10, bg = 10}},},
["12sfp"] = {VMBodygroups = {{ind = 10, bg = 11}},},
["12lead"] = {VMBodygroups = {{ind = 10, bg = 10}},},
}
SWEP.ExtraSightDist = 6
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-10, 5.5, -2),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.ShotgunReload = true
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "None",
//DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_sights_standard.png"),
Slot = {"eft_optic_small", "eft_optic_medium", "eft_optic_large"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
CorrectiveAng = Angle(0, 180, 0),
InstalledEles = {"sightmount"},
Offset = {
vpos = Vector(0, 17, 2.7),
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Bodykit", -- print name
DefaultAttName = "Default",
DefaultAttIcon = Material("vgui/entities/eft_attachments/mp155_kit_std.png"),
Slot = "eft_mp155_kit", -- what kind of attachments can fit here, can be string or table
GivesFlags = {"ultima"},
},
{
PrintName = "Muzzle Device",
Slot = "eft_muzzle_12g",
Bone = "weapon",
DefaultAttName = "None",
-- DefaultAttIcon = Material("vgui/entities/eft_attachments/att_scarl_muzzle_std.png"),
Offset = {
vpos = Vector(0, 40, 1.8),
vang = Angle(90, -90, -90),
},
},
{
PrintName = "Magazine", -- print name
DefaultAttName = "4-shell",
DefaultAttIcon = Material("vgui/entities/eft_attachments/mp153_m4.png"),
Slot = "eft_mp153_mag", -- what kind of attachments can fit here, can be string or table
Installed = "mag_eft_mp153_6",
},
{
PrintName = "Stock", -- print name
DefaultAttName = "Walnut stock",
DefaultAttIcon = Material("vgui/entities/eft_attachments/mp155_stock_std.png"),
Slot = "eft_mp155_stock", -- what kind of attachments can fit here, can be string or table
GivesFlags = {"ultimacam"},
},
{
PrintName = "Right Tactical", -- print name
DefaultAttName = "No Tactical",
Slot = {"eft_tactical"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
RequireFlags = {"ultima"},
HideIfBlocked = true,
Offset = {
vpos = Vector(-1.17, 33.4, 1.7),
vang = Angle(0, -90, -90),
},
},
{
PrintName = "Underbarrel",
Slot = "eft_foregrip",
Bone = "mod_mount_000",
DefaultAttName = "No Underbarrel",
Offset = {
vpos = Vector(0, -5.5, -1.2),
vang = Angle(90, -90, -90),
},
InstalledEles = {"bottommount"},
RequireFlags = {"ultima"},
},
{
PrintName = "Top Gadget", -- print name
DefaultAttName = "No Tactical",
Slot = {"eft_tactical_big", "eft_mp155_tac"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
RequireFlags = {"ultima"},
HideIfBlocked = true,
Offset = {
vpos = Vector(0, 33, 2.9),
vang = Angle(0, -90, 180),
},
},
{
PrintName = "Ammo",
DefaultAttName = "12/70 7mm buckshot",
DefaultAttIcon = Material("vgui/entities/eft_attachments/ammo/12g_def.png"),
Slot = "ammo_eft_12"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw",
Time = 1.2,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_draw.wav", t = 0},
},
},
["holster"] = {
Source = "holster",
Time = 1.2,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_holster.wav", t = 0},
},
},
["ready"] = {
Source = {"ready0", "ready1", "ready2"},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_draw.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 0.4},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 0.8},
},
},
["fire"] = {
Source = "fire",
Time = 0.15,
ShellEjectAt = 0.05,
SoundTable = {
{s = "eft_shared/weap_trigger_hammer.wav", t = 0.05}
},
},
["sgreload_start"] = {
Source = "reload_start",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
},
},
["sgreload_start_empty"] = {
Source = "reload_start_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr133_shell_pickup.wav", t = 0.15},
{s = "weapons/darsu_eft/mp153/mr133_shell_in_port.wav", t = 0.85},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 1.2},
},
},
["sgreload_insert"] = {
Source = "reload_loop",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_shell_pickup.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr133_shell_in_mag2.wav", t = 0.3},
},
},
["sgreload_finish"] = {
Source = "reload_end",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{s = "eft_shared/weap_handon.wav", t = 0.1},
},
},
["enter_inspect"] = {
Source = "enter_inspect",
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
},
},
["idle_inspect"] = {
Source = "idle_inspect",
},
["exit_inspect"] = {
Source = "exit_inspect",
SoundTable = {
{s = "weapons/darsu_eft/mp153/mr133_draw.wav", t = 0.2},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 1.2},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 1.8},
},
},
["unjam"] = {
Source = {"jam0","jam1","jam2"},
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 0.8},
{s = "weapons/darsu_eft/mp153/mr133_shell_out_mag.wav", t = 1.2},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 1.52},
},
},
["fix"] = {
Source = {"misfire0","misfire1","misfire2"},
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.2,
-- ShellEjectAt = 0.8,
SoundTable = {
{s = "eft_shared/weap_handoff.wav", t = 0},
{s = "weapons/darsu_eft/mp153/mr153_slider_up.wav", t = 0.7},
{s = "weapons/darsu_eft/mp153/mr133_shell_out_mag.wav", t = 0.75},
{s = "weapons/darsu_eft/mp153/mr153_slider_down.wav", t = 0.9},
},
},
}
if CLIENT then
-- Stuff to always draw thermal on this shotgun if camera is installed
-- Mostly copied from arccw's cl_holosight.lua
local blackColor = Color(0, 0, 0)
local rtsize = ScrH()
local rtmat = GetRenderTarget("arccw_rtmat_ultima", rtsize, rtsize, false)
local rtmaterial = CreateMaterial( "arccw_rtmat_ultima", "UnlitGeneric", {
['$basetexture'] = rtmat:GetName(),
} );
local colormod2 = Material("pp/colour")
local pp_ca_base, pp_ca_r, pp_ca_g, pp_ca_b = Material("pp/arccw/ca_base"), Material("pp/arccw/ca_r"), Material("pp/arccw/ca_g"), Material("pp/arccw/ca_b")
local pp_ca_r_thermal, pp_ca_g_thermal, pp_ca_b_thermal = Material("pp/arccw/ca_r_thermal"), Material("pp/arccw/ca_g_thermal"), Material("pp/arccw/ca_b_thermal")
pp_ca_r:SetTexture("$basetexture", render.GetScreenEffectTexture())
pp_ca_g:SetTexture("$basetexture", render.GetScreenEffectTexture())
pp_ca_b:SetTexture("$basetexture", render.GetScreenEffectTexture())
pp_ca_r_thermal:SetTexture("$basetexture", render.GetScreenEffectTexture())
pp_ca_g_thermal:SetTexture("$basetexture", render.GetScreenEffectTexture())
pp_ca_b_thermal:SetTexture("$basetexture", render.GetScreenEffectTexture())
local coldtime = 30
local reticle = Material("hud/scopes/ultimareticle6.png")
function SWEP:UltimaFormRTScope()
cam.Start3D()
-- ArcCW.Overdraw = true
-- ArcCW.LaserBehavior = true
-- ArcCW.VMInRT = true
local rtangles, rtpos, rtdrawvm
if GetConVar("arccw_drawbarrel"):GetBool() and GetConVar("arccw_vm_coolsway"):GetBool() then
rtangles = self.VMAng - self.VMAngOffset
rtangles.x = rtangles.x - self.VMPosOffset_Lerp.z * 10
rtangles.y = rtangles.y + self.VMPosOffset_Lerp.y * 10
rtpos = self.VMPos + self.VMAng:Forward() * 15
else
rtangles = EyeAngles()
rtpos = EyePos()
end
local addads = 1
local rt = {
w = rtsize,
h = rtsize,
angles = rtangles,
origin = rtpos,
drawviewmodel = false,
fov = 15,
}
rtsize = ScrH()
if ScrH() > ScrW() then rtsize = ScrW() end
local rtres = ScrH()*0.2
rtmat = GetRenderTarget("arccw_rtmat_ultima", rtres, rtres, false)
render.PushRenderTarget(rtmat, 0, 0, rtsize, rtsize)
render.ClearRenderTarget(rt, blackColor)
-- if self:GetState() == ArcCW.STATE_SIGHTS then
render.RenderView(rt)
cam.Start3D(EyePos(), EyeAngles(), rt.fov, 0, 0, nil, nil, 0, nil)
self:DoLaser(false)
cam.End3D()
-- end
-- ArcCW.Overdraw = false
-- ArcCW.LaserBehavior = false
-- ArcCW.VMInRT = false
-- self:FormPP(rtmat)
render.PopRenderTarget()
cam.End3D()
-- if asight.Thermal then
self:UltimaFormThermalImaging(rtmat)
-- end
end
local function IsWHOT(ent)
if !ent:IsValid() or ent:IsWorld() then return false end
if ent:IsPlayer() then -- balling
if ent.ArcticMedShots_ActiveEffects and ent.ArcticMedShots_ActiveEffects["coldblooded"] or ent:Health() <= 0 then return false end -- arc stims
return true
end
if ent:IsNPC() or ent:IsNextBot() then -- npcs
if ent.ArcCWCLHealth and ent.ArcCWCLHealth <= 0 or ent:Health() <= 0 then return false end
return true
end
if ent:IsRagdoll() then -- ragdolling
if !ent.ArcCW_ColdTime then ent.ArcCW_ColdTime = CurTime() + coldtime end
return ent.ArcCW_ColdTime > CurTime()
end
if ent:IsVehicle() or ent:IsOnFire() or ent.ArcCW_Hot or ent:IsScripted() and !ent:GetOwner():IsValid() then -- vroom vroom + :fire: + ents but not guns (guns on ground will be fine)
return true
end
return false
end
function SWEP:UltimaFormThermalImaging(tex)
if !tex then
tex = render.GetRenderTarget()
end
render.PushRenderTarget(tex)
cam.Start3D()
if tex then
colormod2:SetTexture("$fbtexture", tex)
else
colormod2:SetTexture("$fbtexture", render.GetScreenEffectTexture())
end
local nvsc = {r=255+0, g=255+1, b=255+16/255}
local tvsc = {r=-255, g=-255, b=-255}
local tab = ents.GetAll()
-- table.Add(tab, player.GetAll())
-- table.Add(tab, ents.FindByClass("npc_*"))
render.SetStencilEnable(true)
render.SetStencilWriteMask(255)
render.SetStencilTestMask(255)
render.ClearStencil()
local sw = ScrH()
local sh = sw
local sx = (ScrW() - sw) / 2
local sy = (ScrH() - sh) / 2
render.SetScissorRect( sx, sy, sx + sw, sy + sh, true )
render.SetStencilReferenceValue(64)
render.SetStencilPassOperation(STENCIL_REPLACE)
render.SetStencilFailOperation(STENCIL_KEEP)
render.SetStencilZFailOperation(STENCIL_KEEP)
render.SetStencilCompareFunction(STENCIL_ALWAYS)
for _, v in pairs(tab) do
if !IsWHOT(v) then continue end
-- if !asight.ThermalScopeSimple then
render.SetBlend(0.5)
render.SuppressEngineLighting(true)
render.SetColorModulation(250, 250, 250)
v:DrawModel()
-- end
end
render.SetColorModulation(1, 1, 1)
render.SuppressEngineLighting(false)
render.MaterialOverride()
render.SetBlend(1)
render.SetStencilCompareFunction(STENCIL_EQUAL)
DrawColorModify({
["$pp_colour_addr"] = 0,
["$pp_colour_addg"] = 0,
["$pp_colour_addb"] = 0,
["$pp_colour_brightness"] = 0,
["$pp_colour_contrast"] = 1,
["$pp_colour_colour"] = 0,
["$pp_colour_mulr"] = 0,
["$pp_colour_mulg"] = 0,
["$pp_colour_mulb"] = 0
})
DrawColorModify({
["$pp_colour_addr"] = tvsc.r - 255,
["$pp_colour_addg"] = tvsc.g - 255,
["$pp_colour_addb"] = tvsc.b - 255,
["$pp_colour_addr"] = 0,
["$pp_colour_addg"] = 0,
["$pp_colour_addb"] = 0,
["$pp_colour_brightness"] = 0,
["$pp_colour_contrast"] = 1,
["$pp_colour_colour"] = 1,
["$pp_colour_mulr"] = 0,
["$pp_colour_mulg"] = 0,
["$pp_colour_mulb"] = 0
})
-- if !asight.ThermalNoCC then
render.SetStencilCompareFunction(STENCIL_NOTEQUAL)
render.SetStencilPassOperation(STENCIL_KEEP)
if GetConVar("arccw_thermalpp"):GetBool() and GetConVar("arccw_scopepp"):GetBool() then
-- chromatic abberation
render.CopyRenderTargetToTexture(render.GetScreenEffectTexture())
render.SetMaterial( pp_ca_base )
render.DrawScreenQuad()
render.SetMaterial( pp_ca_r_thermal )
render.DrawScreenQuad()
render.SetMaterial( pp_ca_g_thermal )
render.DrawScreenQuad()
render.SetMaterial( pp_ca_b_thermal )
render.DrawScreenQuad()
-- pasted here cause otherwise either target colors will get fucked either pp either motion blur
end
DrawColorModify({
["$pp_colour_addr"] = nvsc.r - 255,
["$pp_colour_addg"] = nvsc.g - 255,
["$pp_colour_addb"] = nvsc.b - 255,
-- ["$pp_colour_addr"] = 0,
-- ["$pp_colour_addg"] = 0,
-- ["$pp_colour_addb"] = 0,
["$pp_colour_brightness"] = 0.1,
["$pp_colour_contrast"] = 0.5,
["$pp_colour_colour"] = 0.12,
["$pp_colour_mulr"] = 0,
["$pp_colour_mulg"] = 0,
["$pp_colour_mulb"] = 0
})
-- end
render.SetScissorRect( sx, sy, sx + sw, sy + sh, false )
render.SetStencilEnable(false)
colormod2:SetTexture("$fbtexture", render.GetScreenEffectTexture())
cam.End3D()
if GetConVar("arccw_thermalpp"):GetBool() then
if !render.SupportsPixelShaders_2_0() then return end
DrawSharpen(0.3,0.9)
DrawBloom(0,0.3,5,5,3,0.5,1,1,1)
-- DrawMotionBlur(0.7,1,1/(15)) -- seems to break shit
end
cam.Start2D()
surface.SetMaterial(reticle)
surface.SetDrawColor(255, 255, 255, 255)
surface.DrawTexturedRect(0, 0, ScrH(), ScrH())
cam.End2D()
render.PopRenderTarget()
end
local fpsdelay = CurTime()
hook.Add("RenderScene", "ArcCW_ULTIMA_CAM", function()
local wpn = LocalPlayer():GetActiveWeapon()
if wpn.ArcCW and wpn:GetClass() == "arccw_eft_mp155" and wpn.Attachments[8].Installed == "tac_eft_mp155_ultima_camera" then
if fpsdelay > CurTime() then return end
wpn:UltimaFormRTScope()
wpn.Owner:GetViewModel():SetSubMaterial(28, "!arccw_rtmat_ultima")
fpsdelay = CurTime()+1/15
end
end)
end

View File

@@ -0,0 +1,520 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Oldie Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Regiment 9mm"
SWEP.TrueName = "MP5"
SWEP.Trivia_Class = "Submachine-Gun"
SWEP.Trivia_Desc = "HK MP5 9x19 submachinegun with Navy 3 Round Burst firing mechanism version, which features three-round cutoff. Widely acclaimed model of a submachinegun, primarily known as weapon of GSG9 and similar forces of the world, and famous through frequent appearance in movies and video games."
SWEP.Trivia_Manufacturer = "Heckler and Koch"
SWEP.Trivia_Calibre = "9x19mm"
SWEP.Trivia_Mechanism = "Gas-Operated"
SWEP.Trivia_Country = "Germany"
SWEP.Trivia_Year = 1966
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then SWEP.PrintName = SWEP.TrueName end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_mp5/c_eft_mp5_std/models/c_eft_mp5_std.mdl"
SWEP.WorldModel = "models/weapons/arc_eft_mp5/w_eft_mp5_std/models/w_eft_mp5_std.mdl"
SWEP.ViewModelFOV = 54
SWEP.Damage = 12
SWEP.DamageMin = 12 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 3
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 400 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.CanFireUnderwater = false
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 3
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 50
SWEP.ReducedClipSize = 20
SWEP.Recoil = .38
SWEP.RecoilSide = 0.125
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 800 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = -3,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 150
SWEP.AccuracyMOA = 18 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 300 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "pistol" -- what ammo type the gun uses
SWEP.MagID = "eft_mp5" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 110 -- pitch of shoot sound
SWEP.FirstShootSound = "weapons/arccw_eft/mp5k/mp5k_fp.wav"
SWEP.ShootSound = "weapons/arccw_eft/mp5k/mp5k_fp.wav"
SWEP.ShootSoundSilenced = "weapons/arccw_eft/mp5k/mp5k_suppressed_fp.wav"
SWEP.DistantShootSound = "weapons/arccw_eft/mp5k/mp5k_dist.wav"
SWEP.MuzzleEffect = "muzzleflash_mp5"
SWEP.ShellModel = "models/shells/shell_9mm.mdl"
SWEP.ShellScale = 1.5
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.ShellScale = 1
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.SightTime = 0.275
SWEP.SpeedMult = 0.96
SWEP.SightedSpeedMult = 0.75
SWEP.BarrelLength = 20
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = true
SWEP.ProceduralIronFire = true
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-3.642, -2, 2.05),
Ang = Angle(-0.0, 0.0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "smg"
SWEP.HoldtypeSights = "ar2"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SMG
SWEP.ActivePos = Vector(-1, 0, 2)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(4, -2, 1)
SWEP.HolsterAng = Angle(0, 50, -15)
SWEP.CustomizePos = Vector(-1.2 , 0, 1)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.ExtraSightDist = 5
SWEP.AttachmentElements = {
["Mount_scopes"] = {
VMBodygroups = {{ind = 2, bg = 1}},
WMBodygroups = {{ind = 2, bg = 1}},
},
["Default_Stock"] = {
VMBodygroups = {{ind = 4, bg = 1}},
WMBodygroups = {{ind = 3, bg = 1}},
},
["Magazine_30"] = {
VMBodygroups = {{ind = 5, bg = 1}},
WMBodygroups = {{ind = 4, bg = 1}},
},
["Magazine_20"] = {
VMBodygroups = {{ind = 5, bg = 3}},
WMBodygroups = {{ind = 4, bg = 3}},
},
["extendedmag"] = {
VMBodygroups = {{ind = 5, bg = 2}},
WMBodygroups = {{ind = 4, bg = 2}},
},
["Default_Handguard"] = {
VMBodygroups = {{ind = 6, bg = 1}},
WMBodygroups = {{ind = 5, bg = 1}},
},
["Default_Muzzle"] = {
VMBodygroups = {{ind = 7, bg = 1}},
WMBodygroups = {{ind = 6, bg = 1}},
},
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"eft_optic_large", "eft_optic_medium", "eft_optic_small"}, -- what kind of attachments can fit here, can be string or table
Bone = "mod_reciever", -- relevant bone any attachments will be mostly referring to
Offset = {
vang = Angle(90, -90, -90),
wang = Angle(-5, 0, 180)
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 180),
SlideAmount = { -- how far this attachment can slide in both directions.
-- overrides Offset
vmin = Vector(0, 0.5, 3.65),
vmax = Vector(0, -1.6, 3.7),
wmin = Vector(5.5, 0.5, -5.8),
wmax = Vector(6.5, 0.5, -5.9),
},
InstalledEles = {"Mount_scopes"},
},
{
PrintName = "Muzzle Device",
DefaultAttName = "3 Lug adapter",
Slot = {"eft_muzzle_mp5", "eft_surpressor_9mm"},
DefaultAttIcon = Material("vgui/entities/eft_attachments/3lug_muzzleicon.png"),
Bone = "mod_reciever",
Offset = {
vpos = Vector(0, 9.5, 2.25),
vang = Angle(0, -90, 0),
wpos = Vector(16.6, 0.5, -5.3),
wang = Angle(-5, 0, 0),
},
InstalledEles = {"Default_Muzzle"},
},
{
PrintName = "Tactical",
Slot = "eft_tactical",
Bone = "mod_reciever",
Offset = {
vpos = Vector(-.9, 5.5, 2), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, -90),
wpos = Vector(13, -0.45, -4.95),
wang = Angle(-5, 0, 90),
},
RequireFlags = {"siderail"},
},
{
PrintName = "Underbarrel",
Slot = "eft_foregrip",
Bone = "mod_reciever",
DefaultAttName = "No Underbarrel",
Offset = {
vpos = Vector(0, 6, 1.25),
vang = Angle(90, -90, -90),
wpos = Vector(12, 0, -4),
wang = Angle(-5, 0, 180)
},
RequireFlags = {"lowerrail"},
},
{
PrintName = "Stock",
Slot = "eftmp5_stock",
DefaultAttIcon = Material("vgui/entities/eft_attachments/A2_StockIcon.png"),
Bone = "mod_stock",
DefaultAttName = "A2 Stock",
Offset = {
vpos = Vector(0, 0, 0), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 0),
wpos = Vector(2, 0.5, -3),
wang = Angle(-5, 0, 180)
},
InstalledEles = {"Default_Stock"},
},
{
PrintName = "Handguard",
Slot = "eftmp5_handguard",
DefaultAttIcon = Material("vgui/entities/eft_attachments/Navy_HandguardIcon.png"),
Bone = "mod_reciever",
DefaultAttName = "Navy Handguard",
Offset = {
vpos = Vector(0, 5.25, 1.9), -- offset that the attachment will be relative to the bone
vang = Angle(-90, -0, -90),
wpos = Vector(12.25, 0.5, -4.75),
wang = Angle(85, 0, 180)
},
InstalledEles = {"Default_Handguard"},
},
{
PrintName = "Magazine",
DefaultAttName = "30-Round Mag",
DefaultAttIcon = Material("vgui/entities/eft_attachments/MP5_30Mag_Icon.png"),
InstalledEles = {"Magazine_30"},
Slot = "eftmp5_mag"
},
{
PrintName = "Caliber",
DefaultAttName = "9x19 Pst Gzh",
DefaultAttIcon = Material("vgui/entities/eft_attachments/9x19_Icon.png"),
Slot = "ammo_eft_9x19"
}
}
SWEP.Animations = {
["idle"] = {
Source = false,
LHIK = false,
LHIKIn = 0,
LHIKOut = 0,
},
["ready"] = {
Source = "draw_first",
Time = 1.5,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.3
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 0.
}
},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["draw_empty"] = {
Source = "draw_empty",
Time = 0.75,
LHIK = true,
LHIKIn = 0,
LHIKOut = 2,
},
["draw"] = {
Source = "draw",
Time = 0.9,
LHIK = true,
LHIKIn = 0,
LHIKOut = 1,
},
["fire"] = {
Source = "shoot",
Time = 0.5,
ShellEjectAt = 0,
},
["fire_empty"] = {
Source = "shoot_dry",
Time = 1,
},
["fire_iron"] = {
Source = "shoot",
Time = 1,
ShellEjectAt = 0,
},
["fire_iron_empty"] = {
Source = "shoot_dry",
Time = 1,
},
["reload"] = {
Source = "reload",
Time = 3,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.3,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magrelease.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 1.8
}
},
},
["reload_long"] = {
Source = "reload_extended",
Time = 3,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.3,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magrelease.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 1.8
}
},
},
["reload_short"] = {
Source = "reload_decreased",
Time = 3,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.3,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magrelease.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 1.8
}
},
},
["reload_empty"] = {
Source = "reload_empty",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.45
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltlock.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 1.1
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 2.5
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 3.5
}
},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.3,
},
["reload_long_empty"] = {
Source = "reload_empty_extended",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.45
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltlock.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 1.1
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 2.5
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 3.5
}
},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.3,
},
["reload_short_empty"] = {
Source = "reload_empty_decreased",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.45
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltlock.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 1.1
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 2.5
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 3.5
}
},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.3,
},
["enter_inspect"] = {
Source = "customise_begin",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
},
["idle_inspect"] = {
Source = "customise_idle",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "customise_end",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
}

View File

@@ -0,0 +1,474 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Oldie Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Regiment-SD 9mm"
SWEP.TrueName = "MP5SD"
SWEP.Trivia_Class = "Submachine-Gun"
SWEP.Trivia_Desc = "HK MP5 9x19 submachinegun with Navy 3 Round Burst firing mechanism version, which features three-round cutoff. Widely acclaimed model of a submachinegun, primarily known as weapon of GSG9 and similar forces of the world, and famous through frequent appearance in movies and video games."
SWEP.Trivia_Manufacturer = "Heckler and Koch"
SWEP.Trivia_Calibre = "9x19mm"
SWEP.Trivia_Mechanism = "Gas-Operated"
SWEP.Trivia_Country = "Germany"
SWEP.Trivia_Year = 1966
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then SWEP.PrintName = SWEP.TrueName end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_mp5/c_eft_mp5/models/c_eft_mp5.mdl"
SWEP.WorldModel = "models/weapons/arc_eft_mp5/w_eft_mp5/models/w_eft_mp5.mdl"
SWEP.ViewModelFOV = 54
SWEP.Damage = 10
SWEP.DamageMin = 10 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 3
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 400 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.CanFireUnderwater = false
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 3
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 50
SWEP.ReducedClipSize = 20
SWEP.Recoil = .36
SWEP.RecoilSide = 0.125
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 800 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = -3,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 150
SWEP.AccuracyMOA = 15 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 250 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 150
SWEP.Primary.Ammo = "pistol" -- what ammo type the gun uses
SWEP.MagID = "eft_mp5" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 110 -- pitch of shoot sound
SWEP.FirstShootSound = "weapons/arccw_eft/mp5k/mp5k_suppressed_fp.wav"
SWEP.ShootSound = "weapons/arccw_eft/mp5k/mp5k_suppressed_fp.wav"
SWEP.ShootSoundSilenced = "weapons/arccw_eft/mp5k/mp5k_suppressed_fp.wav"
SWEP.DistantShootSound = "weapons/arccw_eft/mp5k/mp5k_suppressed_tp.wav"
SWEP.GMMuzzleEffect = true
SWEP.MuzzleEffect = ""
SWEP.NoFlash = true
SWEP.ShellModel = "models/shells/shell_9mm.mdl"
SWEP.ShellScale = 1.5
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.ShellScale = 1
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.SightTime = 0.275
SWEP.SpeedMult = 0.94
SWEP.SightedSpeedMult = 0.75
SWEP.BarrelLength = 24
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = true
SWEP.ProceduralIronFire = true
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-3.642, -2, 2.05),
Ang = Angle(-0.0, 0.0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "smg"
SWEP.HoldtypeSights = "ar2"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SMG
SWEP.ActivePos = Vector(-1, 0, 2)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(4, -2, 1)
SWEP.HolsterAng = Angle(0, 50, -15)
SWEP.CustomizePos = Vector(-1.2 , 0, 1)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.ExtraSightDist = 5
SWEP.AttachmentElements = {
["Mount_scopes"] = {
VMBodygroups = {{ind = 2, bg = 1}},
WMBodygroups = {{ind = 2, bg = 1}},
},
["Gadget_Mount"] = {
VMBodygroups = {{ind = 3, bg = 1}},
WMBodygroups = {{ind = 3, bg = 1}},
},
["Default_Stock"] = {
VMBodygroups = {{ind = 4, bg = 1}},
WMBodygroups = {{ind = 4, bg = 1}},
},
["Magazine_30"] = {
VMBodygroups = {{ind = 5, bg = 1}},
WMBodygroups = {{ind = 5, bg = 1}},
},
["Magazine_20"] = {
VMBodygroups = {{ind = 5, bg = 3}},
WMBodygroups = {{ind = 5, bg = 3}},
},
["extendedmag"] = {
VMBodygroups = {{ind = 5, bg = 2}},
WMBodygroups = {{ind = 5, bg = 2}},
},
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"eft_optic_large", "eft_optic_medium", "eft_optic_small"}, -- what kind of attachments can fit here, can be string or table
Bone = "mod_reciever", -- relevant bone any attachments will be mostly referring to
Offset = {
vang = Angle(90, -90, -90),
wang = Angle(-5, 0, 180)
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 180),
SlideAmount = { -- how far this attachment can slide in both directions.
-- overrides Offset
vmin = Vector(0, 0.5, 3.65),
vmax = Vector(0, -1.6, 3.7),
wmin = Vector(5.5, 0.5, -5.8),
wmax = Vector(6.5, 0.5, -5.9),
},
InstalledEles = {"Mount_scopes"},
},
{
PrintName = "Tactical",
Slot = "eft_tactical",
Bone = "mod_reciever",
Offset = {
vpos = Vector(0, 10, 1), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 0),
wpos = Vector(16.65, 0.5, -4),
wang = Angle(-5, 0, 180),
},
InstalledEles = {"Gadget_Mount"},
},
{
PrintName = "Stock",
Slot = "eftmp5_stock",
DefaultAttIcon = Material("vgui/entities/eft_attachments/A2_StockIcon.png"),
Bone = "mod_stock",
DefaultAttName = "A2 Stock",
Offset = {
vpos = Vector(0, 0, 0), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 0),
wpos = Vector(2, 0.5, -3),
wang = Angle(-5, 0, 180)
},
InstalledEles = {"Default_Stock"},
},
{
PrintName = "Magazine",
DefaultAttName = "30-Round Mag",
DefaultAttIcon = Material("vgui/entities/eft_attachments/MP5_30Mag_Icon.png"),
InstalledEles = {"Magazine_30"},
Slot = "eftmp5_mag"
},
{
PrintName = "Caliber",
DefaultAttName = "9x19 Pst Gzh",
DefaultAttIcon = Material("vgui/entities/eft_attachments/9x19_Icon.png"),
Slot = "ammo_eft_9x19"
}
}
SWEP.Animations = {
["idle"] = {
Source = false
},
["ready"] = {
Source = "draw_first",
Time = 1.5,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.3
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 0.
}
},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["draw_empty"] = {
Source = "draw_empty",
Time = 0.75,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["draw"] = {
Source = "draw",
Time = 0.75,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = "shoot",
Time = 0.5,
ShellEjectAt = 0,
},
["fire_empty"] = {
Source = "shoot_dry",
Time = 1,
},
["fire_iron"] = {
Source = "shoot",
Time = 1,
ShellEjectAt = 0,
},
["fire_iron_empty"] = {
Source = "shoot_dry",
Time = 1,
},
["reload"] = {
Source = "reload",
Time = 3,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.5,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magrelease.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 1.8
}
},
},
["reload_long"] = {
Source = "reload_extended",
Time = 3,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.5,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magrelease.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 1.8
}
},
},
["reload_short"] = {
Source = "reload_decreased",
Time = 3,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.5,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magrelease.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 1.8
}
},
},
["reload_empty"] = {
Source = "reload_empty",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.45
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltlock.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 1.1
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 2.5
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 3.5
}
},
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.6,
},
["reload_long_empty"] = {
Source = "reload_empty_extended",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.45
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltlock.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 1.1
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 2.5
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 3.5
}
},
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.6,
},
["reload_short_empty"] = {
Source = "reload_empty_decreased",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
FrameRate = 24,
SoundTable = {
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltback.wav",
t = 0.45
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltlock.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magout.wav",
t = 1.1
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_magin.wav",
t = 2.5
},
{
s = "weapons/arccw_eft/mp5k/handling/mp5k_boltrelease.wav",
t = 3.5
}
},
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.6,
},
["enter_inspect"] = {
Source = "customise_begin",
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.6,
},
["idle_inspect"] = {
Source = "customise_idle",
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.6,
},
["exit_inspect"] = {
Source = "customise_end",
LHIK = true,
LHIKIn = 1,
LHIKOut = 0.6,
},
}

View File

@@ -0,0 +1,505 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Modern Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "MP7A1"
SWEP.Trivia_Class = "PDW"
SWEP.Trivia_Desc = "The MP7 is extremely compact, lightweight, can be used in very confined spaces, and is practically recoil-free. It can be carried continuously, making it the ideal personal weapon for the soldier of today. Those who carry it will be suitably armed for the broadest range of operations."
SWEP.Trivia_Manufacturer = "Heckler & Koch"
SWEP.Trivia_Calibre = "4.6x30mm"
SWEP.Trivia_Mechanism = "blowback-operated"
SWEP.Trivia_Country = "Germany"
SWEP.Trivia_Year = 2003
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_mp7/eft_mp7/models/c_eft_mp7.mdl"
SWEP.WorldModel = "models/weapons/w_smg1.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 14
SWEP.DamageMin = 14 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 11
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1050 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 740
SWEP.Recoil = 0.39
SWEP.RecoilSide = 0.091
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 850 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0,
}
}
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 17 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 400 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "smg1" -- what ammo type the gun uses
SWEP.MagID = "mp7" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/arccw_eft/mp7/eft_mp7_close.wav"
SWEP.ShootSoundSilenced = "weapons/arccw_eft/mp7/eft_mp7_surpressed.wav"
SWEP.DistantShootSound = "weapons/arccw_eft/mp7/eft_mp7_distant.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_mp5"
SWEP.ShellModel = "models/shells/shell_9mm.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.25
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.CamAttachment = 3 -- if set, this attachment will control camera movement
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[0] = "patron_in_weapon",
[1] = "patron_001",
[2] = "patron_002",
[3] = "patron_003",
[4] = "patron_004",
[5] = "patron_005"
}
SWEP.SpeedMult = 0.97
SWEP.SightedSpeedMult = 0.85
SWEP.SightTime = 0.24
SWEP.IronSightStruct = {
Pos = Vector(-3.673, 3, 1.06),
Ang = Angle(0, 0.0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "smg"
SWEP.HoldtypeSights = "ar2"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 4, 1)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(0, 3, 0.6)
SWEP.CrouchAng = Angle(0, 0, 5)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(0, 3, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 24
SWEP.AttachmentElements = {
["Flip_Sights"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
["Mag"] = {
VMBodygroups = {{ind = 1, bg = 1}},
},
["Stock"] = {
VMBodygroups = {{ind = 4, bg = 1}},
},
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-14, 6, -4),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-9, 5.5, -8.5),
ang = Angle(0, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
DefaultAttIcon = Material("vgui/entities/eft_mp7/eft_mp7_sight.png"),
Slot = {"eft_optic_large", "eft_optic_medium", "eft_optic_small"}, -- what kind of attachments can fit here, can be string or table
Bone = "mod_sight_front", -- relevant bone any attachments will be mostly referring to
Offset = {
vang = Angle(90, -90, -90),
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 180),
SlideAmount = { -- how far this attachment can slide in both directions.
-- overrides Offset
vmin = Vector(0, -4, 0),
vmax = Vector(0, -6.5, 0),
},
InstalledEles = {"Flip_Sights"},
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "eft_mp7_surpressor",
Bone = "mod_muzzle",
Offset = {
vpos = Vector(-0, 0.5, 0), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Tactical - Left",
Slot = "eft_tactical",
Bone = "mod_sight_front",
Offset = {
vpos = Vector(0.8, -1, -2), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 90),
},
},
{
PrintName = "Tactical - Right",
Slot = "eft_tactical",
Bone = "mod_sight_front",
Offset = {
vpos = Vector(-0.8, -1, -2), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, -90),
},
},
{
PrintName = "Stock",
DefaultAttName = "Unfolded Stock",
Slot = "eft_mp7_stock",
DefaultAttIcon = Material("vgui/entities/eft_mp7/eft_mp7_StockUnFolded.png"),
InstalledEles = {"Stock"},
},
{
PrintName = "Magazine",
DefaultAttName = "20-Round Mag",
DefaultAttIcon = Material("vgui/entities/eft_mp7/eft_mp7_mag20.png"),
InstalledEles = {"Magazine_20"},
Slot = "eft_mag_mp7",
Bone = "mod_magazine", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 0, 0),
vang = Angle(90, -90, -90),
},
InstalledEles = {"Mag"},
},
{
PrintName = "Caliber",
DefaultAttName = "4.6x30mm FMJ",
DefaultAttIcon = Material("vgui/entities/eft_mp7/eft_mp7_bullet.png"),
Slot = "ammo_eft_46x30"
}
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["idle_empty"] = {
Source = "idle_empty"
},
["idle_inspect"] = {
Source = "inventory_idle"
},
["draw"] = {
Source = "draw",
LHIK = false,
LHIKIn = 0,
LHIKOut = 0.9,
},
["holster"] = {
Source = "holster",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
},
["ready"] = {
Source = "draw_first", "draw_first2",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.8,
SoundTable = {
{
s = "weapons/arccw_eft/ump/mp5_weap_bolt_in_slap.wav",
t = 0.8
}
},
},
["fire"] = {
Source = "fire",
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "fire",
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload_short",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_release_button.wav",
t = 0.5
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_out.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_in.wav",
t = 1.85
}
},
},
["reload_empty"] = {
Source = "reload_short_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.8, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_release_button.wav",
t = 0.5
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_out.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_in.wav",
t = 1.85
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_bolt_in_slap.wav",
t = 3.1
}
},
},
["reload_extended"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_release_button.wav",
t = 0.5
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_out.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_in.wav",
t = 1.85
}
},
},
["reload_extended_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.8, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_release_button.wav",
t = 0.5
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_out.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_in.wav",
t = 1.85
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_bolt_in_slap.wav",
t = 3.1
}
},
},
["reload_extended2"] = {
Source = "reload_long",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_release_button.wav",
t = 0.5
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_out.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_in.wav",
t = 1.85
}
},
},
["reload_extended2_empty"] = {
Source = "reload_long_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.8, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_release_button.wav",
t = 0.5
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_out.wav",
t = 0.55
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_mag_in.wav",
t = 1.85
},
{
s = "weapons/arccw_eft/mp7/mp5_weap_bolt_in_slap.wav",
t = 3.1
}
},
},
["0_to_1"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["0_to_2"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["1_to_2"] = {
Source = "firemode_0",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["1_to_0"] = {
Source = "firemode_0",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["2_to_1"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["2_to_0"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["enter_inspect"] = {
Source = "inventory_begin",
LHIK = true,
LHIKIn = 1,
LHIKOut = 0,
},
["idle_inspect"] = {
Source = "inventory_idle",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "inventory_end",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
}

View File

@@ -0,0 +1,382 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Oldie Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "PPSH-41"
SWEP.Trivia_Class = "Submachine Gun"
SWEP.Trivia_Desc = "The PPSh-41 (pistolet-pulemyot Shpagina; Russian: Пистолет-пулемёт Шпагина; Shpagin machine pistol ) is a Soviet submachine gun designed by Georgy Shpagin as a cheap, reliable, and simplified alternative to the PPD-40."
SWEP.Trivia_Manufacturer = "Numerous"
SWEP.Trivia_Calibre = " 7.62x25mm Tokarev"
SWEP.Trivia_Mechanism = "Open Bolt"
SWEP.Trivia_Country = "Russia"
SWEP.Trivia_Year = 1941
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_ppsh/c_eft_ppsh/models/c_eft_ppsh.mdl"
SWEP.WorldModel = "models/weapons/w_smg_mp5.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 9
SWEP.DamageMin = 9 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 5
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 900 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 35 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 400
SWEP.Recoil = 0.34
SWEP.RecoilSide = 0.25
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 900 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
}
}
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 20 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 450 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.Primary.Ammo = "pistol" -- what ammo type the gun uses
SWEP.MagID = "ppsh" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/arccw_eft/ppsh/tt_fire_indoor_close.wav"
SWEP.ShootSoundSilenced = "arccw_go/mp5/mp5_01.wav"
SWEP.DistantShootSound = "weapons/arccw_eft/ppsh/tt_fire_indoor_distant.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_mp5"
SWEP.ShellModel = "models/shells/shell_9mm.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.25
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.98
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.3
SWEP.IronSightStruct = {
Pos = Vector(-3.6425, 3, 1.32),
Ang = Angle(0.75, 0.05, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 3, 0.6)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(0, 3, 0.6)
SWEP.CrouchAng = Angle(0, 0, 5)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(0, 3, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 30
SWEP.AttachmentElements = {
["magazine"] = {
VMBodygroups = {{ind = 1, bg = 1}},
WMBodygroups = {{ind = 1, bg = 1}},
},
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-14, 6, -4),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-6, 4, -7),
ang = Angle(0, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.Attachments = {
{
PrintName = "Magazine",
Slot = "eft_ppsh_magazine",
DefaultAttName = "41-round PPSH magazine",
Bone = "mod_magazine",
Offset = {
vpos = Vector(-0.0, -0, 0),
vang = Angle(90, 0, -90),
wpos = Vector(0, 0, 0),
wang = Angle(-0, 0, 0),
}
},
{
PrintName = "Caliber",
DefaultAttName = "7.62x25 - FMJ",
DefaultAttIcon = Material("vgui/entities/eft_attachments/9x19_Icon.png"),
Slot = "ammo_eft_762x25"
}
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["idle_empty"] = {
Source = "idle_empty"
},
["draw"] = {
Source = "draw",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["holster"] = {
Source = "Holster",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
},
["ready"] = {
Source = "ready",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["fire"] = {
Source = "fire",
Time = 0.05,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "fire",
Time = 0.05,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {16, 30},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/arccw_eft/ppsh/kedr_magrelease_button.wav",
t = 0.8
},
{
s = "weapons/arccw_eft/ppsh/kedr_magout.wav",
t = 0.9
},
{
s = "weapons/arccw_eft/ppsh/kedr_magin.wav",
t = 2.6
}
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {16, 30, 55},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/arccw_eft/ppsh/kedr_magrelease_button.wav",
t = 0.8
},
{
s = "weapons/arccw_eft/ppsh/kedr_magout.wav",
t = 0.9
},
{
s = "weapons/arccw_eft/ppsh/kedr_magin.wav",
t = 2.6
},
{
s = "weapons/arccw_eft/ppsh/kedr_slider_jam.wav",
t = 4.3
}
},
},
["reload_extended"] = {
Source = "reload_extended",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {16, 30},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/arccw_eft/ppsh/kedr_magrelease_button.wav",
t = 0.8
},
{
s = "weapons/arccw_eft/ppsh/kedr_magout.wav",
t = 0.9
},
{
s = "weapons/arccw_eft/ppsh/kedr_magin.wav",
t = 2.6
}
},
},
["reload_extended_empty"] = {
Source = "reload_extended_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {16, 30, 55},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
SoundTable = {
{
s = "weapons/arccw_eft/ppsh/kedr_magrelease_button.wav",
t = 0.8
},
{
s = "weapons/arccw_eft/ppsh/kedr_magout.wav",
t = 0.9
},
{
s = "weapons/arccw_eft/ppsh/kedr_magin.wav",
t = 2.6
},
{
s = "weapons/arccw_eft/ppsh/kedr_slider_jam.wav",
t = 4.3
}
},
},
["1_to_2"] = {
Source = "firemode",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["2_to_1"] = {
Source = "firemode_alt",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["enter_inspect"] = {
Source = "inspect_begin",
LHIK = true,
LHIKIn = 1,
LHIKOut = 0,
},
["idle_inspect"] = {
Source = "inspect_idle",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "inspect_end",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
}
sound.Add({
name = "ARCCW_GO_MP5.Draw",
channel = 16,
volume = 1.0,
sound = "arccw_go/mp5/mp5_draw.wav"
})
sound.Add({
name = "ARCCW_GO_MP5.Slideback",
channel = 16,
volume = 1.0,
sound = "arccw_go/mp5/mp5_Slideback.wav"
})
sound.Add({
name = "ARCCW_GO_MP5.Slideforward",
channel = 16,
volume = 1.0,
sound = "arccw_go/mp5/mp5_Slideforward.wav"
})
sound.Add({
name = "ARCCW_GO_MP5.Clipout",
channel = 16,
volume = 1.0,
sound = "arccw_go/mp5/mp5_clipout.wav"
})
sound.Add({
name = "ARCCW_GO_MP5.Clipin",
channel = 16,
volume = 1.0,
sound = "arccw_go/mp5/mp5_clipin.wav"
})
sound.Add({
name = "ARCCW_GO_MP5.Cliphit",
channel = 16,
volume = 1.0,
sound = "arccw_go/mp5/mp5_cliphit.wav"
})

View File

@@ -0,0 +1,396 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Modern Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "T-5000"
SWEP.Trivia_Class = "Bolt-Action Sniper"
SWEP.Trivia_Desc = "High-accuracy ORSIS T-5000 rifle is an outstanding result of our company designers' efforts. This model was created in cooperation with professional shooters and has the properties required for a customer in the Russian market. T-5000 model is a hand-reloaded repeater with sliding breech bolt and two front locking lugs. It is a multi-purpose weapon. Its specifications provide high-accuracy long-range shots (up to 1500m), high level of shooter's convenience while preparatory, firing and recoil phases, swift sighting line recovery, excellent reliability and ergonomics."
SWEP.Trivia_Manufacturer = "ORSIS"
SWEP.Trivia_Calibre = "7.62x51mm NATO"
SWEP.Trivia_Mechanism = "bolt-Action"
SWEP.Trivia_Country = "Russia"
SWEP.Trivia_Year = 2011
SWEP.Slot = 3
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_t5000/eft_t5000/models/c_eft_t5000.mdl"
SWEP.WorldModel = "models/weapons/w_snip_scout.mdl"
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-9, 5.5, -8.5),
ang = Angle(0, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.ViewModelFOV = 70
SWEP.DefaultBodygroups = "0000000000"
SWEP.Damage = 75
SWEP.DamageMin = 75 -- damage done at maximum range
SWEP.Range = 150 -- in METRES
SWEP.Penetration = 5
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 826 -- projectile or phys bullet muzzle velocity
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 5 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 10
SWEP.Recoil = 6
SWEP.RecoilSide = 1.5
SWEP.RecoilRise = 4
SWEP.VisualRecoilMult = 1
SWEP.Delay = 60 / 45-- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = {
"weapon_ar2",
"weapon_crossbow",
}
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 1 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 650 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "T5000" -- the magazine pool this gun draws from
SWEP.ShootVol = 115 -- volume of shoot sound
SWEP.ShootSound = "weapons/arccw_eft_t5000/sv98_fire_close.wav"
SWEP.ShootSoundSilenced = "weapons/arccw_eft_t5000/rsass_indoor_close_silenced1.wav"
SWEP.DistantShootSound = "weapons/arccw_eft_t5000/sv98_fire_far.wav"
SWEP.MuzzleEffect = "muzzleflash_4"
SWEP.ShellModel = "models/shells/shell_556.mdl"
SWEP.ShellPitch = 90
SWEP.ShellScale = 1.5
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.ProceduralViewBobAttachment = 1
SWEP.CamAttachment = 3
SWEP.SpeedMult = 0.9
SWEP.SightedSpeedMult = 0.6
SWEP.SightTime = 0.24
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[0] = "patron_in_weapon",
[1] = "patron_001",
[2] = "patron_002",
[3] = "patron_003"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ShotgunReload = false
SWEP.ManualAction = true -- pump/bolt action
SWEP.NoLastCycle = true -- do not cycle on last shot
SWEP.CaseBones = {
}
SWEP.IronSightStruct = {
Pos = Vector(-3.6, -3, 2.75),
Ang = Angle(0.1, -0.05, 0),
Magnification = 1.25,
CrosshairInSights = false,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-0, 0, 1)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.SprintPos = Vector(5, -2, -2)
SWEP.SprintAng = Angle(0, 30, 0)
SWEP.CustomizePos = Vector(0, 0, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(3, 0, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, 0)
SWEP.BarrelOffsetHip = Vector(0, 0, 0)
SWEP.BarrelLength = 30
SWEP.ExtraSightDist = 5
SWEP.AttachmentElements = {
["Muzzle"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"eft_optic_large", "eft_optic_medium", "eft_optic_small"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
Offset = {
vang = Angle(90, -90, -90),
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 180),
SlideAmount = { -- how far this attachment can slide in both directions.
-- overrides Offset
vmin = Vector(0, 18.5, 0.75),
vmax = Vector(0, 20, 0.75),
},
},
{
PrintName = "Muzzle Device", -- print name
DefaultAttName = "Standard Muzzle Device",
DefaultAttIcon = Material("vgui/entities/eft_t5000/muzzle_t5000_icon.png"),
Slot = "eft_muzzle_762x51", -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 47.5, -0.25),
vang = Angle(0, -90, 0),
},
InstalledEles = {"Muzzle"},
},
{
PrintName = "Tactical - Right",
Slot = "eft_tactical",
Bone = "weapon",
Offset = {
vpos = Vector(-1.45, 33, -0.45), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, -90),
},
},
{
PrintName = "Tactical - Left",
Slot = "eft_tactical",
Bone = "weapon",
Offset = {
vpos = Vector(1.45, 33, -0.45), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 90),
},
},
{
PrintName = "Tactical - Top",
Slot = "eft_tactical_big",
Bone = "weapon",
Offset = {
vpos = Vector(0, 33, 1), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 180),
},
},
{
PrintName = "Tactical - Bottom",
Slot = "eft_tactical",
Bone = "weapon",
Offset = {
vpos = Vector(0, 31.8, -1.85), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Caliber",
DefaultAttName = "7.62x51mm M80",
DefaultAttIcon = Material("vgui/entities/eft_attachments/762x51_icon.png"),
Slot = "ammo_eft_762x51"
}
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
},
["draw"] = {
Source = "draw",
LHIK = true,
LHIKIn = 0.25,
LHIKOut = 0.25,
},
["holster"] = {
Source = "holster",
LHIK = true,
LHIKIn = 0.25,
LHIKOut = 0.25,
},
["ready"] = {
Source = {"ready_1", "ready_2", "ready_3"},
LHIK = false,
LHIKIn = 0.25,
LHIKOut = 0.25,
SoundTable = {
{
s = "weapons/arccw_eft_t5000/t5000_bolt_1.wav",
t = 0.9
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_2.wav",
t = 1
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_3.wav",
t = 1.1
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_4.wav",
t = 1.2
}
}
},
["fire"] = {
Source = {"fire"},
},
["cycle"] = {
Source = {"chamber_1", "chamber_2", "chamber_3"},
ShellEjectAt = 20 / 30,
SoundTable = {
{
s = "weapons/arccw_eft_t5000/t5000_bolt_1.wav",
t = 0.4
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_2.wav",
t = 0.5
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_3.wav",
t = 0.6
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_4.wav",
t = 0.7
}
}
},
["fire_iron"] = {
Source = {"fire"},
},
["cycle_ads"] = {
Source = {"chamber_1", "chamber_2", "chamber_3"},
ShellEjectAt = 20 / 30,
SoundTable = {
{
s = "weapons/arccw_eft_t5000/t5000_bolt_1.wav",
t = 0.4
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_2.wav",
t = 0.5
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_3.wav",
t = 0.6
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_4.wav",
t = 0.7
}
}
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 30,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.2,
SoundTable = {
{
s = "weapons/arccw_eft_t5000/t5000_magbutton.wav",
t = 0.6
},
{
s = "weapons/arccw_eft_t5000/t5000_mag_out.wav",
t = 0.75
},
{
s = "weapons/arccw_eft_t5000/t5000_mag_in.wav",
t = 2.8
}
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 30,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.2,
SoundTable = {
{
s = "weapons/arccw_eft_t5000/t5000_mag_out.wav",
t = 0.7
},
{
s = "weapons/arccw_eft_t5000/t5000_mag_in.wav",
t = 2.3
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_1.wav",
t = 3.5
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_2.wav",
t = 3.6
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_3.wav",
t = 3.7
},
{
s = "weapons/arccw_eft_t5000/t5000_bolt_4.wav",
t = 3.8
}
},
},
["enter_inspect"] = {
Source = "inventory_begin",
LHIK = true,
LHIKIn = 1,
LHIKOut = 0,
},
["idle_inspect"] = {
Source = "inventory_idle",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "inventory_end",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
}

View File

@@ -0,0 +1,383 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Modern Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "UMP-45"
SWEP.Trivia_Class = "Submachine Gun"
SWEP.Trivia_Desc = "Heckler & Koch UMP - submachine gun, designed by German company Heckler & Koch in the 1990s as a lighter and cheaper analog of the MP5. This version is designed to fire a .45 ACP cartridge and has a reduced to 600 rpm rate of fire."
SWEP.Trivia_Manufacturer = "Heckler & Koch"
SWEP.Trivia_Calibre = ".45 ACP"
SWEP.Trivia_Mechanism = "blowback-operated"
SWEP.Trivia_Country = "Germany"
SWEP.Trivia_Year = 2000
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_ump/eft_ump/models/c_eft_ump.mdl"
SWEP.WorldModel = "models/weapons/w_smg_ump45.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 12
SWEP.DamageMin = 12 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 5
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 700 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 400
SWEP.Recoil = 0.275
SWEP.RecoilSide = 0.125
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 550 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0,
}
}
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 14 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 300 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.Primary.Ammo = "pistol" -- what ammo type the gun uses
SWEP.MagID = "ppsh" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/arccw_eft/ump/gyrza_close1.wav"
SWEP.ShootSoundSilenced = "arccw_go/mp5/mp5_01.wav"
SWEP.DistantShootSound = "weapons/arccw_eft/ump/gyrza_distant1.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_mp5"
SWEP.ShellModel = "models/shells/shell_9mm.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.25
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.CamAttachment = 3 -- if set, this attachment will control camera movement
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[0] = "patron_in_weapon",
[1] = "patron_001",
[2] = "patron_002",
[3] = "patron_003",
[4] = "patron_004",
[5] = "patron_005",
[6] = "patron_006",
[7] = "patron_007",
[8] = "patron_008",
[9] = "patron_009",
[10] = "patron_010",
[11] = "patron_011",
[12] = "patron_012",
[13] = "patron_013",
[14] = "patron_014",
[15] = "patron_015",
[16] = "patron_016",
[17] = "patron_017",
[18] = "patron_018",
[19] = "patron_019",
[20] = "patron_020",
[21] = "patron_021",
[22] = "patron_022",
[23] = "patron_023",
[24] = "patron_024",
[25] = "patron_025"
}
SWEP.SpeedMult = 0.96
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.3
SWEP.IronSightStruct = {
Pos = Vector(-3.6425, 3, 1.7),
Ang = Angle(0, 0.0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 4, 1)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(0, 3, 0.6)
SWEP.CrouchAng = Angle(0, 0, 5)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(0, 3, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 30
SWEP.AttachmentElements = {
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-14, 6, -4),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-6, 4, -8.5),
ang = Angle(0, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
DefaultAttIcon = Material("vgui/entities/eft_ump/eft_ump_iron.png"),
Slot = {"eft_optic_large", "eft_optic_medium", "eft_optic_small"}, -- what kind of attachments can fit here, can be string or table
Bone = "mod_reciever", -- relevant bone any attachments will be mostly referring to
Offset = {
vang = Angle(90, -90, -90),
wang = Angle(-5, 0, 180)
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 180),
SlideAmount = { -- how far this attachment can slide in both directions.
-- overrides Offset
vmin = Vector(0, -4.5, 3),
vmax = Vector(0, -1, 3),
},
},
{
PrintName = "Tactical - Left",
Slot = "eft_tactical",
Bone = "mod_reciever",
Offset = {
vpos = Vector(1, 4, 1), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 90),
},
},
{
PrintName = "Tactical - Right",
Slot = "eft_tactical",
Bone = "mod_reciever",
Offset = {
vpos = Vector(-1.1, 4, 1), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, -90),
},
},
{
PrintName = "Underbarrel",
Slot = "eft_foregrip",
Bone = "mod_reciever",
DefaultAttName = "No Underbarrel",
Offset = {
vpos = Vector(0, 5, 0.1),
vang = Angle(90, -90, -90),
},
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["idle_empty"] = {
Source = "idle_empty"
},
["idle_inspect"] = {
Source = "inventory_idle"
},
["draw"] = {
Source = "draw",
LHIK = false,
LHIKIn = 0,
LHIKOut = 0.9,
},
["holster"] = {
Source = "holster",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
},
["ready"] = {
Source = "draw_first", "draw_first2",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.8,
SoundTable = {
{
s = "weapons/arccw_eft/ump/mp5_weap_bolt_in_slap.wav",
t = 0.8
}
},
},
["fire"] = {
Source = "fire",
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "fire",
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.4, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/ump/mp5_weap_mag_release_button.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/ump/mp5_weap_mag_out.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/ump/mp5_weap_mag_in.wav",
t = 2
}
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4, -- In/Out controls how long it takes to switch to regular animation.
LHIKOut = 0.8, -- (not actually inverse kinematics)
LHIKEaseIn = 0.4, -- how long LHIK eases in.
LHIKEaseOut = 0.4, -- if no value is specified then ease = lhikin
Checkpoints = { 0.8, 1.9 },
SoundTable = {
{
s = "weapons/arccw_eft/ump/mp5_weap_mag_release_button.wav",
t = 0.35
},
{
s = "weapons/arccw_eft/ump/mp5_weap_mag_out.wav",
t = 0.4
},
{
s = "weapons/arccw_eft/ump/mp5_weap_mag_in.wav",
t = 2
},
{
s = "weapons/arccw_eft/ump/mp5_weap_bolt_in_slap.wav",
t = 3.1
}
},
},
["0_to_1"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["0_to_2"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["1_to_2"] = {
Source = "firemode_0",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["1_to_0"] = {
Source = "firemode_0",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["2_to_1"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["2_to_0"] = {
Source = "firemode_1",
LHIK = false,
LHIKIn = 0.2,
LHIKOut = 0.2,
},
["enter_inspect"] = {
Source = "inventory_begin",
LHIK = true,
LHIKIn = 1,
LHIKOut = 0,
},
["idle_inspect"] = {
Source = "inventory_idle",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "inventory_end",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
},
}

View File

@@ -0,0 +1,735 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Modern Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "HK USP .45"
SWEP.TrueName = "HK USP .45"
SWEP.Trivia_Class = "Pistol"
SWEP.Trivia_Desc = "The HK USP (Universelle Selbstladepistole - Universal Self-loading Pistol) pistol is a further replacement of the HK P7 series pistols. Internationally accepted as an accurate and ultra-reliable handgun. Using a modified Browning-type action with a special patented recoil reduction system, the USP recoil reduction system reduces recoil effects on pistol components and also lowers the recoil forces felt by the shooter. This particular variant is chambered in .45 ACP. Manufactured by Heckler & Koch."
SWEP.Trivia_Manufacturer = "Heckler & Koch"
SWEP.Trivia_Calibre = ".45 ACP"
SWEP.Trivia_Mechanism = "Short Recoil"
SWEP.Trivia_Country = "Germany"
SWEP.Trivia_Year = 1989
SWEP.Slot = 1
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arc_eft_usp/c_eft_usp.mdl"
SWEP.WorldModel = "models/weapons/arccw_go/v_pist_m9.mdl"
SWEP.ViewModelFOV = 70
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 15
SWEP.DamageMin = 15 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 12
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 17 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 24
SWEP.PhysBulletMuzzleVelocity = 200
SWEP.TriggerDelay = false
SWEP.ReloadInSights = true
SWEP.ReloadInSights_FOVMult = 1
SWEP.Recoil = 1.0
SWEP.RecoilSide = 0.5
SWEP.RecoilRise = 0.24
SWEP.RecoilPunch = 2.5
SWEP.VisualRecoilMult = 12
SWEP.RecoilPunchBackMax = 15
SWEP.RecoilPunchBackMaxSights = 15 -- may clip with scopes
SWEP.Delay = 60 / 450 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_pistol"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 12 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 350 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "pistol" -- what ammo type the gun uses
SWEP.MagID = "USP" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 110 -- pitch of shoot sound
SWEP.ShootSound = "arc_eft_usp/usp_fire_close_alt.wav"
SWEP.ShootSoundSilenced = "arc_eft_usp/usp_fire_surpressed_alt.wav"
SWEP.DistantShootSound = "arc_eft_usp/usp_fire_distant_alt.wav"
SWEP.MuzzleEffect = "muzzleflash_pistol"
SWEP.ShellModel = "models/shells/shell_9mm.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.75
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.CamAttachment = 3 -- if set, this attachment will control camera movement
SWEP.SpeedMult = 0.98
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.2
SWEP.IronSightStruct = {
Pos = Vector(-3.65, 5, 2.17),
Ang = Angle(0, 0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.Jamming = false
SWEP.HeatCapacity = 32
SWEP.HeatDissipation = 1
SWEP.HeatLockout = true -- overheating means you cannot fire until heat has been fully depleted
SWEP.HeatFix = true -- when the "fix" animation is played, all heat is restored.
SWEP.Malfunction = false
SWEP.MalfunctionJam = false -- After a malfunction happens, the gun will dryfire until reload is pressed. If unset, instead plays animation right after.
SWEP.MalfunctionTakeRound = false -- When malfunctioning, a bullet is consumed.
SWEP.MalfunctionWait = 0 -- The amount of time to wait before playing malfunction animation (or can reload)
SWEP.MalfunctionMean = 64 -- The mean number of shots between malfunctions, will be autocalculated if nil
SWEP.MalfunctionVariance = 0.2 -- The fraction of mean for variance. e.g. 0.2 means 20% variance
SWEP.MalfunctionSound = "weapons/arccw/malfunction.wav"
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "pistol"
SWEP.HoldtypeSights = "revolver"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL
SWEP.ActivePos = Vector(0, 2, 1.5)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-1, -1, 1.4)
SWEP.CrouchAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelOffsetCrouch = Vector(0, 0, -2)
SWEP.CustomizePos = Vector(0, 2, 0.5)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelLength = 18
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[1] = {"shellport", "patron_in_weapon"},
[2] = "patron_001",
[3] = "patron_002",
[4] = "patron_003",
[5] = "patron_004",
[6] = "patron_005",
[7] = "patron_006",
[8] = "patron_007",
[9] = "patron_008",
[10] = "patron_009",
[11] = "patron_010",
[12] = "patron_011",
[13] = "patron_012",
}
SWEP.AttachmentElements = {
["hidereceiver"] = {
VMBodygroups = {{ind = 1, bg = 1}},
},
["showmount"] = {
VMBodygroups = {{ind = 9, bg = 1}},
},
["hidemount"] = {
VMBodygroups = {{ind = 9, bg = 0}},
},
["hidesights"] = {
VMBodygroups = {{ind = 6, bg = 1}},
},
["sightmount"] = {
VMBodygroups = {{ind = 6, bg = 2}},
},
["hidebarrel"] = {
VMBodygroups = {{ind = 2, bg = 1}},
},
["45_AP"] = {
VMBodygroups = {{ind = 8, bg = 1}},
},
["45_RIP"] = {
VMBodygroups = {{ind = 8, bg = 2}},
},
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-12.6, 5.5, -7),
ang = Angle(-0, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "None",
//DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_sights_standard.png"),
Slot = "eft_optic_small", -- what kind of attachments can fit here, can be string or table
Bone = "mod_reciever", -- relevant bone any attachments will be mostly referring to
CorrectiveAng = Angle(0, 180, 0),
InstalledEles = {"sightmount"},
GivesFlags = {"opticattached"},
Offset = {
vpos = Vector(0, -2, 0.9),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0),
},
},
{
PrintName = "Iron Sights", -- print name
DefaultAttName = "Iron Sights",
DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_sights_standard.png"),
Slot = "eft_usp_sights", -- what kind of attachments can fit here, can be string or table
Bone = "mod_reciever", -- relevant bone any attachments will be mostly referring to
CorrectiveAng = Angle(0, 180, 0),
InstalledEles = {"hidesights"},
ExcludeFlags = {"opticattached"},
Offset = {
vpos = Vector(0, -2.4, 0.75),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0),
},
},
{
PrintName = "Slide", -- print name
DefaultAttName = "Standard Slide",
DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_slide_default.png"),
Slot = "eft_usp_slide", -- what kind of attachments can fit here, can be string or table
Bone = "mod_reciever", -- relevant bone any attachments will be mostly referring to
InstalledEles = {"hidereceiver"},
Offset = {
vpos = Vector(0, 0, -0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0),
},
},
{
PrintName = "Compensator", -- print name
DefaultAttName = "No Compensator",
//DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_barrel_match.png"),
Slot = "eft_usp_compensator", -- what kind of attachments can fit here, can be string or table
GivesFlags = {"Compensator"},
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 23.7, -0.45),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0),
},
},
{
PrintName = "Barrel", -- print name
DefaultAttName = "Standard Barrel",
DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_barrel_match.png"),
Slot = "eft_usp_barrel", -- what kind of attachments can fit here, can be string or table
Bone = "mod_barrel", -- relevant bone any attachments will be mostly referring to
InstalledEles = {"hidebarrel"},
Offset = {
vpos = Vector(0, 0, -0),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0),
},
},
{
PrintName = "Muzzle", -- print name
DefaultAttName = "No Muzzle Device",
//DefaultAttIcon = Material("vgui/entities/eft_attachments/usp_barrel_match.png"),
Slot = "eft_muzzle_1911", -- what kind of attachments can fit here, can be string or table
ExcludeFlags = {"Compensator"},
RequireFlags = {"threadedbarrel"},
Bone = "mod_barrel", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 3.7, 0.45),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0),
},
},
{
PrintName = "Tactical", -- print name
DefaultAttName = "No Tactical",
//ExcludeFlags = {"Compensator"},
Slot = {"eft_tactical", "eft_usp_mount"}, -- what kind of attachments can fit here, can be string or table
Bone = "weapon", -- relevant bone any attachments will be mostly referring to
InstalledEles = {"showmount"},
Offset = {
vpos = Vector(0, 23.7, -0.45),
vang = Angle(0, -90, 0),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0),
},
},
{
PrintName = "Caliber",
DefaultAttName = ".45 ACP FMJ",
DefaultAttIcon = Material("vgui/entities/eft_attachments/9x19_Icon.png"),
Slot = "ammo_eft_45"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["idle_empty"] = {
Source = "idle_empty"
},
["draw"] = {
Source = "draw",
Time = 1.2,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "eft_shared/weap_in.wav",
t = 0
}
},
},
["draw_empty"] = {
Source = "draw_empty",
Time = 1.2,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "eft_shared/weap_in.wav",
t = 0
}
},
},
["holster"] = {
Source = "holster",
Time = 1.2,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{
s = "eft_shared/weap_out.wav",
t = 0
}
},
},
["holster_empty"] = {
Source = "holster_empty",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{
s = "eft_shared/weap_out.wav",
t = 0
}
},
},
["ready"] = {
Source = "ready",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{
s = "eft_shared/weap_pistol_use.wav",
t = 0.45
},
{
s = "arc_eft_usp/usp_slider_in.wav",
t = 0.8
}
},
},
["trigger"] = {
Source = "trigger",
Time = 0.1,
},
["fire"] = {
Source = "fire_new",
Time = 0.2,
ShellEjectAt = 0,
SoundTable = {
{
s = "eft_shared/weap_trigger_hammer.wav",
t = 0.05
}
},
},
["fire_iron"] = {
Source = "fire_new",
Time = 0.2,
ShellEjectAt = 0.05,
SoundTable = {
{
s = "eft_shared/weap_trigger_hammer.wav",
t = 0
}
},
},
["fire_iron_empty"] = {
Source = "fire_dry",
Time = 0.0,
ShellEjectAt = 0,
},
["fire_empty"] = {
Source = "fire_dry",
Time = 0.0,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
LastClip1OutTime = 2, -- when should the belt visually replenish on a belt fed
SoundTable = {
{
s = "eft_shared/weapon_generic_pistol_spin1.wav",
t = 0.1
},
{
s = "eft_shared/weap_magrelease_button.wav",
t = 0.6
},
{
s = "arc_eft_usp/usp_mag_out.wav",
t = 0.7
},
{
s = "arc_eft_usp/usp_mag_pullout.wav",
t = 0.75
},
{
s = "eft_shared/weap_magin_rig.wav",
t = 1.3
},
{
s = "eft_shared/weap_mag_pullout.wav",
t = 1.9
},
{
s = "arc_eft_usp/usp_mag_pullin.wav",
t = 3
},
{
s = "arc_eft_usp/usp_mag_in.wav",
t = 3.1
}
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 0.4,
LastClip1OutTime = 2, -- when should the belt visually replenish on a belt fed
SoundTable = {
{
s = "eft_shared/weapon_generic_pistol_spin1.wav",
t = 0.1
},
{
s = "eft_shared/weap_magrelease_button.wav",
t = 0.6
},
{
s = "arc_eft_usp/usp_mag_out.wav",
t = 0.7
},
{
s = "arc_eft_usp/usp_mag_pullout.wav",
t = 0.75
},
{
s = "eft_shared/weap_magin_rig.wav",
t = 1.3
},
{
s = "eft_shared/weap_mag_pullout.wav",
t = 1.9
},
{
s = "arc_eft_usp/usp_mag_pullin.wav",
t = 3
},
{
s = "arc_eft_usp/usp_mag_in.wav",
t = 3.1
},
{
s = "eft_shared/weap_bolt_catch_button.wav",
t = 4.1
},
{
s = "eft_shared/weap_pistol_use.wav",
t = 4.125
},
{
s = "arc_eft_usp/usp_slider_in.wav",
t = 4.3
}
},
},
["enter_inspect"] = {
Source = "inventory_start",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{
s = "eft_shared/weap_handoff.wav",
t = 0
},
{
s = "eft_shared/weapon_generic_pistol_spin1.wav",
t = 0.1
},
{
s = "eft_shared/weapon_generic_pistol_spin3.wav",
t = 0.5
}
},
},
["enter_inspect_empty"] = {
Source = "inventory_start_empty",
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{
s = "eft_shared/weap_handoff.wav",
t = 0
},
{
s = "eft_shared/weapon_generic_pistol_spin1.wav",
t = 0.1
},
{
s = "eft_shared/weapon_generic_pistol_spin3.wav",
t = 0.5
}
},
},
["idle_inspect"] = {
Source = "inventory",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["idle_inspect_empty"] = {
Source = "inventory_empty",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "inventory_end_alt",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
SoundTable = {
{
s = "eft_shared/weapon_generic_pistol_spin1.wav",
t = 0.1
},
{
s = "eft_shared/weapon_generic_pistol_spin3.wav",
t = 0.5
},
{
s = "eft_shared/weap_magrelease_button.wav",
t = 1
},
{
s = "arc_eft_usp/usp_mag_out.wav",
t = 1.2
},
{
s = "arc_eft_usp/usp_mag_pullout.wav",
t = 1.1
},
{
s = "eft_shared/weapon_generic_pistol_spin2.wav",
t = 2
},
{
s = "eft_shared/weapon_generic_pistol_spin4.wav",
t = 2.4
},
{
s = "arc_eft_usp/usp_mag_pullin.wav",
t = 3.45
},
{
s = "arc_eft_usp/usp_mag_in.wav",
t = 3.55
},
{
s = "eft_shared/weapon_generic_pistol_spin4.wav",
t = 3.9
},
{
s = "eft_shared/weapon_generic_pistol_spin4.wav",
t = 4.2
},
{
s = "eft_shared/weap_pistol_use.wav",
t = 5.1
},
{
s = "arc_eft_usp/usp_slider_in.wav",
t = 6
},
{
s = "eft_shared/weapon_generic_pistol_spin2.wav",
t = 6.2
},
{
s = "eft_shared/weapon_generic_pistol_spin4.wav",
t = 6.3
}
},
},
["exit_inspect_empty"] = {
Source = "inventory_end_new_empty",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.3,
SoundTable = {
{
s = "eft_shared/weapon_generic_pistol_spin1.wav",
t = 0.1
},
{
s = "eft_shared/weapon_generic_pistol_spin3.wav",
t = 0.5
},
{
s = "eft_shared/weap_magrelease_button.wav",
t = 1
},
{
s = "arc_eft_usp/usp_mag_out.wav",
t = 1.2
},
{
s = "arc_eft_usp/usp_mag_pullout.wav",
t = 1.1
},
{
s = "eft_shared/weapon_generic_pistol_spin2.wav",
t = 2
},
{
s = "eft_shared/weapon_generic_pistol_spin4.wav",
t = 2.4
},
{
s = "arc_eft_usp/usp_mag_pullin.wav",
t = 3.45
},
{
s = "arc_eft_usp/usp_mag_in.wav",
t = 3.55
},
{
s = "eft_shared/weapon_generic_pistol_spin4.wav",
t = 3.9
},
{
s = "eft_shared/weapon_generic_pistol_spin4.wav",
t = 4.2
}
},
},
["fix"] = {
Source = {"jam_soft"},
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
SoundTable = {
{
s = "eft_shared/weap_pistol_use.wav",
t = 0.75
},
{
s = "eft_shared/weap_round_out.wav",
t = 0.9
},
{
s = "arc_eft_usp/usp_slider_in.wav",
t = 1.2
}
},
},
["unjam"] = {
Source = {"jam_feed", "jam_shell"},
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
SoundTable = {
{
s = "eft_shared/weap_round_out.wav",
t = 2.3
},
{
s = "arc_eft_usp/usp_slider_in.wav",
t = 2.6
}
},
},
}

View File

@@ -0,0 +1,305 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Special Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Volk-ed PKP"
SWEP.Trivia_Class = "Energy Machine Gun"
SWEP.Trivia_Desc = "Belt-fed fully automatic energy weapon. Can not penetrate. Damage increase over long distance"
SWEP.Trivia_Manufacturer = "Some guy with a volk and pkp"
SWEP.Trivia_Calibre = "Energy Cells"
SWEP.Trivia_Mechanism = "Magic"
SWEP.Trivia_Country = "The Motherland"
SWEP.Trivia_Year = 2077
SWEP.CrouchPos = Vector(-1, 3, -0.5)
SWEP.CrouchAng = Angle(0, 0, -15)
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw/fml/c_volked_pkp.mdl"
SWEP.WorldModel = "models/weapons/arccw/fml/w_volked_pkp.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultBodygroups = "00000000"
SWEP.DefaultWMBodygroups = "00000000"
SWEP.Damage = 15
SWEP.DamageMin = 15
SWEP.Range = 500 -- in METRES
SWEP.Penetration = 1
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 900 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 3
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 100 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 120
SWEP.ReducedClipSize = 60
SWEP.Recoil = 0.4
SWEP.RecoilSide = 0.15
SWEP.RecoilRise = 0.75
SWEP.Delay = 60 / 700 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 0
}
}
SWEP.CustomizePos = Vector(10, 2, -3)
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 80
SWEP.AccuracyMOA = 3.5 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 700 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 220
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "m200b" -- the magazine pool this gun draws from
SWEP.ShootVol = 70 -- volume of shoot sound
SWEP.ShootPitch = 120 -- pitch of shoot sound
SWEP.ShootSound = "weapons/fml_pkp_volk/fire.wav"
SWEP.ShootSoundSilenced = "weapons/fml_pkp_volk/ak74_suppressed_fp.wav"
SWEP.DistantShootSound = "weapons/arccw/negev/negev-1-distant.wav"
SWEP.MuzzleEffect = "muzzleflash_smg"
SWEP.ShellModel = "models/weapons/arccw/fml/shell_volked_pkp.mdl"
SWEP.ShellPitch = 95
SWEP.ShellScale = 1.5
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.65
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.475
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
[6] = "Weapon_Bullet0",
[5] = "Weapon_Bullet",
[4] = "Weapon_Bullet2",
[3] = "Weapon_Bullet3",
[2] = "Weapon_Bullet4",
[1] = "Weapon_Bullet5",
}
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-2.523, -3, 0.469),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.MeleeTime = 0.5
SWEP.MeleeAttackTime = 0.1
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 5, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(8, -2, -4.011)
SWEP.HolsterAng = Angle(1.898, 54.613, -10.113)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 32
SWEP.AttachmentElements = {
["bkrail"] = {
VMElements = {
{
Model = "models/weapons/arccw/atts/backup_rail.mdl",
Bone = "Weapon_Main",
Offset = {
pos = Vector(0, -3.8, 12),
ang = Angle(180, 90, 180),
},
},
}
},
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"optic_lp", "optic"}, -- what kind of attachments can fit here, can be string or table
Bone = "Weapon_Lid", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, -0.5, -1.5), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
wpos = Vector(7, 0.9, -6),
wang = Angle(-9.738, -1, 180)
},
InstalledEles = {"nors"},
CorrectiveAng = Angle(0, 0, 0),
ExtraSightDist = 3
},
{
PrintName = "Backup Optic", -- print name
Slot = {"optic_lp"}, -- what kind of attachments can fit here, can be string or table
Bone = "Weapon_Main", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-0.6, -4.2, 12), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -45),
wpos = Vector(3, 0.832, -2),
wang = Angle(-10.393, 0, 180)
},
InstalledEles = {"bkrail"},
KeepBaseIrons = true,
ExtraSightDist = 12
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "muzzle",
Bone = "Weapon_Main",
Offset = {
vpos = Vector(0, -2, 22),
vang = Angle(90, 0, -90),
wpos = Vector(25, 0.825, -7.5),
wang = Angle(-9.738, -1, 180)
},
},
{
PrintName = "Underbarrel",
Slot = {"foregrip", "ubgl", "bipod"},
Bone = "Weapon_Main",
Offset = {
vpos = Vector(0, -1, 14.738),
vang = Angle(90, 0, -90),
wpos = Vector(14.329, 0.602, -4.453),
wang = Angle(-10.216, 0, 180)
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "Weapon_Main",
Offset = {
vpos = Vector(-0.5, 0, 22), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
wpos = Vector(17, 2, -7),
wang = Angle(-10.393, 0, -90)
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Fire Group",
Slot = "fcg",
DefaultAttName = "Standard FCG"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
{
PrintName = "Charm",
DefaultAttName = "None",
Slot = {"charm", "fml_charm"},
Bone = "Weapon_Main",
Offset = {
vpos = Vector(1, -2, 4),
vang = Angle(90, 0, -90),
wpos = Vector(8, 1, -3),
wang = Angle(-9, 0, 180)
},
FreeSlot = true,
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 1
},
["draw"] = {
Source = "draw",
Time = 0.35,
SoundTable = {{s = "weapons/arccw/m249/m249_draw.wav", t = 0}},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["ready"] = {
Source = "deploy",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = "fire",
Time = 0.5,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "iron",
Time = 0.5,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LastClip1OutTime = 95/60,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.5,
},
["reload_empty"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LastClip1OutTime = 95/60,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.5,
},
["bash"] = {
Source = {"melee"},
Time = 30/60,
},
}

View File

@@ -0,0 +1,320 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
-- Model adapted from this: https://steamcommunity.com/sharedfiles/filedetails/?id=646754302
-- Thanks!
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Special Weaponry" -- edit this if you like
SWEP.AdminOnly = false
SWEP.AutoIconAngle = Angle(90, 0, 0)
SWEP.PrintName = "M2014 Gauss Rifle"
SWEP.Trivia_Class = "Antimateriel Rifle"
SWEP.Trivia_Desc = "Advanced anti-materiel rifle developed following controversial tests at the 2020 Lingshan Incident. Its lethality is comparable to .50 BMG rounds, but has more power and less recoil."
SWEP.Trivia_Manufacturer = "CryNet Armories"
SWEP.Trivia_Calibre = "10mm Slug"
SWEP.Trivia_Mechanism = "Magnetic Acceleration"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 2025
SWEP.Slot = 4
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw/c_gauss_rifle.mdl"
SWEP.WorldModel = "models/weapons/arccw/w_gauss_rifle.mdl"
SWEP.ViewModelFOV = 60
SWEP.Damage = 200
SWEP.DamageMin = 100 -- damage done at maximum range
SWEP.RangeMin = 50
SWEP.Range = 200 -- in METRES
SWEP.Penetration = 80
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 12000 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.Tracer = "ToolTracer"
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 3
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 4 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 8
SWEP.ReducedClipSize = 2
SWEP.Recoil = 4.5
SWEP.RecoilSide = 2
SWEP.MaxRecoilBlowback = 0.7
SWEP.Delay = 60 / 50 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = {"weapon_crossbow"}
SWEP.NPCWeight = 10
SWEP.AccuracyMOA = 1 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 900 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.Primary.Ammo = "SniperPenetratedRound" -- what ammo type the gun uses
SWEP.MagID = "gauss_rifle" -- the magazine pool this gun draws from
SWEP.ShootVol = 135 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/arccw/gauss_rifle/gauss-1.wav"
SWEP.ShootSoundSilenced = "weapons/arccw/m4a1/m4a1_01.wav"
SWEP.DistantShootSound = nil --"weapons/arccw/bfg/bfg_fire_distant.wav"
SWEP.MuzzleEffect = nil
SWEP.ShellModel = "models/shells/shell_338mag.mdl"
SWEP.ShellPitch = 60
SWEP.ShellScale = 2
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SightTime = 0.45
SWEP.SpeedMult = 0.85
SWEP.SightedSpeedMult = 0.5
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-1.841, 0, 0.879),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_RPG
SWEP.ActivePos = Vector(1, 4, 0.5)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CustomizePos = Vector(7, 6, -2)
SWEP.HolsterPos = Vector(6, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 55
SWEP.AttachmentElements = {
["extendedmag"] = {
VMBodygroups = {{ind = 1, bg = 1}},
},
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"optic", "optic_sniper", "optic_lp"}, -- what kind of attachments can fit here, can be string or table
Bone = "body", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-5, -4.5, 0), -- offset that the attachment will be relative to the bone
vang = Angle(180, 0, -90),
wpos = Vector(10, 1, -8),
wang = Angle(-5, 0, 180)
},
VMScale = Vector(1, 1, 1), --Vector(0.75, 0.75, 0.75),
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 0, 0),
Installed = "optic_gauss_scope",
ExtraSightDist = 5,
},
{
PrintName = "Capacitor",
DefaultAttName = "Standard Capacitors",
Slot = "gauss_rifle_capacitor",
},
{
PrintName = "Underbarrel",
Slot = {"foregrip", "bipod"},
Bone = "body",
Offset = {
vpos = Vector(-14, -1, 0),
vang = Angle(180, 0, -90),
wpos = Vector(18, 1, -4),
wang = Angle(-5, 0, 180)
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "body",
Offset = {
vpos = Vector(-20, -1.2, 0),
vang = Angle(180, 0, -90),
wpos = Vector(28, 1, -5),
wang = Angle(-5, 0, 180)
},
ExtraSightDist = 15
},
{
PrintName = "Munitions",
DefaultAttName = "Iron Slugs",
Slot = "gauss_rifle_bullet"
},
{
PrintName = "Perk",
Slot = {"perk", "go_perk"}
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "body", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(-5, -1.5, 0.7), -- offset that the attachment will be relative to the bone
vang = Angle(180, 0, -90),
wpos = Vector(10, 2, -4),
wang = Angle(-5, 0, 180)
},
},
}
SWEP.Hook_PreDoEffects = function(wep, fx)
return true
end
SWEP.Hook_SelectFireAnimation = function(wep, anim)
local cap = wep.Attachments[2].Installed
if anim and cap == "gauss_rifle_capacitor" then
return anim .. "_turbo"
end
end
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 4
},
["draw"] = {
Source = "draw",
Time = 1.5,
LHIK = false
},
["fire"] = {
Source = "shoot",
Time = 1.2,
},
["fire_turbo"] = {
Source = "shoot_turbo",
Time = 1.2,
},
["fire_iron"] = {
Source = "shoot_iron",
Time = 1.2,
},
["fire_iron_turbo"] = {
Source = "shoot_iron",
Time = 1.2 / 1.5,
},
["reload"] = {
Source = "reload",
Time = 5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {25, 50, 70, 100, 115},
FrameRate = 37,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 1,
},
}
sound.Add({
name = "ArcCW_Gauss_Rifle.Draw",
channel = CHAN_WEAPON,
volume = 1.0,
sound = "weapons/arccw/gauss_rifle/draw.wav"
})
sound.Add({
name = "ArcCW_Gauss_Rifle.Boltback",
channel = CHAN_WEAPON,
volume = 1.0,
sound = "weapons/arccw/gauss_rifle/boltback.wav"
})
sound.Add({
name = "ArcCW_Gauss_Rifle.Boltforward",
channel = CHAN_WEAPON,
volume = 1.0,
sound = "weapons/arccw/gauss_rifle/boltforward.wav"
})
sound.Add({
name = "ArcCW_Gauss_Rifle.Clipout",
channel = CHAN_WEAPON,
volume = 1.0,
sound = "weapons/arccw/gauss_rifle/clipout.wav"
})
sound.Add({
name = "ArcCW_Gauss_Rifle.Clipin",
channel = CHAN_WEAPON,
volume = 1.0,
sound = "weapons/arccw/gauss_rifle/clipin.wav"
})
if engine.ActiveGamemode() == "terrortown" then
SWEP.Kind = WEAPON_EQUIP1
SWEP.Slot = 6
SWEP.CanBuy = { ROLE_TRAITOR }
SWEP.LimitedStock = true
SWEP.AutoSpawnable = false
SWEP.EquipMenuData = {
type = "Weapon",
desc = "Extremely powerful futuristic antimaterial rifle.\nHas unique and noticable tracers.\nCapacitor and munition attachments are free."
}
SWEP.Icon = "arccw/ttticons/arccw_m107.png"
end
local cvar = CreateConVar("arccw_gauss_rifle_op", "0", FCVAR_REPLICATED + FCVAR_ARCHIVE, "Enable to make the Gauss Rifle very overpowered. Set to 2 to also make it admin only.", 0, 2)
if cvar:GetInt() > 0 then
SWEP.AdminOnly = (cvar:GetInt() > 1)
SWEP.Recoil = 2.5
SWEP.RecoilSide = 1
SWEP.HipDispersion = 300
SWEP.MoveDispersion = 150
SWEP.SpeedMult = 0.9
SWEP.SightedSpeedMult = 0.6
SWEP.SightTime = 0.3
end

View File

@@ -0,0 +1,86 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base_nade"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "ArcCW - GSO (Gear)" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "M84 Stun"
SWEP.Trivia_Class = "Hand Grenade"
SWEP.Trivia_Desc = "The M84 is the currently-issued stun grenade (\"flashbang\") of the United States Armed Forces and SWAT teams throughout the United States. Upon detonation, it emits an intensely loud \"bang\" of 170180 decibels and a blinding flash of more than one million candela within five feet of initiation, sufficient to cause immediate flash blindness, deafness, tinnitus, and inner ear disturbance. Exposed personnel experience disorientation, confusion and loss of coordination and balance. While these effects are all intended to be temporary, there is risk of permanent injury. Consequently, the M84 is classified as a less-lethal weapon."
SWEP.Trivia_Manufacturer = "Picatinny Arsenal"
SWEP.Trivia_Calibre = "N/A"
SWEP.Trivia_Mechanism = "Magnesium/Ammonium Nitrate Mix"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1995
SWEP.Slot = 4
SWEP.NotForNPCs = true
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw_go/v_eq_flashbang.mdl"
SWEP.WorldModel = "models/weapons/arccw_go/w_eq_flashbang_thrown.mdl"
SWEP.ViewModelFOV = 60
SWEP.WorldModelOffset = {
pos = Vector(3, 2, -1),
ang = Angle(-10, 0, 180)
}
SWEP.FuseTime = 2.5
SWEP.Throwing = true
SWEP.Primary.ClipSize = 1
SWEP.MuzzleVelocity = 1000
SWEP.ShootEntity = "arccw_thr_go_flash"
SWEP.TTTWeaponType = "weapon_ttt_confgrenade"
SWEP.NPCWeaponType = "weapon_grenade"
SWEP.NPCWeight = 50
SWEP.PullPinTime = 0.5
SWEP.Animations = {
["draw"] = {
Source = "deploy",
},
["pre_throw"] = {
Source = "pullpin",
},
["throw"] = {
Source = "throw",
TPAnim = ACT_HL2MP_GESTURE_RANGE_ATTACK_GRENADE,
SoundTable = {
{
s = "arccw_go/hegrenade/grenade_throw.wav",
t = 0
}
}
}
}
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade_Start",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull_start.wav"
})
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull.wav"
})

View File

@@ -0,0 +1,86 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base_nade"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "ArcCW - GSO (Gear)" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "M67 Frag"
SWEP.Trivia_Class = "Hand Grenade"
SWEP.Trivia_Desc = "High explosive fragmentation hand grenade. Can be cooked."
SWEP.Trivia_Manufacturer = "Day & Zimmermann"
SWEP.Trivia_Calibre = "N/A"
SWEP.Trivia_Mechanism = "Composition B"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1968
SWEP.Slot = 4
SWEP.NotForNPCs = true
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw_go/v_eq_fraggrenade.mdl"
SWEP.WorldModel = "models/weapons/arccw_go/w_eq_fraggrenade_thrown.mdl"
SWEP.ViewModelFOV = 60
SWEP.WorldModelOffset = {
pos = Vector(3, 2, -1),
ang = Angle(-10, 0, 180)
}
SWEP.FuseTime = 3.5
SWEP.Throwing = true
SWEP.Primary.ClipSize = 1
SWEP.MuzzleVelocity = 1000
SWEP.ShootEntity = "arccw_thr_go_frag"
SWEP.TTTWeaponType = "weapon_ttt_confgrenade"
SWEP.NPCWeaponType = "weapon_grenade"
SWEP.NPCWeight = 50
SWEP.PullPinTime = 0.5
SWEP.Animations = {
["draw"] = {
Source = "deploy",
},
["pre_throw"] = {
Source = "pullpin",
},
["throw"] = {
Source = "throw",
TPAnim = ACT_HL2MP_GESTURE_RANGE_ATTACK_GRENADE,
SoundTable = {
{
s = "arccw_go/hegrenade/grenade_throw.wav",
t = 0
}
}
}
}
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade_Start",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull_start.wav"
})
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull.wav"
})

View File

@@ -0,0 +1,86 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base_nade"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "ArcCW - GSO (Gear)" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "AN/M14 Thermite"
SWEP.Trivia_Class = "Hand Grenade"
SWEP.Trivia_Desc = "A grenade that produces extremely hot molten iron via a burning thermite reaction. It is mainly intended to be used to destroy material rather than as a weapon."
SWEP.Trivia_Manufacturer = "Day & Zimmermann"
SWEP.Trivia_Calibre = "N/A"
SWEP.Trivia_Mechanism = "Thermite TH3"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1944
SWEP.Slot = 4
SWEP.NotForNPCs = true
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw_go/v_eq_incendiarygrenade.mdl"
SWEP.WorldModel = "models/weapons/arccw_go/w_eq_incendiarygrenade_thrown.mdl"
SWEP.ViewModelFOV = 60
SWEP.WorldModelOffset = {
pos = Vector(3, 2, -1),
ang = Angle(-10, 0, 180)
}
SWEP.FuseTime = 5
SWEP.Throwing = true
SWEP.Primary.ClipSize = 1
SWEP.MuzzleVelocity = 1000
SWEP.ShootEntity = "arccw_thr_go_incendiary"
SWEP.TTTWeaponType = "weapon_zm_molotov"
SWEP.NPCWeaponType = "weapon_grenade"
SWEP.NPCWeight = 50
SWEP.PullPinTime = 0.5
SWEP.Animations = {
["draw"] = {
Source = "deploy",
},
["pre_throw"] = {
Source = "pullpin",
},
["throw"] = {
Source = "throw",
TPAnim = ACT_HL2MP_GESTURE_RANGE_ATTACK_GRENADE,
SoundTable = {
{
s = "arccw_go/hegrenade/grenade_throw.wav",
t = 0
}
}
}
}
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade_Start",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull_start.wav"
})
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull.wav"
})

View File

@@ -0,0 +1,91 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base_nade"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "ArcCW - GSO (Gear)" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Molotov Cocktail"
SWEP.Trivia_Class = "Hand Grenade"
SWEP.Trivia_Desc = "Improvised hand grenade created with a bottle of fuel and a rag, lit on fire and thrown. The Molotov Cocktail earned its name from Soviet foreign minister Vyacheslav Molotov, who claimed that Soviet bombing raids were humanitarian aid packages. Sarcastically, the Finns dubbed the bombs 'Molotov's Breadbaskets', and when they developed the fuel bomb to fight Soviet tanks, named them 'Molotov's Cocktails', to go with his food parcels."
SWEP.Trivia_Manufacturer = "The People"
SWEP.Trivia_Calibre = "N/A"
SWEP.Trivia_Mechanism = "Gasoline + Dish Soap"
SWEP.Trivia_Country = "Finland"
SWEP.Trivia_Year = 1939
SWEP.Slot = 4
SWEP.NotForNPCs = true
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw_go/v_eq_molotov.mdl"
SWEP.WorldModel = "models/weapons/arccw_go/w_eq_molotov_thrown.mdl"
SWEP.ViewModelFOV = 60
SWEP.WorldModelOffset = {
pos = Vector(3, 2, -1),
ang = Angle(-10, 0, 180)
}
SWEP.ProceduralViewBobIntensity = 0
SWEP.FuseTime = false
SWEP.FuseTime = false
SWEP.Throwing = true
SWEP.Primary.ClipSize = 1
SWEP.MuzzleVelocity = 1000
SWEP.ShootEntity = "arccw_thr_go_molotov"
SWEP.TTTWeaponType = "weapon_zm_molotov"
SWEP.NPCWeaponType = "weapon_grenade"
SWEP.NPCWeight = 50
SWEP.PullPinTime = 1
SWEP.Animations = {
["draw"] = {
Source = "deploy",
},
["pre_throw"] = {
Source = "pullpin",
SoundTable = {
{
t = 0,
s = "arccw_go/molotov/fire_idle_loop_1.wav",
c = CHAN_WEAPON
}
}
},
["throw"] = {
Source = "throw",
TPAnim = ACT_HL2MP_GESTURE_RANGE_ATTACK_GRENADE,
SoundTable = {
{
t = 0,
s = "arccw_go/molotov/grenade_throw.wav",
c = CHAN_WEAPON
}
}
}
}
sound.Add({
name = "ARCCW_GO_MOLOTOV.Draw",
channel = 16,
volume = 1.0,
sound = "arccw_go/molotov/molotov_draw.wav"
})

View File

@@ -0,0 +1,86 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base_nade"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "ArcCW - GSO (Gear)" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Model 5210 Smoke"
SWEP.Trivia_Class = "Hand Grenade"
SWEP.Trivia_Desc = "A smoke grenade that produces a white smoke cloud for concealment. Smoke clouds last for around 15 seconds."
SWEP.Trivia_Manufacturer = "Combined Systems INC"
SWEP.Trivia_Calibre = "N/A"
SWEP.Trivia_Mechanism = "Pyrotechnic delay fuze"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1997
SWEP.Slot = 4
SWEP.NotForNPCs = true
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw_go/v_eq_smokegrenade.mdl"
SWEP.WorldModel = "models/weapons/arccw_go/w_eq_smokegrenade_thrown.mdl"
SWEP.ViewModelFOV = 60
SWEP.WorldModelOffset = {
pos = Vector(3, 2, -1),
ang = Angle(-10, 0, 180)
}
SWEP.FuseTime = 3.5
SWEP.Throwing = true
SWEP.Primary.ClipSize = 1
SWEP.MuzzleVelocity = 1000
SWEP.ShootEntity = "arccw_thr_go_smoke"
SWEP.TTTWeaponType = "weapon_ttt_smokegrenade"
SWEP.NPCWeaponType = "weapon_grenade"
SWEP.NPCWeight = 50
SWEP.PullPinTime = 0.5
SWEP.Animations = {
["draw"] = {
Source = "deploy",
},
["pre_throw"] = {
Source = "pullpin",
},
["throw"] = {
Source = "throw",
TPAnim = ACT_HL2MP_GESTURE_RANGE_ATTACK_GRENADE,
SoundTable = {
{
s = "arccw_go/hegrenade/grenade_throw.wav",
t = 0
}
}
}
}
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade_Start",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull_start.wav"
})
sound.Add({
name = "ARCCW_GO_GRENADE.PullPin_Grenade",
channel = 16,
volume = 1.0,
sound = "arccw_go/hegrenade/pinpull.wav"
})

View File

@@ -0,0 +1,279 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Heavy Shotgun"
SWEP.TrueName = "Heavy Shotgun"
SWEP.Trivia_Class = "Semi-Auto"
SWEP.Trivia_Desc = "The Heavy Shotgun does a great job at destroying targets at close range. When it comes to certain situations"
SWEP.Trivia_Manufacturer = "Overwatch"
SWEP.Trivia_Calibre = "6 Gauge"
SWEP.Trivia_Mechanism = "Gas-Operated"
SWEP.Trivia_Country = "Bulgaria"
SWEP.Trivia_Year = 2015
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Overwatch"
end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_heavyshotgun.mdl"
SWEP.WorldModel = "models/weapons/w_heavyshotgun.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultBodygroups = "0000000"
SWEP.Damage = 11
SWEP.DamageMin = 11 -- damage done at maximum range
SWEP.Range = 90 -- in METRES
SWEP.Penetration = 15
SWEP.DamageType = DMG_BUCKSHOT
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 150 -- projectile or phys bullet muzzle velocity
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 6
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 12 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 20
SWEP.ReducedClipSize = 5
SWEP.Recoil = 2.5
SWEP.RecoilSide = 0.5
SWEP.RecoilRise = 1
SWEP.Delay = 60 / 90 -- 60 / RPM.
SWEP.Num = 8 -- number of shots per trigger pull.
SWEP.RunawayBurst = false
SWEP.Firemodes = {
{
Mode = 1
},
{
Mode = 0
}
}
SWEP.NotForNPCS = true
SWEP.NPCWeaponType = {"weapon_shotgun"}
SWEP.NPCWeight = 150
SWEP.AccuracyMOA = 40 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 250 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 500
SWEP.ShootWhileSprint = false
SWEP.Primary.Ammo = "buckshot" -- what ammo type the gun uses
SWEP.MagID = "HShotgun" -- the magazine pool this gun draws from
SWEP.ShootVol = 200 -- volume of shoot sound
SWEP.ShootPitch = 90 -- pitch of shoot sound
SWEP.ShootSound = "shotgun_dbl_fire.wav"
SWEP.ShootSoundSilenced = "weapons/arccw/m4a1/m4a1_silencer_01.wav"
SWEP.DistantShootSound = "weapons/arccw/ak47/ak47-1-distant.wav"
SWEP.MuzzleEffect = "muzzleflash_minimi"
SWEP.ShellModel = ""
SWEP.ShellScale = 0
SWEP.ShellMaterial = ""
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.75
SWEP.SightedSpeedMult = 0.6
SWEP.SightTime = 0.33
SWEP.VisualRecoilMult = 1
SWEP.RecoilRise = 1
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-4, -4, 0),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "shotgun"
SWEP.HoldtypeSights = "ar2"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 0, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(0.532, -6, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.WorldModelOffset = {
pos = Vector(7, 1, -2),
ang = Angle(0, 90, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.BarrelLength = 20
SWEP.AttachmentElements = {
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Choke",
DefaultAttName = "Standard Choke",
Slot = "choke",
},
{
PrintName = "Ammo Type",
Slot = "ammo_shotgun",
},
{
PrintName = "Perk",
Slot = "perk"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 1
},
["draw"] = {
Source = "draw",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["holster"] = {
Source = "holster",
Time = 0.4,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["ready"] = {
Source = "idle",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = "fire1",
Time = 0.5,
},
["fire_iron"] = {
Source = "fire1",
Time = 0.5,
},
["reload"] = {
Source = "reload",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
["reload_empty"] = {
Source = "reload",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 30,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
}
local soundData = {
name = "Weapon_Swing" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "draw_minigun_heavy.wav"
}
sound.Add(soundData)
local soundData = {
name = "Weapon_Swing2" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "draw_default.wav"
}
sound.Add(soundData)
local soundData = {
name = "Magazine.Out" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "sniper_military_slideback_1.wav"
}
sound.Add(soundData)
local soundData = {
name = "Magazine.In" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "sniper_military_slideforward_1.wav"
}
sound.Add(soundData)
local soundData = {
name = "Cock" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "shotgun_cock.wav"
}
sound.Add(soundData)

View File

@@ -0,0 +1,289 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "OICW"
SWEP.TrueName = "Overwatch Tactical Issue"
-- Technically you can omit all trivia info, but that's not fun! Do a bit of research and write some stuff in!
SWEP.Trivia_Class = "Assault Rifle"
SWEP.Trivia_Desc = "Fast firing battle rifle designed to replace the human MP7 in the Combine's arsenal, with an ever faster 5-round burst mode. Good for runnin' and gunnin'."
SWEP.Trivia_Manufacturer = "The Combine"
SWEP.Trivia_Calibre = "Light Pulse Capsule"
SWEP.Trivia_Mechanism = "Dark Energy Cyclotron"
SWEP.Trivia_Country = "Universal Union - Earth Overwatch"
SWEP.Trivia_Year = "Occupation Period 1, 201x"
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "The Combine"
end
SWEP.UseHands = false
SWEP.ViewModel = "models/weapons/oicw/v_oicw.mdl"
SWEP.WorldModel = "models/weapons/oicw/w_oicw.mdl"
SWEP.ViewModelFOV = 54
SWEP.Damage = 11
SWEP.DamageMin = 11
SWEP.Range = 50 -- in METRES
SWEP.Penetration = 16
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 600 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 60 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 90
SWEP.ReducedClipSize = 30
SWEP.Recoil = 0.53
SWEP.RecoilSide = 0.02
SWEP.RecoilRise = 0.1
SWEP.Delay = 60 / 750 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = -5,
Mult_RPM = 2,
RunawayBurst = true,
PostBurstDelay = 0.25
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 150
SWEP.AccuracyMOA = 9 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 250 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "oicw2" -- the magazine pool this gun draws from
SWEP.ShootVol = 115 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/oicw/smg1_fire1.wav"
SWEP.ShootSoundSilenced = "weapons/arccw/m4a1/m4a1_silencer_01.wav"
SWEP.DistantShootSound = "weapons/oicw/smg1_fire1.wav"
SWEP.MuzzleEffect = "muzzleflash_1"
SWEP.ShellModel = nil
SWEP.ShellScale = 0
SWEP.ShellMaterial = nil
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 1
SWEP.SightedSpeedMult = 0.7
SWEP.SightTime = 0.33
SWEP.VisualRecoilMult = 1
SWEP.RecoilRise = 1
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-10, 0, 0),
Ang = Angle(-30, 0 ,0),
Magnification = 2,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = true
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-2, -6, 0)
SWEP.ActiveAng = Angle(2, 0, 0)
SWEP.HolsterPos = Vector(0.532, -6, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, 0)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 27
SWEP.AttachmentElements = {
["optic"] = {
VMBodygroups = {{ind = 1, bg = 1}},
WMBodygroups = {{indc = 1, bg = 1}},
},
["optic_lp"] = {
VMBodygroups = {{ind = 1, bg = 1}},
WMBodygroups = {{ind = 1, bg = 1}},
},
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Integral Sight (2x)",
Slot = {"optic_lp"}, -- what kind of attachments can fit here, can be string or table
Bone = "Bip01 R Hand", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(10.438, -1.599, 11.939), -- offset that the attachment will be relative to the bone
vang = Angle(0, 0, 0),
wpos = Vector(6.099, 0.699, -6.301),
wang = Angle(171.817, 180-1.17, 0),
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(2, 0, 0),
},
{
PrintName = "Underbarrel",
Slot = {"ubgl"},
Bone = "Bip01 R Hand",
Offset = {
vpos = Vector(21.67, -2.573, 3.747),
vang = Angle(0, 0, 0),
wpos = Vector(17, 0.6, -4.676),
wang = Angle(-10, 0, 180)
},
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "muzzle",
Bone = "Bip01 R Hand",
Offset = {
vpos = Vector(31.375, -2.731, 7.867),
vang = Angle(-1.7, 0, 0),
wpos = Vector(26.648, 0.782, -8.042),
wang = Angle(-9.79, 0, 180)
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "Bip01 R Hand",
Offset = {
vpos = Vector(19.806, -4.776, 8.824), -- offset that the attachment will be relative to the bone
vang = Angle(-2, 0, -90),
wpos = Vector(15.625, -0.1, -6.298),
wang = Angle(-8.829, -0.556, 90)
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Stock",
Slot = "stock",
DefaultAttName = "Standard Stock"
},
{
PrintName = "Fire Group",
Slot = "fcg",
DefaultAttName = "Standard FCG"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "Bip01 R Hand", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(12.66, -3.62, 9.439), -- offset that the attachment will be relative to the bone
vang = Angle(0, 0, 0),
wpos = Vector(6.099, 1.1, -3.301),
wang = Angle(171.817, 180-1.17, 0),
},
},
}
SWEP.Animations = {
["idle"] = false,
["draw"] = {
Source = "AR2_draw",
Time = 0.4,
SoundTable = {{s = "weapons/arccw/ak47/ak47_draw.wav", t = 0}},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = {"AR2_primary_fire3", "AR2_primary_fire4"},
Time = 0.5,
},
["fire_iron"] = {
Source = "AR2_primary_dry",
Time = 0.5,
},
["reload"] = {
Source = "AR2_reload",
Time = 2.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
SoundTable = {{s = "weapons/oicw/smg1_reload.wav", t = 0}},
},
["reload_empty"] = {
Source = "AR2_reload",
Time = 2.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
SoundTable = {{s = "weapons/oicw/smg1_reload.wav", t = 0}},
},
}

View File

@@ -0,0 +1,231 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Ordinal Rifle"
SWEP.TrueName = "Ordinal Rifle"
SWEP.Trivia_Class = "Assault Carbine"
SWEP.Trivia_Desc = "It does the shoot"
SWEP.Trivia_Manufacturer = "Overwatch"
SWEP.Trivia_Calibre = "Energy things"
SWEP.Trivia_Mechanism = "Plasma Pulse"
SWEP.Trivia_Country = "Bulgaria"
SWEP.Trivia_Year = 2015
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_ordinalriflearccw.mdl"
SWEP.WorldModel = "models/weapons/c_ordinalriflearccw.mdl"
SWEP.ViewModelFOV = 60
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-10, 4.2, -6),
ang = Angle(-10, 0, 180)
}
SWEP.DefaultBodygroups = "00000000000"
SWEP.Damage = 19
SWEP.DamageMin = 19
SWEP.Range = 250 -- in METRES
SWEP.Penetration = 1
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1050 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 45
SWEP.ReducedClipSize = 10
SWEP.PhysBulletMuzzleVelocity = 700
SWEP.Recoil = 0.3
SWEP.RecoilSide = 0.670
SWEP.RecoilRise = 0.1
SWEP.Delay = 60 / 550 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 5 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 100 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 175
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "ar2" -- the magazine pool this gun draws from
SWEP.ShootVol = 60 -- volume of shoot sound
SWEP.ShootPitch = 140 -- pitch of shoot sound
SWEP.ShootSound = "weapons/ar2/fire1.wav"
SWEP.ShootSoundSilenced = "weapons/ar2/fire1.wav"
SWEP.DistantShootSound = "weapons/ar2/fire1.wav"
SWEP.MuzzleEffect = "muzzleflash_minimi"
SWEP.ShellModel = ""
SWEP.ShellScale = 0
SWEP.ShellMaterial = ""
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 1
SWEP.SightedSpeedMult = 1
SWEP.SightTime = 0.2
SWEP.IronSightStruct = {
Pos = Vector(-3.2, -1, 0.3),
Ang = Angle(0, 0, -30),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = true
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(2,2,-0.6)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(0, -3, 1)
SWEP.CrouchAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(8, 0, 1)
SWEP.CustomizeAng = Angle(5, 30, 30)
SWEP.BarrelLength = 24
SWEP.AttachmentElements = {
}
SWEP.ExtraSightDist = 10
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = "optic_lp",
Bone = "pulserifle",
DefaultAttName = "Iron Sights",
Offset = {
vpos = Vector(-0, -5, 4.25),
vang = Angle(0, 90, 0),
},
VMScale = Vector(1.15, 1.15, 1.15),
CorrectivePos = Vector(0, -10, 0),
CorrectiveAng = Angle(0, 0, 0),
},
{
PrintName = "Underbarrel",
Slot = "foregrip",
Bone = "pulserifle",
Offset = {
vpos = Vector(0, 10, -1.1),
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "pulserifle",
Offset = {
vpos = Vector(-0, 12, 1.2),
vang = Angle(0, -90, 0),
},
},
{
PrintName = "Hammer",
Slot = "ar2_hammer",
DefaultAttName = "Standard Pulse-Action",
},
{
PrintName = "Plug Type",
Slot = "ar2_ammo",
DefaultAttName = "Standard Plug"
},
{
PrintName = "Perk",
Slot = "perk"
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "pulserifle", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0.5, -1, 4), -- offset that the attachment will be relative to the bone
vang = Angle(0, -90, 0),
},
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
},
["draw"] = {
Source = "draw",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["fire"] = {
Source = {"fire1","fire2"},
Time = 0.5,
},
["fire_iron"] = {
Source = "fire3",
Time = 0.5,
},
["enter_sights"] = {
Source = "idle",
Time = 0,
},
["idle_sights"] = {
Source = "idle",
Time = 0,
},
["exit_sights"] = {
Source = "idle",
Time = 0,
},
["enter_inspect"] = {
Source = "inspect",
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
},
}

View File

@@ -0,0 +1,237 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "New Frontiers" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "SPAS-12"
SWEP.TrueName = "SPAS-12"
SWEP.Trivia_Class = "Shotgun"
SWEP.Trivia_Desc = "12 gauge pistol grip pump shotgun."
SWEP.Trivia_Manufacturer = "Franchi"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Pump-Action"
SWEP.Trivia_Country = "Italy"
SWEP.Trivia_Year = 1979
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then SWEP.PrintName = SWEP.TrueName end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/fml/c_fleshy_spas.mdl"
SWEP.WorldModel = "models/weapons/tnmmod/w_shotgun.mdl"
SWEP.ViewModelFOV = 55
SWEP.Damage = 16
SWEP.DamageMin = 8 -- damage done at maximum range
SWEP.Range = 25 -- in METRES
SWEP.Penetration = 10
SWEP.DamageType = DMG_BUCKSHOT
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 150 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 3
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 6 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 8
SWEP.ReducedClipSize = 4
SWEP.Recoil = 6
SWEP.RecoilSide = 1
SWEP.MaxRecoilBlowback = 2
SWEP.ShotgunReload = true
SWEP.ManualAction = true
SWEP.Delay = 60 / 80 -- 60 / RPM.
SWEP.Num = 8 -- number of shots per trigger pull.
SWEP.RunawayBurst = false
SWEP.Firemodes = {
{
PrintName = "PUMP",
Mode = 1,
},
}
SWEP.NPCWeaponType = "weapon_shotgun"
SWEP.NPCWeight = 200
SWEP.AccuracyMOA = 80 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 200 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 150
SWEP.Primary.Ammo = "buckshot" -- what ammo type the gun uses
SWEP.ShootVol = 120 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/tnweapons/shotgun/shotgun_dbl_fire.wav"
SWEP.DistantShootSound = "weapons/tnweapons/shotgun/shotgun_fire.wav"
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellModel = "models/shells/shell_12gauge.mdl"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.ShotgunShellSoundsTable
SWEP.ShellScale = 1.5
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.95
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.27
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-2.431, 2, 0.8),
Ang = Angle(0.202, 0.017, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "shotgun"
SWEP.HoldtypeSights = "ar2"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SHOTGUN
SWEP.ActivePos = Vector(1, 5, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(0.532, -6, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Tactical",
Slot = "tac",
Bone = "v_weapon.M3_PARENT",
Offset = {
vpos = Vector(0.954, -4.086, -5.138), -- offset that the attachment will be relative to the bone
vang = Angle(-90, 0, 180),
wpos = Vector(28.148, 1, -5),
wang = Angle(-6, 0, -180)
},
},
}
-- draw
-- holster
-- reload
-- fire
-- cycle (for bolt actions)
-- append _empty for empty variation
SWEP.Animations = {
["draw"] = {
Source = "draw",
Time = 0.4,
},
["fire"] = {
Source = "shoot1",
Time = 0.4,
},
["slam"] = {
Source = "slam",
Time = 0.75,
ShellEjectAt = 0.3,
},
["cycle"] = {
Source = {"pump_1", "pump_2"},
Time = 0.75,
ShellEjectAt = 0.3,
SoundTable = {
{s = "weapons/tnweapons/shotgun/shotgun_cock_back.wav", t = 0},
{s = "weapons/tnweapons/shotgun/shotgun_cock_forward.wav", t = 0.3},
},
},
["cycle_iron"] = {
Source = "pump_iron",
Time = 1,
ShellEjectAt = 0.3,
SoundTable = {
{s = "weapons/tnweapons/shotgun/shotgun_cock_back.wav", t = 0},
{s = "weapons/tnweapons/shotgun/shotgun_cock_forward.wav", t = 0.3},
},
},
["sgreload_start"] = {
Source = "reload_start",
Time = 1,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 1.5,
LHIKOut = 0,
SoundTable = {
{s = "weapons/tfa_ins2/m590/m590_shell.wav", t = 0.35},
},
},
["sgreload_start_empty"] = {
Source = "reload_start_dry",
Time = 2,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0,
SoundTable = {
{s = "weapons/tfa_ins2/m590/m590_shell.wav", t = 0.35},
{s = "weapons/tfa_ins2/m590/m590_boltback.wav", t = 1.3},
{s = "weapons/tfa_ins2/m590/m590_boltrelease.wav", t = 1.5},
},
},
["sgreload_insert"] = {
Source = "reload",
Time = 0.75,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.3,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
SoundTable = {
{s = "weapons/tfa_ins2/m590/m590_shell.wav", t = 0.35},
},
},
["sgreload_finish"] = {
Source = "reload_finish",
Time = 0.7,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.4,
},
["sgreload_finish_empty"] = {
Source = "reload_finish",
Time = 0.7,
LHIK = true,
LHIKIn = 0,
LHIKOut = 1,
},
}

View File

@@ -0,0 +1,308 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Suppressor LMG"
SWEP.TrueName = "Suppressor LMG"
SWEP.Trivia_Class = "Light Machine Gun"
SWEP.Trivia_Desc = "The Combine Suppressor uses this weapon effectively when it comes to his job title. it can deal massive damage due to it's fast firerate. However it's barrel overheating will cause it to have poor accuracy. Thus, this weapon is most effective in CQC."
SWEP.Trivia_Manufacturer = "Overwatch"
SWEP.Trivia_Calibre = "Big Ass Bullet"
SWEP.Trivia_Mechanism = "Plasma Pulse Shit"
SWEP.Trivia_Country = "Bulgaria"
SWEP.Trivia_Year = 2015
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Suppressor LMG"
end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_suppressor.mdl"
SWEP.WorldModel = "models/weapons/w_suppressor.mdl"
SWEP.ViewModelFOV = 55
SWEP.DefaultBodygroups = "0000000"
SWEP.Damage = 10
SWEP.DamageMin = 10 -- damage done at maximum range
SWEP.Range = 120 -- in METRES
SWEP.Penetration = 22
SWEP.DamageType = DMG_AIRBOAT
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1800 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 6
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 150 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 200
SWEP.ReducedClipSize = 75
SWEP.Recoil = 0.8
SWEP.RecoilSide = 0.75
SWEP.RecoilRise = 1
SWEP.Delay = 60 / 700 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2
},
{
Mode = 0
}
}
SWEP.NotForNPCS = true
SWEP.NPCWeaponType = {"weapon_shotgun"}
SWEP.NPCWeight = 50
SWEP.AccuracyMOA = 50 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 300 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.ShootWhileSprint = false
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "Pulse LMG" -- the magazine pool this gun draws from
SWEP.ShootVol = 120 -- volume of shoot sound
SWEP.ShootPitch = 90 -- pitch of shoot sound
SWEP.ShootSound = "fire2.wav"
SWEP.ShootSoundSilenced = "weapons/arccw/m4a1/m4a1_silencer_01.wav"
SWEP.DistantShootSound = "weapons/arccw/ak47/ak47-1-distant.wav"
SWEP.MuzzleEffect = "muzzleflash_minimi"
SWEP.ShellModel = ""
SWEP.ShellScale = 0
SWEP.ShellMaterial = ""
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.75
SWEP.SightedSpeedMult = 0.6
SWEP.SightTime = 0.33
SWEP.VisualRecoilMult = 1
SWEP.RecoilRise = 1
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-4, -4, 0),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "shotgun"
SWEP.HoldtypeSights = "ar2"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 3, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(0.532, -6, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 34
SWEP.AttachmentElements = {
["extendedmag"] = {
VMBodygroups = {{ind = 1, bg = 1}},
WMBodygroups = {{ind = 1, bg = 1}},
},
["reducedmag"] = {
VMBodygroups = {{ind = 1, bg = 2}},
WMBodygroups = {{ind = 1, bg = 2}},
},
["nors"] = {
VMBodygroups = {
{ind = 2, bg = 1},
{ind = 3, bg = 1},
},
},
["nobrake"] = {
VMBodygroups = {
{ind = 6, bg = 1},
},
},
["pwraith"] = {
VMBodygroups = {},
WMBodygroups = {},
TrueNameChange = "Suppressor LMG",
NameChange = "Hell's Wraith"
},
["mount"] = {
VMElements = {
},
}
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "muzzle",
Bone = "suppressor",
Offset = {
vpos = Vector(-1.5, -20, 0),
vang = Angle(0, 80, 90),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0)
},
},
{
PrintName = "Underbarrel",
Slot = {"ubgl", "bipod"},
Bone = "suppressor",
Offset = {
vpos = Vector(-4, -10, 1),
vang = Angle(0, 80, 90),
wpos = Vector(0, 0, 0),
wang = Angle(0, 0, 0)
},
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 1
},
["draw"] = {
Source = "draw",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["holster"] = {
Source = "holster",
Time = 0.4,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["ready"] = {
Source = "idle",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = {"fire"},
Time = 0.5,
},
["fire_iron"] = {
Source = "fire",
Time = 0.5,
},
["reload"] = {
Source = "reload",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
["reload_empty"] = {
Source = "reload",
Time = 4,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
}
local soundData = {
name = "Weapon_Swing" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "draw_minigun_heavy.wav"
}
sound.Add(soundData)
local soundData = {
name = "Weapon_Swing2" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "draw_default.wav"
}
sound.Add(soundData)
local soundData = {
name = "Magazine.Out" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "sniper_military_slideback_1.wav"
}
sound.Add(soundData)
local soundData = {
name = "Magazine.In" ,
channel = CHAN_WEAPON,
volume = 0.5,
soundlevel = 80,
pitchstart = 100,
pitchend = 100,
sound = "sniper_military_slideforward_1.wav"
}
sound.Add(soundData)

View File

@@ -0,0 +1,648 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Oldie Weaponry"
SWEP.UC_CategoryPack = "1Urban Decay"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/12g.mdl"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.ShotgunShellSoundsTable
SWEP.ShellScale = 1
SWEP.UC_ShellColor = Color(0.7*255, 0.2*255, 0.2*255)
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.CamAttachment = 3
-- Fake name --
SWEP.PrintName = "Express-12"
-- True name --
SWEP.TrueName = "Remington 870"
-- Trivia --
SWEP.Trivia_Class = "Shotgun"
SWEP.Trivia_Desc = "Classic pump-action shotgun, renowned for its high quality parts and assembly. A simple firearm with a simple purpose. Marketed primarily to civilians for use in hunting game and self-defense, but it has found popularity among police departments for a relatively innocuous appearance and ability to accept custom loaded less-lethal shells."
SWEP.Trivia_Manufacturer = "Mauer Armaments"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Pump Action"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1950
-- Weapon slot --
SWEP.Slot = 3
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Remington Arms"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ud_870.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ud_870.mdl"
SWEP.ViewModelFOV = 60
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SHOTGUN
SWEP.DefaultBodygroups = "000000000"
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-5.5, 5, -5.5),
ang = Angle(-12, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1 - ( 0.35 * 0.5 )
}
-- Damage parameters --
SWEP.Damage = 9
SWEP.DamageMin = 9
SWEP.Penetration = 1
SWEP.Num = 8
SWEP.Range = 45
SWEP.RangeMin = 5
SWEP.DamageType = DMG_BUCKSHOT
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 200
SWEP.HullSize = 0.5
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults_Shotgun
-- Mag size --
SWEP.ChamberSize = 1
SWEP.Primary.ClipSize = 6
SWEP.ExtendedClipSize = 8
SWEP.ReducedClipSize = 6
-- Recoil --
SWEP.Recoil = 2.5
SWEP.RecoilSide = 2
SWEP.RecoilRise = 0.3
SWEP.VisualRecoilMult = 1
SWEP.MaxRecoilBlowback = 1
SWEP.MaxRecoilPunch = 1
SWEP.Sway = 0.5
-- Firerate / Firemodes --
SWEP.Delay = 60 / 120
SWEP.Firemodes = {
{
PrintName = "fcg.pump",
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NoLastCycle = true
SWEP.ManualAction = true
SWEP.ShotgunReload = true
SWEP.ShootVol = 160
SWEP.ShootPitch = 100
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_shotgun"
SWEP.NPCWeight = 210
-- Accuracy --
SWEP.AccuracyMOA = 40
SWEP.HipDispersion = 250
SWEP.MoveDispersion = 250
SWEP.JumpDispersion = 300
SWEP.Primary.Ammo = "buckshot"
-- Speed multipliers --
SWEP.SpeedMult = 0.91
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.3
SWEP.ShootSpeedMult = 0.75
-- Length --
SWEP.BarrelLength = 32
SWEP.ExtraSightDist = 2
-- Ironsights / Customization / Poses --
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.IronSightStruct = {
Pos = Vector(-3.66, -3, 2.2),
Ang = Angle(-0.75, 0, 2.8),
Magnification = 1.1,
SwitchToSound = "",
}
SWEP.HolsterPos = Vector(2, 0, -2)
SWEP.HolsterAng = Angle(-5.5, 20, -20)
SWEP.SprintPos = Vector(-0.5, -4, -2)
SWEP.SprintAng = Angle(3.5, 7, -20)
SWEP.ActivePos = Vector(-0.75, -2, 1)
SWEP.ActiveAng = Angle(0, 0, -3)
SWEP.CrouchPos = Vector(-3.8, -2, 0)
SWEP.CrouchAng = Angle(0, 0, -30)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(3, 0, -4)
SWEP.Malfunction = false
SWEP.MalfunctionTakeRound = false
SWEP.MalfunctionMean = 500
SWEP.MalfunctionVariance = 0.99
-- Firing sounds --
local path = ")weapons/arccw_ud/870/"
local common = ")/arccw_uc/common/"
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.ShootSoundSilenced = {
path .. "fire-sup-01.ogg",
path .. "fire-sup-02.ogg",
path .. "fire-sup-03.ogg",
path .. "fire-sup-04.ogg",
path .. "fire-sup-05.ogg",
path .. "fire-sup-06.ogg"
}
--[[SWEP.DistantShootSound = path .. "fire_dist.ogg"
SWEP.DistantShootSoundSilenced = common .. "sup_tail.ogg"]]
SWEP.ShootDrySound = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}
local tail = ")/arccw_uc/common/12ga/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-12ga-pasg-ext-01.ogg",
tail .. "fire-dist-12ga-pasg-ext-02.ogg",
tail .. "fire-dist-12ga-pasg-ext-03.ogg",
tail .. "fire-dist-12ga-pasg-ext-04.ogg",
tail .. "fire-dist-12ga-pasg-ext-05.ogg",
tail .. "fire-dist-12ga-pasg-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 1
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
SWEP.Hook_Think = ArcCW.UC.ADSReload
local shellin = {path .. "shell-insert-01.ogg", path .. "shell-insert-02.ogg", path .. "shell-insert-03.ogg"}
SWEP.Animations = {
["ready"] = {
Source = "sgreload_finish_empty",
Time = 37 / 30,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 1.2,
LHIKOut = 1.4,
SoundTable = {
{s = common .. "raise.ogg", t = 0.2},
{s = common .. "rattle.ogg", t = 0.2},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.5},
{s = path .. "rack_1.ogg", t = 0.4},
{s = path .. "rack_2.ogg", t = 0.6},
{s = common .. "shoulder.ogg", t = 0.9},
},
ProcDraw = true,
},
["idle"] = {
Source = "idle",
},
["idle_empty"] = {
Source = "idle",
},
["draw"] = {
Source = "draw",
Time = 20 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["holster"] = {
Source = "holster",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire"] = {
Source = "fire",
--Time = 23 / 30,
MinProgress = 8 / 30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = "fire",
--Time = 23 / 30,
MinProgress = 8 / 30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
["cycle"] = {
Source = "cycle",
--Time = 20 / 30,
ShellEjectAt = 0.1,
MinProgress = 0.26,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "rack_1.ogg", t = 0},
{s = path .. "eject.ogg", t = 0.1},
{s = path .. "rack_2.ogg", t = 0.11},
},
},
["cycle_jammed"] = {
Source = "jamcycle",
--Time = 20 / 30,
ShellEjectAt = 0.1,
MinProgress = 0.26,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "rack_1.ogg", t = 0},
{s = path .. "eject.ogg", t = 0.1},
{s = path .. "rack_2.ogg", t = 0.11},
},
},
["fix"] = {
Source = "fix",
Time = 50 / 30,
ShellEjectAt = 0.7, -- should make the shell eject offscreen cuz the anim already has it
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.5},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1},
{s = path .. "rack_1.ogg", t = 0.6},
{s = path .. "eject.ogg", t = 0.7},
{s = path .. "rack_2.ogg", t = 0.9},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.7},
}
},
["sgreload_start"] = {
Source = "sgreload_start",
Time = 16 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = common .. "shoulder.ogg", t = 0.1},
},
},
["sgreload_insert"] = {
Source = "sgreload_insert",
Time = 18 / 30,
MinProgress = 0.24,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.3,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
SoundTable = {
{s = shellin, t = 0},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
},
},
["sgreload_finish"] = {
Source = "sgreload_finish",
Time = 20 / 30,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.4,
TPAnimStartTime = 0.8,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = common .. "shoulder.ogg", t = 0.27},
},
},
["sgreload_finish_empty"] = {
Source = "sgreload_finish_empty",
Time = 37 / 30,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.6,
LHIKOut = 0.8,
TPAnimStartTime = 0.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
ShellEjectAt = 0.5,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.5},
{s = path .. "rack_1.ogg", t = 0.4},
{s = path .. "eject.ogg", t = 0.5},
{s = path .. "rack_2.ogg", t = 0.525},
{s = common .. "shoulder.ogg", t = 0.9},
},
},
}
SWEP.Hook_ModifyBodygroups = function(wep, data)
local vm = data.vm
if !IsValid(vm) then return end
-- if wep.Attachments[1].Installed then
-- vm:SetBodygroup(8, 2)
-- elseif wep.Attachments[2].Installed == "ud_870_barrel_long" then
-- vm:SetBodygroup(8, 1)
-- else
-- vm:SetBodygroup(8, 0)
-- end
-- 8rnd tube and either barrel should remove the clamp
if vm:GetBodygroup(7) == 1 and vm:GetBodygroup(1) != 0 then
vm:SetBodygroup(7, 2)
end
end
SWEP.BulletBones = {
[0] = "870_shell1",
}
SWEP.DefaultSkin = 1
-- Bodygroups --
SWEP.AttachmentElements = {
["ud_870_optic_ringsight"] = {
VMBodygroups = {
{ind = 8, bg = 1},
},
Override_IronSightStruct = {
Pos = Vector(-3.665, -2.75, 2.1),
Ang = Angle(-0.6, 0, 1),
Magnification = 1.1,
SwitchToSound = "",
},
},
["optic_rail"] = {
VMBodygroups = {
{ind = 8, bg = 2},
}
},
["ud_shotgun_rail_fg"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
["ud_870_slide_moe"] = {
VMBodygroups = {{ind = 6, bg = 1}},
},
["ud_870_slide_long"] = {
VMBodygroups = {{ind = 6, bg = 2}},
},
["ud_870_slide_poly"] = {
VMBodygroups = {{ind = 6, bg = 3}},
},
["ud_shotgun_rail_fg"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
["ud_870_barrel_long"] = {
AttPosMods = {
[3] = {
vpos = Vector(-0.03, -0.65, 39.5),
}
},
VMBodygroups = {
{ind = 1, bg = 1},
},
},
["ud_870_barrel_sawnoff"] = {
VMBodygroups = {
{ind = 1, bg = 2},
{ind = 7, bg = 2}
},
AttPosMods = {
[3] = {
vpos = Vector(-0.03, -0.9, 19),
}
},
},
["ud_870_tube_reduced"] = {
VMBodygroups = {
{ind = 2, bg = 2},
{ind = 7, bg = 2}
},
},
["ud_870_tube_ext"] = {
VMBodygroups = {
{ind = 2, bg = 1},
{ind = 7, bg = 1}
},
},
["ud_870_stock_poly"] = {
VMBodygroups = {{ind = 4, bg = 1}},
},
["ud_870_stock_sawnoff"] = {
VMBodygroups = {{ind = 4, bg = 2}},
},
["ud_870_stock_raptor"] = {
VMBodygroups = {{ind = 4, bg = 3}},
},
["ud_870_skin_dirty"] = {
VMSkin = 0
},
["ud_870_skin_custom"] = {
VMSkin = 3
},
}
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp","optic","optic_sniper","ud_870_optic"},
Bone = "870_parent",
Offset = {
vpos = Vector(0, -1.75, -2),
vang = Angle(90, 0, -90),
},
VMScale = Vector(1, 1, 1),
CorrectiveAng = Angle(1.8, 0.1, 0),
InstalledEles = {"optic_rail"}
},
{
PrintName = "Barrel",
DefaultAttName = "16\" Standard Barrel",
DefaultAttIcon = Material("entities/att/acwatt_ud_870_barrel.png", "smooth mips"),
Slot = "ud_870_barrel",
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"choke", "muzzle_shotgun"},
Bone = "870_parent",
Offset = {
vpos = Vector(-0.03, -0.75, 26.3),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Forend",
DefaultAttName = "Factory Forend",
DefaultAttIcon = Material("entities/att/acwatt_ud_870_slide.png", "smooth mips"),
Slot = {"ud_870_slide"},
Bone = "870_slide",
Offset = {
vpos = Vector(3, -4.4, -29),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Underbarrel",
Slot = {"foregrip"},
Bone = "870_slide",
Offset = {
vpos = Vector(0, 1.1, 0),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ud_shotgun_rail_fg"}
},
{
PrintName = "Tactical",
Slot = {"tac_pistol"},
Bone = "870_slide",
Offset = {
vpos = Vector(0, 1, 4.25),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Stock",
DefaultAttName = "Wooden Stock",
DefaultAttIcon = Material("entities/att/acwatt_ud_870_stock.png", "smooth mips"),
Slot = {"ud_870_stock"},
},
{
PrintName = "Tube Type",
Slot = {"ud_870_tube"},
DefaultAttName = "6 Shell Tube",
DefaultAttIcon = Material("entities/att/acwatt_ud_870_tube.png", "smooth mips"),
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"BUCK\" #00 Buckshot",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_shotgun_generic.png", "mips smooth"),
Slot = "ud_ammo_shotgun",
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm"},
FreeSlot = true,
Bone = "870_parent",
Offset = {
vpos = Vector(0.7, 0, 5),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Skin",
Slot = "ud_870_skin",
DefaultAttName = "Polished Steel",
FreeSlot = true
}
}
local lookup_barrel = {
default = 1,
ud_870_barrel_long = 2,
ud_870_barrel_sawnoff = 0,
}
local lookup_tube = {
default = 1,
ud_870_tube_ext = 2,
ud_870_tube_reduced = 0,
}
SWEP.Hook_ExtraFlags = function(wep, data)
local barrel = wep.Attachments[2].Installed and lookup_barrel[wep.Attachments[2].Installed] or lookup_barrel["default"]
local tube = wep.Attachments[8].Installed and lookup_tube[wep.Attachments[8].Installed] or lookup_tube["default"]
if barrel < tube then
table.insert(data, "nomuzzleblocking")
end
end

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,783 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Modern Weaponry"
SWEP.UC_CategoryPack = "1Urban Decay"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/12g.mdl"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.ShotgunShellSoundsTable
SWEP.ShellScale = 1
SWEP.UC_ShellColor = Color(0.7*255, 0.2*255, 0.2*255)
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.CamAttachment = 3
-- Fake name --
SWEP.PrintName = "FC1040"
-- True name --
SWEP.TrueName = "Benelli M4"
-- Trivia --
SWEP.Trivia_Class = "Shotgun"
SWEP.Trivia_Desc = [[Semi-automatic shotgun designed for close-quarters urban warfare. Uses an innovative short-stroke gas system that eliminates complex mechanisms found on most gas-operated automatic weapons. Its main use is in destroying locked doors.
Devastating damage output, but control is required to avoid spending more time reloading than fighting.]]
SWEP.Trivia_Manufacturer = "Iscapelli Armaments"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Gas-Operated Rotating Bolt"
SWEP.Trivia_Country = "Italy"
SWEP.Trivia_Year = 1998
-- Weapon slot --
SWEP.Slot = 3
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Benelli Armi SpA"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ud_m1014.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ud_m1014.mdl"
SWEP.ViewModelFOV = 60
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SHOTGUN
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-4, 4, -4.5),
ang = Angle(-12, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.DefaultPoseParams = {["grip"] = 0}
-- Damage parameters --
SWEP.Damage = 9
SWEP.DamageMin = 9
SWEP.Penetration = ArcCW.UC.StdDmg["12g_s"].pen
SWEP.Num = 8
SWEP.Range = 90
SWEP.RangeMin = 4
SWEP.DamageType = DMG_BUCKSHOT
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 200
SWEP.HullSize = 0.25
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults_Shotgun
-- Jamming --
SWEP.Malfunction = false
SWEP.MalfunctionJam = false
SWEP.MalfunctionPostFire = false
SWEP.MalfunctionTakeRound = false
-- Mag size --
SWEP.ChamberSize = 2
SWEP.Primary.ClipSize = 4
SWEP.ExtendedClipSize = 7
SWEP.ReducedClipSize = 2
SWEP.ChamberLoadNonEmpty = 2
SWEP.ChamberLoadEmpty = 1
-- Recoil --
SWEP.Recoil = 2.5
SWEP.RecoilSide = 2
SWEP.RecoilRise = 0.24
SWEP.VisualRecoilMult = 1
SWEP.MaxRecoilBlowback = 1
SWEP.MaxRecoilPunch = 1
SWEP.Sway = 0.5
-- Firerate / Firemodes --
SWEP.Delay = 60 / 120
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.ShotgunReload = true
SWEP.ShootVol = 160
SWEP.ShootPitch = 100
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_shotgun"
SWEP.NPCWeight = 210
-- Accuracy --
SWEP.AccuracyMOA = 45
SWEP.HipDispersion = 400
SWEP.MoveDispersion = 100
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "buckshot"
-- Speed multipliers --
SWEP.SpeedMult = 0.92
SWEP.SightedSpeedMult = 0.6
SWEP.SightTime = 0.4
SWEP.ShootSpeedMult = 0.75
-- Length --
SWEP.BarrelLength = 48
SWEP.ExtraSightDist = 2
-- Ironsights / Customization / Poses --
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.IronSightStruct = {
Pos = Vector(-2.73, -2, 1.1),
Ang = Angle(.25, 0.01, 0),
Magnification = 1.1,
SwitchToSound = "",
}
SWEP.HolsterPos = Vector(2, 0, -3)
SWEP.HolsterAng = Angle(-5.5, 20, -20)
SWEP.SprintPos = Vector(-0.5, -4, -3)
SWEP.SprintAng = Angle(3.5, 7, -20)
SWEP.ActivePos = Vector(-0.1, -0.5, 0.75)
SWEP.ActiveAng = Angle(0, 0, -0)
SWEP.CrouchPos = Vector(-4, -2, 0)
SWEP.CrouchAng = Angle(0, 0, -30)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(3, 0, -4.5)
-- Firing sounds --
local path2 = ")weapons/arccw_ud/m16/"
local path1 = ")weapons/arccw_ud/870/"
local path = ")weapons/arccw_ud/m1014/"
local common = ")/arccw_uc/common/"
SWEP.ShootSound = {
path1 .. "fire-01.ogg",
path1 .. "fire-02.ogg",
path1 .. "fire-03.ogg",
path1 .. "fire-04.ogg",
path1 .. "fire-05.ogg",
path1 .. "fire-06.ogg"
}
SWEP.ShootSoundSilenced = {
path1 .. "fire-sup-01.ogg",
path1 .. "fire-sup-02.ogg",
path1 .. "fire-sup-03.ogg",
path1 .. "fire-sup-04.ogg",
path1 .. "fire-sup-05.ogg",
path1 .. "fire-sup-06.ogg"
}
--[[SWEP.DistantShootSound = path .. "fire_dist.ogg"
SWEP.DistantShootSoundSilenced = common .. "sup_tail.ogg"]]
SWEP.ShootDrySound = path .. "dryfire.ogg"
local tail = ")/arccw_uc/common/12ga/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-12ga-pasg-ext-01.ogg",
tail .. "fire-dist-12ga-pasg-ext-02.ogg",
tail .. "fire-dist-12ga-pasg-ext-03.ogg",
tail .. "fire-dist-12ga-pasg-ext-04.ogg",
tail .. "fire-dist-12ga-pasg-ext-05.ogg",
tail .. "fire-dist-12ga-pasg-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 1
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
local rottle = {common .. "cloth_1.ogg", common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
local ratel = {common .. "rattle1.ogg", common .. "rattle2.ogg", common .. "rattle3.ogg"}
-- Animations --
SWEP.Hook_Think = ArcCW.UC.ADSReload
local shellin = {path .. "shell-insert-01.ogg", path .. "shell-insert-02.ogg", path .. "shell-insert-03.ogg"}
SWEP.Animations = {
["idle"] = {
Source = "idle",
},
["idle_empty"] = {
Source = "idle_empty",
},
["idle_jammed"] = {
Source = "idle_jammed",
},
["ready"] = {
Source = "equip",
Time = 60 / 30,
SoundTable = {
{s = rottle, t = 0.35},
{s = path .. "chback.ogg", t = 0.35},
{s = path .. "chamber.ogg", t = 0.6},
{s = rottle, t = 0.75},
},
},
["draw"] = {
Source = "draw",
Time = 30 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["draw_empty"] = {
Source = "draw_empty",
Time = 30 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["draw_jammed"] = {
Source = "draw_jammed",
Time = 30 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["holster"] = {
Source = "holster",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["holster_empty"] = {
Source = "holster_empty",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["holster_jammed"] = {
Source = "holster_jammed",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire"] = {
Source = "fire",
Time = 16 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg", t = 0, v = 0.45}, -- Not temporary
{s = path1 .. "eject.ogg", t = 0.01}, -- Not temporary
},
},
["fire_iron"] = {
Source = "fire",
Time = 18 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg", t = 0}, -- Not temporary
{s = path1 .. "eject.ogg", t = 0.01}, -- Not temporary
},
},
["fire_empty"] = {
Source = "fire_empty",
Time = 18 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Not temporary
{s = path1 .. "eject.ogg", t = 0.01}, -- Not temporary
},
},
["fire_iron_empty"] = {
Source = "fire_empty",
Time = 20 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Not temporary
{s = path1 .. "eject.ogg", t = 0.01}, -- Not temporary
},
},
["fire_jammed"] = {
Source = "fire_jam",
Time = 23 / 25,--30,
ShellEjectAt = false,
SoundTable = {
{s = path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg", t = 0}, -- Not temporary
--{s = path1 .. "eject.ogg", t = 0}, -- Not temporary
},
},
["unjam"] = {
Source = "jam_fix",
Time = 60 / 30,
ShellEjectAt = 0.8,
LHIK = false,
SoundTable = {
{s = rottle, t = 0},
{s = path2 .. "grab.ogg", t = 0.1},
{s = path .. "chback.ogg", t = 0.7},
{s = path1 .. "eject.ogg", t = 0.8, v = 0.4},
{s = path .. "chamber.ogg", t = 0.9},
{s = rottle, t = 1.2},
},
},
["unjam_empty"] = {
Source = "jam_fix_empty",
Time = 60 / 30,
ShellEjectAt = 1.1,
LHIK = false,
SoundTable = {
{s = rottle, t = 0},
{s = path2 .. "grab.ogg", t = .4},
{s = path .. "chback.ogg", t = 0.8},
{s = path1 .. "eject.ogg", t = 1.1},
{s = rottle, t = 1.2},
},
},
["sgreload_start"] = {
Source = "sgreload_start",
Time = 16 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = false,
//LHIKIn = 0.2,
//LHIKEaseIn = 0.2,
//LHIKOut = 0,
},
["sgreload_start_empty"] = {
Source = "sgreload_start_empty",
Time = 40 / 30,
MinProgress = 1,
LHIK = false,
//LHIKIn = 0.2,
//LHIKOut = 0,
TPAnimStartTime = 0.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "breechload.ogg", t = 0.25},
{s = path .. "breechclose.ogg", t = 0.9},
},
ForceEmpty = true,
},
["sgreload_insert"] = {
Source = "sgreload_insert",
Time = 18 / 30,
MinProgress = 0.24,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.3,
LHIK = false,
//LHIKIn = 0,
//LHIKOut = 0,
SoundTable = {
{s = shellin, t = 0},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.05},
},
},
["sgreload_finish"] = {
Source = "sgreload_finish",
Time = 30 / 30,
LHIK = false,
//LHIKIn = 0,
//LHIKEaseOut = 0.3,
//LHIKOut = 0.6,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.8,
SoundTable = {
{s = common .. "shoulder.ogg", t = 0.3},
},
},
-- stock animla below
["idle_stock"] = {
Source = "idle_stock",
},
["idle_empty_stock"] = {
Source = "idle_empty_stock",
},
["idle_jammed_stock"] = {
Source = "idle_jammed_stock",
},
["draw_stock"] = {
Source = "draw_stock",
Time = 20 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["draw_empty_stock"] = {
Source = "draw_empty_stock",
Time = 20 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["draw_jammed_stock"] = {
Source = "draw_jammed_stock",
Time = 20 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["holster_stock"] = {
Source = "holster_stock",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["holster_empty_stock"] = {
Source = "holster_empty_stock",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["holster_jammed_stock"] = {
Source = "holster_jammed_stock",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire_stock"] = {
Source = "fire_stock",
Time = 23 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg", t = 0}, -- Not temporary
{s = path1 .. "eject.ogg", t = 0.01}, -- Not temporary
},
},
["fire_empty_stock"] = {
Source = "fire_empty_stock",
Time = 23 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Not temporary
{s = path1 .. "eject.ogg", t = 0.01}, -- Not temporary
},
},
["fire_jammed_stock"] = {
Source = "fire_jam_stock",
Time = 23 / 25,--30,
ShellEjectAt = false,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Not temporary
--{s = path1 .. "eject.ogg", t = 0}, -- Not temporary
},
},
["unjam_stock"] = {
Source = "jam_fix_stock",
Time = 60 / 30,
ShellEjectAt = 1.1,
LHIK = false,
SoundTable = {
{s = rottle, t = 0},
{s = path2 .. "grab.ogg", t = .4},
{s = path .. "chback.ogg", t = 0.8},
{s = path1 .. "eject.ogg", t = 1.1},
{s = path .. "breechclose.ogg", t = 0.9},
{s = rottle, t = 1.2},
},
},
["unjam_empty_stock"] = {
Source = "jam_fix_empty_stock",
Time = 60 / 30,
ShellEjectAt = 1.1,
LHIK = false,
SoundTable = {
{s = rottle, t = 0},
{s = path2 .. "grab.ogg", t = .4},
{s = path .. "chback.ogg", t = 0.8},
{s = path1 .. "eject.ogg", t = 1.1},
--{s = path .. "breechclose.ogg", t = 1.2},
{s = rottle, t = 1.2},
},
},
["sgreload_start_stock"] = {
Source = "sgreload_start_stock",
Time = 16 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = false,
//LHIKIn = 0.2,
//LHIKEaseIn = 0.2,
//LHIKOut = 0,
},
["sgreload_start_empty_stock"] = {
Source = "sgreload_start_empty_stock",
Time = 40 / 30,
MinProgress = 1,
LHIK = false,
//LHIKIn = 0.2,
//LHIKOut = 0,
TPAnimStartTime = 0.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "breechload.ogg", t = 0.05},
{s = path .. "breechclose.ogg", t = 0.75},
},
ForceEmpty = true,
},
["sgreload_finish_stock"] = {
Source = "sgreload_finish_stock",
Time = 22 / 30,
LHIK = false,
//LHIKIn = 0,
//LHIKEaseOut = 0.3,
//LHIKOut = 0.6,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.8,
SoundTable = {
{s = common .. "shoulder.ogg", t = 0.4},
},
},
}
SWEP.BulletBones = {
--[1] = "1014_shell1",
}
-- Bodygroups --
SWEP.AttachmentElements = {
["ud_autoshotgun_barrel_short"] = {
VMBodygroups = {{ind = 1, bg = 1}},
AttPosMods = {
[3] = {
vpos = Vector(0, -0.40, 19.6),
}
},
},
["ud_autoshotgun_barrel_sawnoff"] = {
VMBodygroups = {{ind = 1, bg = 2}},
AttPosMods = {
[3] = {
vpos = Vector(-0.03, -0.75, 22.2),
}
},
},
["ud_autoshotgun_barrel_sport"] = {
VMBodygroups = {{ind = 1, bg = 2}},
AttPosMods = {
[3] = {
vpos = Vector(0, -0.40, 26.3),
}
},
Override_IronSightStruct = {
Pos = Vector(-2.73, -2, 1.01),
Ang = Angle(0.95, 0.01, 0),
Magnification = 1.1
},
},
["ud_autoshotgun_tube_short"] = {
VMBodygroups = {
{ind = 2, bg = 1},
{ind = 4, bg = 1},
},
},
["ud_autoshotgun_tube_long"] = {
VMBodygroups = {{ind = 2, bg = 0}},
},
["ud_autoshotgun_stock_in"] = {
VMBodygroups = {{ind = 3, bg = 1}},
VMPoseParams = {["grip"] = 0}
},
["ud_autoshotgun_stock_buffer"] = {
VMBodygroups = {{ind = 3, bg = 2}},
VMPoseParams = {["grip"] = 0}
},
["ud_autoshotgun_stock_sport"] = {
VMBodygroups = {
{ind = 3, bg = 3},
{ind = 6, bg = 1},
},
VMPoseParams = {["grip"] = 1}
},
["ud_autoshotgun_stock_gripstock"] = {
VMBodygroups = {
{ind = 3, bg = 5},
},
VMPoseParams = {["grip"] = 0}
},
["ud_m1014_handguard_sport"] = {
VMBodygroups = {{ind = 5, bg = 2}},
},
["ud_autoshotgun_rail_fg"] = {
VMBodygroups = {{ind = 5, bg = 1}},
},
}
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp", "optic", "optic_sniper"},
Bone = "1014_parent",
Offset = {
vpos = Vector(-0.025, -1.35, 2.5),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Barrel",
DefaultAttName = "18.5\" Factory Barrel", --16\" M4 Super 90 SBS Barrel
DefaultAttIcon = Material("entities/att/acwatt_ud_m1014_barrel.png", "smooth mips"),
Slot = "ud_1014_barrel",
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"choke", "muzzle_shotgun"},
Bone = "1014_parent",
Offset = {
vpos = Vector(0, -0.40, 24.5),
vang = Angle(90, 0, -90),
},
ExcludeFlags = {"nomuzzle"}
},
{
PrintName = "Underbarrel",
Slot = {"foregrip","ud_1014_handguard"},
Bone = "1014_parent",
Offset = {
vpos = Vector(0, 1.7, 9),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ud_autoshotgun_rail_fg"},
},
{
PrintName = "Tactical",
Slot = {"tac_pistol"},
Bone = "1014_parent",
Offset = {
vpos = Vector(0.8, 0.8, 13),
vang = Angle(90, 0, 0),
},
InstalledEles = {"ud_autoshotgun_rail_fg"},
},
{
PrintName = "Stock",
Slot = {"ud_1014_stock"},
Bone = "1014_parent",
Offset = {
vpos = Vector(-0.02, 1.9, -2.07),
vang = Angle(90, 0, -90),
},
DefaultAttName = "Extended Stock",
DefaultAttIcon = Material("entities/att/acwatt_ud_m1014_stock.png", "smooth mips"),
},
{
PrintName = "Tube Type",
Slot = {"ud_1014_tube"},
DefaultAttName = "4 Shell Tube",
DefaultAttIcon = Material("entities/att/acwatt_ud_m1014_tube.png", "smooth mips"),
DefaultEles = {"ud_autoshotgun_tube_short"},
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"BUCK\" #00 Buckshot",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_shotgun_generic.png", "mips smooth"),
Slot = "ud_ammo_shotgun",
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm"},
FreeSlot = true,
Bone = "1014_parent",
Offset = {
vpos = Vector(0.7, -0.5, 4),
vang = Angle(90, 0, -90),
},
},
}
local lookup_barrel = {
default = 1,
ud_m1014_barrel_short = 0,
}
local lookup_tube = {
default = 0,
ud_m1014_tube_ext = 1,
}
SWEP.Hook_ExtraFlags = function(wep, data)
local barrel = wep.Attachments[2].Installed and lookup_barrel[wep.Attachments[2].Installed] or lookup_barrel["default"]
local tube = wep.Attachments[7].Installed and lookup_tube[wep.Attachments[7].Installed] or lookup_tube["default"]
if barrel < tube then
table.insert(data, "nomuzzleblocking")
end
end

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,458 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Special Weaponry"
SWEP.UC_CategoryPack = "1Urban Decay"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_m79"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/ud_shells/12.mdl"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.ShotgunShellSoundsTable
SWEP.ShellScale = 0
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 3
SWEP.CamAttachment = 2
-- Fake name --
SWEP.PrintName = "AMSGL"
-- (American) Squad Grenade Launcher or something. similar to M16's fake name
-- True name --
SWEP.TrueName = "M79"
-- Trivia --
SWEP.Trivia_Class = "Grenade Launcher"
SWEP.Trivia_Desc = "Single-shot 40mm grenade launcher intended to provide infantry with portable long-range explosive firepower. Accurate, flexible and reliable, it is well-respected among American soldiers."
SWEP.Trivia_Manufacturer = "Stoner's Legacy Ltd."
SWEP.Trivia_Calibre = "40x46mm"
SWEP.Trivia_Mechanism = "Break-action"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1961
-- Weapon slot --
SWEP.Slot = 4
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Springfield Armory"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ud_m79.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ud_m79.mdl"
SWEP.ViewModelFOV = 60
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SHOTGUN
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-8, 5.5, -4.5),
ang = Angle(-12, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1 - ( 0.35 * 0.5 )
}
-- Damage parameters --
SWEP.Damage = 200
SWEP.DamageMin = 200
SWEP.Range = 40
SWEP.RangeMin = 0
SWEP.Num = 1
SWEP.Penetration = 0
SWEP.ShootEntity = "arccw_uc_40mm_he"
SWEP.MuzzleVelocity = 5000
-- Mag size --
SWEP.ChamberSize = 0
SWEP.Primary.ClipSize = 1
SWEP.ExtendedClipSize = 1
SWEP.ReducedClipSize = 1
-- Recoil --
SWEP.Recoil = 4
SWEP.RecoilSide = 2
SWEP.RecoilSide = 1
SWEP.RecoilRise = 0.24
SWEP.VisualRecoilMult = 1
SWEP.MaxRecoilBlowback = 1
SWEP.MaxRecoilPunch = 1
SWEP.Sway = 0.5
-- Firerate / Firemodes --
SWEP.Delay = 60 / 220
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.ShootVol = 160
SWEP.ShootPitch = 100
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
-- NPC --
SWEP.NPCWeaponType = "weapon_rpg"
SWEP.NPCWeight = 210
-- Accuracy --
SWEP.AccuracyMOA = 30
SWEP.HipDispersion = 500
SWEP.MoveDispersion = 200
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "smg1_grenade"
-- Speed multipliers --
SWEP.SpeedMult = 0.92
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.4
SWEP.ShootSpeedMult = 0.75
-- Length --
SWEP.BarrelLength = 48
SWEP.ExtraSightDist = 2
-- Ironsights / Customization / Poses --
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.IronSightStruct = {
Pos = Vector(-3.51, -5, 2.2),
Ang = Angle(0, 0, 0),
Midpoint = {
Pos = Vector(0, 0, 0),
Ang = Angle(0, -1, 0),
},
Magnification = 1,
SwitchToSound = "",
CrosshairInSights = false,
}
SWEP.HolsterPos = Vector(-0.5, -4, -3)
SWEP.HolsterAng = Angle(3.5, 7, -20)
SWEP.ActivePos = Vector(0, 0, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-4, -2, 0)
SWEP.CrouchAng = Angle(0, 0, -30)
SWEP.BarrelOffsetSighted = Vector(0, 0, -4)
SWEP.BarrelOffsetHip = Vector(6, 0, -8)
-- Firing sounds --
local common = ")/arccw_uc/common/"
local path = ")/arccw_uc/common/40mm/"
local rottle = {common .. "cloth_1.ogg", common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
--SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.DistantShootSound = {
path .. "fire-dist-01.ogg",
path .. "fire-dist-02.ogg",
path .. "fire-dist-03.ogg",
path .. "fire-dist-04.ogg",
path .. "fire-dist-05.ogg",
path .. "fire-dist-06.ogg"
}
--[[SWEP.DistantShootSoundOutdoors = {
path .. "fire-dist-01.ogg",
path .. "fire-dist-02.ogg",
path .. "fire-dist-03.ogg",
path .. "fire-dist-04.ogg",
path .. "fire-dist-05.ogg",
path .. "fire-dist-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}]]
-- Animations --
SWEP.Hook_Think = ArcCW.UC.ADSReload
SWEP.Animations = {
["idle"] = {
Source = "idle",
},
["draw"] = {
Source = "draw",
SoundTable = ArcCW.UC.DrawSounds,
},
["holster"] = {
Source = "holster",
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire"] = {
Source = "fire",
Time = 20 / 30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = "fire",
Time = 20 / 30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0}},
},
["reload"] = {
Source = "reload",
Time = 101 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.6,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.2,
LHIKOut = 0.5,
LastClip1OutTime = 1.5,
MinProgress = 2.2,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "breaker_open.ogg", t = 0.3},
{s = common .. "gl_remove.ogg", t = 0.9},
{s = rottle, t = 1.0},
{s = common .. "magpouch.ogg", t = 1.4},
{s = common .. "40mm_casing_1.ogg", t = 1.6},
{s = common .. "gl_insert.ogg", t = 2.0},
{s = rottle, t = 2.25},
{s = common .. "breaker_close.ogg", t = 2.5},
-- {
-- t = 0.6,
-- e = "RagdollImpact", -- Please add some kind of smoke particle after opening the chamber
-- att = 1,
-- mag = 100,
-- }
},
},["reload_shotgun"] = {
Source = "reload",
Time = 101 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.6,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.2,
LHIKOut = 0.5,
LastClip1OutTime = 1.5,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "breaker_open.ogg", t = 0.3},
{s = common .. "gl_remove.ogg", t = 0.9},
{s = rottle, t = 1.0},
{s = common .. "40mm_casing_1.ogg", t = 1.6},
{s = common .. "gl_insert.ogg", t = 2.0},
{s = rottle, t = 2.25},
{s = common .. "breaker_close.ogg", t = 2.5},
{
t = 1, ind = 1, bg = 2, -- Empty shell bodygroup
},
{
t = 1.5, ind = 1, bg = 1,
}
},
},
["reload_caseless"] = {
Source = "reload_caseless",
Time = 101 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.74,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.2,
LHIKOut = 0.6,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "breaker_open.ogg", t = 0.3},
{s = rottle, t = 0.75},
{s = common .. "gl_insert.ogg", t = 1.5},
{s = rottle, t = 2.0},
{s = common .. "breaker_close.ogg", t = 2.25},
-- {
-- t = 0.6,
-- e = "muzzleflash_m79", -- Please add some kind of smoke particle after opening the chamber
-- att = nil,
-- mag = 100,
-- }
},
},
}
SWEP.BulletBones = {
[1] = "m79_grenade",
}
-- Bodygroups --
SWEP.AttachmentElements = {
["m79_pirategun"] = {
VMBodygroups = {{ind = 0, bg = 1}},
},
["m79_nostock"] = {
VMBodygroups = {{ind = 2, bg = 1}},
},
["m79_rail"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
["40mm_buckshot"] = {
VMBodygroups = {{ind = 1, bg = 1}},
},
["40mm_buckshot_empty"] = {
VMBodygroups = {{ind = 1, bg = 2}},
},
["40mm_caseless"] = {
VMBodygroups = {{ind = 1, bg = 3}},
},
["40mm_hornetnest"] = {
VMBodygroups = {{ind = 1, bg = 4}},
},
["40mm_incendiary"] = {
VMBodygroups = {{ind = 1, bg = 5}},
},
["40mm_napalm"] = {
VMBodygroups = {{ind = 1, bg = 5}},
},
}
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp", "optic", "optic_sniper"},
Bone = "m79_front",
Offset = {
vpos = Vector(0, -3.6, 1),
vang = Angle(90, 2, -90),
},
InstalledEles = {"m79_rail"},
ExcludeFlags = {"m79_pirategun"},
},
{
PrintName = "Tube",
DefaultAttName = "Standard Tube",
DefaultAttIcon = Material("entities/att/acwatt_ud_m79_barrel.png", "smooth mips"),
Slot = "ud_m79_barrel",
Bone = "m79_front",
Offset = {
vpos = Vector(3.45, -5.3, -22),
vang = Angle(90, 2, -90),
},
},
{
PrintName = "Underbarrel",
Slot = {"foregrip"},
Bone = "m79_front",
Offset = {
vpos = Vector(0, 0.4, 1.25),
vang = Angle(90, 0, -90),
},
InstalledEles = {"m79_rail"},
ExcludeFlags = {"m79_pirategun"},
MergeSlots = {10},
},
{
PrintName = "Tactical",
Slot = {"tac_pistol"},
Bone = "m79_front",
Offset = {
vpos = Vector(0.25, 0, 5),
vang = Angle(90, 0, -90),
},
ExcludeFlags = {"m79_pirategun"},
},
{
PrintName = "Stock",
Slot = {"ud_m79_stock"},
DefaultAttName = "Wooden Stock",
DefaultAttIcon = Material("entities/att/acwatt_ud_m79_stock.png", "smooth mips"),
},
{
PrintName = "Grenade Type",
DefaultAttName = "High Explosive",
DefaultAttIcon = Material("entities/att/arccw_uc_40mm_generic.png", "smooth mips"),
Slot = "uc_40mm",
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg_singleshot", -- Fire group
DefaultAttName = "Standard Internals",
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm"},
FreeSlot = true,
Bone = "m79_front",
Offset = {
vpos = Vector(0.8, -1, 0),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "M203 slot",
Slot = "uc_ubgl",
Bone = "m79_front",
Offset = {
vpos = Vector(0, -1.1, 0.9),
vang = Angle(90, 0, -90),
},
InstalledEles = {"m79_rail"},
ExcludeFlags = {"m79_pirategun"},
Hidden = true,
}
}

View File

@@ -0,0 +1,932 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Oldie Weaponry"
SWEP.UC_CategoryPack = "1Urban Decay"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Effects --
SWEP.MuzzleEffect = "muzzleflash_1"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/556x45.mdl"
SWEP.ShellScale = 0.666
--SWEP.ShellMaterial = "models/weapons/arcticcw/shell_556"
SWEP.ShellPitch = 100
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.CamAttachment = 3
SWEP.TracerNum = 1
SWEP.TracerCol = Color(25, 255, 25)
SWEP.TracerWidth = 2
-- Fake name --
SWEP.PrintName = "Patriot 809"
-- True name --
SWEP.TrueName = "Mini-14"
-- Trivia --
SWEP.Trivia_Class = "Semi-Automatic Rifle"
SWEP.Trivia_Desc = [[Autoloading rifle designed for better accuracy than competing models. Due to its appearance, it is sometimes exempted from gun control laws targeting "Assault Weapons" despite its identical ability to kill. This has helped it find success despite its higher cost and non-standard magazine well.
While it can perform well in close-quarters combat, its high accuracy excels in mid-range engagements.]]
SWEP.Trivia_Manufacturer = "Rifles International"
SWEP.Trivia_Calibre = "5.56x45mm NATO"
SWEP.Trivia_Mechanism = "Gas-Operated Rotating Bolt"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1973
-- Weapon slot --
SWEP.Slot = 2
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Sturm, Ruger & Company"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ud_mini14.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ud_mini14.mdl"
SWEP.ViewModelFOV = 70
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.DefaultSkin = 0
SWEP.DefaultPoseParams = {["grip"] = 0}
-- Damage --
SWEP.Damage = 20
SWEP.DamageMin = 20
SWEP.RangeMin = 50
SWEP.Range = 400 -- 4 shot until ~275m
SWEP.Penetration = ArcCW.UC.StdDmg["556"].pen
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 990
SWEP.PhysBulletMuzzleVelocity = 960
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults
-- Mag size --
SWEP.ChamberSize = 1
SWEP.Primary.ClipSize = 20
SWEP.ExtendedClipSize = 30
SWEP.ReducedClipSize = 10
-- Recoil --
SWEP.Recoil = 0.45
SWEP.RecoilSide = 0.2
SWEP.RecoilRise = 0.5
SWEP.RecoilPunch = 1
SWEP.VisualRecoilMult = 1
SWEP.MaxRecoilBlowback = 1
SWEP.MaxRecoilPunch = 1
SWEP.RecoilPunchBack = 1
SWEP.Sway = 0.25
-- Firerate / Firemodes --
SWEP.Delay = 60 / 540
SWEP.Num = 1
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0,
},
}
SWEP.ShootPitch = 100
SWEP.ShootVol = 120
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 60
-- Accuracy --
SWEP.AccuracyMOA = 4
SWEP.HipDispersion = 800
SWEP.MoveDispersion = 300
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "smg1"
SWEP.MagID = "mini14"
SWEP.HeatCapacity = 75
SWEP.HeatDissipation = 5
SWEP.HeatDelayTime = 3
SWEP.MalfunctionMean = 100
-- Speed multipliers --
SWEP.SpeedMult = 0.9
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.35
SWEP.ShootSpeedMult = 0.9
-- Length --
SWEP.BarrelLength = 36
SWEP.ExtraSightDist = 2
-- Ironsights / Customization / Poses --
SWEP.HolsterPos = Vector(2, 0, -2)
SWEP.HolsterAng = Angle(-5.5, 20, -20)
SWEP.SprintPos = Vector(-0.5, -4, -2)
SWEP.SprintAng = Angle(3.5, 7, -20)
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.IronSightStruct = {
Pos = Vector(-4.305, -7, 2.55),
Ang = Angle(0, 0, 0),
Magnification = 1,
SwitchToSound = "",
CrosshairInSights = false,
}
SWEP.ActivePos = Vector(-1, -1, 1)
SWEP.ActiveAng = Angle(0, 0, -3)
SWEP.CustomizePos = Vector(5, -2, -2)
SWEP.CustomizeAng = Angle(15, 25, 0)
SWEP.CrouchPos = Vector(-5, -4, 0)
SWEP.CrouchAng = Angle(0, 0, -30)
SWEP.BarrelOffsetHip = Vector(3, 0, -3)
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-10, 6.5, -6),
ang = Angle(-12, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1 - ( 0.35 * 0.75 )
}
-- Firing sounds --
local path = ")weapons/arccw_ud/mini14/"
local common = ")/arccw_uc/common/"
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.ShootSoundSilenced = path .. "fire_supp.ogg"
SWEP.DistantShootSound = nil
SWEP.DistantShootSoundSilenced = common .. "sup_tail.ogg"
SWEP.ShootDrySound = path .. "dryfire.ogg"
local tail = ")/arccw_uc/common/556x45/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-556x45-rif-ext-01.ogg",
tail .. "fire-dist-556x45-rif-ext-02.ogg",
tail .. "fire-dist-556x45-rif-ext-03.ogg",
tail .. "fire-dist-556x45-rif-ext-04.ogg",
tail .. "fire-dist-556x45-rif-ext-05.ogg",
tail .. "fire-dist-556x45-rif-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-rifle-01.ogg",
common .. "fire-dist-int-rifle-02.ogg",
common .. "fire-dist-int-rifle-03.ogg",
common .. "fire-dist-int-rifle-04.ogg",
common .. "fire-dist-int-rifle-05.ogg",
common .. "fire-dist-int-rifle-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 1
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
-- Bodygroups --
SWEP.BulletBones = {
[2] = "mini14_bullet1", [3] = "mini14_bullet2"
}
SWEP.AttachmentElements = {
["ud_mini14_mag_10"] = {
VMBodygroups = {{ind = 4, bg = 2}},
},
["ud_mini14_mag_30"] = {
VMBodygroups = {{ind = 4, bg = 1}},
},
["ud_mini14_mag_42"] = {
VMBodygroups = {{ind = 4, bg = 4}},
},
["ud_mini14_mag_60"] = {
VMBodygroups = {{ind = 4, bg = 5}},
},
["ud_mini14_mag_15_22lr"] = {
VMBodygroups = {{ind = 4, bg = 3}},
},
["ud_mini14_mag_30_762"] = {
VMBodygroups = {{ind = 4, bg = 6}},
},
["ud_mini14_rail_optic"] = {
VMBodygroups = {{ind = 2, bg = 1}},
},
["ud_mini14_rail_fg"] = {
VMBodygroups = {{ind = 5, bg = 1}},
},
["ud_mini14_barrel_long"] = {
VMBodygroups = {{ind = 3, bg = 1}},
AttPosMods = {
[3] = {
vpos = Vector(0, -2.15, 34.5),
},
},
},
["ud_mini14_barrel_short"] = {
VMBodygroups = {{ind = 3, bg = 2}},
AttPosMods = {
[3] = {
vpos = Vector(0, -2.15, 27.5),
},
},
},
["ud_mini14_barrel_stub"] = {
VMBodygroups = {{ind = 3, bg = 3}},
AttPosMods = {
[3] = {
vpos = Vector(0, -2.1, 25),
},
},
},
["ud_mini14_receiver_762"] = {
TrueNameChange = "Mini-30",
NameChange = "Patriot 816"
},
["ud_mini14_receiver_auto"] = {
TrueNameChange = "AC-556",
NameChange = "Patriot ACC"
},
["ud_mini14_receiver_22lr"] = {
TrueNameChange = "Mini-14 .22 LR",
NameChange = "Patriot 822"
},
["ud_mini14_stock_polymer"] = {
VMBodygroups = {{ind = 1, bg = 1}},
VMPoseParams = {["grip"] = 0}
},
["ud_mini14_stock_sawnoff"] = {
VMBodygroups = {{ind = 1, bg = 2}},
VMPoseParams = {["grip"] = 0}
},
["ud_mini14_stock_tactical"] = {
VMBodygroups = {{ind = 1, bg = 4}},
VMPoseParams = {["grip"] = 1}
},
["ud_mini14_stock_tactical_polymer"] = {
VMBodygroups = {{ind = 1, bg = 3}},
VMSkin = 1,
VMPoseParams = {["grip"] = 1}
},
["ud_mini14_clamp"] = {
VMBodygroups = {{ind = 6, bg = 1}},
},
}
-- Animations --
SWEP.Hook_Think = ArcCW.UC.ADSReload
SWEP.Animations = {
["ready"] = {
Source = "unjam",
Time = 40 / 30,
SoundTable = {
{s = common .. "raise.ogg", t = 0},
{s = common .. "rattle.ogg", t = 0.2},
{s = path .. "chback.ogg", t = 0.25},
{s = path .. "chamber.ogg", t = 0.35},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.8},
{s = common .. "shoulder.ogg", t = 1},
},
LHIK = true,
LHIKIn = 0.5,
LHIKEaseIn = 0.5,
LHIKEaseOut = 0.15,
LHIKOut = 0.5,
ProcDraw = true,
},
["idle"] = {
Source = "idle",
},
["idle_empty"] = {
Source = "idle_empty",
},
["draw"] = {
Source = "draw",
SoundTable = ArcCW.UC.DrawSounds,
},
["draw_empty"] = {
Source = "draw_empty",
Time = 12 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["holster"] = {
Source = "holster",
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0,
LHIKOut = 0,
SoundTable = ArcCW.UC.HolsterSounds,
},
["holster_empty"] = {
Source = "holster_empty",
Time = 12 / 30,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0,
LHIKOut = 0,
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire"] = {
Source = "fire",
Time = 20 / 30,
ShellEjectAt = 0.01,
LastClip1OutTime = 0,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = "fire",
Time = 20 / 30,
ShellEjectAt = 0.01,
LastClip1OutTime = 0,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
["fire_empty"] = {
Source = "fire_empty",
Time = 20 / 30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Temporary
},
},
["fire_iron_empty"] = {
Source = "fire_empty",
Time = 20 / 30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Temporary
},
},
["unjam"] = {
Source = "unjam",
Time = 40 / 30,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "chback.ogg", t = 0.25},
{s = path .. "chamber.ogg", t = 0.35},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.8},
{s = common .. "shoulder.ogg", t = 1},
},
LHIK = true,
LHIKIn = 0.5,
LHIKEaseIn = 0.5,
LHIKEaseOut = 0.15,
LHIKOut = 0.5,
ShellEjectAt = .35,
},
-- 20 Round Reloads --
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 66 / 30,
MinProgress = 1.4,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.25},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.4},
{s = common .. "magpouch.ogg", t = 0.6},
{s = path .. "magin.ogg", t = 1.05},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.3},
{s = common .. "shoulder.ogg", t = 1.75},
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 86 / 30,
MinProgress = 2.1,
LastClip1OutTime = 1,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.15},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.4},
{s = common .. "magpouch.ogg", t = 0.6},
{s = common .. "rifle_magdrop.ogg", t = 0.9},
{s = path .. "magin.ogg", t = 1.10},
{s = path .. "chback.ogg", t = 1.85},
{s = path .. "chamber.ogg", t = 1.95},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 2.2},
{s = common .. "shoulder.ogg", t = 2.4},
},
},
-- 10 Round Reloads --
["reload_10"] = {
Source = "reload_10",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 67 / 30,
MinProgress = 1.6,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.15},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.6, c = ci},
{s = path .. "magin.ogg", t = 1.10},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.5},
},
},
["reload_empty_10"] = {
Source = "reload_empty_10",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 86 / 30,
MinProgress = 2.1,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.15},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.4},
{s = common .. "magpouch.ogg", t = 0.6, c = ci},
{s = common .. "rifle_magdrop.ogg", t = 0.9},
{s = path .. "magin.ogg", t = 1.10},
{s = path .. "chback.ogg", t = 1.90},
{s = path .. "chamber.ogg", t = 2.00},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 2.4},
{s = common .. "shoulder.ogg", t = 2.5},
},
},
-- 30 Round Reloads --
["reload_30"] = {
Source = "reload_30",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 67 / 30,
MinProgress = 1.4,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.3},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.7, c = ci},
{s = path .. "magin.ogg", t = 1.10},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.4},
{s = common .. "shoulder.ogg", t = 1.85},
},
},
["reload_empty_30"] = {
Source = "reload_empty_30",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 86 / 30,
MinProgress = 2.3,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.2},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.65, c = ci},
{s = common .. "rifle_magdrop.ogg", t = 0.9},
{s = path .. "magin.ogg", t = 1.20},
{s = path .. "chback.ogg", t = 2},
{s = path .. "chamber.ogg", t = 2.1},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 2.3},
{s = common .. "shoulder.ogg", t = 2.65},
},
},
-- 30 polymer Reloads --
["reload_30_tac"] = {
Source = "reload_30_tac",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 67 / 30,
MinProgress = 1.4,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.3},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.7, c = ci},
{s = path .. "magin.ogg", t = 1.10},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.4},
{s = common .. "shoulder.ogg", t = 1.85},
},
},
["reload_empty_30_tac"] = {
Source = "reload_empty_30_tac",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 86 / 30,
MinProgress = 2.3,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.2},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.65, c = ci},
{s = common .. "rifle_magdrop.ogg", t = 0.9},
{s = path .. "magin.ogg", t = 1.20},
{s = path .. "chback.ogg", t = 2},
{s = path .. "chamber.ogg", t = 2.1},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 2.3},
{s = common .. "shoulder.ogg", t = 2.65},
},
},
-- 7.62 reloads --
["reload_762"] = {
Source = "reload_762",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 67 / 30,
MinProgress = 1.4,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.3},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.7, c = ci},
{s = path .. "magin.ogg", t = 1.10},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.4},
{s = common .. "shoulder.ogg", t = 1.85},
},
},
["reload_empty_762"] = {
Source = "reload_empty_762",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 86 / 30,
MinProgress = 2.3,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.2},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.65, c = ci},
{s = common .. "rifle_magdrop.ogg", t = 0.9},
{s = path .. "magin.ogg", t = 1.20},
{s = path .. "chback.ogg", t = 2},
{s = path .. "chamber.ogg", t = 2.1},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 2.3},
{s = common .. "shoulder.ogg", t = 2.65},
},
},
-- 60 round reloads (?) --
["reload_60"] = {
Source = "reload_60",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 67 / 30,
MinProgress = 1.4,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.35},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.7, c = ci},
{s = path .. "magin.ogg", t = 1.10},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.4},
{s = common .. "shoulder.ogg", t = 1.85},
},
},
["reload_empty_60"] = {
Source = "reload_empty_60",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 86 / 30,
MinProgress = 2.3,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.35},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.7, c = ci},
{s = common .. "rifle_magdrop.ogg", t = 0.9},
{s = path .. "magin.ogg", t = 1.20},
{s = path .. "chback.ogg", t = 1.9},
{s = path .. "chamber.ogg", t = 2},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 2.3},
{s = common .. "shoulder.ogg", t = 2.65},
},
},
-- 15 22lr Round Reloads --
["reload_15_22lr"] = {
Source = "reload_15_22lr",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 67 / 30,
MinProgress = 1.6,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.45,
LHIKOut = 0.7,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.15},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.3},
{s = common .. "magpouch.ogg", t = 0.65, c = ci},
{s = path .. "magin.ogg", t = .9},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.4},
},
},
["reload_empty_15_22lr"] = {
Source = "reload_empty_15_22lr",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Time = 86 / 30,
MinProgress = 2.2,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.45,
LHIKOut = 0.6,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.0},
{s = path .. "magout.ogg", t = 0.15},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.5},
{s = common .. "pistol_magdrop.ogg", t = 0.9},
{s = common .. "magpouch.ogg", t = 0.7, c = ci},
{s = path .. "magin.ogg", t = 1.10},
{s = path .. "chback.ogg", t = 1.9},
{s = path .. "chamber.ogg", t = 2.0},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 2.3},
},
},
}
SWEP.Hook_ModifyBodygroups = function(wep,data)
local vm = data.vm
if !IsValid(vm) then return end
local atts = wep.Attachments
local barr = string.Replace(atts[2].Installed or "default","ud_mini14_barrel_","")
local muzz = atts[3].Installed
local tac = atts[6].Installed
if muzz or barr == "stub" or barr == "default" then
vm:SetBodygroup(7,2)
elseif barr == "short" then
vm:SetBodygroup(7,1)
elseif barr == "long" then
vm:SetBodygroup(7,0)
end
if !tac then
vm:SetBodygroup(6,0)
end
end
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp","optic","optic_sniper"},
Bone = "mini14_parent",
Offset = {
vpos = Vector(0, -3.6, 6),
vang = Angle(90, 2, -90),
},
VMScale = Vector(1.2,1.2,1.2),
WMScale = VMScale,
InstalledEles = {"ud_mini14_rail_optic"},
},
{
PrintName = "Barrel",
DefaultAttName = "20\" Standard Barrel",
DefaultAttIcon = Material("entities/att/acwatt_ud_mini14_barrel.png", "smooth mips"),
Slot = "ud_mini14_barrel",
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"muzzle"},
Bone = "mini14_parent",
Offset = {
vpos = Vector(0, -2.15, 30),
vang = Angle(90, 0, -90),
wpos = vpos,
},
VMScale = Vector(1.5,1.5,1.5),
WMScale = VMScale,
ExcludeFlags = {"nomuzzle"},
},
{
PrintName = "Receiver",
DefaultAttName = "Mini-14 Receiver",
DefaultAttIcon = Material("entities/att/acwatt_ud_mini14_receiver.png", "smooth mips"),
Slot = "ud_mini14_receiver",
},
{
PrintName = "Underbarrel",
Slot = {"foregrip"},
Bone = "mini14_parent",
Offset = {
vpos = Vector(0, 0, 14),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ud_mini14_rail_fg"},
MergeSlots = {14}
},
{
PrintName = "Tactical",
Slot = {"tac"},
Bone = "mini14_parent",
Offset = {
vpos = Vector(0, -1.5, 22.3),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ud_mini14_clamp"},
},
{
PrintName = "Magazine",
Slot = {"ud_mini14_mag"},
DefaultAttName = "20-Round Mag",
DefaultAttIcon = Material("entities/att/acwatt_ud_mini14_mag_20.png", "smooth mips"),
},
{
PrintName = "Stock",
Slot = {"ud_mini14_stock"},
DefaultAttName = "Wooden Stock",
DefaultAttIcon = Material("entities/att/acwatt_ud_mini14_stock.png", "smooth mips"),
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"FMJ\" Full Metal Jacket",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_generic.png", "mips smooth"),
Slot = "uc_ammo",
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm"},
FreeSlot = true,
Bone = "mini14_parent",
Offset = {
vpos = Vector(1.1, -0.5, 6),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "M203 slot",
Slot = "uc_ubgl",
Bone = "mini14_parent",
Offset = {
vpos = Vector(0, -1.2, 10),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ud_mini14_rail_fg"},
ExcludeFlags = {"ak_noubs","barrel_rpk"},
Hidden = true,
}
}

View File

@@ -0,0 +1,825 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Modern Weaponry"
SWEP.UC_CategoryPack = "1Urban Decay"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Effects --
SWEP.MuzzleEffect = "muzzleflash_1"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/9x19.mdl"
SWEP.ShellScale = 1
--SWEP.ShellMaterial = "models/weapons/arcticcw/shell_9mm"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.PistolShellSoundsTable
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.CamAttachment = 3
SWEP.TracerNum = 1
SWEP.TracerCol = Color(25, 255, 25)
SWEP.TracerWidth = 2
-- Fake name --
SWEP.PrintName = "IAL-9"
-- True name --
SWEP.TrueName = "Uzi"
-- Trivia --
SWEP.Trivia_Class = "Submachine Gun"
SWEP.Trivia_Desc = "Revolutionary submachine gun developed to arm a young State of Israel following the Second World War. Its ergonomic design, low cost, reliability, and great handling made it popular among militaries, police forces, and private security firms worldwide.\n\nBoasts excellent recoil control partially due to a below average cyclic rate. Good for hip firing in close quarters."
SWEP.Trivia_Manufacturer = "IAL Metal Industries"
SWEP.Trivia_Calibre = "9x19mm Parabellum"
SWEP.Trivia_Mechanism = "Open Bolt"
SWEP.Trivia_Country = "Israel"
SWEP.Trivia_Year = 1950
-- Weapon slot --
SWEP.Slot = 2
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Israeli Military Industries"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ud_uzi.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ud_uzi.mdl"
SWEP.ViewModelFOV = 70
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
-- Damage --
SWEP.Damage = 12
SWEP.DamageMin = 12
SWEP.Penetration = ArcCW.UC.StdDmg["9mm"].pen
SWEP.RangeMin = 15
SWEP.Range = 100 -- 4 shot until ~35m
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 400
SWEP.PhysBulletMuzzleVelocity = 400
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults
-- Mag size --
SWEP.ChamberSize = 0
SWEP.Primary.ClipSize = 32
SWEP.ExtendedClipSize = 40
SWEP.ReducedClipSize = 16
-- Recoil --
SWEP.Recoil = 0.3
SWEP.RecoilSide = 0.35
SWEP.RecoilRise = 0.2
SWEP.RecoilPunch = 1
SWEP.VisualRecoilMult = 1
SWEP.MaxRecoilBlowback = 1
SWEP.MaxRecoilPunch = 0.6
SWEP.RecoilPunchBack = 1.5
SWEP.Sway = 0.3
-- Firerate / Firemodes --
SWEP.TriggerDelay = true
SWEP.Delay = 60 / 700
SWEP.Num = 1
SWEP.Firemodes = {
{
Mode = 2,
Mult_TriggerDelayTime = 2,
},
{
Mode = 1,
Mult_TriggerDelayTime = 1,
},
{
Mode = 0,
},
}
SWEP.ShootPitch = 100
SWEP.ShootVol = 120
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 60
-- Accuracy --
SWEP.AccuracyMOA = 15
SWEP.HipDispersion = 400
SWEP.MoveDispersion = 100
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "pistol"
SWEP.MagID = "uzi"
SWEP.HeatCapacity = 75
SWEP.HeatDissipation = 15
SWEP.HeatDelayTime = 3
SWEP.MalfunctionMean = 200
SWEP.MalfunctionTakeRound = false
-- Speed multipliers --
SWEP.SpeedMult = 0.95
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.3
SWEP.ShootSpeedMult = 0.95
-- Length --
SWEP.BarrelLength = 24
SWEP.ExtraSightDist = 7
-- Ironsights / Customization / Poses --
SWEP.HolsterPos = Vector(0.5, -2, 1)
SWEP.HolsterAng = Angle(-8.5, 8, -10)
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.IronSightStruct = {
Pos = Vector(-2.869, -6, 1.95),
Ang = Angle(0, 0, 0),
Magnification = 1,
SwitchToSound = "",
ViewModelFOV = 55,
}
SWEP.ActivePos = Vector(0.4, -1.9, 1.4)
SWEP.ActiveAng = Angle(0, 0, -3)
SWEP.CustomizePos = Vector(5, -2, -2)
SWEP.CustomizeAng = Angle(15, 25, 0)
SWEP.CrouchPos = Vector(-3, -3, 0)
SWEP.CrouchAng = Angle(0, 0, -30)
SWEP.BarrelOffsetHip = Vector(4, 0, -4)
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-16, 4, -3),
ang = Angle(-12, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
-- Firing sounds --
local path = ")weapons/arccw_ud/uzi/"
local path1 = ")weapons/arccw_ud/glock/"
local common = ")/arccw_uc/common/"
--SWEP.FirstShootSound = path .. "fire.ogg"
--SWEP.ShootSound = path .. "fire_auto.ogg"
SWEP.ShootSoundSilenced = path1 .. "fire_supp.ogg"
SWEP.ShootDrySound = path .. "dryfire.ogg"
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
local tail = ")/arccw_uc/common/9x19/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-9x19-smg-ext-01.ogg",
tail .. "fire-dist-9x19-smg-ext-02.ogg",
tail .. "fire-dist-9x19-smg-ext-03.ogg",
tail .. "fire-dist-9x19-smg-ext-04.ogg",
tail .. "fire-dist-9x19-smg-ext-05.ogg",
tail .. "fire-dist-9x19-smg-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-pistol-01.ogg",
common .. "fire-dist-int-pistol-02.ogg",
common .. "fire-dist-int-pistol-03.ogg",
common .. "fire-dist-int-pistol-04.ogg",
common .. "fire-dist-int-pistol-05.ogg",
common .. "fire-dist-int-pistol-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 0.5
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
-- Bodygroups --
SWEP.BulletBones = {
[1] = "uzi_b1", [2] = "uzi_b2", [3] = "uzi_b3", [4] = "uzi_b4"
}
SWEP.AttachmentElements = {
["ud_uzi_mag_20"] = {
VMBodygroups = {{ind = 2, bg = 1}},
},
["ud_uzi_mag_40"] = {
VMBodygroups = {{ind = 2, bg = 2}},
},
["ud_uzi_mag_100"] = {
VMBodygroups = {{ind = 2, bg = 3}},
},
["ud_uzi_mag_45_10"] = {
VMBodygroups = {{ind = 2, bg = 1}},
},
["ud_uzi_mag_45_22"] = {
VMBodygroups = {{ind = 2, bg = 2}},
},
["ud_uzi_rail_optic"] = {
VMBodygroups = {{ind = 4, bg = 2}},
},
["ud_uzi_clamp"] = {
VMBodygroups = {{ind = 6, bg = 1}},
},
["ud_uzi_rail_fg"] = {
VMBodygroups = {{ind = 5, bg = 1}},
},
["ud_uzi_stock_wood"] = {
VMBodygroups = {{ind = 3, bg = 2}},
},
["ud_uzi_stock_polymer"] = {
VMBodygroups = {{ind = 3, bg = 3}},
},
["ud_uzi_stock_folded"] = {
VMBodygroups = {{ind = 3, bg = 1}},
},
["ud_uzi_stock_remove"] = {
VMBodygroups = {{ind = 3, bg = 4}},
},
["ud_uzi_body_carbine"] = {
VMBodygroups = {{ind = 1, bg = 1}},
NameChange = "IAL-C9",
TrueNameChange = "Uzi Carbine",
AttPosMods = {
[4] = {
vpos = Vector(-0.2, 0.5, 20.8),
},
},
},
["ud_uzi_body_mini"] = {
VMBodygroups = {{ind = 1, bg = 2}},
NameChange = "IAL-S9",
TrueNameChange = "Mini Uzi",
AttPosMods = {
[4] = {
vpos = Vector(-0.2, 0.5, 11.8),
},
},
},
["ud_uzi_body_micro"] = {
VMBodygroups = {{ind = 1, bg = 3},{ind = 4, bg = 1},{ind = 3, bg = 4}},
NameChange = "IAL-M9",
TrueNameChange = "Micro Uzi",
Override_IronSightStruct = {
Pos = Vector(-2.869, 3, 1.95),
Ang = Angle(-0, 0.035, 0),
Magnification = 1,
CrosshairInSights = false
},
AttPosMods = {
[1] = {
vpos = Vector(-0.2, -1.8, -1.5),
},
[4] = {
vpos = Vector(-0.2, 0.3, 7.8),
},
[6] = {
vpos = Vector(-0.25, 1.4, 6),
vang = Angle(90, 0, -90),
},
},
},
["ud_uzi_body_civvy"] = {
VMBodygroups = {{ind = 1, bg = 4}},
NameChange = "IAL-C9 Model GB",
TrueNameChange = "Uzi Action-B",
AttPosMods = {
[4] = {
vpos = Vector(-0.2, 0.5, 23.8),
},
},
},
}
SWEP.Hook_ModifyBodygroups = function(wep, data)
local vm = data.vm
if !IsValid(vm) then return end
local barrel = wep.Attachments[2].Installed
if barrel == "ud_uzi_body_micro" then
if wep.Attachments[1].Installed then
vm:SetBodygroup(4, 3)
end
if wep.Attachments[6].Installed then
vm:SetBodygroup(6, 0)
vm:SetBodygroup(5, 2)
end
end
end
-- Animations --
SWEP.Hook_Think = ArcCW.UC.ADSReload
SWEP.Animations = {
["ready"] = {
Source = "fix",
Time = 40 / 30,
ShellEjectAt = false,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = common .. "raise.ogg", t = 0},
{s = common .. "rattle.ogg", t = 0.2},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.15},
{s = path .. "chback.ogg", t = 0.3, c = ci},
{s = path .. "chforward.ogg", t = 0.65, c = ci},
},
ProcDraw = true,
},
["idle"] = {
Source = "idle",
},
["idle_empty"] = {
Source = "idle_empty",
},
["draw"] = {
Source = "draw",
SoundTable = ArcCW.UC.DrawSounds,
},
["draw_empty"] = {
Source = "draw_empty",
SoundTable = ArcCW.UC.DrawSounds,
},
["holster"] = {
Source = "holster",
Time = 0.25,
SoundTable = ArcCW.UC.HolsterSounds,
},
["holster_empty"] = {
Source = "holster_empty",
Time = 0.25,
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire"] = {
Source = "fire",
Time = 13 / 30,
ShellEjectAt = 0.03,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = "fire",
Time = 13 / 30,
ShellEjectAt = 0.03,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg"}, t = 0 }},
},
["fire_empty"] = {
Source = "fire_empty",
Time = 13 / 30,
ShellEjectAt = 0.03,
SoundTable = {{ s = path .. "chforward.ogg", t = 0 }},
},
["trigger"] = {
Source = "idle",
Time = 0.025,
SoundTable = {
{s = path .. "prefire.ogg", t = 0, c = ci},
},
},
["trigger_empty"] = {
Source = "idle",
Time = 0,
SoundTable = nil,
},
["fix"] = {
Source = "fix",
Time = 40 / 30,
ShellEjectAt = false,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.15},
{s = path .. "chback.ogg", t = 0.3, c = ci},
{s = path .. "chforward.ogg", t = 0.65, c = ci},
},
},
["fix_empty"] = {
Source = "fix_empty",
Time = 40 / 30,
ShellEjectAt = false,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.15},
{s = path .. "chback.ogg", t = 0.3, c = ci},
{s = path .. "chforward.ogg", t = 0.65, c = ci},
},
},
["fix_micro"] = {
Source = "fix_micro",
Time = 40 / 30,
ShellEjectAt = false,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.15},
{s = path .. "chback.ogg", t = 0.3, c = ci},
{s = path .. "chforward.ogg", t = 0.65, c = ci},
},
},
["fix_empty_micro"] = {
Source = "fix_empty_micro",
Time = 40 / 30,
ShellEjectAt = false,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.15},
{s = path .. "chback.ogg", t = 0.3, c = ci},
{s = path .. "chforward.ogg", t = 0.65, c = ci},
},
},
-- 32 Round Reloads --
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 67 / 30,
MinProgress = 1.2,
LastClip1OutTime = 67 / 30,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.6,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = common .. "magpouch.ogg", t = 0.025},
{s = path .. "magout.ogg", t = 0.25, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = path .. "magin.ogg", t = 0.55, c = ci},
{s = common .. "magpouchin.ogg", t = 1.35, v = .35},
{s = common .. "shoulder.ogg", t = 1.75},
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 90 / 30,
MinProgress = 2.2,
LastClip1OutTime = 1.8,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.3,
LHIKEaseOut = 0.2,
LHIKOut = 0.55,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "magout.ogg", t = 0.4, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = common .. "magpouch.ogg", t = 0.85},
{s = common .. "magdrop_smg.ogg", t = 1.0},
{s = path .. "magin.ogg", t = 1.1, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.25},
{s = path .. "chback.ogg", t = 1.935, c = ci},
{s = path .. "chforward.ogg", t = 2.15, c = ci},
{s = common .. "shoulder.ogg", t = 2.6},
},
},
-- 16 Round Reloads --
["reload_16"] = {
Source = "reload_16",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 67 / 30,
MinProgress = 1.2,
LastClip1OutTime = 67 / 30,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.6,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = common .. "magpouch.ogg", t = 0.025},
{s = path .. "magout.ogg", t = 0.25, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = path .. "magin.ogg", t = 0.55, c = ci},
{s = common .. "magpouchin.ogg", t = 1.35, v = .35},
{s = common .. "shoulder.ogg", t = 1.75},
},
},
["reload_empty_16"] = {
Source = "reload_empty_16",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 90 / 30,
MinProgress = 2.2,
LastClip1OutTime = 1.8,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.3,
LHIKEaseOut = 0.2,
LHIKOut = 0.55,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "magout.ogg", t = 0.4, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = common .. "magpouch.ogg", t = 0.85},
{s = common .. "magdrop_smg.ogg", t = 1.0},
{s = path .. "magin.ogg", t = 1.1, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.25},
{s = path .. "chback.ogg", t = 1.947, c = ci},
{s = path .. "chforward.ogg", t = 2.15, c = ci},
{s = common .. "shoulder.ogg", t = 2.45},
},
},
-- 41 Round Reloads --
["reload_41"] = {
Source = "reload_41",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 67 / 30,
MinProgress = 1.2,
LastClip1OutTime = 67 / 30,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.6,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = common .. "magpouch.ogg", t = 0.025},
{s = path .. "magout.ogg", t = 0.35, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = path .. "magin.ogg", t = 0.65, c = ci},
{s = common .. "magpouchin.ogg", t = 1.35, v = .35},
{s = common .. "shoulder.ogg", t = 1.75},
},
},
["reload_empty_41"] = {
Source = "reload_empty_41",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 90 / 30,
MinProgress = 2.2,
LastClip1OutTime = 1.8,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.3,
LHIKEaseOut = 0.2,
LHIKOut = 0.55,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "magout.ogg", t = 0.4, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = common .. "magpouch.ogg", t = 0.85},
{s = common .. "magdrop_smg.ogg", t = 1.0},
{s = path .. "magin.ogg", t = 1.1, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 1.25},
{s = path .. "chback.ogg", t = 1.947, c = ci},
{s = path .. "chforward.ogg", t = 2.15, c = ci},
{s = common .. "shoulder.ogg", t = 2.6},
},
},
-- 100 Round Reloads --
["reload_100"] = {
Source = "reload_100",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 67 / 30,
MinProgress = 1.6,
LastClip1OutTime = 1,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0.15,
LHIKOut = 0.4,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "magout.ogg", t = 0.25, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.75},
{s = path .. "magin.ogg", t = 1.15, c = ci},
{s = common .. "cloth_4.ogg", t = 1.65},
{s = common .. "shoulder.ogg", t = 1.95},
},
},
["reload_empty_100"] = {
Source = "reload_empty_100",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Time = 90 / 30,
MinProgress = 2.4,
LastClip1OutTime = 1.8,
LHIK = true,
LHIKIn = 0.3,
LHIKEaseIn = 0.3,
LHIKEaseOut = 0.2,
LHIKOut = 0.55,
SoundTable = {
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0},
{s = path .. "magout.ogg", t = 0.25, c = ci},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.25},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.75},
{s = common .. "magdrop.ogg", t = 1.0},
{s = path .. "magin.ogg", t = 1.15, c = ci},
{s = common .. "cloth_4.ogg", t = 1.65},
{s = path .. "chback.ogg", t = 2.0, c = ci},
{s = path .. "chforward.ogg", t = 2.25, c = ci},
{s = common .. "shoulder.ogg", t = 2.7},
},
},
}
SWEP.AutosolveSourceSeq = "idle"
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp","optic"}, -- ,"optic"
Bone = "uzi_parent",
Offset = {
vpos = Vector(-0.2, -1.55, -0.5),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ud_uzi_rail_optic"}
},
{
PrintName = "Barrel",
DefaultAttName = "10\" Standard Barrel",
DefaultAttIcon = Material("entities/att/acwatt_ud_uzi_body.png", "smooth mips"),
Slot = "ud_uzi_frame",
Bone = "uzi_parent",
Offset = {
vpos = Vector(2.6, -3.7, -17.3),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Caliber",
DefaultAttName = "9x19mm Parabellum",
DefaultAttIcon = Material("entities/att/uc_bullets/9x19.png", "smooth mips"),
Slot = "ud_uzi_caliber",
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"muzzle"},
Bone = "uzi_parent",
Offset = {
vpos = Vector(-0.2, 0.5, 14.8),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Underbarrel",
Slot = {"foregrip"},
Bone = "uzi_parent",
Offset = {
vpos = Vector(-0.2, 1.85, 6.9), -- nice
vang = Angle(90, 0, -90),
},
InstalledEles = {"ud_uzi_rail_fg"},
ExcludeFlags = {"micro"}
},
{
PrintName = "Tactical",
Slot = {"tac_pistol"},
Bone = "uzi_parent",
Offset = {
vpos = Vector(-1.35, 0.9,5.8),
vang = Angle(90, 0, 180),
},
InstalledEles = {"ud_uzi_clamp"}
},
{
PrintName = "Stock",
Slot = {"ud_uzi_stock"},
DefaultAttName = "Folding Stock",
DefaultAttIcon = Material("entities/att/acwatt_ud_uzi_stock.png", "smooth mips"),
ExcludeFlags = {"micro"},
},
{
PrintName = "Magazine",
Slot = {"ud_uzi_mag"},
DefaultAttName = "32-Round Mag",
DefaultAttIcon = Material("entities/att/acwatt_ud_uzi_mag_32.png", "smooth mips"),
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"FMJ\" Full Metal Jacket",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_generic.png", "mips smooth"),
Slot = "uc_ammo",
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm"},
FreeSlot = true,
Bone = "uzi_parent",
Offset = {
vpos = Vector(0.4, 1.3, 2.3),
vang = Angle(90, 0, -90),
},
},
}

View File

@@ -0,0 +1,575 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Oldie Weaponry"
SWEP.UC_CategoryPack = "2Urban Renewal"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_pistol_deagle"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/50ae.mdl"
SWEP.ShellScale = 1
SWEP.UC_ShellColor = Color(0.7*255, 0.2*255, 0.2*255)
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.TracerNum = 1
SWEP.TracerWidth = 1
SWEP.ShootPitch = 100
-- Fake name --
SWEP.PrintName = "Enforcement .44"
-- True name --
SWEP.TrueName = "Model 329PD"
-- Trivia --
SWEP.Trivia_Class = "Revolver"
SWEP.Trivia_Desc = [[Though commonly viewed as archaic, revolvers maintain a large following today for their reliability, accuracy, and evocative sentiment. This model was famously "the most powerful handgun in the world" at its time, though its usurpers have not changed the fact that it packs a mean punch.
Has a heavy trigger pull. Single-action mode removes trigger delay and increases accuracy, but requires manual cocking of the hammer.]]
SWEP.Trivia_Manufacturer = "Sneed & Walwakashi"
SWEP.Trivia_Calibre = ".44 Magnum"
SWEP.Trivia_Mechanism = "Double-Action"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1955
-- Weapon slot --
SWEP.Slot = 1
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Smith & Wesson"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ur_329pd.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ur_329pd.mdl"
SWEP.ViewModelFOV = 70
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_REVOLVER
-- Damage parameters --
SWEP.Damage = 30 -- 2 shot close range kill
SWEP.DamageMin = 30 -- 7 shot long range kill
SWEP.RangeMin = 10
SWEP.Range = 160
SWEP.Penetration = 30
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 470
SWEP.PhysBulletMuzzleVelocity = 470
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults
-- Jamming --
SWEP.MalfunctionTakeRound = false
SWEP.MalfunctionMean = math.huge -- Theoretically it will never malfunction
-- Mag size --
SWEP.ChamberSize = 0
SWEP.Primary.ClipSize = 6
SWEP.RejectMagSizeChange = true -- Signals to attachments that mag size shouldn't be changeable; needs to be implemented attachment-side with att.Compatible
SWEP.UC_CanManualAction = true -- In case this ever applies to anything other than shotguns
-- Recoil --
SWEP.Recoil = 2.5
SWEP.RecoilSide = 1
SWEP.RecoilRise = 1
SWEP.VisualRecoilMult = 1.5
SWEP.MaxRecoilBlowback = 2
SWEP.MaxRecoilPunch = 6
SWEP.Sway = 1.1
-- Firerate / Firemodes --
SWEP.TriggerDelay = true
SWEP.Delay = 0.25
SWEP.Num = 1
SWEP.FiremodeSound = false
SWEP.Firemodes = {
{
Mode = 1,
PrintName = "ur.329.dact",
},
{
Mode = 0,
PrintName = "fcg.safe2",
}
}
SWEP.ShootPitch = 100
SWEP.ShootVol = 120
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = false -- can't in mw and can't here
-- NPC --
SWEP.NPCWeaponType = "weapon_357"
SWEP.NPCWeight = 70
-- Accuracy --
SWEP.AccuracyMOA = 5
SWEP.HipDispersion = 500
SWEP.MoveDispersion = 250
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "357"
SWEP.MagID = "deagle"
-- Speed multipliers --
SWEP.SpeedMult = 0.95
SWEP.SightedSpeedMult = 0.9
SWEP.SightTime = 0.25
SWEP.ShootSpeedMult = 0.8
-- Length --
SWEP.BarrelLength = 12
SWEP.ExtraSightDist = 10
-- Ironsights / Customization / Poses --
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "revolver"
SWEP.HoldtypeSights = "revolver"
SWEP.IronSightStruct = {
Pos = Vector(-2.7, 2, 0.733),
Ang = Angle(0, 0, 0),
Magnification = 1,
SwitchToSound = "",
ViewModelFOV = 55,
}
SWEP.ActivePos = Vector(0, 2, 0.9)
SWEP.ActiveAng = Angle(0, 0, -1)
SWEP.CustomizePos = Vector(2, 0, -1.5)
SWEP.CustomizeAng = Angle(15, 15, 05)
SWEP.CrouchPos = Vector(-2.2, 1, 0.6)
SWEP.CrouchAng = Angle(0, 0, -14)
SWEP.HolsterPos = Vector(-1, 2, 1)
SWEP.HolsterAng = Angle(-15.5, 2, -4)
SWEP.SprintPos = Vector(0.3, 1, 0)
SWEP.SprintAng = Angle(-3, 9, -12)
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-7.5, 4, -4.5),
ang = Angle(-6, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
}
-- Weapon sounds --
local path = ")weapons/arccw_ur/sw329/"
local path1 = ")weapons/arccw_ur/sw586/"
local path2 = ")weapons/arccw_ur/1911/"
local common = ")/arccw_uc/common/"
local rottle = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.ShootSoundSilenced = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.DistantShootSound = nil
SWEP.DistantShootSoundSilenced = nil
SWEP.ShootDrySound = {common .. "revolver_hammer-01.ogg", common .. "revolver_hammer-02.ogg", common .. "revolver_hammer-03.ogg"}
local tail = ")/arccw_uc/common/44mag/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-44mag-pistol-ext-01.ogg",
tail .. "fire-dist-44mag-pistol-ext-02.ogg",
tail .. "fire-dist-44mag-pistol-ext-03.ogg",
tail .. "fire-dist-44mag-pistol-ext-04.ogg",
tail .. "fire-dist-44mag-pistol-ext-05.ogg",
tail .. "fire-dist-44mag-pistol-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
path .. "fire-dist-01.ogg",
path .. "fire-dist-02.ogg",
path .. "fire-dist-03.ogg",
path .. "fire-dist-04.ogg",
path .. "fire-dist-05.ogg",
path .. "fire-dist-06.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 0.75
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
-- Bodygroups --
SWEP.BulletBones = {
[1] = "Bullet1", [2] = "Bullet2", [3] = "Bullet3", [4] = "Bullet4", [5] = "Bullet5", [6] = "Bullet6"
}
SWEP.DefaultBodygroups = "000000000"
SWEP.AttachmentElements = {
["ur_329_barrel_m29"] = {
VMBodygroups = { { ind = 1, bg = 1 } },
NameChange = "Thunderbolt .44",
TrueNameChange = "Model 29"
},
["ur_329_barrel_master"] = {
VMBodygroups = { { ind = 1, bg = 2 } },
NameChange = "Thunderbolt .44 Master",
TrueNameChange = "Model 29"
},
["ur_329_barrel_pocket"] = {
VMBodygroups = { { ind = 1, bg = 3 } },
NameChange = "Companion .44",
TrueNameChange = "Model 629"
}
}
-- Animations --
SWEP.Hook_Think = ArcCW.UC.ADSReload
SWEP.RevolverReload = true
SWEP.Hook_TranslateAnimation = function(wep,anim)
if wep:GetCurrentFiremode().Override_ManualAction and anim == "fire_dry" then
return "fire_dry_sact"
end
if wep:GetCurrentFiremode().Override_ManualAction and anim ~= "fire" and (anim ~= "reload" or !wep:GetNeedCycle()) then
return anim .. "_cocked"
end
end
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 3,
},
["idle_cocked"] = {
Source = "idle_cocked",
Time = 3,
},
["ready"] = {
Source = "ready",
Time = 86 / 60,
SoundTable = {
{s = path2 .. "draw.ogg", t = 0},
{ s = path1 .. "cylinder_in.ogg", t = 0.2 },
{s = common .. "raise.ogg", t = 0.55},
},
},
["draw"] = {
Source = "draw",
Time = 0.7,
MinProgress = .4,
SoundTable = {
{s = path2 .. "draw.ogg", t = 0}, -- Not Temporary
{s = common .. "raise.ogg", t = 0.05},
},
},
["draw_cocked"] = {
Source = "draw_cocked",
Time = 0.7,
MinProgress = .4,
SoundTable = {
{s = path2 .. "draw.ogg", t = 0}, -- Not Temporary
{s = common .. "raise.ogg", t = 0.05},
},
},
["holster"] = {
Source = "holster",
Time = 0.5,
SoundTable = {
{s = common .. "cloth_2.ogg", t = 0},
{s = path2 .. "holster.ogg", t = 0.12}, -- Not Temporary
},
},
["holster_cocked"] = {
Source = "holster_cocked",
Time = 0.5,
SoundTable = {
{s = common .. "cloth_2.ogg", t = 0},
{s = path2 .. "holster.ogg", t = 0.12}, -- Not Temporary
},
},
["fire"] = {
Source = "fire",
SoundTable = {
{ s = {common .. "revolver_hammer-01.ogg", common .. "revolver_hammer-02.ogg", common .. "revolver_hammer-03.ogg"}, t = 0 }
},
MinProgress = .2,
},
["fire_dry"] = {
Source = "dryfire",
SoundTable = {
{ s = {common .. "revolver_hammer-01.ogg", common .. "revolver_hammer-02.ogg", common .. "revolver_hammer-03.ogg"}, t = 0 }
},
},
["fire_dry_sact"] = {
Source = "dryfire_sact",
SoundTable = {
{ s = {common .. "revolver_hammer-01.ogg", common .. "revolver_hammer-02.ogg", common .. "revolver_hammer-03.ogg"}, t = 0 },
{ s = { common .. "revolver_trigger-01.ogg", common .. "revolver_trigger-03.ogg" }, t = 0.25 + 0.2 },
},
},
["trigger"] = {
Source = "trigger",
Time = 0.1,
SoundTable = {
{ s = { common .. "revolver_trigger-01.ogg", common .. "revolver_trigger-02.ogg", common .. "revolver_trigger-03.ogg" }, t = 0 }
},
},
["cycle"] = {
Source = "cocking",
MinProgress = 0.5,
SoundTable = {
{ s = { common .. "revolver_trigger-01.ogg", common .. "revolver_trigger-03.ogg" }, t = 0.2 }
}
},
["fix"] = {
Source = "cocking",
MinProgress = 0.5,
SoundTable = {
{ s = { common .. "revolver_trigger-01.ogg", common .. "revolver_trigger-03.ogg" }, t = 0.2 }
}
},
["1_to_2"] = {
Source = "cocking",
Time = 0.8,
SoundTable = {
{ s = { common .. "revolver_trigger-01.ogg", common .. "revolver_trigger-03.ogg" }, t = 0.1 }
}
},
["2_to_1"] = {
Source = "decocking",
Time = 0.8,
SoundTable = {
{ s = common .. "revolver_trigger-02.ogg", t = 0.1 }
}
},
["2_to_3"] = {
Source = "decocking",
Time = 0.8,
SoundTable = {
{ s = common .. "revolver_trigger-02.ogg", t = 0.1 }
}
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
Time = 3.0,
MinProgress = 1.8,
ShellEjectAt = 1,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.6,
LHIKOut = 0.62,
SoundTable = {
{ s = rottle, t = 0 },
{ s = path .. "cyl_latch.ogg", t = 0.1 },
{ s = path1 .. "cylinder_out.ogg", t = 0.2 },
{ s = path1 .. "extractor1.ogg", t = 0.65 },
{ s = path1 .. "extract1.ogg", t = 0.65, p = 110, v = 0.25 },
{ s = path1 .. "extractor2.ogg", t = 0.75, p = 110 },
{ s = path1 .. "cylinder_extract.ogg", t = 0.75 },
{ s = path1 .. "extractor2.ogg", t = 0.825 },
{ s = common .. "magpouch_pull_small.ogg", t = 1.2, v = 0.2 },
{ s = path1 .. "speedloader.ogg", t = 1.65 },
{ s = path1 .. "cylinder_in.ogg", t = 2.15 },
{ s = rottle, t = 2.4 },
},
},
["reload_cocked"] = {
Source = "reload_cocked",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
Time = 3.0,
MinProgress = 1.8,
ShellEjectAt = 1,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.6,
LHIKOut = 0.62,
SoundTable = {
{ s = rottle, t = 0 },
{ s = path .. "cyl_latch.ogg", t = 0.1 },
{ s = path1 .. "cylinder_out.ogg", t = 0.2 },
{ s = path1 .. "extractor1.ogg", t = 0.65 },
{ s = path1 .. "extract1.ogg", t = 0.65, p = 110, v = 0.25 },
{ s = path1 .. "extractor2.ogg", t = 0.75, p = 110 },
{ s = path1 .. "cylinder_extract.ogg", t = 0.75 },
{ s = path1 .. "extractor2.ogg", t = 0.825 },
{ s = common .. "magpouch_pull_small.ogg", t = 1.2, v = 0.2 },
{ s = path1 .. "speedloader.ogg", t = 1.65 },
{ s = path1 .. "cylinder_in.ogg", t = 2.15 },
{ s = rottle, t = 2.4 },
},
},
}
-- Attachments --
SWEP.CamAttachment = 3
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = {"optic_lp"},
DefaultAttName = "Iron Sights",
Bone = "Body",
Offset = {
vpos = Vector(3, -3.6, 0),
vang = Angle(0, 0, -90),
},
},
{
PrintName = "Barrel",
Slot = {"ur_329_barrel"},
DefaultAttIcon = Material("entities/att/acwatt_ur_329_barrel.png","mips smooth"),
DefaultAttName = "4\" Snubnose Barrel",
Bone = "Body",
Offset = {
vpos = Vector(3.07, -3.8, -27),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Caliber",
Slot = {"ur_329_caliber"},
DefaultAttIcon = Material("entities/att/uc_bullets/44magnum.png","mips smooth"),
DefaultAttName = ".44 Magnum",
Bone = "Body",
Offset = {
vpos = Vector(3.07, -3.8, -27),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Tactical",
InstalledEles = {"tac_rail"},
Slot = {"tac_pistol"},
Bone = "Body",
Offset = {
vpos = Vector(6.75, -2.5, 0),
vang = Angle(0, 0, -90),
},
},
{
PrintName = "Grip",
Slot = {"ur_329_grip", "uc_stock", "go_stock_pistol_bt"},
Bone = "Body",
Offset = {
vpos = Vector(-2, 2, 0),
vang = Angle(0, 0, -90),
},
},
--[[]
{
PrintName = "Grip",
DefaultAttName = "Factory Grip",
DefaultAttIcon = Material("entities/att/acwatt_ur_329_grip.png","mips smooth"),
Slot = "ur_329_grip"
},
]]
{
PrintName = "Ammo Type",
DefaultAttName = "\"FMJ\" Full Metal Jacket",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_generic.png", "mips smooth"),
Slot = "uc_ammo",
ExcludeFlags = {"329_ss"}
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals",
},
{
PrintName = "Charm",
Slot = {"charm","fml_charm"},
FreeSlot = true,
Bone = "Body",
Offset = {
vpos = Vector(7.1, -2.4, -0.1),
vang = Angle(0, 0, -90),
},
VMScale = Vector(.75,.75,.75),
},
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,942 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Modern Weaponry" -- edit this if you like
SWEP.UC_CategoryPack = "2Urban Renewal"
SWEP.AdminOnly = false
SWEP.PrintName = "AWP"
SWEP.Trivia_Class = "Sniper Rifle"
SWEP.Trivia_Desc = "A heavy rifle purpose-built for extreme range combat under extreme climates, first developed for the British military but quickly adopted by many more. Iconic for its appearance among military and police marksmen, this rifle is a symbol of discipline and order.\n\nOffers outstanding precision and kill potential, but its long bolt pull and reload time can become a hinderance outside its ideal engagement range.\n\nOne shot. One kill. You know the routine."
SWEP.Trivia_Manufacturer = "Accuracy International"
SWEP.Trivia_Calibre = "7.62x51mm NATO"
SWEP.Trivia_Mechanism = "Bolt Action"
SWEP.Trivia_Country = "United Kingdom"
SWEP.Trivia_Year = 1982
if !GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = "Apex Precision"
SWEP.Trivia_Manufacturer = "Marksman Institute"
end
SWEP.Slot = 3
SWEP.CamAttachment = 3
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/arccw/c_ur_aw.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ur_aw.mdl"
SWEP.ViewModelFOV = 70
SWEP.DefaultBodygroups = "000000000000"
SWEP.BulletBones = {
--[1] = "top_round",
[2] = "mag_round",
}
-- Damage --
SWEP.Damage = 95 -- 2 shot close range
SWEP.DamageMin = 95 -- 2 shot long range
SWEP.RangeMin = 100
SWEP.Range = 400 -- 2 shot at ~300m
SWEP.Penetration = 30
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 1050
SWEP.PhysBulletMuzzleVelocity = 1400
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults
-- Mag size --
SWEP.ChamberSize = 1
SWEP.Primary.ClipSize = 5
SWEP.ExtendedClipSize = 10
SWEP.ReducedClipSize = 5
-- Recoil --
SWEP.Recoil = 3.3
SWEP.RecoilSide = 0.550
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.VisualRecoilMult = 5
SWEP.MaxRecoilBlowback = 4
SWEP.MaxRecoilPunch = 4
SWEP.RecoilPunchBack = 3
SWEP.RecoilPunchBackMax = 3.5
SWEP.RecoilPunchBackMaxSights = 2.5
SWEP.Sway = 0.2
-- Firerate / Firemodes --
SWEP.Delay = 60 / 80
SWEP.Num = 1
SWEP.Firemodes = {
{
PrintName = "fcg.bolt",
Mode = 1,
},
{
Mode = 0,
},
}
SWEP.ShootPitch = 100
SWEP.ShootVol = 120
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_crossbow"
SWEP.NPCWeight = 100
-- Accuracy --
SWEP.AccuracyMOA = .5
SWEP.HipDispersion = 1500
SWEP.MoveDispersion = 25
SWEP.JumpDispersion = 700 -- tactical unrealism set to 700 later
SWEP.Primary.Ammo = "ar2"
SWEP.MagID = "awp"
SWEP.HeatCapacity = 75
SWEP.HeatDissipation = 15
SWEP.HeatDelayTime = 3
-- SWEP.Malfunction = true
SWEP.MalfunctionMean = 200
--SWEP.MeleeTime = 1.5
-- Speed multipliers --
SWEP.SpeedMult = 0.8
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.4
SWEP.ShootSpeedMult = 0.5
local path = ")weapons/arccw_ur/ak/"
local testpath = ")weapons/arccw_ur/aw_placeholders/"
local path1 = ")weapons/arccw_ur/aw_placeholders/338/"
local path1 = ")weapons/arccw_ur/mp5/"
local common = ")/arccw_uc/common/"
local rottle = {common .. "cloth_1.ogg", common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
local ratel = {common .. "rattle1.ogg", common .. "rattle2.ogg", common .. "rattle3.ogg"}
local rutle = {common .. "movement-sniper-03.ogg",common .. "movement-sniper-04.ogg"}
SWEP.ShootSound = {
testpath .. "fire-01.ogg",
testpath .. "fire-02.ogg",
testpath .. "fire-03.ogg",
testpath .. "fire-04.ogg",
testpath .. "fire-05.ogg",
testpath .. "fire-06.ogg"
}
SWEP.ShootSoundSilenced = {
testpath .. "fire-sup-01.ogg",
testpath .. "fire-sup-02.ogg",
testpath .. "fire-sup-03.ogg",
testpath .. "fire-sup-04.ogg",
testpath .. "fire-sup-05.ogg",
testpath .. "fire-sup-06.ogg"
}
SWEP.DistantShootSound = nil
SWEP.DistantShootSoundSilenced = nil
SWEP.ShootDrySound = testpath .. "dryfire.ogg"
local tail = ")/arccw_uc/common/308/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-308-rif-ext-01.ogg",
tail .. "fire-dist-308-rif-ext-02.ogg",
tail .. "fire-dist-308-rif-ext-03.ogg",
tail .. "fire-dist-308-rif-ext-04.ogg",
tail .. "fire-dist-308-rif-ext-05.ogg",
tail .. "fire-dist-308-rif-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 1
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
SWEP.MuzzleEffect = "muzzleflash_ak47"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/556x45.mdl"
SWEP.ShellPitch = 90
SWEP.ShellScale = 1.145
SWEP.ShellRotateAngle = Angle(0, 0, 0)
SWEP.ManualAction = true
-- SWEP.ManualAction = false
SWEP.NoLastCycle = true
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.IronSightStruct = {
Pos = Vector(-3.37, -5, 0.68),
Ang = Angle(0, 0, 2),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.LaserOffsetAngle = Angle(0, 0, 0)
SWEP.LaserIronsAngle = Angle(0, 1.5, 0)
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-0.1, 0.1, 0.2)
SWEP.ActiveAng = Angle(0, 0, -1)
SWEP.SprintPos = Vector(-1, -1, 1.2)
SWEP.SprintAng = Angle(-15, 8, -10)
SWEP.CrouchPos = Vector(-2, -2, -0.8)
SWEP.CrouchAng = Angle(0, 0, -14)
SWEP.HolsterPos = Vector(-1, -1, 1.2)
SWEP.HolsterAng = Angle(-15, 8, -10)
SWEP.BarrelOffsetSighted = Vector(0, 0, 0)
SWEP.BarrelOffsetHip = Vector(0, 0, 0)
SWEP.CustomizePos = Vector(0, 0, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
-- SWEP.CustomizePos = Vector(6.5, 0.8, -0.2)
-- SWEP.CustomizeAng = Angle(8, 18, 15)
SWEP.BarrelLength = 54
SWEP.AttachmentElements = {
["barrel_long"] = {
VMBodygroups = {{ind = 2, bg = 1}},
AttPosMods = {[3] = {
vpos = Vector(0, 40, 1.75),
vang = Angle(0, 270, 0),
}}
},
["barrel_short"] = {
VMBodygroups = {{ind = 2, bg = 2}},
AttPosMods = {[3] = {
vpos = Vector(0, 28, 1.75),
vang = Angle(0, 270, 0),
}}
},
["barrel_sd"] = {
VMBodygroups = {{ind = 2, bg = 3}}
},
["mag_338"] = {
--VMBodygroups = {{ind = 3, bg = 2}}
},
["mag_300"] = {
--VMBodygroups = {{ind = 3, bg = 2}}
},
["mag_ext"] = {
--VMBodygroups = {{ind = 3, bg = 1}}
},
["mag_ext_magnum"] = {
--VMBodygroups = {{ind = 3, bg = 3}}
},
["rail_bottom"] = {
VMBodygroups = {{ind = 6, bg = 1}}
},
["rail_top"] = {
VMBodygroups = {{ind = 7, bg = 1}}
},
["sights_compact"] = {
VMBodygroups = {{ind = 8, bg = 2}},
Override_IronSightStruct = {
Pos = Vector(-3.395, -5, 1.35),
Ang = Angle(0, 0, 2),
Magnification = 1,
}
},
["sights_flipped"] = {
VMBodygroups = {{ind = 8, bg = 1}}
},
["skin_black"] = {
VMSkin = 1
},
["skin_tan"] = {
VMSkin = 2
},
["skin_cust"] = {
VMSkin = 3
},
["stock_at"] = {
VMBodygroups = {{ind = 4, bg = 1}}
},
["stock_ru"] = {
VMBodygroups = {{ind = 4, bg = 2}}
},
["stock_ru_rubber"] = {
VMBodygroups = {{ind = 4, bg = 3}}
},
["stock_fixed"] = {
VMBodygroups = {
{ind = 4, bg = 4},
{ind = 5, bg = 1},
}
},
["stock_none"] = {
VMBodygroups = {
{ind = 4, bg = 5},
}
},
}
SWEP.ExtraSightDist = 2
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-7, 5, -4.8),
ang = Angle(-12, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
DefaultAttIcon = Material("entities/att/ur_aw/ironsights.png", "mips smooth"),
Slot = {"optic","optic_lp","optic_sniper"},
Bone = "tag_weapon",
Offset = {
vpos = Vector(0, 6, 2.65),
vang = Angle(0, -90, 0),
},
CorrectivePos = Vector(0, 0, 0),
CorrectiveAng = Angle(0, 180, 0),
VMScale = Vector(1.05, 1.05, 1.05),
SlideAmount = {
vmin = Vector(0, 5.5, 2.65),
vmax = Vector(0, 7, 2.65),
},
},
{
PrintName = "Barrel",
DefaultAttName = "24\" Police Barrel",
DefaultAttIcon = Material("entities/att/ur_aw/bar_def.png", "mips smooth"),
Slot = "ur_aw_barrel",
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"muzzle","ur_aw_muzzle"},
Bone = "tag_weapon",
VMScale = Vector(1.5, 1.5, 1.5),
WMScale = VMScale,
Offset = {
vpos = Vector(0, 35.2, 1.675),
vang = Angle(0, 270, 0),
},
ExcludeFlags = {"barrel_sd"},
Installed = "ur_aw_muzzle_brake",
},
{
PrintName = "Caliber",
DefaultAttName = "7.62x51mm NATO",
DefaultAttIcon = Material("entities/att/uc_bullets/762x51.png", "mips smooth"),
Slot = {"ur_aw_cal"},
Bone = "tag_weapon",
Offset = {
vpos = Vector(2.8, -4.2, -11.5),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Magazine",
Slot = {"ur_aw_mag"},
DefaultAttName = "5-Round Mag",
DefaultAttIcon = Material("entities/att/ur_aw/mag308_5.png", "mips smooth"),
ExcludeFlags = {"mag_338"}
},
{
PrintName = "Underbarrel",
Slot = {"foregrip"},
Bone = "tag_weapon",
Offset = {
vpos = Vector(0,16, -.6),
vang = Angle(90, -90, -90),
},
VMScale = Vector(1, 1, 1),
InstalledEles = {"rail_bottom"},
},
{
PrintName = "Tactical",
Slot = {"tac"},
Bone = "tag_weapon",
Offset = {
vpos = Vector(-1.2, 16, 1.1),
vang = Angle(-90, 270, 0),
},
GivesFlags = {"tac"},
InstalledEles = {"rail_top"}
},
{
PrintName = "Stock",
Slot = {"ur_aw_stock"},
DefaultAttName = "Factory Stock",
DefaultAttIcon = Material("entities/att/ur_aw/stock_def.png", "mips smooth"),
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"FMJ\" Full Metal Jacket",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_generic.png", "mips smooth"),
Slot = "uc_ammo",
HideIfBlocked = true
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm"},
FreeSlot = true,
Bone = "tag_weapon",
Offset = {
vpos = Vector(.85, 4.6, 0.5),
vang = Angle(90, -90, -90),
},
},
{
PrintName = "Finish",
Slot = {"ur_aw_skin"},
FreeSlot = true,
DefaultAttName = "Olive Drab",
DefaultAttIcon = Material("entities/att/ur_aw/skin_green.png", "mips smooth"),
}
}
function SWEP:Hook_TranslateAnimation(anim)
end
SWEP.Hook_NameChange = function(wep,name)
local atts = wep.Attachments
local barr = string.Replace(atts[2].Installed or "default", "ur_aw_barrel_", "")
local cal = string.Replace(atts[4].Installed or "default", "ur_aw_cal_", "")
local stock = string.Replace(atts[8].Installed or "default", "ur_aw_stock_", "")
if GetConVar("arccw_truenames"):GetBool() then
if cal ~= "default" then
return "AWM"
elseif barr == "sd" then
return "AWS"
elseif stock == "at" then
return "AT"
end
else
if cal == "338" then
return "Apex Magnum"
elseif barr == "sd" then
return "Apex Spectre"
elseif stock == "at" then
return "Apex Tactical"
end
end
end
SWEP.Hook_ModifyBodygroups = function(wep, data)
local vm = data.vm
if !IsValid(vm) then return end
local atts = wep.Attachments
local cal = string.Replace(atts[4].Installed or "default", "ur_aw_cal_", "")
local mag = string.Replace(atts[5].Installed or "default", "ur_aw_mag_", "")
local flags = wep:GetWeaponFlags()
local pistolGrip = table.HasValue(flags,"pistolgrip")
if cal ~= "default" then
if pistolGrip then
vm:SetBodygroup(1,3)
else
vm:SetBodygroup(1,1)
end
elseif pistolGrip then
vm:SetBodygroup(1,2)
else
vm:SetBodygroup(1,0)
end
if atts[1].Installed then
if table.HasValue(flags,"sights_compact") then
vm:SetBodygroup(8,3)
else
vm:SetBodygroup(8,1)
end
end
if mag == "10" then
vm:SetBodygroup(3,1)
elseif mag == "10m" then
vm:SetBodygroup(3,3)
elseif cal ~= "default" then
vm:SetBodygroup(3,2)
end
end
SWEP.Animations = {
["ready"] = {
Source = "cycle",
Time = 1.47,
MinProgress = 1.3,
SoundTable = {
{s = ratel, t = 0.07},
{s = testpath .. "boltup.ogg", t = 0.1},
{s = testpath .. "boltback.ogg", t = 0.2},
{s = testpath .. "boltforward.ogg", t = 0.32},
{s = testpath .. "boltdown.ogg", t = 0.6},
},
ProcDraw = true,
},
["idle"] = {
Source = "idle"
},
["idle_empty"] = {
Source = "idle_empty"
},
["draw"] = {
Source = "draw",
LHIK = false,
LHIKIn = 0,
LHIKOut = 0.5,
Time = 35 / 30,
MinProgess = .5,
SoundTable = {
{s = ratel, t = 0},
{s = common .. "raise.ogg", t = 0.2},
},
},
["holster"] = {
Source = "holster",
LHIK = false,
LHIKIn = 0,
LHIKOut = 0.5,
Time = .75,
SoundTable = {
{s = ratel, t = 0},
},
},
["draw_empty"] = {
Source = "draw_empty",
LHIK = false,
LHIKIn = 0,
LHIKOut = 35 / 30,
SoundTable = {
{s = ratel, t = 0},
{s = common .. "raise.ogg", t = 0.2},
},
},
["holster_empty"] = {
Source = "holster_empty",
LHIK = false,
LHIKIn = 0,
LHIKOut = 0.5,
SoundTable = {
{s = ratel, t = 0},
},
},
["fire"] = {
Source = {"fire"},
Time = 27 / 30,
MinProgress = 0.2,
SoundTable = {
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
},
["fire_iron"] = {
Source = {"fire_iron"},
Time = 27 / 30,
MinProgress = 0.2,
SoundTable = {
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 1,
Time = 85 / 30,
LHIKEaseOut = 0.25,
MinProgress = 1.5,
SoundTable = {
{s = rottle, t = 0.1},
{s = testpath .. "magrel.ogg", t = 0.2},
{s = testpath .. "magout.ogg", t = 0.3},
{s = rottle, t = 0.75},
{s = common .. "magpouch.ogg", t = 0.8, v = 0.4},
{s = testpath .. "struggle.ogg", t = 0.9},
{s = testpath .. "magin.ogg", t = 1.2},
{s = rottle, t = 1.4},
{s = ratel, t = 1.5},
},
},
["reload_10"] = {
Source = "reload_exte",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 1.15,
LHIKEaseOut = 0.25,
MinProgress = 2.5,
SoundTable = {
{s = rottle, t = 0.1},
{s = testpath .. "magrel.ogg", t = 0.2},
{s = testpath .. "magout.ogg", t = 0.3},
{s = rottle, t = 0.75},
{s = common .. "magpouch.ogg", t = 0.8, v = 0.4},
{s = testpath .. "struggle.ogg", t = 0.9},
{s = testpath .. "magin.ogg", t = 1.2},
{s = rottle, t = 1.4},
{s = ratel, t = 1.5},
},
},
["reload_338"] = {
Source = "reload_magnum",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 1.15,
LHIKEaseOut = 0.25,
MinProgress = 2.5,
Time = 3.4,
SoundTable = {
{s = rottle, t = 0.1},
{s = testpath .. "magrel.ogg", t = 0.2},
{s = testpath .. "magout.ogg", t = 0.4},
{s = rottle, t = 0.75},
{s = common .. "magpouch.ogg", t = 0.8, v = 0.4},
{s = testpath .. "struggle.ogg", t = 1.1, v = 1.1},
{s = testpath .. "magin.ogg", t = 1.3},
{s = testpath .. "magtap.ogg", t = 1.95},
{s = rottle, t = 2.3, v = 0.6},
{s = ratel, t = 2.35, v = 0.6},
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = false,
LHIKIn = 0.9,
LHIKOut = 1.25,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.5,
MinProgress = 3.0,
ShellEjectAt = .45,
LastClip1OutTime = 1.8,
Time = 4.5,
SoundTable = {
{s = ratel, t = 0.05},
{s = testpath .. "boltup.ogg", t = 0.15},
{s = testpath .. "boltback_reload.ogg", t = 0.18},
{s = testpath .. "eject.ogg", t = 0.45},
{s = rottle, t = 0.6},
{s = testpath .. "magrel.ogg", t = 1.0},
{s = testpath .. "magout_empty.ogg", t = 1.2},
{s = rottle, t = 1.25},
{s = testpath .. "magdrop_metal.ogg", t = 1.5, v = 0.4},
{s = common .. "magpouch.ogg", t = 1.6, v = 0.4},
{s = rottle, t = 1.65},
{s = testpath .. "struggle.ogg", t = 2},
{s = testpath .. "magin.ogg", t = 2.1},
{s = rottle, t = 2.4},
{s = ratel, t = 2.6},
{s = testpath .. "boltforward_reload.ogg", t = 2.7},
{s = testpath .. "boltdown.ogg", t = 3.1},
{s = common .. "shoulder.ogg", t = 3.15},
},
},
["reload_empty_10"] = {
Source = "reload_empty_exte",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = false,
LHIKIn = 0.9,
LHIKOut = 1.25,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.5,
ShellEjectAt = .5,
MinProgress = 3.5,
LastClip1OutTime = 1.8,
Time = 4.5,
SoundTable = {
{s = ratel, t = 0.05},
{s = testpath .. "boltup.ogg", t = 0.15},
{s = testpath .. "boltback_reload.ogg", t = 0.18},
{s = testpath .. "eject.ogg", t = 0.45},
{s = rottle, t = .6},
{s = testpath .. "magrel.ogg", t = 1.0},
{s = testpath .. "magout_empty.ogg", t = 1.2},
{s = rottle, t = 1.25},
{s = testpath .. "magdrop_metal.ogg", t = 1.6, v = 0.4},
{s = common .. "magpouch.ogg", t = 1.6, v = 0.4},
{s = rottle, t = 1.65},
{s = testpath .. "struggle.ogg", t = 2.1},
{s = testpath .. "magin.ogg", t = 2.2},
{s = rottle, t = 2.5},
{s = testpath .. "boltforward_reload.ogg", t = 2.8},
{s = ratel, t = 2.7},
{s = testpath .. "boltdown.ogg", t = 3.2},
{s = common .. "shoulder.ogg", t = 3.2},
},
},
["reload_empty_338"] = {
Source = "reload_empty_magnum",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = false,
LHIKIn = 0.9,
LHIKOut = 1.25,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.5,
ShellEjectAt = .5,
LastClip1OutTime = 1.5,
MinProgress = 4,
Time = 4.25,
SoundTable = {
{s = ratel, t = 0.05},
{s = testpath .. "boltup.ogg", t = 0.15},
{s = testpath .. "boltback_reload.ogg", t = 0.18},
{s = testpath .. "eject.ogg", t = 0.45},
{s = rottle, t = 0.6},
{s = testpath .. "magrel.ogg", t = 1.0},
{s = testpath .. "magout_empty.ogg", t = 1.1},
{s = rottle, t = 1.25},
{s = testpath .. "magdrop_metal.ogg", t = 1.5, v = 0.4},
{s = common .. "magpouch.ogg", t = 1.6, v = 0.4},
{s = rottle, t = 1.65},
{s = testpath .. "struggle.ogg", t = 1.8},
{s = testpath .. "magin.ogg", t = 1.9},
{s = rottle, t = 2.4},
{s = testpath .. "magtap.ogg", t = 2.5},
{s = ratel, t = 2.6},
{s = testpath .. "boltforward_reload.ogg", t = 2.7},
{s = testpath .. "boltdown.ogg", t = 3.1},
{s = common .. "shoulder.ogg", t = 3.15},
},
},
["reload_empty_10_338"] = {
Source = "reload_empty_exte_magnum",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = true,
LHIKIn = 0.9,
LHIKOut = 1.25,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.5,
MinProgress = 4,
LastClip1OutTime = 2.3,
Time = 4.5,
ShellEjectAt = .5,
SoundTable = {
{s = ratel, t = 0.05},
{s = testpath .. "boltup.ogg", t = 0.15},
{s = testpath .. "boltback_reload.ogg", t = 0.18},
{s = testpath .. "eject.ogg", t = 0.45},
{s = rottle, t = 0.6},
{s = testpath .. "magrel.ogg", t = 1.0},
{s = testpath .. "magout_empty.ogg", t = 1.1},
{s = rottle, t = 1.25},
{s = testpath .. "magdrop_metal.ogg", t = 1.5, v = 0.4},
{s = common .. "magpouch.ogg", t = 1.6, v = 0.4},
{s = rottle, t = 1.65},
{s = testpath .. "struggle.ogg", t = 1.85},
{s = testpath .. "magin.ogg", t = 2.0},
{s = rottle, t = 2.4},
{s = testpath .. "magtap.ogg", t = 2.6},
{s = ratel, t = 2.6},
{s = testpath .. "boltforward_reload.ogg", t = 2.9},
{s = testpath .. "boltdown.ogg", t = 3.3},
{s = common .. "shoulder.ogg", t = 3.35},
},
},
["reload_10_338"] = {
Source = "reload_exte_magnum",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.65,
LHIKEaseOut = 0.25,
MinProgress = 3,
Time = 3.5,
SoundTable = {
{s = rottle, t = 0.1},
{s = testpath .. "magrel.ogg", t = 0.2},
{s = testpath .. "magout.ogg", t = 0.4},
{s = rottle, t = 0.75},
{s = common .. "magpouch.ogg", t = 0.8, v = 0.4},
{s = testpath .. "struggle.ogg", t = 1.1, v = 1},
{s = testpath .. "magin.ogg", t = 1.4},
{s = testpath .. "magtap.ogg", t = 2.0},
{s = rottle, t = 2.3, v = 0.6},
{s = ratel, t = 2.35, v = 0.6},
},
},
["cycle"] = {
Source = "cycle",
Time = 1.47,
ShellEjectAt = 0.4,
MinProgress = 0.9,
SoundTable = {
{s = ratel, t = 0.07},
{s = testpath .. "boltup.ogg", t = 0.1},
{s = testpath .. "boltback.ogg", t = 0.2},
{s = testpath .. "boltforward.ogg", t = 0.32},
{s = testpath .. "eject.ogg", t = 0.4},
{s = testpath .. "boltdown.ogg", t = 0.6},
--{s = common .. "shoulder.ogg", t = 0.7},
},
},
["enter_inspect"] = {
Source = "inspect_enter",
-- time = 35 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 2.5,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "movement-sniper-03.ogg", t = 0.05},
},
},
["idle_inspect"] = {
Source = "inspect_loop",
-- time = 72 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
},
["exit_inspect"] = {
Source = "inspect_exit",
-- time = 66 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
SoundTable = {
{s = common .. "movement-sniper-01.ogg", t = 0},
{s = rottle, t = 0.25},
{s = testpath .. "boltup_inspect.ogg", t = 1.2},
{s = common .. "movement-sniper-03.ogg", t = 1.25},
{s = testpath .. "boltback_inspect.ogg", t = 1.35},
{s = testpath .. "boltforward_inspect.ogg", t = 1.8},
{s = testpath .. "boltdown_inspect.ogg", t = 1.9},
{s = rottle, t = 2.0},
{s = common .. "movement-sniper-04.ogg", t = 2.2},
},
},
["enter_inspect_empty"] = { -- Animations needed!
Source = "inspect_enter",
-- time = 35 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 2.5,
SoundTable = {
{s = rottle, t = 0},
{s = rutle, t = 0.1},
},
},
["idle_inspect_empty"] = {
Source = "inspect_loop",
-- time = 72 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
},
["exit_inspect_empty"] = {
Source = "inspect_exit",
-- time = 66 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
SoundTable = {
{s = common .. "movement-sniper-01.ogg", t = 0.05},
{s = rottle, t = 0.25},
{s = testpath .. "boltup_inspect.ogg", t = 1.2},
{s = common .. "movement-sniper-03.ogg", t = 1.25},
{s = testpath .. "boltback_inspect.ogg", t = 1.35},
{s = testpath .. "boltforward_inspect.ogg", t = 1.8},
{s = testpath .. "boltdown_inspect.ogg", t = 1.9},
{s = rottle, t = 2.0},
{s = common .. "movement-sniper-04.ogg", t = 2.2},
},
},
}
SWEP.Hook_Think = ArcCW.UC.ADSReload

View File

@@ -0,0 +1,525 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Oldie Weaponry"
SWEP.UC_CategoryPack = "2Urban Renewal"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/12g.mdl"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.ShotgunShellSoundsTable
SWEP.ShellScale = 1
SWEP.UC_ShellColor = Color(0.7*255, 0.2*255, 0.2*255)
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 6
SWEP.CamAttachment = 7
-- Fake name --
SWEP.PrintName = "Volga Super" -- it's marketed to Americans
-- True name --
SWEP.TrueName = "IZh-58"
-- Trivia --
SWEP.Trivia_Class = "Shotgun"
SWEP.Trivia_Desc = [[The design of the double-barrel shotgun is so ubiquitous that it is usually referred to by weapon class instead of model name. These traditional shotguns are very popular in both rural and urban communities around the world for their simplicity and reliability.
Both barrels can be fired back-to-back in quick, deadly succession, but they must be reloaded frequently. Switch to burst firemode to pull both triggers at once.]]
SWEP.Trivia_Manufacturer = "Sikov Machining Plant"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Break Action"
SWEP.Trivia_Country = "Soviet Union"
SWEP.Trivia_Year = 1958
-- Weapon slot --
SWEP.Slot = 3
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Izhevsk Mechanical Plant"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ur_dbs.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ur_dbs.mdl"
SWEP.ViewModelFOV = 60
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SHOTGUN
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-3, 3, -5),
ang = Angle(-12, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
-- Damage parameters --
SWEP.Damage = 18 -- 6 pellets to kill
SWEP.DamageMin = 10 -- 10 pellets to kill
SWEP.Range = 40
SWEP.RangeMin = 6
SWEP.Num = 8
SWEP.Penetration = 2
SWEP.DamageType = DMG_BUCKSHOT
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 365
SWEP.PhysBulletMuzzleVelocity = 365
SWEP.HullSize = 0.25
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults_Shotgun
-- Mag size --
SWEP.ChamberSize = 0
SWEP.Primary.ClipSize = 2
SWEP.RejectMagSizeChange = true -- Signals to attachments that mag size shouldn't be changeable; needs to be implemented attachment-side with att.Compatible
-- Recoil --
SWEP.Recoil = 2.8
SWEP.RecoilSide = 2
SWEP.RecoilRise = 0.24
SWEP.VisualRecoilMult = 0
SWEP.MaxRecoilBlowback = 1
SWEP.MaxRecoilPunch = 1
SWEP.Sway = 0.5
-- Firerate / Firemodes --
SWEP.Delay = 60 / 350
SWEP.Firemodes = {
{
Mode = 1,
PrintName = "fcg.break",
},
{
Mode = 1,
PrintName = "ur.spas12.dbl",
Mult_AccuracyMOA = 1.15,
Mult_HipDispersion = 0.8,
Mult_Num = 2,
Override_AmmoPerShot = 2,
Mult_Damage = 2,
Mult_DamageMin = 2,
Mult_VisualRecoilMult = 2,
CustomBars = "--___",
},
{
PrintName = "fcg.safe2",
Mode = 0,
}
}
SWEP.UC_CanManualAction = true
SWEP.MalfunctionTakeRound = false
SWEP.MalfunctionMean = math.huge -- Theoretically it will never malfunction
SWEP.ShootVol = 160
SWEP.ShootPitch = 100
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = false
SWEP.RevolverReload = true
-- NPC --
SWEP.NPCWeaponType = "weapon_shotgun"
SWEP.NPCWeight = 210
-- Accuracy --
SWEP.AccuracyMOA = 25
SWEP.HipDispersion = 400
SWEP.MoveDispersion = 125
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "buckshot"
-- Speed multipliers --
SWEP.SpeedMult = 0.91
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.25
SWEP.ShootSpeedMult = 0.75
-- Length --
SWEP.BarrelLength = 49
SWEP.ExtraSightDist = 2
-- Ironsights / Customization / Poses --
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.IronSightStruct = {
Pos = Vector(-1.5, 0, 2.5),
Ang = Angle(0, 0, 3),
Magnification = 1.05,
SwitchToSound = "",
}
SWEP.SprintPos = Vector(7, 0, 0)
SWEP.SprintAng = Angle(-10, 40, -10)
SWEP.HolsterPos = Vector(7, 0, 0)
SWEP.HolsterAng = Angle(-10, 40, -10)
SWEP.ActivePos = Vector(1, 1.5, 1.5)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-1, 2, 1)
SWEP.CrouchAng = Angle(0, 0, -20)
SWEP.CustomizePos = Vector(10, 1, 2)
SWEP.CustomizeAng = Angle(10, 40, 20)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(3, 0, -4.5)
-- Firing sounds --
local path = ")weapons/arccw_ur/dbs/"
local common = ")/arccw_uc/common/"
SWEP.ShootSoundSilenced = path .. "fire_supp.ogg"
--[[SWEP.DistantShootSound = {path .. "fire-dist-01.ogg", path .. "fire-dist-02.ogg", path .. "fire-dist-03.ogg", path .. "fire-dist-04.ogg", path .. "fire-dist-05.ogg"}
SWEP.DistantShootSoundSilenced = common .. "sup_tail.ogg"]]
SWEP.ShootDrySound = common .. "manual_trigger.ogg"
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
local tail = ")/arccw_uc/common/12ga/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-12ga-pasg-ext-01.ogg",
tail .. "fire-dist-12ga-pasg-ext-02.ogg",
tail .. "fire-dist-12ga-pasg-ext-03.ogg",
tail .. "fire-dist-12ga-pasg-ext-04.ogg",
tail .. "fire-dist-12ga-pasg-ext-05.ogg",
tail .. "fire-dist-12ga-pasg-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 1
SWEP.Hook_AddShootSound = function(wep,data)
ArcCW.UC.InnyOuty(wep)
if wep:GetCurrentFiremode().Override_AmmoPerShot == 2 then
timer.Simple(0.05, function()
if IsValid(wep) then
wep:EmitSound(wep.ShootSound[math.random(1,#wep.ShootSound)], data.volume * .4, data.pitch, 1, CHAN_WEAPON - 1)
end
end)
end
end
-- Animations --
local ratel = {common .. "rattle1.ogg", common .. "rattle2.ogg", common .. "rattle3.ogg"}
local rottle = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
local shellin = {common .. "dbs-shell-insert-01.ogg", common .. "dbs-shell-insert-02.ogg", common .. "dbs-shell-insert-03.ogg", common .. "dbs-shell-insert-04.ogg", common .. "dbs-shell-insert-05.ogg", common .. "dbs-shell-insert-06.ogg", common .. "dbs-shell-insert-07.ogg", common .. "dbs-shell-insert-08.ogg", common .. "dbs-shell-insert-09.ogg", common .. "dbs-shell-insert-10.ogg", common .. "dbs-shell-insert-11.ogg", common .. "dbs-shell-insert-12.ogg"}
local shellfall = {path .. "shell-fall-01.ogg", path .. "shell-fall-02.ogg", path .. "shell-fall-03.ogg", path .. "shell-fall-04.ogg"}
SWEP.Animations = {
["idle"] = {
Source = "idle",
},
["draw"] = {
Source = "draw",
--Time = 20 / 30,
SoundTable = {
{s = rottle, t = 0},
{s = path .. "grab.ogg", t = 0.2},
{s = path .. "shoulder.ogg", t = 0.5},
},
},
["ready"] = {
Source = "deploy",
Time = 26 / 30,
SoundTable = {
{s = path .. "close.ogg", t = 0.1},
{s = common .. "shoulder.ogg", t = 0.2},
{s = path .. "shoulder.ogg", t = 0.455},
},
},
["holster"] = {
Source = "holster",
Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire"] = { -- first barrel
Source = "fire",
-- Time = 23 / 25,--30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = "fire",
-- Time = 23 / 25,--30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
["fire_empty"] = { -- second barrel
Source = "fire_empty", -- fire_empty
-- Time = 23 / 25,--30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron_empty"] = {
Source = "fire_empty", -- fire_empty
-- Time = 23 / 25,--30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0}},
},
["fire_2bst"] = { -- both
Source = "fireboth",
-- Time = 35 / 25,--30,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
MinProgress = 0.3
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
ShellEjectAt = 0.91,
SoundTable = {
{s = common .. "cloth_4.ogg", t = 0},
{s = path .. "open.ogg", t = 0.2},
{s = path .. "eject.ogg", t = 0.8},
{s = common .. "magpouch_pull_small.ogg", t = 1.0},
{s = shellfall, t = 1.0},
{s = common .. "cloth_2.ogg", t = 1.1},
{s = path .. "struggle.ogg", t = 1.5, v = 0.5},
{s = shellin, t = 1.8},
{s = path .. "grab.ogg", t = 2.15, v = 0.5},
{s = path .. "close.ogg", t = 2.3},
{s = common .. "shoulder.ogg", t = 2.4},
{s = path .. "shoulder.ogg", t = 2.675},
},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
MinProgress = 2.05,
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
ShellEjectAt = 1.0,
SoundTable = {
{s = common .. "cloth_4.ogg", t = 0},
{s = path .. "open.ogg", t = 0.3},
{s = path .. "eject.ogg", t = 0.8},
{s = shellfall, t = 0.9},
{s = shellfall, t = 0.95},
{s = common .. "cloth_2.ogg", t = 1.1},
{s = common .. "magpouch_pull_small.ogg", t = 1.2},
{s = path .. "struggle.ogg", t = 1.7, v = 0.5},
{s = shellin, t = 1.85},
{s = shellin, t = 1.9},
{s = path .. "grab.ogg", t = 2.17, v = 0.5},
{s = path .. "close.ogg", t = 2.3},
{s = common .. "shoulder.ogg", t = 2.44},
{s = path .. "shoulder.ogg", t = 2.6},
},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
MinProgress = 2.05,
},
["reload_extractor"] = {
Source = "reload2",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
ShellEjectAt = 0.4,
SoundTable = {
{s = common .. "cloth_4.ogg", t = 0},
{s = path .. "open.ogg", t = 0.2},
{s = common .. "magpouch_pull_small.ogg", t = 0.5},
{s = shellfall, t = 0.4},
{s = common .. "cloth_2.ogg", t = 0.6},
{s = path .. "struggle.ogg", t = 1.0, v = 0.5},
{s = shellin, t = 1.2},
{s = path .. "grab.ogg", t = 1.5, v = 0.5},
{s = path .. "close.ogg", t = 1.7},
{s = common .. "shoulder.ogg", t = 1.8},
{s = path .. "shoulder.ogg", t = 2.2},
},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
MinProgress = 1.3,
},
["reload_empty_extractor"] = {
Source = "reload2_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
ShellEjectAt = 0.4,
SoundTable = {
{s = common .. "cloth_4.ogg", t = 0},
{s = path .. "open.ogg", t = 0.2},
{s = common .. "magpouch_pull_small.ogg", t = 0.5},
{s = shellfall, t = 0.4},
{s = shellfall, t = 0.45},
{s = common .. "cloth_2.ogg", t = 0.6},
{s = path .. "struggle.ogg", t = 1.0, v = 0.5},
{s = shellin, t = 1.2},
{s = shellin, t = 1.25},
{s = path .. "grab.ogg", t = 1.5, v = 0.5},
{s = path .. "close.ogg", t = 1.7},
{s = common .. "shoulder.ogg", t = 1.8},
{s = path .. "shoulder.ogg", t = 2.2},
},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
MinProgress = 1.3,
},
}
SWEP.BulletBones = {
--[1] = "1014_shell1",
}
-- Bodygroups --
SWEP.AttachmentElements = {
["barrel_mid"] = { VMBodygroups = { {ind = 1, bg = 1} } },
["barrel_compact"] = { VMBodygroups = { {ind = 1, bg = 4} } },
["barrel_sw"] = { VMBodygroups = { {ind = 1, bg = 2} } },
["barrel_swplus"] = { VMBodygroups = { {ind = 1, bg = 3}, {ind = 3, bg = 1} } },
["stock_sw"] = { VMBodygroups = { {ind = 2, bg = 1} } },
}
SWEP.DefaultBodygroups = "00000000"
SWEP.Attachments = {
-- {
-- PrintName = "Optic",
-- DefaultAttName = "Iron Sights",
-- Slot = {"optic_lp","optic"},
-- Bone = "barrels",
-- Offset = {
-- vpos = Vector(0.5, -1.75, 1.5),
-- vang = Angle(0, 90, 0),
-- },
-- VMScale = Vector(1,1,1),
-- CorrectivePos = Vector(0, 0, -0.0),
-- CorrectiveAng = Angle(0, 180, 0),
-- },
{
PrintName = "Barrel",
DefaultAttName = "26\" Factory Barrel",
DefaultAttIcon = Material("entities/att/ur_dbs/blong.png", "smooth mips"),
Slot = "ur_db_barrel",
Bone = "body",
Offset = {
vpos = Vector(-0.4, -5, -6),
vang = Angle(0, 90, 0),
},
},
{
PrintName = "Muzzle",
Slot = "choke",
},
{
PrintName = "Stock",
Slot = {"ur_db_stock"},
DefaultAttName = "Wooden Stock",
DefaultAttIcon = Material("entities/att/ur_dbs/s.png", "smooth mips"),
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"BUCK\" #00 Buckshot",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_shotgun_generic.png", "mips smooth"),
Slot = {"ud_ammo_shotgun"},
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = {"uc_fg_singleshot", "uc_db_fg"}, -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm", "uc_db_tp"},
FreeSlot = true,
Bone = "body",
Offset = {
vpos = Vector(-0.55, 1, -0.5),
vang = Angle(0, 90, 0),
},
},
}

View File

@@ -0,0 +1,857 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Modern Weaponry"
SWEP.UC_CategoryPack = "2Urban Renewal"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_pistol_deagle"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/50ae.mdl"
SWEP.ShellScale = 1
--SWEP.ShellMaterial = "models/weapons/arcticcw/shell_9mm"
SWEP.ShellPitch = 90
SWEP.UC_ShellColor = Color(0.7*255, 0.2*255, 0.2*255)
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.TracerNum = 1
SWEP.TracerWidth = 1
SWEP.ShootPitch = 100
-- Fake name --
SWEP.PrintName = "Predator .50"
-- True name --
SWEP.TrueName = "Desert Eagle"
-- Trivia --
SWEP.Trivia_Class = "Pistol"
SWEP.Trivia_Desc = "Unorthodox pistol in both weight and design, marketed as an alternative to high-caliber revolvers. Its huge rounds, unrivaled in power for a handgun cartridge, can easily blast a human skull apart.\nDespite being one of the most famous weapons in action culture, it rarely sees practical use because of its massive, bulky frame and pointlessly large caliber.\n\nWe both know that won't stop you."
SWEP.Trivia_Manufacturer = "ISM"
SWEP.Trivia_Calibre = ".50 Action Express"
SWEP.Trivia_Mechanism = "Gas-Operated Rotating Bolt"
SWEP.Trivia_Country = "Israel"
SWEP.Trivia_Year = 1983
-- Weapon slot --
SWEP.Slot = 1
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Magnum Research"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ud_deagle.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ud_deagle.mdl"
SWEP.ViewModelFOV = 60
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_REVOLVER
-- Damage parameters --
SWEP.Damage = 44 -- 2 shot close range kill
SWEP.DamageMin = 44 -- 9 shot long range kill (big bullet falls off quickly)
SWEP.RangeMin = 10
SWEP.Range = 120 -- 2 shot until ~50m
SWEP.Penetration = 9
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 470
SWEP.PhysBulletMuzzleVelocity = 470
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults
-- Jamming --
--SWEP.Malfunction = true
SWEP.MalfunctionJam = false
--SWEP.MalfunctionMean = 21
SWEP.MalfunctionPostFire = false
SWEP.MalfunctionTakeRound = false
-- Mag size --
SWEP.ChamberSize = 1
SWEP.Primary.ClipSize = 7
SWEP.ExtendedClipSize = 14
SWEP.ReducedClipSize = 5
-- Recoil --
SWEP.Recoil = 3
SWEP.RecoilSide = 1
SWEP.RecoilRise = 0.75
SWEP.VisualRecoilMult = 1.5
SWEP.MaxRecoilBlowback = 2
SWEP.MaxRecoilPunch = 6
SWEP.Sway = 1.1
-- Firerate / Firemodes --
SWEP.Delay = 60 / 200
SWEP.Num = 1
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.ShootPitch = 100
SWEP.ShootVol = 120
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_357"
SWEP.NPCWeight = 70
-- Accuracy --
SWEP.AccuracyMOA = 4
SWEP.HipDispersion = 600
SWEP.MoveDispersion = 200
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "357"
SWEP.MagID = "deagle"
-- Speed multipliers --
SWEP.SpeedMult = 0.925
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.25
SWEP.ShootSpeedMult = 0.8
-- Length --
SWEP.BarrelLength = 12
SWEP.ExtraSightDist = 10
-- Ironsights / Customization / Poses --
SWEP.HolsterPos = Vector(0.3, 3, 1)
SWEP.HolsterAng = Angle(-5, 15, -20)
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "revolver"
SWEP.HoldtypeSights = "revolver"
SWEP.IronSightStruct = {
Pos = Vector(-2.549, 1, 1.505),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "",
ViewModelFOV = 55,
}
SWEP.ActivePos = Vector(-0.5, 1.5, 1.15)
SWEP.ActiveAng = Angle(0.5, 0.5, -2)
SWEP.CustomizePos = Vector(-1, -2, 2)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-2.2, 1, 0.6)
SWEP.CrouchAng = Angle(0, 0, -14)
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-10.5, 4, -4),
ang = Angle(-6, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
}
-- Weapon sounds --
local path = ")weapons/arccw_ur/deagle/"
local common = ")/arccw_uc/common/"
local rottle = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
local rutle = {common .. "movement-smg-03.ogg",common .. "movement-smg-04.ogg"}
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.ShootSoundSilenced = path .. "fire_sup.ogg"
SWEP.DistantShootSound = nil
SWEP.DistantShootSoundSilenced = common .. "sup_tail.ogg"
SWEP.ShootDrySound = path .. "dryfire.ogg"
local tail = ")/arccw_uc/common/50ae/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-50ae-pistol-ext-01.ogg",
tail .. "fire-dist-50ae-pistol-ext-02.ogg",
tail .. "fire-dist-50ae-pistol-ext-03.ogg",
tail .. "fire-dist-50ae-pistol-ext-04.ogg",
tail .. "fire-dist-50ae-pistol-ext-05.ogg",
tail .. "fire-dist-50ae-pistol-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-shotgun-01.ogg",
common .. "fire-dist-int-shotgun-02.ogg",
common .. "fire-dist-int-shotgun-03.ogg",
common .. "fire-dist-int-shotgun-04.ogg",
common .. "fire-dist-int-shotgun-05.ogg",
common .. "fire-dist-int-shotgun-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 0.75
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
-- Bodygroups --
SWEP.BulletBones = {
[1] = "Bullet1", [2] = "Bullet2", [3] = "Bullet3", [4] = "Bullet4", [5] = "Bullet5", [6] = "Bullet6", [7] = "Bullet7"
}
SWEP.DefaultBodygroups = "000000000"
SWEP.AttachmentElements = {
["ur_deagle_barrel_modern"] = {
VMBodygroups = {{ind = 1, bg = 1}},
},
["ur_deagle_barrel_compact"] = {
VMBodygroups = {{ind = 1, bg = 5}},
AttPosMods = {
[4] = {
vpos = Vector(0, 0, .15),
vang = Angle(90, 0, -90),
},
}
},
["ur_deagle_barrel_compen"] = {
VMBodygroups = {{ind = 1, bg = 4}},
},
["ur_deagle_barrel_ext"] = {
VMBodygroups = {{ind = 1, bg = 2}},
AttPosMods = {
[4] = {
vpos = Vector(0, 0, 1.95),
vang = Angle(90, 0, -90),
},
},
},
["ur_deagle_barrel_marksman"] = {
VMBodygroups = {{ind = 1, bg = 3}},
AttPosMods = {
[4] = {
vpos = Vector(0, -0.05, 5.1),
vang = Angle(90, 0, -90),
},
},
},
["ur_deagle_barrel_annihilator"] = {
VMBodygroups = {{ind = 1, bg = 6}},
AttPosMods = {
[4] = {
vpos = Vector(0, -0.05, 1.25),
vang = Angle(90, 0, -90),
},
},
},
["ur_deagle_mag_ext"] = {
VMBodygroups = {{ind = 2, bg = 1}}
},
["ur_deagle_grip_wooden"] = {
VMBodygroups = {{ind = 4, bg = 1}}
},
["ur_deagle_grip_rubber"] = {
VMBodygroups = {{ind = 4, bg = 2}}
},
["tac_rail"] = {
VMBodygroups = {{ind = 5, bg = 1}}
},
["ur_deagle_caliber_44"] = {
VMBodygroups = {{ind = 6, bg = 1}}
},
["ur_deagle_caliber_357"] = {
VMBodygroups = {{ind = 6, bg = 2}}
},
["ur_deagle_caliber_410"] = {
VMBodygroups = {{ind = 6, bg = 3}}
},
["ur_deagle_skin_black"] = {
VMSkin = 1,
},
["ur_deagle_skin_gold"] = {
VMSkin = 2,
},
["ur_deagle_skin_chrome"] = {
VMSkin = 3,
},
["ur_deagle_skin_modern"] = {
VMBodygroups = {{ind = 0, bg = 1}},
VMSkin = 3,
},
["ur_deagle_skin_sex"] = {
VMBodygroups = {{ind = 0, bg = 1}},
VMSkin = 4,
},
}
SWEP.Hook_ModifyBodygroups = function(wep,data)
local vm = data.vm
if !IsValid(vm) then return end
local optic = wep.Attachments[1].Installed
local tritium = (optic == "ur_deagle_tritium")
local barrel = wep.Attachments[2].Installed or 0
if tritium then
-- Setup for when we introduce new barrel options
if barrel == "ur_deagle_barrel_marksman" then
vm:SetBodygroup(3,3)
elseif barrel == "ur_deagle_barrel_ext" then
vm:SetBodygroup(3,2)
elseif barrel == "ur_deagle_barrel_compact" then
vm:SetBodygroup(3,4)
elseif barrel == "ur_deagle_barrel_annihilator" then
vm:SetBodygroup(3,5)
else
vm:SetBodygroup(3,1)
end
-- elseif optic and barrel == 0 then
-- vm:SetBodygroup(1,1)
end
if barrel == "ur_deagle_barrel_annihilator" then
if vm:GetBodygroup(5) == 1 then
vm:SetBodygroup(5,2)
end
end
end
SWEP.Hook_NameChange = function(wep, name)
if wep.Attachments[2].Installed == "ur_deagle_barrel_annihilator" then
return "Annihilator"
elseif !GetConVar("arccw_truenames"):GetBool() then
local add = ".50"
local cal = wep.Attachments[3].Installed
if cal == "ur_deagle_caliber_357" then
add = ".357"
elseif cal == "ur_deagle_caliber_44" then
add = ".44"
elseif cal == "ur_deagle_caliber_410" then
add = ".410"
end
return "Predator " .. add
else
return "Desert Eagle"
end
end
-- Animations --
SWEP.Animations = {
["idle_empty"] = {
Source = "idle_empty",
Time = 120 / 60,
},
["idle_jammed"] = { -- pistol-like malfucntions not implemented yet in arccw
Source = "idle_jammed",
Time = 120 / 60,
},
["idle"] = {
Source = "idle",
Time = 120 / 60,
},
["ready"] = {
Source = "ready",
Time = 73 / 60,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.6,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = path .. "slidepull.ogg", t = 12 / 60, c = ca },
{ s = path .. "chamber.ogg", t = 20 / 60, c = ca },
},
},
["draw"] = {
Source = "draw",
ProcDraw = true,
SoundTable = {
--{s = path .. "draw.ogg", t = 0}, -- Not Temporary
{s = common .. "raise.ogg", t = 0.05},
},
},
["holster"] = {
Source = "holster",
ProcHolster = true,
SoundTable = {
{s = rottle, t = 0},
--{s = path .. "holster.ogg", t = 0.2}, -- Not Temporary
},
},
["fire"] = {
Source = {"fire_01", "fire_02", "fire_03"},
Time = 0.9,
ShellEjectAt = 0.05,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = {"fire_01", "fire_02", "fire_03"},
Time = 0.9,
ShellEjectAt = 0.05,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
["fire_jammed"] = {
Source = "fire_jammed",
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
["fire_empty"] = {
Source = "fire_empty",
Time = 0.9,
ShellEjectAt = 0.05,
SoundTable = {{ s = path .. "mech_last.ogg", t = 0 }},
},
["fire_iron_empty"] = {
Source = "fire_empty",
Time = 0.9,
ShellEjectAt = 0.05,
SoundTable = {{ s = path .. "mech_last.ogg", t = 0 }},
},
-- 7-R Reloads --
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.3525,
Time = 2.2,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.6,
LHIKOut = 0.62,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = common .. "magrelease.ogg", t = 7 / 60, c = ca },
{ s = path .. "magout.ogg", t = 6 / 60, c = ca },
{ s = rottle, t = 10 / 60, c = ca },
{ s = common .. "magpouch_pull_small.ogg", t = 30 / 60, c = ca },
{ s = rottle, t = 55 / 60, c = ca },
{ s = path .. "magin_miss.ogg", t = 61 / 60, c = ca },
{ s = path .. "magin_old.ogg", t = 66 / 60, c = ca },
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.75,
Time = 2.55,
LastClip1OutTime = 0.76,
LHIK = true,
LHIKIn = 0.1,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.55,
LHIKOut = 0.7,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = common .. "magrelease.ogg", t = 7 / 60, c = ca },
{ s = path .. "magout_old.ogg", t = 8 / 60, c = ca },
{ s = rottle, t = 10 / 60, c = ca },
{ s = common .. "magpouch_pull_small.ogg", t = 26 / 60, c = ca },
{ s = common .. "pistol_magdrop.ogg", t = 40 / 60, c = ca },
{ s = rottle, t = 55 / 60, c = ca },
{ s = path .. "magin_miss.ogg", t = 58 / 60, c = ca },
{ s = path .. "magin_old.ogg", t = 62 / 60, c = ca },
{ s = path .. "chamber.ogg", t = 90 / 60, c = ca },
{ s = rottle, t = 75 / 60, c = ca },
},
},
-- 10-R Reloads --
["reload_10"] = {
Source = "reload_exte",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.3525,
Time = 139 / 60,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.6,
LHIKOut = 0.62,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = common .. "magrelease.ogg", t = 7 / 60, c = ca },
{ s = path .. "magout.ogg", t = 6 / 60, c = ca },
{ s = rottle, t = 10 / 60, c = ca },
{ s = common .. "magpouch.ogg", t = 30 / 60, c = ca },
{ s = rottle, t = 55 / 60, c = ca },
{ s = path .. "magin_miss.ogg", t = 64 / 60, c = ca },
{ s = path .. "magin_old.ogg", t = 71 / 60, c = ca },
},
},
["reload_empty_10"] = {
Source = "reload_empty_exte",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.75,
Time = 160 / 60,
LastClip1OutTime = 0.76,
LHIK = true,
LHIKIn = 0.1,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.55,
LHIKOut = 0.7,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = common .. "magrelease.ogg", t = 7 / 60, c = ca },
{ s = path .. "magout_old.ogg", t = 8 / 60, c = ca },
{ s = rottle, t = 10 / 60, c = ca },
{ s = common .. "magpouch.ogg", t = 26 / 60, c = ca },
{ s = common .. "pistol_magdrop.ogg", t = 40 / 60, c = ca },
{ s = rottle, t = 55 / 60, c = ca },
{ s = path .. "magin_miss.ogg", t = 60 / 60, c = ca },
{ s = path .. "magin_old.ogg", t = 66 / 60, c = ca },
{ s = path .. "chamber.ogg", t = 94 / 60, c = ca },
{ s = rottle, t = 75 / 60, c = ca },
},
},
["unjam"] = {
Source = "unjam",
Time = 0.9,
-- ShellEjectAt = 0.65,
SoundTable = {
{s = rottle, t = 0},
{s = path .. "unjam.ogg", t = .4}
},
LHIK = true,
LHIKIn = .2,
LHIKOut = .2,
LHIKEaseOut = .75,
},
-- Inspecc --
-- disabled due to suck balls
["enter_inspect"] = {
Source = "enter_inspect",
time = 35 / 60,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0,
SoundTable = {
{s = rottle, t = 0},
{s = rutle, t = 0.1},
},
},
["idle_inspect"] = {
Source = "idle_inspect",
time = 72 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "exit_inspect",
time = 66 / 60,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.84,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = common .. "magrelease.ogg", t = 7 / 60, c = ca },
{ s = path .. "magout.ogg", t = 8 / 60, c = ca },
{ s = rottle, t = 100 / 60, c = ca },
{ s = path .. "magin_miss.ogg", t = 106 / 60, c = ca },
{ s = path .. "magin_old.ogg", t = 114 / 60, c = ca },
{ s = path .. "rack1.ogg", t = 155 / 60, c = ca },
{ s = rottle, t = 160 / 60, c = ca },
{ s = path .. "rack2.ogg", t = 178 / 60, c = ca },
{ s = rottle, t = 180 / 60, c = ca },
},
},
["enter_inspect_empty"] = {
Source = "enter_inspect_empty",
time = 35 / 60,
LHIK = true,
LHIKIn = 0.1,
LHIKOut = 0,
SoundTable = {
},
},
["idle_inspect_empty"] = {
Source = "idle_inspect_empty",
time = 72 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect_empty"] = {
Source = "exit_inspect_empty",
time = 66 / 60,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.84,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = common .. "magrelease.ogg", t = 7 / 60, c = ca },
{ s = path .. "magout.ogg", t = 8 / 60, c = ca },
{ s = rottle, t = 100 / 60, c = ca },
{ s = path .. "magin_miss.ogg", t = 106 / 60, c = ca },
{ s = path .. "magin_old.ogg", t = 114 / 60, c = ca },
{ s = rottle, t = 160 / 60, c = ca },
},
},
["enter_inspect_jammed"] = {
Source = "enter_inspect_jammed",
time = 35 / 60,
LHIK = true,
LHIKIn = 0.1,
LHIKOut = 0,
SoundTable = {
},
},
["idle_inspect_jammed"] = {
Source = "idle_inspect_jammed",
time = 72 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect_jammed"] = {
Source = "exit_inspect_jammed",
time = 66 / 60,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.84,
SoundTable = {
{ s = rottle, t = 0 / 60, c = ca },
{ s = common .. "magrelease.ogg", t = 7 / 60, c = ca },
{ s = path .. "magout.ogg", t = 8 / 60, c = ca },
{ s = rottle, t = 100 / 60, c = ca },
{ s = path .. "magin_miss.ogg", t = 106 / 60, c = ca },
{ s = path .. "magin_old.ogg", t = 114 / 60, c = ca },
{ s = rottle, t = 160 / 60, c = ca },
},
},
}
-- ADS animation blending, thanks fesiug --
SWEP.Hook_Think = function(wep)
if IsValid(wep) and wep.ArcCW then
local vm = wep:GetOwner():GetViewModel()
local delta = 1-wep:GetSightDelta()
local bipoded = wep:GetInBipod()
wep.ADSBipodAnims = math.Approach(wep.ADSBipodAnims or 0, bipoded and 1 or 0, FrameTime() / 0.5)
vm:SetPoseParameter("sights", Lerp( math.ease.InOutCubic(math.max(delta, wep.ADSBipodAnims)), 0, 1)) -- thanks fesiug
local slot = wep.Attachments[3].Installed
if wep.Attachments[7].Installed or slot == "ur_deagle_caliber_357" then
vm:SetPoseParameter("light", 1)
elseif slot == "ur_deagle_caliber_44" then
vm:SetPoseParameter("light", .5)
else
vm:SetPoseParameter("light", 0)
end
end
end
-- Attachments --
SWEP.CamAttachment = 3
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = {"optic_lp","ur_deagle_tritium","optic"},
DefaultAttName = "Iron Sights",
Bone = "Body",
Offset = {
vpos = Vector(0, -5.15, 6.4),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Barrel",
Slot = {"ur_deagle_barrel"},
DefaultAttIcon = Material("entities/att/acwatt_ur_deagle_barrel.png","mips smooth"),
DefaultAttName = "6\" Standard Barrel",
Bone = "Body",
Offset = {
vpos = Vector(3.07, -3.8, -27),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Caliber",
Slot = {"ur_deagle_caliber"},
DefaultAttIcon = Material("entities/att/uc_bullets/50ae.png","mips smooth"),
DefaultAttName = ".50 Action Express",
Bone = "Body",
Offset = {
vpos = Vector(3.07, -3.8, -27),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"muzzle"},
Bone = "Barrel",
Offset = {
vpos = Vector(0, 0, 0.75),
vang = Angle(90, 0, -90),
},
InstalledEles = {"nofh"},
ExcludeFlags = {"barrel_annihilator"},
Hidden = true,
Integral = true,
},
{
PrintName = "Tactical",
InstalledEles = {"tac_rail"},
Slot = {"tac_pistol"},
Bone = "Body",
Offset = {
vpos = Vector(0, -3.5, 7),
vang = Angle(90, 0, -90),
},
MergeSlots = {15},
},
{
PrintName = "Magazine",
Slot = {"ur_deagle_mag"},
DefaultAttIcon = Material("entities/att/acwatt_ur_deagle_mag_7.png","mips smooth"),
DefaultAttName = "7-Round Mag",
},
{
PrintName = "Stock",
Slot = {"uc_stock", "go_stock_pistol_bt"},
VMScale = Vector(1.1, 1.1, 1.1),
Bone = "Body",
Offset = {
vpos = Vector(0, -0.25, -1),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Grip",
DefaultAttName = "Factory Grip",
DefaultAttIcon = Material("entities/att/acwatt_ur_deagle_grip_plastic.png","mips smooth"),
Slot = "ur_deagle_grip"
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"FMJ\" Full Metal Jacket",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_generic.png", "mips smooth"),
Slot = "uc_ammo",
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm","fml_charm"},
FreeSlot = true,
Bone = "Body",
Offset = {
vpos = Vector(0.55, -3.4, 4.2),
vang = Angle(90, 0, -90),
},
VMScale = Vector(.65,.65,.65),
},
{
PrintName = "Finish",
Slot = {"ur_deagle_skin"},
DefaultAttName = "Stainless Steel",
DefaultAttIcon = Material("entities/att/acwatt_ur_deagle_finish_default.png","mips smooth"),
FreeSlot = true,
},
{
PrintName = "M203 slot",
Slot = "uc_ubgl",
Bone = "Body",
Offset = {
vpos = Vector(0, -4.8, 6.0),
vang = Angle(90, 0, -90),
},
Hidden = true,
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,901 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Oldie Weaponry"
SWEP.UC_CategoryPack = "2Urban Renewal"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_pistol"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/9x19.mdl"
SWEP.ShellScale = 1
--SWEP.ShellMaterial = "models/weapons/arcticcw/shell_9mm"
SWEP.ShellPitch = 90
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.CamAttachment = 5
SWEP.TracerNum = 0 -- subsonic by default
SWEP.TracerWidth = 1
SWEP.ShootPitch = 100
-- Fake name --
SWEP.PrintName = "AMAS" -- American Automatic Sidearm
-- True name --
SWEP.TrueName = "M1911"
-- Trivia --
SWEP.Trivia_Class = "Pistol"
SWEP.Trivia_Desc = [[Venerable semi-automatic pistol issued by the US Army throughout both World Wars and then some. Even after more than a century of service, it is rarely considered an obsolete design, and its short recoil mechanism has been inherited by most modern pistols.
Easy to handle and packing respectable stopping power, the antiquated single-stack magazine is its only notable downside.]]
SWEP.Trivia_Manufacturer = "Stoner's Legacy Ltd."
SWEP.Trivia_Calibre = ".45 ACP"
SWEP.Trivia_Mechanism = "Short Recoil"
SWEP.Trivia_Country = "USA"
SWEP.Trivia_Year = 1911
-- Weapon slot --
SWEP.Slot = 1
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Colt's Manufacturing Company"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ur_m1911.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ur_m1911.mdl"
SWEP.ViewModelFOV = 66
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_REVOLVER
-- Damage parameters --
SWEP.Damage = 14 -- 3 shot short range kill (2 shot chest point-blank)
SWEP.DamageMin = 14 -- 7 shot long range kill
SWEP.RangeMin = 10
SWEP.Range = 100 -- 3 shot until ~40m
SWEP.Penetration = 9
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil
SWEP.PhysBulletMuzzleVelocity = 253
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults
-- Jamming --
--SWEP.Malfunction = true
SWEP.MalfunctionJam = false
--SWEP.MalfunctionMean = 21
SWEP.MalfunctionPostFire = false
SWEP.MalfunctionTakeRound = false
-- Mag size --
SWEP.ChamberSize = 1
SWEP.Primary.ClipSize = 12
-- Recoil --
SWEP.Recoil = 1.00
SWEP.RecoilSide = 0.75
SWEP.RecoilRise = 0.30
SWEP.VisualRecoilMult = 1.0
SWEP.MaxRecoilBlowback = .5
SWEP.MaxRecoilPunch = .8
SWEP.Sway = 1
-- Firerate / Firemodes --
SWEP.Delay = 60 / 400
SWEP.Num = 1
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.ShootPitch = 100
SWEP.ShootVol = 120
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_pistol"
SWEP.NPCWeight = 70
-- Accuracy --
SWEP.AccuracyMOA = 12
SWEP.HipDispersion = 400
SWEP.MoveDispersion = 150
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "pistol"
SWEP.MagID = "m1911"
-- Speed multipliers --
SWEP.SpeedMult = 0.97
SWEP.SightedSpeedMult = 0.875
SWEP.SightTime = 0.25
SWEP.ShootSpeedMult = 1
-- Length --
SWEP.BarrelLength = 8
SWEP.ExtraSightDist = 10
-- Ironsights / Customization / Poses --
SWEP.HolsterPos = Vector(0.3, 3, 1.6)
SWEP.HolsterAng = Angle(-14, 0, -0.5)
SWEP.SprintPos = Vector(0.3, 3, 1)
SWEP.SprintAng = Angle(-5, 15, -20)
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "pistol"
SWEP.HoldtypeSights = "revolver"
SWEP.IronSightStruct = {
Pos = Vector(-2.33, 10, 1.5),
Ang = Angle(0.2, 0.02, 5.5),
Magnification = 1,
SwitchToSound = "",
}
SWEP.ActivePos = Vector(0.3, 3, 1.3)
SWEP.ActiveAng = Angle(0, 0, -0.5)
SWEP.CustomizePos = Vector(0, 0, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-2, 0, 0)
SWEP.CrouchAng = Angle(0, 0, -8)
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-9, 4, -4.25),
ang = Angle(-6, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
}
-- Weapon sounds --
local path = ")weapons/arccw_ur/1911/"
local common = ")/arccw_uc/common/"
local rottle = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
local rutle = {common .. "movement-pistol-01.ogg",common .. "movement-pistol-02.ogg",common .. "movement-pistol-03.ogg",common .. "movement-pistol-04.ogg"}
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.ShootSoundSilenced = {
path .. "fire-sup-01.ogg",
path .. "fire-sup-02.ogg",
path .. "fire-sup-03.ogg",
path .. "fire-sup-04.ogg",
path .. "fire-sup-05.ogg",
path .. "fire-sup-06.ogg"
}
SWEP.DistantShootSound = nil
SWEP.DistantShootSoundSilenced = nil
SWEP.ShootDrySound = path .. "dryfire.ogg"
local tail = ")/arccw_uc/common/45acp/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-45acp-pistol-ext-01.ogg",
tail .. "fire-dist-45acp-pistol-ext-02.ogg",
tail .. "fire-dist-45acp-pistol-ext-03.ogg",
tail .. "fire-dist-45acp-pistol-ext-04.ogg",
tail .. "fire-dist-45acp-pistol-ext-05.ogg",
tail .. "fire-dist-45acp-pistol-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
common .. "fire-dist-int-pistol-01.ogg",
common .. "fire-dist-int-pistol-02.ogg",
common .. "fire-dist-int-pistol-03.ogg",
common .. "fire-dist-int-pistol-04.ogg",
common .. "fire-dist-int-pistol-05.ogg",
common .. "fire-dist-int-pistol-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 1
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
-- Bodygroups --
SWEP.BulletBones = {
[1] = "mag_round1",
[2] = "mag_round2",
[3] = "mag_round3",
[4] = "mag_round4",
[5] = "mag_round5",
[6] = "mag_round6",
[7] = "mag_round7"
}
SWEP.DefaultBodygroups = "000000000"
SWEP.AttachmentElements = {
["ur_1911_slide_compact"] = {
VMBodygroups = {
{ind = 0, bg = 1},
{ind = 1, bg = 1}
},
AttPosMods = {
[4] = {
vpos = Vector(0, -3.58, .22),
vang = Angle(0, 90, 0),
}
},
NameChange = "AMAD",
TrueNameChange = "Colt Officer's ACP",
},
["ur_1911_slide_compact_custom"] = {
VMBodygroups = {
{ind = 0, bg = 1},
{ind = 1, bg = 5}
},
AttPosMods = {
[4] = {
vpos = Vector(0, -3.58, .22),
vang = Angle(0, 90, 0),
}
},
NameChange = "AMAD",
TrueNameChange = "Colt Officer's ACP",
},
["ur_1911_slide_custom"] = {
VMBodygroups = {
{ind = 1, bg = 4}
},
},
["ur_1911_slide_m45"] = {
VMBodygroups = {
{ind = 1, bg = 2},
{ind = 4, bg = 1},
{ind = 5, bg = 1},
},
--VMSkin = 1,
NameChange = "AMASIN",
TrueNameChange = "M45",
Override_IronSightStruct = {
Pos = Vector(-2.3, 10, 1.4),
Ang = Angle(0.275, 0.07, 5.5),
},
},
["ur_1911_slide_m45_custom"] = {
VMBodygroups = {
{ind = 1, bg = 3},
{ind = 4, bg = 1},
{ind = 5, bg = 1},
},
--VMSkin = 1,
NameChange = "AMASIN",
TrueNameChange = "M45",
Override_IronSightStruct = {
Pos = Vector(-2.3, 10, 1.4),
Ang = Angle(0.275, 0.07, 5.5),
},
},
["ur_1911_mag_ext"] = {
VMBodygroups = {
{ind = 3, bg = 1}
}
},
["ur_1911_grip_snake"] = {
VMBodygroups = {
{ind = 6, bg = 1}
}
},
["ur_1911_grip_pachmayr"] = {
VMBodygroups = {
{ind = 6, bg = 2}
}
},
["ur_1911_skin_silver"] = {
VMSkin = 1
},
["ur_1911_skin_tan"] = {
VMSkin = 2
},
["ur_1911_skin_custom"] = {
VMSkin = 3
},
["ur_1911_cal_9mm"] = {
NameChange = "AMAS-9",
TrueNameChange = "SR1911",
},
["ur_1911_cal_10auto"] = {
NameChange = "AMAS Elite",
TrueNameChange = "Delta Elite",
},
["optic_rail"] = {
VMBodygroups = {
{ind = 7, bg = 1}
}
},
["tac_rail"] = {
VMBodygroups = {
{ind = 8, bg = 1}
}
},
}
SWEP.Hook_ModifyBodygroups = function(wep, data)
-- local vm = data.vm
-- if !IsValid(vm) then return end
-- local att_skin = wep.Attachments[14].Installed
-- local att_slide = wep.Attachments[2].Installed
-- if att_slide == "ur_1911_slide_m45" and att_skin == "ur_1911_skin_custom" then
-- vm:SetBodygroup(1, 3)
-- end
end
-- SWEP.Hook_NameChange = function(wep,name)
-- if GetConVar("arccw_truenames"):GetBool() then
-- local atts = wep.Attachments
-- local cal = string.Replace(atts[3].Installed or "45acp", "ur_1911_cal_", "")
-- if cal == "10auto" then return GetConVar("arccw_truenames"):GetBool() and "Delta Elite" or ""
-- elseif cal == "9mm" then return GetConVar("arccw_truenames"):GetBool() and "SR1911" or ""
-- end
-- return "M1911"
-- else
-- return "AMAS"
-- end
-- end
-- Animations --
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 10 / 30,
},
["idle_empty"] = {
Source = "idle_empty",
Time = 10 / 30,
},
["ready"] = {
Source = "fix",
Time = 1.6,
MinProgress = 1.2,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0,
ShellEjectAt = false,
ProcDraw = true,
SoundTable = {
{ s = rottle, t = 0 / 60 },
{s = path .. "draw.ogg", t = 0.05},
{ s = path .. "mech.ogg",t = 28 / 60}, -- Temporary
{ s = path .. "slidedrop.ogg",t = 35 / 60},
},
},
["draw"] = {
Source = "draw",
Time = .75,
MinProgress = .4,
--ProcDraw = true,
SoundTable = {
{s = rottle, t = 0},
{s = path .. "draw.ogg", t = 0.05}, -- Not Temporary
{s = rutle, t = 0.1},
--{s = common .. "raise.ogg", t = 0.05},
},
},
["draw_empty"] = {
Source = "draw_empty",
Time = .75,
MinProgress = .4,
--ProcDraw = true,
SoundTable = {
{s = rottle, t = 0},
{s = path .. "draw.ogg", t = 0.05}, -- Not Temporary
{s = rutle, t = 0.1},
--{s = common .. "raise.ogg", t = 0.05},
},
},
["draw_jam"] = {
Source = "draw_jam",
Time = .75,
MinProgress = .4,
SoundTable = {
{s = rottle, t = 0},
{s = path .. "draw.ogg", t = 0.05}, -- Not Temporary
{s = rutle, t = 0.1},
--{s = common .. "raise.ogg", t = 0.05},
},
},
["holster"] = {
Source = "holster",
Time = .75,
SoundTable = {
{s = rutle, t = 0.05},
{s = path .. "holster.ogg", t = 0.2}, -- Not Temporary
},
},
["holster_empty"] = {
Source = "holster_empty",
Time = .75,
SoundTable = {
{s = rutle, t = 0.05},
{s = path .. "holster.ogg", t = 0.2}, -- Not Temporary
},
},
["holster_jam"] = {
Source = "holster_jam",
Time = 18 / 30,
SoundTable = {
{s = rutle, t = 0.05},
{s = path .. "holster.ogg", t = 0.2}, -- Not Temporary
},
},
["fire"] = {
Source = "fire",
Time = 30 / 30,
ShellEjectAt = 0,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = "fire",
Time = 30 / 30,
ShellEjectAt = 0,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
["fire_empty"] = {
Source = "fire_empty",
Time = 24 / 30,
ShellEjectAt = 0,
SoundTable = {
{ s = path .. "mech_last.ogg", t = 0 },
},
},
["fire_iron_empty"] = {
Source = "fire_empty",
Time = 24 / 30,
ShellEjectAt = 0,
SoundTable = {
{ s = path .. "mech_last.ogg", t = 0 },
},
},
["fire_jammed"] = {
Source = "fire_jam",
Time = 30 / 30,
MinProgress = 0.5,
ShellEjectAt = false,
SoundTable = {
--{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }
},
},
-- 7-R Reloads --
["reload_10"] = {
Source = "reload_ext",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.3525,
Time = 65 / 30,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.2,
LHIKOut = 0.62,
SoundTable = {
{ s = rottle, t = 0 / 60 },
{ s = common .. "magpouch_pull_small.ogg", t = 0 / 60 },
{ s = common .. "magrelease.ogg", t = 17 / 60 },
{ s = path .. "magout.ogg", t = 26 / 60 },
{ s = rottle, t = 10 / 60 },
{ s = rottle, t = 55 / 60 },
{ s = common .. "magpouch_replace_small.ogg", t = 80 / 60 },
{ s = path .. "magin.ogg", t = 50 / 60 },
},
},
["reload_empty_10"] = {
Source = "reload_empty_ext",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.75,
Time = 75 / 30,
LastClip1OutTime = 0.76,
LHIK = true,
LHIKIn = 0.1,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.55,
LHIKOut = 0.7,
SoundTable = {
{ s = rottle, t = 0 / 60 },
{ s = common .. "magrelease.ogg", t = 7 / 60 },
{ s = path .. "magout.ogg", t = 16 / 60 },
{ s = rottle, t = 10 / 60 },
{ s = common .. "magpouch_pull_small.ogg", t = 29 / 60 },
{ s = common .. "pistol_magdrop.ogg", t = 40 / 60 },
{ s = rottle, t = 55 / 60 },
{ s = path .. "magin.ogg", t = 64 / 60 },
{ s = rottle, t = 90 / 60 },
{ s = path .. "slidedrop.ogg", t = 94 / 60 },
},
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.3525,
Time = 65 / 30,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.2,
LHIKOut = 0.62,
SoundTable = {
{ s = rottle, t = 0 / 60 },
{ s = common .. "magpouch_pull_small.ogg", t = 5 / 60 },
{ s = rottle, t = 10 / 60 },
{ s = common .. "magrelease.ogg", t = 17 / 60 },
{ s = path .. "magout.ogg", t = 26 / 60 },
{ s = path .. "magin.ogg", t = 45 / 60 },
{ s = rottle, t = 55 / 60 },
{ s = common .. "magpouch_replace_small.ogg", t = 80 / 60 },
{ s = path .. "grab.ogg", t = 110 / 60 },
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
MinProgress = 1.75,
Time = 75 / 30,
LastClip1OutTime = 0.76,
LHIK = true,
LHIKIn = 0.1,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.55,
LHIKOut = 0.7,
SoundTable = {
{ s = rottle, t = 0 / 60 },
{ s = common .. "magrelease.ogg", t = 7 / 60 },
{ s = path .. "magout.ogg", t = 16 / 60 },
{ s = rottle, t = 10 / 60 },
{ s = common .. "magpouch_pull_small.ogg", t = 29 / 60 },
{ s = common .. "pistol_magdrop.ogg", t = 40 / 60 },
{ s = rottle, t = 55 / 60 },
{ s = path .. "magin.ogg", t = 64 / 60 },
{ s = rottle, t = 90 / 60 },
{ s = path .. "slidedrop.ogg", t = 94 / 60 },
{ s = path .. "grab.ogg", t = 125 / 60 },
},
},
-- Jam Animations --
["fix"] = {
Source = "fix",
--Time = 40 / 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0,
ShellEjectAt = 30 / 60,
SoundTable = {
{ s = rottle, t = 0 / 60 },
{ s = path .. "mech.ogg",t = 28 / 60}, -- Temporary
{ s = path .. "slidedrop.ogg",t = 35 / 60},
},
},
["fix_empty"] = {
Source = "fix_empty",
--Time = 40 / 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0,
ShellEjectAt = 30 / 60,
SoundTable = {
{ s = rottle, t = 0 / 60 },
{ s = path .. "mech.ogg",t = 28 / 60},
},
},
["idle_jammed"] = {
Source = "idle_jam",
-- time = 35 / 60,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0,
-- SoundTable = {
-- },
},
-- -- Inspecc --
["enter_inspect"] = {
Source = "enter_inspect",
time = 35 / 60,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "movement-pistol-04.ogg", t = 0},
},
},
["idle_inspect"] = {
Source = "idle_inspect",
time = 72 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect"] = {
Source = "exit_inspect",
time = 66 / 60,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.84,
SoundTable = {
{s = rottle, t = 0.05},
{s = common .. "movement-pistol-03.ogg", t = 0.1},
{s = common .. "movement-pistol-01.ogg", t = 1},
{s = rottle, t = 1},
},
},
["enter_inspect_empty"] = {
Source = "enter_inspect_empty",
time = 35 / 60,
LHIK = true,
LHIKIn = 0.1,
LHIKOut = 0,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "movement-pistol-04.ogg", t = 0},
},
},
["idle_inspect_empty"] = {
Source = "idle_inspect_empty",
time = 72 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect_empty"] = {
Source = "exit_inspect_empty",
time = 66 / 60,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.84,
SoundTable = {
{s = rottle, t = 0.05},
{s = common .. "movement-pistol-03.ogg", t = 0.1},
{s = common .. "movement-pistol-01.ogg", t = 1},
{s = rottle, t = 1},
},
},
["enter_inspect_jammed"] = {
Source = "enter_inspect_jam",
time = 35 / 60,
LHIK = true,
LHIKIn = 0.1,
LHIKOut = 0,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "movement-pistol-04.ogg", t = 0},
},
},
["idle_inspect_jammed"] = {
Source = "idle_inspect_jam",
time = 72 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
},
["exit_inspect_jammed"] = {
Source = "exit_inspect_jam",
time = 66 / 60,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.84,
SoundTable = {
{s = rottle, t = 0.05},
{s = common .. "movement-pistol-03.ogg", t = 0.1},
{s = common .. "movement-pistol-01.ogg", t = 1},
{s = rottle, t = 1},
},
},
}
-- ADS animation blending, thanks fesiug --
SWEP.Hook_Think = ArcCW.UC.ADSReload
-- Attachments --
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = {"optic_lp"},
DefaultAttName = "Iron Sights",
Bone = "vm_pivot",
Offset = {
vpos = Vector(-0.01, -2.3, 1.6),
vang = Angle(90, 0, -90),
},
InstalledEles = {"optic_rail"},
},
{
PrintName = "Slide",
Slot = {"ur_m1911_slide"},
DefaultAttIcon = Material("entities/att/ur_1911/slide_std.png","mips smooth"),
DefaultAttName = "5\" Government Slide",
},
{
PrintName = "Caliber",
Slot = {"ur_m1911_caliber"},
DefaultAttIcon = Material("entities/att/uc_bullets/45acp.png","mips smooth"),
DefaultAttName = ".45 ACP",
Bone = "vm_pivot",
Offset = {
vpos = Vector(3.07, -3.8, -27),
vang = Angle(90, 0, -90),
},
DefaultFlags = {"cal_subsonic"},
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"muzzle"},
Bone = "vm_barrel",
Offset = {
vpos = Vector(0.02, -4.4, 0.12),
vang = Angle(0, 90, 0),
},
InstalledEles = {"nofh"},
ExcludeFlags = {"barrel_annihilator"},
},
{
PrintName = "Tactical",
Slot = {"tac_pistol"},
Bone = "vm_pivot",
Offset = {
vpos = Vector(0, 0, 4),
vang = Angle(90, 0, -90),
},
InstalledEles = {"tac_rail"},
},
{
PrintName = "Magazine",
Slot = {"ur_m1911_mag"},
DefaultAttIcon = Material("entities/att/ur_1911/mag7.png","mips smooth"),
DefaultAttName = "7-Round Mag",
},
{
PrintName = "Stock",
Slot = {"uc_stock", "go_stock_pistol_bt"},
VMScale = Vector(1, 1, 1),
Bone = "vm_pivot",
Offset = {
vpos = Vector(0, 3, -3),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Grip",
DefaultAttName = "Factory Grip",
DefaultAttIcon = Material("entities/att/ur_1911/grip.png","mips smooth"),
Slot = "ur_m1911_grip"
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"FMJ\" Full Metal Jacket",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_generic.png", "mips smooth"),
Slot = "uc_ammo",
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm"},
FreeSlot = true,
Bone = "vm_pivot",
Offset = {
vpos = Vector(0.35, -0.5, 3),
vang = Angle(90, 0, -90),
},
VMScale = Vector(.75,.75,.75),
},
{
PrintName = "Finish",
Slot = {"ur_m1911_skin"},
DefaultAttName = "Grey",
DefaultAttIcon = Material("entities/att/ur_1911/skin.png","mips smooth"),
FreeSlot = true,
},
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,830 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "Willard - Modern Weaponry"
SWEP.UC_CategoryPack = "2Urban Renewal"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell effects --
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellEffect = "arccw_uc_shelleffect"
SWEP.ShellModel = "models/weapons/arccw/uc_shells/12g.mdl"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.ShotgunShellSoundsTable
SWEP.ShellScale = 1
SWEP.UC_ShellColor = Color(0.7 * 255, 0.2 * 255, 0.2 * 255)
SWEP.MuzzleEffectAttachment = 1
SWEP.CaseEffectAttachment = 2
SWEP.CamAttachment = 3
-- Fake name --
SWEP.PrintName = "Martello 12/70" -- Italian for "hammer"
-- True name --
SWEP.TrueName = "SPAS-12"
-- Trivia --
SWEP.Trivia_Class = "Shotgun"
SWEP.Trivia_Desc = [[Flexible combat shotgun with the ability to toggle between manual and semi-automatic action. This "dual-mode operation" allows the weapon to cycle low pressure, less-lethal rounds that lack the energy to extract themselves.
The weapon's attempts to reach the American civilian market may have been slowed by legal challenges, but it remains prominent in popular culture for its intimidating and tactical appearance.
Highly versatile, but encumbering to carry and difficult to reload. Switch to pump-action mode to tighten spread and conserve ammo.]]
SWEP.Trivia_Manufacturer = "Iscapelli Armaments"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Hybrid"
SWEP.Trivia_Country = "Italy"
SWEP.Trivia_Year = 1979
-- Weapon slot --
SWEP.Slot = 3
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Luigi Franchi SpA"
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ur_spas12.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ur_spas12.mdl"
SWEP.ViewModelFOV = 60
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SHOTGUN
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-5.8, 5, -4.5),
ang = Angle(-12, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
-- Damage parameters --
SWEP.Damage = 10 -- 6 pellets to kill
SWEP.DamageMin = 10 -- 10 pellets to kill
SWEP.Range = 90
SWEP.RangeMin = 6
SWEP.Num = 8
SWEP.Penetration = 2
SWEP.DamageType = DMG_BUCKSHOT
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 365
SWEP.PhysBulletMuzzleVelocity = 365
SWEP.HullSize = 0.25
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults_Shotgun
-- Mag size --
SWEP.ChamberSize = 1
SWEP.Primary.ClipSize = 8
SWEP.ChamberLoadEmpty = 1
-- Recoil --
SWEP.Recoil = 2.5
SWEP.RecoilSide = 2
SWEP.RecoilRise = 0.24
SWEP.VisualRecoilMult = 1
SWEP.MaxRecoilBlowback = 1
SWEP.MaxRecoilPunch = 1
SWEP.Sway = 0.5
-- Firerate / Firemodes --
SWEP.Delay = 60 / 120
SWEP.Firemodes = {
{
Mode = 1,
PrintName = "fcg.pump",
Override_ManualAction = true,
},
{
Mode = 0
}
}
SWEP.UC_CanManualAction = true
SWEP.ShotgunReload = true
SWEP.NoLastCycle = true
SWEP.ShootVol = 160
SWEP.ShootPitch = 100
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_shotgun"
SWEP.NPCWeight = 210
-- Accuracy --
SWEP.AccuracyMOA = 45
SWEP.HipDispersion = 325
SWEP.MoveDispersion = 400
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "buckshot"
-- Speed multipliers --
SWEP.SpeedMult = 0.88
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.4
SWEP.ShootSpeedMult = 0.75
-- Length --
SWEP.BarrelLength = 46
SWEP.ExtraSightDist = 2
-- Ironsights / Customization / Poses --
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.IronSightStruct = {
Pos = Vector(-3.765, -4, 1.3),
Ang = Angle(.2, 0, 1),
Magnification = 1.05,
SwitchToSound = "",
}
SWEP.SprintPos = Vector(-0.5, -4, -3)
SWEP.SprintAng = Angle(3.5, 7, -20)
SWEP.HolsterPos = Vector(2.5, -1, -3)
SWEP.HolsterAng = Angle(-3.5, 20, -20)
SWEP.ActivePos = Vector(-0.3, -3, 0.1)
SWEP.ActiveAng = Angle(1, 1, -1)
SWEP.CrouchPos = Vector(-4, -2, 0)
SWEP.CrouchAng = Angle(0, 0, -30)
SWEP.CustomizePos = Vector(0, 0, 0)
SWEP.CustomizeAng = Angle(0, 0, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(3, 0, -4.5)
-- Firing sounds --
local path1 = ")weapons/arccw_ud/870/"
local path = ")weapons/arccw_ur/spas12/"
local common = ")/arccw_uc/common/"
SWEP.ShootSoundSilenced = path .. "fire_supp.ogg"
--[[SWEP.DistantShootSound = {path .. "fire-dist-01.ogg", path .. "fire-dist-02.ogg", path .. "fire-dist-03.ogg", path .. "fire-dist-04.ogg", path .. "fire-dist-05.ogg"}
SWEP.DistantShootSoundSilenced = common .. "sup_tail.ogg"]]
SWEP.ShootDrySound = common .. "manual_trigger.ogg"
SWEP.ShootSound = {
path .. "fire-01.ogg",
path .. "fire-02.ogg",
path .. "fire-03.ogg",
path .. "fire-04.ogg",
path .. "fire-05.ogg",
path .. "fire-06.ogg"
}
SWEP.DistantShootSoundOutdoors = {
path .. "fire-dist-01.ogg",
path .. "fire-dist-02.ogg",
path .. "fire-dist-03.ogg",
path .. "fire-dist-04.ogg",
path .. "fire-dist-05.ogg",
}
local tail = ")/arccw_uc/common/12ga/"
SWEP.ShootSoundSilenced = {
tail .. "fire-sup-01.ogg",
tail .. "fire-sup-02.ogg",
tail .. "fire-sup-03.ogg",
tail .. "fire-sup-04.ogg",
tail .. "fire-sup-05.ogg",
tail .. "fire-sup-06.ogg"
}
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-12ga-pasg-ext-01.ogg",
tail .. "fire-dist-12ga-pasg-ext-02.ogg",
tail .. "fire-dist-12ga-pasg-ext-03.ogg",
tail .. "fire-dist-12ga-pasg-ext-04.ogg",
tail .. "fire-dist-12ga-pasg-ext-05.ogg",
tail .. "fire-dist-12ga-pasg-ext-06.ogg"
}
SWEP.DistantShootSoundOutdoorsSilenced = {
common .. "sup-tail-01.ogg",
common .. "sup-tail-02.ogg",
common .. "sup-tail-03.ogg",
common .. "sup-tail-04.ogg",
common .. "sup-tail-05.ogg",
common .. "sup-tail-06.ogg",
common .. "sup-tail-07.ogg",
common .. "sup-tail-08.ogg",
common .. "sup-tail-09.ogg",
common .. "sup-tail-10.ogg"
}
SWEP.DistantShootSoundIndoorsSilenced = {
common .. "fire-dist-int-pistol-light-01.ogg",
common .. "fire-dist-int-pistol-light-02.ogg",
common .. "fire-dist-int-pistol-light-03.ogg",
common .. "fire-dist-int-pistol-light-04.ogg",
common .. "fire-dist-int-pistol-light-05.ogg",
common .. "fire-dist-int-pistol-light-06.ogg"
}
SWEP.DistantShootSoundOutdoorsVolume = 1
SWEP.DistantShootSoundIndoorsVolume = 1
SWEP.Hook_AddShootSound = ArcCW.UC.InnyOuty
-- Animations --
SWEP.Hook_Think = ArcCW.UC.ADSReload
SWEP.Hook_TranslateAnimation = function(wep,anim)
if wep:GetCurrentFiremode().Override_ManualAction and anim == "idle_empty" then
return "idle_empty_manual"
end
end
SWEP.Hook_SelectFireAnimation = function(wep,data)
if wep:GetCurrentFiremode().Override_AmmoPerShot == 2 then
return "fire_2bst"
elseif wep:GetCurrentFiremode().Override_ManualAction then
return "fire_manual"
end
end
SWEP.Hook_SelectReloadAnimation = function(wep,curanim)
if wep:GetCurrentFiremode().Override_ManualAction and curanim == "sgreload_start_empty" then
return "sgreload_start_empty_manual"
end
end
local ratel = {common .. "rattle1.ogg", common .. "rattle2.ogg", common .. "rattle3.ogg"}
local rottle = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
local rutle = {common .. "movement-shotgun-01.ogg",common .. "movement-shotgun-02.ogg",common .. "movement-shotgun-03.ogg",common .. "movement-shotgun-04.ogg"}
local shellin = {path .. "shell-insert-01.ogg", path .. "shell-insert-02.ogg", path .. "shell-insert-03.ogg", path .. "shell-insert-04.ogg", path .. "shell-insert-05.ogg", path .. "shell-insert-06.ogg", path .. "shell-insert-07.ogg", path .. "shell-insert-08.ogg", path .. "shell-insert-09.ogg", path .. "shell-insert-10.ogg", path .. "shell-insert-11.ogg", path .. "shell-insert-12.ogg"}
SWEP.Animations = {
["idle"] = {
Source = "idle",
},
["idle_empty"] = {
Source = "idle_empty_semi",
},
["idle_empty_manual"] = {
Source = "idle_empty",
},
["draw"] = {
Source = "draw",
--Time = 20 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["draw_empty"] = {
Source = "draw", -- draw_empty
--Time = 20 / 30,
SoundTable = ArcCW.UC.DrawSounds,
},
["holster"] = {
Source = "holster",
--Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["holster_empty"] = {
Source = "holster", -- holster_empty
--Time = 20 / 30,
SoundTable = ArcCW.UC.HolsterSounds,
},
["fire"] = {
Source = "fire_semi",
Time = 23 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0, v = 0.25 }},
},
["fire_iron"] = {
Source = "fire_semi",
Time = 23 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
},
["fire_2bst"] = {
Source = "fire_semi",
Time = 35 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {{ s = {path .. "mech-01.ogg", path .. "mech-02.ogg", path .. "mech-03.ogg", path .. "mech-04.ogg", path .. "mech-05.ogg", path .. "mech-06.ogg"}, t = 0 }},
MinProgress = 0.4
},
["fire_manual"] = { -- No bolt cycling
Source = "fire_pump",
Time = 23 / 25,--30,
MinProgress = 0.3,
ShellEjectAt = false,
SoundTable = {{ s = common .. "manual_trigger.ogg", t = 0}},
},
["cycle"] = {
Source = "cycle",
Time = 30 / 30,
ShellEjectAt = 0.1,
MinProgress = 0.35,
SoundTable = {
{s = path .. "forearm_back.ogg", t = 0},
{s = path1 .. "eject.ogg", t = 0.1},
{s = path .. "forearm_forward.ogg", t = 0.2}, -- Not temporary
},
},
["unjam"] = {
Source = "cycle",
Time = 30 / 30,
ShellEjectAt = 0.01,
MinProgress = .25,
SoundTable = {
{s = path .. "forearm_back.ogg", t = 0},
{s = path1 .. "eject.ogg", t = 0.1},
{s = path .. "forearm_forward.ogg", t = 0.2}, -- Not temporary
},
},
["fire_empty"] = {
Source = "fire_empty_semi", -- fire_empty
Time = 23 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path1 .. "eject.ogg", t = 0}, -- Not temporary
},
},
["fire_iron_empty"] = {
Source = "fire_empty_semi", -- fire_empty
Time = 23 / 25,--30,
ShellEjectAt = 0.01,
SoundTable = {
{s = path1 .. "eject.ogg", t = 0}, -- Not temporary
},
},
["sgreload_start"] = {
Source = "sgreload_start",
Time = 25 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKOut = 0,
SoundTable = {
{s = path .. "turn.ogg", t = 0}, -- Temporary
{s = rottle, t = 0.1},
{s = path .. "grab.ogg", t = 0.15},
}
},
["sgreload_start_fold"] = {
Source = "sgreload_start_fold",
Time = 25 / 30,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKOut = 0,
SoundTable = {
{s = path .. "turn.ogg", t = 0}, -- Temporary
{s = rottle, t = 0.1},
{s = path .. "grab.ogg", t = 0.15},
}
},
["sgreload_start_empty"] = {
Source = "sgreload_start_empty_semi",
Time = 80 / 30,
-- MinProgress = 1,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0,
TPAnimStartTime = 0.5,
ShellEjectAt = false,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
SoundTable = {
{s = rottle, t = 0},
{s = path .. "breechload.ogg", t = .4},
{s = path .. "breechclose.ogg", t = 1}, -- Temporary
{s = path .. "turn.ogg", t = 1.4}, -- Temporary
{s = rottle, t = 1.5},
{s = path .. "grab.ogg", t = 1.9},
},
ForceEmpty = true,
},
["sgreload_start_empty_fold"] = {
Source = "sgreload_start_empty_semi_fold",
Time = 80 / 30,
-- MinProgress = 1,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0,
TPAnimStartTime = 0.5,
ShellEjectAt = false,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
SoundTable = {
{s = rottle, t = 0},
{s = path .. "breechload.ogg", t = .4},
{s = path .. "breechclose.ogg", t = 1}, -- Temporary
{s = path .. "turn.ogg", t = 1.4}, -- Temporary
{s = rottle, t = 1.5},
{s = path .. "grab.ogg", t = 1.9},
},
ForceEmpty = true,
},
["sgreload_start_empty_manual"] = {
Source = "sgreload_start_empty",
Time = 85 / 30,
MinProgress = 1,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0,
TPAnimStartTime = 0.5,
ShellEjectAt = .1,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
SoundTable = {
{s = path .. "forearm_back.ogg", t = 0},
{s = path1 .. "eject.ogg", t = 0.1},
{s = rottle, t = .2},
{s = path .. "breechload.ogg", t = .7},
{s = path .. "forearm_forward.ogg", t = 1.6},
{s = path .. "turn.ogg", t = 1.4}, -- Temporary
{s = rottle, t = 1.5},
{s = path .. "grab.ogg", t = 2.0},
},
ForceEmpty = true,
},
["sgreload_start_empty_manual_fold"] = {
Source = "sgreload_start_empty_fold",
Time = 85 / 30,
MinProgress = 1,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0,
TPAnimStartTime = 0.5,
ShellEjectAt = .1,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
SoundTable = {
{s = path .. "forearm_back.ogg", t = 0},
{s = path1 .. "eject.ogg", t = 0.1},
{s = rottle, t = .2},
{s = path .. "breechload.ogg", t = .7},
{s = path .. "forearm_forward.ogg", t = 1.6},
{s = path .. "turn.ogg", t = 1.4}, -- Temporary
{s = rottle, t = 1.5},
{s = path .. "grab.ogg", t = 2.0},
},
ForceEmpty = true,
},
["sgreload_insert"] = {
Source = "sgreload_insert",
Time = 18 / 30,
MinProgress = 0.24,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.3,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
SoundTable = {
{s = shellin, t = 0},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.05},
},
},
["sgreload_insert_fold"] = {
Source = "sgreload_insert_fold",
Time = 18 / 30,
MinProgress = 0.24,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.3,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0,
SoundTable = {
{s = shellin, t = 0},
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = 0.05},
},
},
["sgreload_finish"] = {
Source = "sgreload_finish",
Time = 45 / 30,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.6,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.8,
SoundTable = {
{s = rottle, t = 0.2},
{s = path .. "return.ogg", t = 0.475}, -- Temporary
{s = common .. "shoulder.ogg", t = 0.55},
},
},
["sgreload_finish_fold"] = {
Source = "sgreload_finish_fold",
Time = 45 / 30,
LHIK = true,
LHIKIn = 0,
LHIKEaseOut = 0.3,
LHIKOut = 0.6,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
TPAnimStartTime = 0.8,
SoundTable = {
{s = rottle, t = 0.2},
{s = path .. "return.ogg", t = 0.475}, -- Temporary
{s = common .. "shoulder.ogg", t = 0.55},
},
},
["enter_inspect"] = {
Source = "inspect_enter",
-- time = 35 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 2.5,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "movement-shotgun-01.ogg", t = 0.1},
},
},
["idle_inspect"] = {
Source = "inspect_loop",
-- time = 72 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
},
["exit_inspect"] = {
Source = "inspect_exit",
-- time = 66 / 60,
LHIK = true,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
SoundTable = {
{s = common .. "movement-shotgun-02.ogg", t = 0.3},
{s = rottle, t = 0.25},
{s = rottle, t = 1.2},
{s = common .. "movement-shotgun-04.ogg", t = 1.3},
},
},
["enter_inspect_empty"] = { -- Animations needed!
Source = "inspect_enter",
-- time = 35 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 2.5,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "movement-shotgun-01.ogg", t = 0.1},
},
},
["idle_inspect_empty"] = {
Source = "inspect_loop",
-- time = 72 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
},
["exit_inspect_empty"] = {
Source = "inspect_exit",
-- time = 66 / 60,
LHIK = false,
LHIKIn = 0,
LHIKOut = 999, -- maybe im dumb
SoundTable = {
{s = common .. "movement-shotgun-02.ogg", t = 0.3},
{s = rottle, t = 0.25},
{s = rottle, t = 1.2},
{s = common .. "movement-shotgun-04.ogg", t = 1.3},
},
},
}
SWEP.BulletBones = {
--[1] = "1014_shell1",
}
-- Bodygroups --
SWEP.AttachmentElements = {
["uc_manualonly"] = {
Override_Firemodes = {
{
Mode = 1,
PrintName = "fcg.pump",
Override_ManualAction = true,
Mult_AccuracyMOA = 0.8,
Mult_HipDispersion = 0.8,
},
{
Mode = 0,
},
},
Override_Firemodes_Priority = 10,
},
["uc_spas_slam"] = {
RequireFlags = {"freeman", "needsmanual"},
Override_Firemodes = {
{
Mode = 2,
PrintName = "fcg.slam",
Override_ManualAction = true,
Mult_AccuracyMOA = 0.8,
Mult_HipDispersion = 0.8,
},
{
Mode = 0,
},
},
Override_Firemodes_Priority = 15,
},
["ur_spas12_barrel_short"] = {
VMBodygroups = {{ind = 1, bg = 1}},
AttPosMods = {[3] = {
vpos = Vector(-0.02, 22.25, -0.7),
}}
},
["ur_spas12_stock_full"] = {
VMBodygroups = {
{ind = 3, bg = 1},
}
},
["ur_spas12_stock_in"] = {
VMBodygroups = {{ind = 3, bg = 2}}
},
["ur_spas12_stock_none"] = {
VMBodygroups = {{ind = 3, bg = 3}}
},
["ur_spas12_tube_reduced"] = {
VMBodygroups = {{ind = 2, bg = 1}}
},
["rail_classic"] = {
VMBodygroups = {{ind = 4, bg = 2}}
},
["rail_modern"] = {
VMBodygroups = {{ind = 4, bg = 1}},
AttPosMods = {[1] = {
SlideAmount = {
vmin = Vector(0, 0.5, 0.65),
vmax = Vector(0, 2.5, 0.65)
},
}}
},
["rail_none_fix"] = {
VMBodygroups = {{ind = 8, bg = 0}}
},
}
SWEP.DefaultBodygroups = "00000000"
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp", "optic"},
Bone = "spas_parent",
Offset = {
vpos = Vector(0, -1, 0.4),
vang = Angle(90, -90, -90),
},
CorrectiveAng = Angle(180,0,0),
SlideAmount = {
vmin = Vector(0, -2, 0.4),
vmax = Vector(0, 1, 0.4)
},
InstalledEles = {"rail_classic"},
DefaultEles = {"rail_none_fix"},
ExcludeFlags = {"spas12_foldstock"}
},
{
PrintName = "Barrel",
DefaultAttName = "21.5\" Special Purpose Barrel", --16\" M4 Super 90 SBS Barrel
DefaultAttIcon = Material("entities/att/ur_spas/barrel_std.png", "smooth mips"),
Slot = "ur_spas12_barrel",
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"choke", "muzzle_shotgun"},
Bone = "spas_parent",
Offset = {
vpos = Vector(-0.02, 26.9, -0.6),
vang = Angle(90, -90, -90),
},
ExcludeFlags = {"nomuzzle"}
},
-- {
-- PrintName = "Underbarrel",
-- Slot = {"foregrip"},
-- Bone = "pump",
-- MergeSlots = {13},
-- Offset = {
-- vpos = Vector(0, -5, .1),
-- vang = Angle(90, -90, -90),
-- },
-- },
{
PrintName = "Tactical",
Slot = {"tac_pistol"},
Bone = "spas_parent",
Offset = {
vpos = Vector(0, 20, -2.3),
vang = Angle(90, -90, -90),
},
},
{
PrintName = "Stock",
Slot = {"ur_spas12_stock"},
DefaultAttName = "Extended Stock",
DefaultAttIcon = Material("entities/att/ur_spas/stock_std.png", "smooth mips"),
},
{
PrintName = "Tube Type",
Slot = {"ur_spas12_tube"},
DefaultAttName = "8 Shell Tube",
DefaultAttIcon = Material("entities/att/ur_spas/magbig.png", "smooth mips"),
},
{
PrintName = "Ammo Type",
DefaultAttName = "\"BUCK\" #00 Buckshot",
DefaultAttIcon = Material("entities/att/arccw_uc_ammo_shotgun_generic.png", "mips smooth"),
Slot = {"ud_ammo_shotgun"},
},
{
PrintName = "Powder Load",
Slot = "uc_powder",
DefaultAttName = "Standard Load"
},
{
PrintName = "Training Package",
Slot = "uc_tp",
DefaultAttName = "Basic Training"
},
{
PrintName = "Internals",
Slot = "uc_fg", -- Fire group
DefaultAttName = "Standard Internals"
},
{
PrintName = "Charm",
Slot = {"charm", "fml_charm", "ur_spas12_charm"},
FreeSlot = true,
Bone = "spas_parent",
Offset = {
vpos = Vector(0.6, .5, -1.5),
vang = Angle(90, -90, -90),
},
},
-- {
-- PrintName = "M203 slot",
-- Slot = "uc_ubgl",
-- Bone = "pump",
-- Offset = {
-- vpos = Vector(0, -5, 1.25),
-- vang = Angle(90, -90, -90),
-- },
-- Hidden = true,
-- },
}
local lookup_barrel = {
default = 1,
ur_spas12_comp = 1,
ur_spas12_barrel_short = 0,
}
local lookup_tube = {
default = 1,
ur_spas12_tube_reduced = 0,
}
SWEP.Hook_ExtraFlags = function(wep, data)
local barrel = wep.Attachments[2].Installed and lookup_barrel[wep.Attachments[2].Installed] or lookup_barrel["default"]
local tube = wep.Attachments[7].Installed and lookup_tube[wep.Attachments[7].Installed] or lookup_tube["default"]
if barrel < tube then
table.insert(data, "nomuzzleblocking")
end
end

View File

@@ -0,0 +1,292 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "AR2"
SWEP.TrueName = "OSIPR"
SWEP.Trivia_Class = "Assault Rifle"
SWEP.Trivia_Desc = "Dark Energy powered assault rifle manufactured by the Combine. The OSIPR is essentially a Combine variant of current assault rifles, commonly issued to Overwatch Soldiers and Overwatch Elites."
SWEP.Trivia_Manufacturer = "The Combine"
SWEP.Trivia_Calibre = "Dark Energy"
SWEP.Trivia_Mechanism = "Thumper and Capsules"
SWEP.Trivia_Country = "Bulgaria"
SWEP.Trivia_Year = 2020
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Overwatch"
end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/ArcCW/c_irifle.mdl"
SWEP.WorldModel = "models/weapons/ArcCW/w_irifle.mdl"
SWEP.ViewModelFOV = 60
SWEP.Damage = 21
SWEP.DamageMin = 21 -- damage done at maximum range
SWEP.Range = 250 -- in METRES
SWEP.Penetration = 13
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1100 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.Tracer = AR2Tracer -- override tracer effect
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 3
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 45
SWEP.ReducedClipSize = 15
SWEP.Recoil = 0.45
SWEP.RecoilSide = 0.55
SWEP.RecoilRise = 1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 600 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 200
SWEP.AccuracyMOA = 5 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 95 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 225
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "type2" -- the magazine pool this gun draws from
SWEP.ShootVol = 115 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "weapons/ArcCW/fire1.wav"
SWEP.ShootSoundSilenced = "weapons/arccw/m4a1/m4a1_silencer_01.wav"
SWEP.DistantShootSound = "weapons/arccw/ak47/ak47-1-distant.wav"
SWEP.MuzzleEffect = "muzzleflash_1"
SWEP.ShellModel = "models/weapons/arccw/irifleshell.mdl"
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.94
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.33
SWEP.VisualRecoilMult = 1
SWEP.RecoilRise = 1
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-5.131, -9.03, 2.267),
Ang = Angle(-0.066, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 3, 0)
SWEP.ActiveAng = Angle(2, 0, 0)
SWEP.HolsterPos = Vector(0.532, -6, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 27
SWEP.AttachmentElements = {
["extendedmag"] = {
VMBodygroups = {{ind = 1, bg = 1}},
WMBodygroups = {{ind = 1, bg = 1}},
},
["reducedmag"] = {
VMBodygroups = {{ind = 1, bg = 2}},
WMBodygroups = {{ind = 1, bg = 2}},
},
["mount"] = {
VMElements = {
{
Model = "models/weapons/arccw/atts/mount_ak.mdl",
Bone = "ar2_weapon",
Scale = Vector(-1, -1, 1),
Offset = {
pos = Vector(4, 3.75, 0),
ang = Angle(180, 180, -90)
}
}
},
WMElements = {
{
Model = "models/weapons/arccw/atts/mount_ak.mdl",
Scale = Vector(-1, -1, 1),
Offset = {
pos = Vector(5.714, 0.73, -6),
ang = Angle(171, 0, -1)
}
}
},
},
["fcg_semi"] = {
TrueNameChange = "Vepr-KM",
NameChange = "Wasp-2",
}
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"optic", "optic_lp"}, -- what kind of attachments can fit here, can be string or table
Bone = "ar2_weapon", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 3.75, 1), -- offset that the attachment will be relative to the bone
vang = Angle(180, 180, -90),
wpos = Vector(7, 0, -7), -- offset that the attachment will be relative to the bone
wang = Angle(170, 180, 0),
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Stock",
Slot = "stock",
DefaultAttName = "Standard Stock"
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "ar2_weapon",
Offset = {
vpos = Vector(15, 0, 0.5), -- offset that the attachment will be relative to the bone
vang = Angle(0, 0, 0),
wpos = Vector(15.625, -0.1, -6.298),
wang = Angle(-8.829, -0.556, 90)
},
},
{
PrintName = "Underbarrel",
Slot = {"ubgl", "foregrip"},
Bone = "ar2_weapon",
Offset = {
vpos = Vector(-5, 1, 1),
vang = Angle(180, 180, -40),
wpos = Vector(5, 1.1, -6.298),
wang = Angle(-8.829, -0.556, -90)
},
},
{
PrintName = "Fire Group",
Slot = "fcg",
DefaultAttName = "Standard FCG"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 1
},
["draw"] = {
Source = "draw",
Time = 0.4,
SoundTable = {{s = "weapons/arccw/ak47/ak47_draw.wav", t = 0}},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["ready"] = {
Source = "draw",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = {"fire1", "fire2", "fire3", "fire4"},
Time = 0.5,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = {"fire1", "fire2", "fire3", "fire4"},
Time = 0.5,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
SoundTable = {{s = "weapons/ArcCW/npc_ar2_reload.wav", t = 0}},
Time = 2,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
["reload_empty"] = {
Source = "reloadempty",
SoundTable = {{s = "weapons/ArcCW/npc_ar2_reload.wav", t = 0}},
Time = 2,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
}

View File

@@ -0,0 +1,254 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Overwatch Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Pulse SMG"
SWEP.TrueName = "Pulse SMG"
SWEP.Trivia_Class = "Submachine Gun"
SWEP.Trivia_Desc = "A predecessor to the Pulse Rifle, commonly used by Combine Grunts."
SWEP.Trivia_Manufacturer = "The Combine"
SWEP.Trivia_Calibre = "Dark Energy"
SWEP.Trivia_Mechanism = "Thumper and Capsules"
SWEP.Trivia_Country = "Bulgaria"
SWEP.Trivia_Year = 2015
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Overwatch"
end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_ipistol.mdl"
SWEP.WorldModel = "models/weapons/w_ipistol.mdl"
SWEP.ViewModelFOV = 60
SWEP.MirrorVMWM = nil -- Copy the viewmodel, along with all its attachments, to the worldmodel. Super convenient!
SWEP.MirrorWorldModel = nil -- Use this to set the mirrored viewmodel to a different model, without any floating speedloaders or cartridges you may have. Needs MirrorVMWM
SWEP.HideViewmodel = nil
SWEP.WorldModelOffset = {
pos = Vector(3, 0, 0),
ang = Angle(0, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
scale = 1
}
SWEP.Damage = 15
SWEP.DamageMin = 15 -- damage done at maximum range
SWEP.Range = 160 -- in METRES
SWEP.Penetration = 10
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1100 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.Tracer = AR2Tracer -- override tracer effect
SWEP.TracerNum = 1 -- tracer every X
SWEP.TracerCol = Color(255, 25, 25)
SWEP.TracerWidth = 3
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 20 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 45
SWEP.ReducedClipSize = 15
SWEP.Recoil = 0.1
SWEP.RecoilSide = 0.45
SWEP.RecoilRise = 1
SWEP.Delay = 60 / 750
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 200
SWEP.AccuracyMOA = 10 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 300 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 350
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.MagID = "type2" -- the magazine pool this gun draws from
SWEP.ShootVol = 103 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "psmg_fire.wav"
SWEP.ShootSoundSilenced = "weapons/arccw/m4a1/m4a1_silencer_01.wav"
SWEP.DistantShootSound = "weapons/arccw/ak47/ak47-1-distant.wav"
SWEP.MuzzleEffect = "muzzleflash_1"
SWEP.ShellModel = "models/weapons/arccw/irifleshell.mdl"
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.94
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.25
SWEP.VisualRecoilMult = 1
SWEP.RecoilRise = 1
SWEP.BulletBones = { -- the bone that represents bullets in gun/mag
-- [0] = "bulletchamber",
-- [1] = "bullet1"
}
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.IronSightStruct = {
Pos = Vector(-4.651, -5.829, -0.551),
Ang = Angle(-0.066, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 0, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(3.216, 0.402, -3.82)
SWEP.HolsterAng = Vector(-9.146, 20.402, -26.734)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 27
SWEP.AttachmentElements = {
}
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Stock",
Slot = "stock",
DefaultAttName = "Standard Stock"
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "ipistol",
Offset = {
vpos = Vector(0.5, 3, -6), -- offset that the attachment will be relative to the bone
vang = Angle(-90, 0, 0),
wpos = Vector(21, 1.1, -2),
wang = Angle(-8.829, -0.556, 90)
},
},
{
PrintName = "Underbarrel",
Slot = {"ubgl", "foregrip"},
Bone = "ipistol",
Offset = {
vpos = Vector(-0, 2, -6),
vang = Angle(270, 0, -90),
wpos = Vector(17, 1.1, -3),
wang = Angle(90, 90, -90)
},
},
{
PrintName = "Fire Group",
Slot = "fcg",
DefaultAttName = "Standard FCG"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 1
},
["draw"] = {
Source = "draw",
Time = 1.3,
SoundTable = {{s = "weapons/arccw/ak47/ak47_draw.wav", t = 0}},
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["ready"] = {
Source = "draw",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = {"attack1"},
Time = 0.5,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = {"fire1", "fire2", "fire3", "fire4"},
Time = 0.5,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
SoundTable = {{s = "psmg_reload.wav", t = 0}},
Time = 1.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
["reload_empty"] = {
Source = "reload",
SoundTable = {{s = "psmg_reload.wav", t = 0}},
Time = 1.5,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Framerate = 37,
Checkpoints = {28, 38, 69},
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
},
}

View File

@@ -0,0 +1,383 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Bastard Gun"
SWEP.Trivia_Class = "Submachine Gun"
SWEP.Trivia_Desc = "Submachinegun, 5.45 caliber. It's got poor accuracy and overheats like hell. That's why they call it a Bastard gun, hahah."
SWEP.Trivia_Manufacturer = "Unknown"
SWEP.Trivia_Calibre = "5.45x39mm"
SWEP.Trivia_Mechanism = "Russian Magic"
SWEP.Trivia_Country = "Russia"
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_BastardGun.mdl"
SWEP.WorldModel = "models/weapons/c_BastardGun.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 12
SWEP.DamageMin = 10 -- damage done at maximum range
SWEP.Range = 75 -- in METRES
SWEP.Penetration = 6
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 250 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 300
SWEP.Recoil = 0.200
SWEP.RecoilSide = 0.100
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 650 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_smg1"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 14 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 325 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "smg1" -- what ammo type the gun uses
SWEP.MagID = "ump" -- the magazine pool this gun draws from
SWEP.ShootVol = 110 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.FirstShootSound = "BastardGun/Shoot.wav"
SWEP.ShootSound = "BastardGun/Shoot.wav"
SWEP.ShootSoundSilenced = "BastardGun/Shoots.wav"
SWEP.DistantShootSound = "BastardGun/Shoot.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_smg"
SWEP.ShellModel = "models/shells/shell_556.mdl"
SWEP.ShellPitch = 100
SWEP.ShellScale = 1.25
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.95
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.300
SWEP.IronSightStruct = {
Pos = Vector(-7.7, -9.849, 1.6),
Ang = Angle(-0.201, -0.851, -1.4),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-1, 2, -1)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-4, 0, -1)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(8, 0, 1)
SWEP.CustomizeAng = Angle(5, 30, 30)
SWEP.BarrelLength = 18
SWEP.AttachmentElements = {
["lastlightpete"] = {
VMSkin = 1,
WMSkin = 1,
},
}
SWEP.ExtraSightDist = 10
SWEP.WorldModelOffset = {
pos = Vector(-15, 8, -4),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = {"optic_lp", "optic"},
Bone = "BastardGun",
DefaultAttName = "Iron Sights",
Offset = {
vpos = Vector(0, -3.4, 14),
vang = Angle(90, 0, -90),
},
InstalledEles = {"rail"},
VMScale = Vector(1.25, 1.25, 1.25),
CorrectiveAng = Angle(-0.5, 0, 0),
CorrectivePos = Vector(0, 0, 0)
},
{
PrintName = "Underbarrel",
Slot = "foregrip",
Bone = "BastardGun",
DefaultAttName = "Standard Foregrip",
Offset = {
vpos = Vector(0, 0, 14),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ubrms"},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "BastardGun",
Offset = {
vpos = Vector(-1.201, -2.3, 18),
vang = Angle(90.5, 0, 0),
},
InstalledEles = {"tacms"},
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "muzzle",
Bone = "BastardGun",
Offset = {
vpos = Vector(0, -2.25, 24),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Ammo Type",
Slot = "go_ammo",
DefaultAttName = "Standard Ammo"
},
{
PrintName = "Perk",
Slot = "go_perk"
},
{
PrintName = "Skin",
Slot = {"metro_skinpete"},
DefaultAttName = "Metro 2033",
FreeSlot = true
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "BastardGun", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0.8, -1.3, 0), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
},
},
}
SWEP.Jamming = true
SWEP.HeatCapacity = 65
SWEP.HeatDissipation = 12
SWEP.HeatLockout = true
SWEP.HeatDelayTime = 3.5
SWEP.HeatFix = true
SWEP.BulletBones = {
[1] = "Bullet1",
[2] = "Bullet2",
[3] = "Bullet3",
[4] = "Bullet4",
[5] = "Bullet5",
[6] = "Bullet6",
[7] = "Bullet7",
[8] = "Bullet8",
[9] = "Bullet9",
[10] = "Bullet10",
[11] = "Bullet11",
[12] = "Bullet12",
[13] = "Bullet13",
[14] = "Bullet14",
[15] = "Bullet15",
[16] = "Bullet16",
[17] = "Bullet17",
[18] = "Bullet18",
[19] = "Bullet19",
[20] = "Bullet20",
[21] = "Bullet21",
[22] = "Bullet22",
[23] = "Bullet23",
[24] = "Bullet24",
[25] = "Bullet25",
[26] = "Bullet26",
[27] = "Bullet27",
[28] = "Bullet28",
[29] = "Bullet29",
[30] = "Bullet30",
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["ready"] = {
Source = "ready",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["fix"] = {
Source = "fix",
},
["fire"] = {
Source = "shoot",
Time = 0.25,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "shoot",
Time = 0.5,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reloadpartial",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {16, 30},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 2.1,
LHIKEaseOut = 0.3,
LastClip1OutTime = 1,
},
["reload_empty"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {16, 30, 55},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.4,
LHIKOut = 2.5,
LHIKEaseOut = 0.3,
LastClip1OutTime = 1,
},
}
sound.Add({
name = "BG.BoltPull",
channel = 16,
volume = 1.0,
sound = "BastardGun/BoltPull.wav"
})
sound.Add({
name = "BG.Clip",
channel = 16,
volume = 1.0,
sound = "BastardGun/Clip.wav"
})
sound.Add({
name = "BG.Hit",
channel = 16,
volume = 1.0,
sound = "BastardGun/Hit.wav"
})
sound.Add({
name = "BG.ClipIn",
channel = 16,
volume = 1.0,
sound = "BastardGun/ClipIn.wav"
})
sound.Add({
name = "BG.ClipIn2",
channel = 16,
volume = 1.0,
sound = "BastardGun/ClipIn2.wav"
})
sound.Add({
name = "BG.ClipOut",
channel = 16,
volume = 1.0,
sound = "BastardGun/ClipOut.wav"
})
sound.Add({
name = "BG.ClipOut1",
channel = 16,
volume = 1.0,
sound = "BastardGun/ClipOut1.wav"
})
sound.Add({
name = "BG.ClipOut2",
channel = 16,
volume = 1.0,
sound = "BastardGun/ClipOut2.wav"
})
sound.Add({
name = "BG.Fix",
channel = 16,
volume = 1.0,
sound = "BastardGun/Fix.wav"
})
sound.Add({
name = "BG.Fix1",
channel = 16,
volume = 1.0,
sound = "BastardGun/Fix1.wav"
})

View File

@@ -0,0 +1,318 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Duplet"
SWEP.Trivia_Class = "Shotgun"
SWEP.Trivia_Desc = "The 12-gauge shotgun is one of the best close combat weapons ever. A blast from both of its barrels can kill almost any mutant on the spot."
SWEP.Trivia_Manufacturer = "Unknown"
SWEP.Trivia_Calibre = "12 Gauge"
SWEP.Trivia_Mechanism = "Break-Action"
SWEP.Slot = 3
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_duplet.mdl"
SWEP.WorldModel = "models/weapons/c_duplet.mdl"
SWEP.ViewModelFOV = 60
SWEP.Damage = 7
SWEP.DamageMin = 7 -- damage done at maximum range
SWEP.Range = 50 -- in METRES
SWEP.Penetration = 6
SWEP.DamageType = DMG_BUCKSHOT
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1100 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 2 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 2
SWEP.ReducedClipSize = 1
SWEP.Recoil = 2.5
SWEP.RecoilSide = 1
SWEP.MaxRecoilBlowback = 2
SWEP.AccuracyMOA = 45 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 600 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 150
SWEP.Delay = 60 / 600 -- 60 / RPM.
SWEP.Num = 8 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
PrintName = "SNGL",
Mode = 1,
},
{
PrintName = "BOTH",
Mode = -2,
RunawayBurst = true,
Override_ShotRecoilTable = {
[1] = 0.25
}
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = {"weapon_annabelle", "weapon_shotgun"}
SWEP.NPCWeight = 100
SWEP.Primary.Ammo = "buckshot" -- what ammo type the gun uses
SWEP.ShootVol = 120 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.FirstShootSound = "Duplet/Shoot.wav"
SWEP.ShootSound = "Duplet/Shoot1.wav"
SWEP.DistantShootSound = "Duplet/Shoot.wav"
SWEP.MuzzleEffect = "muzzleflash_shotgun"
SWEP.ShellModel = "models/shells/shell_12gauge.mdl"
SWEP.ShellPitch = 100
SWEP.ShellSounds = ArcCW.ShotgunShellSoundsTable
SWEP.ShellScale = 1.5
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.94
SWEP.SightedSpeedMult = 0.5
SWEP.SightTime = 0.30
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {}
SWEP.RevolverReload = true
SWEP.BulletBones = {
[1] = "Buckshot1",
[2] = "Buckshot2"
}
SWEP.CaseBones = {
[1] = "Buckshot1",
[2] = "Buckshot2"
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "shotgun"
SWEP.HoldtypeSights = "ar2"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_SHOTGUN
SWEP.ActivePos = Vector(1, 12, -2)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-3, 3, 0)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.HolsterPos = Vector(3.5, 2, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.WorldModelOffset = {
pos = Vector(-5, 7.5, -4),
ang = Angle(-15, 0, -180)
}
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.AttachmentElements = {
["lastlightd"] = {
VMSkin = 1,
WMSkin = 1,
},
}
SWEP.ShootVol = 130 -- volume of shoot sound
SWEP.SpeedMult = 0.97
SWEP.SightedSpeedMult = 0.80
SWEP.SightTime = 0.225
SWEP.BarrelLength = 24
SWEP.IronSightStruct = {
Pos = Vector(-7.591, -4.824, 2),
Ang = Angle(-0.704, -3, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "shotgun"
SWEP.HoldtypeSights = "ar2"
SWEP.ExtraSightDist = 5
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"optic_lp", "optic"}, -- what kind of attachments can fit here, can be string or table
Bone = "Optic", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, 0.2, 2), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
wpos = Vector(13.762, 0.5, -6.102),
wang = Angle(-15, 0, 180)
},
},
{
PrintName = "Choke",
DefaultAttName = "Standard Choke",
Slot = "choke",
},
{
PrintName = "Underbarrel",
Slot = {"foregrip", "style_pistol"},
Bone = "Optic",
Offset = {
vpos = Vector(0, 3.635, 3.635),
vang = Angle(90, 0, -90),
wpos = Vector(14.329, 0.8, -4.453),
wang = Angle(-15, 0, 180)
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "Optic",
Offset = {
vpos = Vector(-1.5, 0.8, 3.6), -- offset that the attachment will be relative to the bone
vang = Angle(92, 0, 180),
wpos = Vector(20, -0.6, -7.5),
wang = Angle(-15, -3, 90)
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Ammo Type",
Slot = "ammo_shotgun"
},
{
PrintName = "Perk",
Slot = "perk",
DefaultAttName = "None"
},
{
PrintName = "Skin",
Slot = {"metro_skind"},
DefaultAttName = "Metro 2033",
FreeSlot = true
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "Optic", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0.42, 2.3, 7.8), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
wpos = Vector(18, 1.3, -5.7),
wang = Angle(-15, 0, 180)
},
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
Time = 1
},
["draw"] = {
Source = "draw",
Time = 0.5,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
SoundTable = {{s = "weapons/arccw/nova/nova_draw.wav", t = 0}},
},
["ready"] = {
Source = "ready",
Time = 3,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
SoundTable = {{s = "weapons/arccw/nova/nova_draw.wav", t = 0}},
},
["fire"] = {
Source = "shoot",
Time = 0.4,
},
["fire_iron"] = {
Source = "shoot_iron",
Time = 0.4,
},
["reload"] = {
Source = "reload_part",
Time = 2.15,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
Checkpoints = {28, 64, 102},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
LastClip1OutTime = 0.4,
},
["reload_empty"] = {
Source = "reload",
Time = 2.6,
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
Checkpoints = {28, 64, 102},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
LastClip1OutTime = 0.4,
},
}
sound.Add({
name = "Weapon_Duplet.Lever",
channel = 16,
volume = 1.0,
sound = "Duplet/Lever.wav"
})
sound.Add({
name = "Weapon_Duplet.Load",
channel = 16,
volume = 1.0,
sound = "Duplet/Load.wav"
})
sound.Add({
name = "Weapon_Duplet.In",
channel = 16,
volume = 1.0,
sound = "Duplet/In.wav"
})
sound.Add({
name = "Weapon_Duplet.Out",
channel = 16,
volume = 1.0,
sound = "Duplet/Out.wav"
})

View File

@@ -0,0 +1,275 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Helsing"
SWEP.Trivia_Class = "Helsing"
SWEP.Trivia_Desc = "A silent, revolving air gun that shoots metal bolts. Overpressurizing its tank increases power, but the extra pressure vents before long."
SWEP.Trivia_Manufacturer = "Unknown"
SWEP.Trivia_Calibre = "Helsing Bolt"
SWEP.Trivia_Mechanism = "Pneumatic"
SWEP.Trivia_Country = "Russia"
SWEP.Slot = 3
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_Helsing.mdl"
SWEP.WorldModel = "models/weapons/c_Helsing.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultSkin = 0
SWEP.Damage = 29
SWEP.DamageMin = 29
SWEP.Range = 40 -- in METRES
SWEP.Penetration = 13
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 200 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.AlwaysPhysBullet = true
SWEP.PhysTracerProfile = 0
SWEP.TracerNum = 1
SWEP.Tracer = "arccw_tracer"
SWEP.TracerCol = Color(38, 38, 38)
SWEP.CanFireUnderwater = true
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 8 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 8
SWEP.ReducedClipSize = 6
SWEP.Recoil = 1
SWEP.RecoilSide = 1
SWEP.RecoilRise = 1
SWEP.VisualRecoilMult = 0.5
SWEP.Delay = 60 / 180 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0,
}
}
SWEP.NPCWeaponType = {"weapon_ar2"}
SWEP.NPCWeight = 75
SWEP.AccuracyMOA = 3 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 150 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.Primary.Ammo = "357" -- what ammo type the gun uses
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 95 -- pitch of shoot sound
SWEP.ShootSound = "Helsing/Shoot.mp3"
SWEP.ShootSoundSilenced = "Helsing/Shoot.mp3"
SWEP.DistantShootSound = "Helsing/Shoot.mp3"
SWEP.MuzzleEffect = nil
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 0 -- which attachment to put the case effect on
SWEP.RevolverReload = true
SWEP.SightTime = 0.28
SWEP.SpeedMult = 0.975
SWEP.SightedSpeedMult = 0.75
SWEP.BarrelLength = 18
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {
[1] = "Bullet1",
[2] = "Bullet2",
[3] = "Bullet3",
[4] = "Bullet4",
[5] = "Bullet5",
[6] = "Bullet6",
}
SWEP.IronSightStruct = {
Pos = Vector(-5.881, 0, 2.184),
Ang = Angle(0, 0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 0, 1)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CustomizePos = Vector(8, 0, 1)
SWEP.CustomizeAng = Angle(5, 30, 30)
SWEP.HolsterPos = Vector(5, 0, 0)
SWEP.HolsterAng = Angle(-4, 30.016, 0)
SWEP.CrouchPos = Vector(-3, 0, 0)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.ExtraSightDist = 10
SWEP.WorldModelOffset = {
pos = Vector(-16.105, 7, -5.715),
ang = Angle(-10.52, 0, 180)
}
SWEP.GuaranteeLaser = false
SWEP.MirrorVMWM = true
SWEP.BulletBones = {
[1] = "Arrow1",
[2] = "Arrow2",
[3] = "Arrow3",
[4] = "Arrow4",
[5] = "Arrow5",
[6] = "Arrow6",
[7] = "Arrow7",
[8] = "Arrow8",
}
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp", "optic"},
Bone = "Helsing",
Offset = {
vpos = Vector(0, -3.8, 3.5),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "Helsing",
Offset = {
vpos = Vector(-0.5, -0.601, 17.7),
vang = Angle(89.7, 0.4, 180),
},
VMScale = Vector(0.7, 0.7, 0.7),
WMScale = Vector(0.7, 0.7, 0.7),
},
{
PrintName = "Underbarrel",
Slot = {"foregrip"},
Bone = "Helsing",
Offset = {
vpos = Vector(0, 2.599, 19),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet",
},
{
PrintName = "Perk",
Slot = {"perk"}
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "Helsing",
Offset = {
vpos = Vector(0.37, -0.7, 2.7), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
wpos = Vector(10, 1.25, -4),
wang = Angle(0, -4.211, 180)
},
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw"
},
["ready"] = {
Source = "ready",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["fire"] = {
Source = "shoot",
},
["fire_iron"] = {
Source = "shoot",
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
Time = 2.4,
LastClip1OutTime = 1.3,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.5,
},
["reload_empty"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
LastClip1OutTime = 1.3,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.5,
},
}
sound.Add({
name = "HS.Reload",
channel = 16,
volume = 1.0,
sound = "Helsing/helsingrl1.wav"
})
sound.Add({
name = "HS.Reload2",
channel = 16,
volume = 1.0,
sound = "Helsing/helsingrl2.wav"
})

View File

@@ -0,0 +1,330 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Kalash"
SWEP.TrueName = "AK-74M"
SWEP.Trivia_Class = "Assault Rifle"
SWEP.Trivia_Desc = "The classic pre-war assault rifle. Despite being very common, it is held in very high regard in the Metro due to its reliability and performance."
SWEP.Trivia_Manufacturer = "Izhmash"
SWEP.Trivia_Calibre = "5.45x39mm"
SWEP.Trivia_Mechanism = "Gas-Operated"
SWEP.Trivia_Country = "Russia"
SWEP.Trivia_Year = 1991
SWEP.Slot = 2
SWEP.UseHands = true
if GetConVar("arccw_truenames"):GetBool() then SWEP.PrintName = SWEP.TrueName end
SWEP.ViewModel = "models/weapons/c_kalash.mdl"
SWEP.WorldModel = "models/weapons/c_kalash.mdl"
SWEP.ViewModelFOV = 90
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 13
SWEP.DamageMin = 13 -- damage done at maximum range
SWEP.Range = 500 -- in METRES
SWEP.Penetration = 14
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 880 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 30 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 880
SWEP.Recoil = 0.93
SWEP.RecoilSide = 0.65
SWEP.RecoilRise = 0.3
SWEP.RecoilPunch = 2
SWEP.Delay = 60 / 550 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 200
SWEP.AccuracyMOA = 10 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 750 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "smg1" -- what ammo type the gun uses
SWEP.MagID = "ak47" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "Kalash/Shoot.wav"
SWEP.ShootSoundSilenced = "2012/shoots.wav"
SWEP.DistantShootSound = "Kalash/Shoot.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_ak47"
SWEP.ShellModel = "models/shells/shell_556.mdl"
SWEP.ShellPitch = 90
SWEP.ShellScale = 1.5
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.91
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.30
SWEP.IronSightStruct = {
Pos = Vector(-7.9, -7.437, 1.759),
Ang = Angle(0, 0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-1, 0, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-4, 0, -1)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(8, 0, 1)
SWEP.CustomizeAng = Angle(5, 30, 30)
SWEP.BarrelLength = 24
SWEP.AttachmentElements = {
["lastlightk"] = {
VMSkin = 1,
WMSkin = 1,
},
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-10, 8.6, -5),
ang = Angle(-190, 180, 0)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = {"optic_lp", "optic"},
Bone = "AK",
DefaultAttName = "Iron Sights",
Offset = {
vpos = Vector(0, -5.2, 11),
vang = Angle(-90, -180, 90),
},
InstalledEles = {"sidemount"},
},
{
PrintName = "Underbarrel",
Slot = {"foregrip", "ubgl"},
Bone = "AK",
Offset = {
vpos = Vector(-0, -1.601, 17),
vang = Angle(90, 0, -90),
},
InstalledEles = {"ubrms"},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "AK",
Offset = {
vpos = Vector(-0.601, -2.701, 12),
vang = Angle(-90, 180, 0),
},
InstalledEles = {"sidemount"},
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "muzzle",
Bone = "AK",
Offset = {
vpos = Vector(0.1, -2.651, 28.6),
vang = Angle(-90, 180, 0),
},
InstalledEles = {"no_fh"}
},
{
PrintName = "Ammo Type",
Slot = "go_ammo",
DefaultAttName = "Standard Ammo"
},
{
PrintName = "Perk",
Slot = "go_perk"
},
{
PrintName = "Skin",
Slot = {"metro_skink"},
DefaultAttName = "Metro 2033",
FreeSlot = true
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "AK", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0.759, -2.401, 9), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
},
},
}
SWEP.BulletBones = {
[1] = "Bullet30",
[2] = "Bullet29",
[3] = "Bullet28",
[4] = "Bullet27",
[5] = "Bullet26",
[6] = "Bullet25",
[7] = "Bullet24",
[8] = "Bullet23",
[9] = "Bullet22",
[10] = "Bullet21",
[11] = "Bullet20",
[12] = "Bullet19",
[13] = "Bullet18",
[14] = "Bullet17",
[15] = "Bullet16",
[16] = "Bullet15",
[17] = "Bullet14",
[18] = "Bullet13",
[19] = "Bullet12",
[20] = "Bullet11",
[21] = "Bullet10",
[22] = "Bullet9",
[23] = "Bullet8",
[24] = "Bullet7",
[25] = "Bullet6",
[26] = "Bullet5",
[27] = "Bullet4",
[28] = "Bullet3",
[29] = "Bullet2",
[30] = "Bullet1",
}
SWEP.Animations = {
["idle"] = {
Source = "ak47_idle"
},
["draw"] = {
Source = "draw",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["ready"] = {
Source = "drawfirst",
Time = 1.5,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["fire"] = {
Source = {"shoot"},
Time = 0.3,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "shootis",
Time = 0.1,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Checkpoints = {16, 30},
Time = 2,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
LHIKEaseOut = 0.25,
LastClip1OutTime = 1,
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Checkpoints = {16, 30, 55},
Time = 3,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
LHIKEaseOut = 0.25,
LastClip1OutTime = 1,
},
["enter_inspect"] = false,
["idle_inspect"] = false,
["exit_inspect"] = false,
}
sound.Add({
name = "Kalash.Bolt",
channel = 16,
volume = 1.0,
sound = "Kalash/Bolt.wav"
})
sound.Add({
name = "Kalash.Clipout",
channel = 16,
volume = 1.0,
sound = "Kalash/Clipout.wav"
})
sound.Add({
name = "Kalash.Clipin",
channel = 16,
volume = 1.0,
sound = "Kalash/Clipin.wav"
})

View File

@@ -0,0 +1,328 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Kalash2012"
SWEP.Trivia_Class = "Assault Rifle"
SWEP.Trivia_Desc = "At the start of World War 3, this was the best assault rifle used by the army. It is extremely sought after in the Metro due to its great performance."
SWEP.Trivia_Manufacturer = "Unknown"
SWEP.Trivia_Calibre = "5.45x39mm"
SWEP.Trivia_Mechanism = "Gas-Operated"
SWEP.Trivia_Country = "Russia"
SWEP.Slot = 2
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_kalash2012.mdl"
SWEP.WorldModel = "models/weapons/c_kalash2012.mdl"
SWEP.ViewModelFOV = 80
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 10
SWEP.DamageMin = 10 -- damage done at maximum range
SWEP.Range = 500 -- in METRES
SWEP.Penetration = 14
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1050 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 50 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 1050
SWEP.Recoil = 0.42
SWEP.RecoilSide = 0.65
SWEP.RecoilRise = 0.1
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 700 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 200
SWEP.AccuracyMOA = 9 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 500 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 200
SWEP.Primary.Ammo = "smg1" -- what ammo type the gun uses
SWEP.MagID = "ak47" -- the magazine pool this gun draws from
SWEP.ShootVol = 120 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "2012/shoot.wav"
SWEP.ShootSoundSilenced = "2012/shoots.wav"
SWEP.DistantShootSound = "2012/shoot3.wav"
SWEP.DistantShootSoundSilenced = "2012/shoots.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_ak47"
SWEP.ShellModel = "models/shells/shell_556.mdl"
SWEP.ShellPitch = 90
SWEP.ShellScale = 1.5
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.91
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.30
SWEP.IronSightStruct = {
Pos = Vector(-7.191, -7.5, 1.1),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-1, 0, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-4, 0, -1)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(8, 0, 1)
SWEP.CustomizeAng = Angle(5, 30, 30)
SWEP.BarrelLength = 18
SWEP.AttachmentElements = {
["lastlight2012"] = {
VMSkin = 1,
WMSkin = 1,
},
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-18, 8.2, -1),
ang = Angle(-200, 180, 0)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = {"optic_lp", "optic"},
Bone = "2012",
DefaultAttName = "Iron Sights",
Offset = {
vpos = Vector(0.1, -5.4, 9),
vang = Angle(90, 0, -90),
},
InstalledEles = {"sidemount"},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "2012",
Offset = {
vpos = Vector(1.3, -1.201, 11),
vang = Angle(90, 0, 0),
},
InstalledEles = {"sidemount"},
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "muzzle",
Bone = "2012",
Offset = {
vpos = Vector(0.05, -0.9, 26.9),
vang = Angle(90, 0, -90),
},
InstalledEles = {"no_fh"}
},
{
PrintName = "Ammo Type",
Slot = "go_ammo",
DefaultAttName = "Standard Ammo"
},
{
PrintName = "Perk",
Slot = "go_perk"
},
{
PrintName = "Skin",
Slot = {"metro_skin2012"},
DefaultAttName = "Metro 2033",
FreeSlot = true
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "2012", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(1.399, -1.3, 3.65), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
},
},
}
SWEP.BulletBones = {
[5] = "Bullet1",
[6] = "Bullet2",
[7] = "Bullet3",
[8] = "Bullet4",
[9] = "Bullet5",
[10] = "Bullet6",
[11] = "Bullet7",
[12] = "Bullet8",
[13] = "Bullet9",
[14] = "Bullet10",
[15] = "Bullet11",
[16] = "Bullet12",
[17] = "Bullet13",
[18] = "Bullet14",
[19] = "Bullet15",
[20] = "Bullet16",
[21] = "Bullet17",
[22] = "Bullet18",
[23] = "Bullet19",
[24] = "Bullet20",
[25] = "Bullet21",
[26] = "Bullet22",
[27] = "Bullet23",
[28] = "Bullet24",
[29] = "Bullet25",
[30] = "Bullet26",
[31] = "Bullet27",
[32] = "Bullet28",
[33] = "Bullet29",
[34] = "Bullet30",
[35] = "Bullet31",
[36] = "Bullet32",
[37] = "Bullet33",
[38] = "Bullet34",
[39] = "Bullet35",
[40] = "Bullet36",
[41] = "Bullet37",
[42] = "Bullet38",
[43] = "Bullet39",
[44] = "Bullet40",
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw",
LHIK = true,
Time = 0.5,
LHIKIn = 0,
LHIKOut = 0.5,
},
["ready"] = {
Source = "ready",
Time = 1.5,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["fire"] = {
Source = {"shoot", "shoot1"},
Time = 0.3,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "shoot_iron",
Time = 0.1,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Checkpoints = {16, 30},
Time = 2.4,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
LHIKEaseOut = 0.25,
LastClip1OutTime = 1,
},
["reload_empty"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SMG1,
Checkpoints = {16, 30, 55},
Time = 2.6,
FrameRate = 30,
LHIK = true,
LHIKIn = 0.3,
LHIKOut = 0.3,
LHIKEaseOut = 0.25,
LastClip1OutTime = 1,
},
["enter_inspect"] = false,
["idle_inspect"] = false,
["exit_inspect"] = false,
}
sound.Add({
name = "2012.Cliphit",
channel = 16,
volume = 1.0,
sound = "2012/cliphit.wav"
})
sound.Add({
name = "2012.Clipout",
channel = 16,
volume = 1.0,
sound = "2012/clipout.wav"
})
sound.Add({
name = "2012.Clipin",
channel = 16,
volume = 1.0,
sound = "2012/clipin.wav"
})

View File

@@ -0,0 +1,291 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Revolver"
SWEP.Trivia_Class = "Revolver"
SWEP.Trivia_Desc = "A simple and reliable weapon produced in the Metro. Has great stopping power but kicks like a mule."
SWEP.Trivia_Manufacturer = "Unknown"
SWEP.Trivia_Calibre = ".44 Magnum"
SWEP.Trivia_Mechanism = "Double Action"
SWEP.Trivia_Country = "Russia"
SWEP.Slot = 1
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_MetroRevolver.mdl"
SWEP.WorldModel = "models/weapons/c_MetroRevolver.mdl"
SWEP.ViewModelFOV = 60
SWEP.DefaultSkin = 0
SWEP.Damage = 32
SWEP.DamageMin = 32
SWEP.Range = 40 -- in METRES
SWEP.Penetration = 10
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 1230 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.CanFireUnderwater = false
SWEP.ChamberSize = 0 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 6 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 6
SWEP.ReducedClipSize = 4
SWEP.Recoil = 2.5
SWEP.RecoilSide = 1
SWEP.RecoilRise = 1.8
SWEP.VisualRecoilMult = 0.5
SWEP.Delay = 60 / 180 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
PrintName = "DACT",
Mode = 1,
},
{
Mode = 0,
}
}
SWEP.NPCWeaponType = {"weapon_pistol", "weapon_357"}
SWEP.NPCWeight = 75
SWEP.AccuracyMOA = 8 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 350 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.Primary.Ammo = "357" -- what ammo type the gun uses
SWEP.MagID = "ragingbull" -- the magazine pool this gun draws from
SWEP.ShootVol = 100 -- volume of shoot sound
SWEP.ShootPitch = 95 -- pitch of shoot sound
SWEP.ShootSound = "Revolver/Shot.wav"
SWEP.ShootSoundSilenced = "Revolver/Shots.wav"
SWEP.DistantShootSound = "Revolver/Shot.wav"
SWEP.MuzzleEffect = "muzzleflash_pistol_deagle"
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 0 -- which attachment to put the case effect on
SWEP.RevolverReload = true
SWEP.SightTime = 0.28
SWEP.SpeedMult = 0.975
SWEP.SightedSpeedMult = 0.75
SWEP.BarrelLength = 18
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {
[1] = "Bullet1",
[2] = "Bullet2",
[3] = "Bullet3",
[4] = "Bullet4",
[5] = "Bullet5",
[6] = "Bullet6",
}
SWEP.IronSightStruct = {
Pos = Vector(-2.721, -2, 1.759),
Ang = Angle(0, 0, 0),
Magnification = 1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "pistol"
SWEP.HoldtypeSights = "revolver"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_REVOLVER
SWEP.ActivePos = Vector(0, 0, 1)
SWEP.ActiveAng = Angle(0, 1, 0)
SWEP.CustomizePos = Vector(20, 5, -5)
SWEP.HolsterPos = Vector(0, -10, -10)
SWEP.HolsterAng = Angle(45, 0, 0)
SWEP.CrouchPos = Vector(-3, 0, 0)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.SprintPos = Vector(0, -10, -10)
SWEP.SprintAng = Angle(45, 0, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.ExtraSightDist = 10
SWEP.AttachmentElements = {
["lastlightmr"] = {
VMSkin = 1,
WMSkin = 1,
},
}
SWEP.WorldModelOffset = {
pos = Vector(-19.2, 4.1, -2),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp", "optic"},
Bone = "ValveBiped.Weapon_bone",
Offset = {
vpos = Vector(3, 0, 2.2),
vang = Angle(0, 0, 0),
},
VMScale = Vector(0.7, 0.7, 0.7),
CorrectiveAng = nil --Angle(90, 0, -90)
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = "muzzle",
Bone = "ValveBiped.Weapon_bone",
Offset = {
vpos = Vector(8.699, 0, 1.75),
vang = Angle(0, 0, 0),
wpos = Vector(15.2, 1, -4.3),
wang = Angle(0, 0, 0)
},
VMScale = Vector(0.7, 0.7, 0.7),
},
{
PrintName = "Tactical",
Slot = "tac_pistol",
Bone = "ValveBiped.Weapon_bone",
Offset = {
vpos = Vector(7, 0, 1),
vang = Angle(0, -1, 0),
wpos = Vector(15, 1, -3.4),
wang = Angle(0, 0, 180)
}
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet",
},
{
PrintName = "Perk",
Slot = {"perk", "perk_revolver"}
},
{
PrintName = "Skin",
Slot = {"metro_skinmr"},
DefaultAttName = "Metro 2033",
FreeSlot = true
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "ValveBiped.Weapon_bone",
Offset = {
vpos = Vector(1.799, -0.301, -0.301), -- offset that the attachment will be relative to the bone
vang = Angle(0, 0, 0),
wpos = Vector(10, 1.25, -4),
wang = Angle(0, -4.211, 180)
},
},
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw",
Time = 0.7,
},
["ready"] = {
Source = "ready",
},
["fire"] = {
Source = "shoot",
},
["fire_iron"] = {
Source = "shoot",
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
Time = 2.15,
FrameRate = 30,
LastClip1OutTime = 1.3,
},
["reload_empty"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_REVOLVER,
FrameRate = 30,
LastClip1OutTime = 1.3,
},
}
sound.Add({
name = "MR.BI",
channel = 16,
volume = 1.0,
sound = "Revolver/Bulletsin.wav"
})
sound.Add({
name = "MR.BO",
channel = 16,
volume = 1.0,
sound = "Revolver/Bulletsout.wav"
})
sound.Add({
name = "MR.Close",
channel = 16,
volume = 1.0,
sound = "Revolver/Close.wav"
})
sound.Add({
name = "MR.Open",
channel = 16,
volume = 1.0,
sound = "Revolver/Op.wav"
})
sound.Add({
name = "MR.MT",
channel = 16,
volume = 1.0,
sound = "Revolver/Mt.wav"
})

View File

@@ -0,0 +1,280 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "Tikhar"
SWEP.Trivia_Class = "Tikhar"
SWEP.Trivia_Desc = "A makeshift air gun, surprisingly silent and accurate. Overpressurizing its tank increases power, but the extra pressure vents before long."
SWEP.Trivia_Manufacturer = "Homemade"
SWEP.Trivia_Calibre = "Ball Bearings"
SWEP.Trivia_Mechanism = "Pneumatic"
SWEP.Trivia_Country = "Russia"
SWEP.Slot = 3
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_Tikhar.mdl"
SWEP.WorldModel = "models/weapons/c_Tikhar.mdl"
SWEP.ViewModelFOV = 65
SWEP.DefaultBodygroups = "00000"
SWEP.Damage = 25
SWEP.DamageMin = 25
SWEP.Range = 50 -- in METRES
SWEP.Penetration = 22
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 200 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.AlwaysPhysBullet = true
SWEP.PhysTracerProfile = 0
SWEP.TracerNum = 1
SWEP.Tracer = "arccw_tracer"
SWEP.TracerCol = Color(38, 38, 38)
SWEP.CanFireUnderwater = true
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 15 -- DefaultClip is automatically set.
SWEP.ExtendedClipSize = 30
SWEP.ReducedClipSize = 10
SWEP.Recoil = 0.9
SWEP.RecoilSide = 0.65
SWEP.RecoilRise = 1
SWEP.VisualRecoilMult = 1
SWEP.Delay = 60 / 180 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.AccuracyMOA = 3 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 150 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 250
SWEP.Primary.Ammo = "ar2" -- what ammo type the gun uses
SWEP.ShootVol = 120 -- volume of shoot sound
SWEP.ShootPitch = 110 -- pitch of shoot sound
SWEP.ShootSound = "Tikhar/Shoot.wav"
SWEP.DistantShootSound = "Tikhar/Shoot.wav"
SWEP.ShootSoundSilenced = "Tikhar/Shoot.wav"
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 0 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.89
SWEP.SightedSpeedMult = 0.65
SWEP.RevolverReload = true
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.CaseBones = {
[1] = "Bullet16",
[2] = "Bullet15",
[3] = "Bullet14",
[4] = "Bullet13",
[5] = "Bullet12",
[6] = "Bullet11",
[7] = "Bullet10",
[8] = "Bullet9",
[9] = "Bullet8",
[10] = "Bullet7",
[11] = "Bullet6",
[12] = "Bullet5",
[13] = "Bullet4",
[14] = "Bullet3",
[15] = "Bullet2",
[16] = "Bullet1",
}
SWEP.IronSightStruct = {
Pos = Vector(-3.217, 0, 0.959),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 100
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(0, 0, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.HolsterPos = Vector(3.5, 2, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.BarrelLength = 27
SWEP.ShellRotateAngle = Angle(180, 180, 0)
SWEP.ExtraSightDist = 6
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-13, 4, -4),
ang = Angle(-10.52, 0, 180)
}
SWEP.Attachments = {
{
PrintName = "Optic", -- print name
DefaultAttName = "Iron Sights",
Slot = {"optic", "optic_sniper", "optic_lp"}, -- what kind of attachments can fit here, can be string or table
Bone = "Tikhar", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0, -3.5, 14),
vang = Angle(90, 0, -90),
},
VMScale = Vector(1.1, 1.1, 1.1),
},
{
PrintName = "Underbarrel",
Slot = {"foregrip", "bipod"},
Bone = "Tikhar",
Offset = {
vpos = Vector(0, 0.699, 7.791),
vang = Angle(90, 0, -90),
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "Tikhar",
Offset = {
vpos = Vector(0.6, -2.597, 15.064), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, 0),
},
},
{
PrintName = "Grip",
Slot = "grip",
DefaultAttName = "Standard Grip"
},
{
PrintName = "Fire Group",
Slot = "fcg",
DefaultAttName = "Standard FCG"
},
{
PrintName = "Ammo Type",
Slot = "ammo_bullet"
},
{
PrintName = "Perk",
Slot = "perk"
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "Tikhar", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0.7, -2.1, 5),
vang = Angle(90, 0, -90),
},
VMScale = Vector(1, 1, 1),
},
}
SWEP.BulletBones = {
[1] = "Bullet16",
[2] = "Bullet15",
[3] = "Bullet14",
[4] = "Bullet13",
[5] = "Bullet12",
[6] = "Bullet11",
[7] = "Bullet10",
[8] = "Bullet9",
[9] = "Bullet8",
[10] = "Bullet7",
[11] = "Bullet6",
[12] = "Bullet5",
[13] = "Bullet4",
[14] = "Bullet3",
[15] = "Bullet2",
[16] = "Bullet1",
}
SWEP.Animations = {
["idle"] = {
Source = "idle"
},
["draw"] = {
Source = "draw",
Time = 1,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["ready"] = {
Source = "ready",
Time = 1.5,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.25,
},
["fire"] = {
Source = "shoot",
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "shoot",
ShellEjectAt = 0,
},
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {24, 60},
FrameRate = 30,
Time = 4.2,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
LastClip1OutTime = 2,
},
["reload_empty"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
Checkpoints = {24, 60, 102},
FrameRate = 30,
LHIK = true,
LHIKIn = 0.5,
LHIKOut = 0.5,
LastClip1OutTime = 2,
},
}

View File

@@ -0,0 +1,328 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
SWEP.Base = "arccw_base"
SWEP.Spawnable = true -- this obviously has to be set to true
SWEP.Category = "Willard - Junk Weapons" -- edit this if you like
SWEP.AdminOnly = false
SWEP.PrintName = "VSV"
SWEP.TrueName = "VSK-94"
SWEP.Trivia_Class = "Assault Rifle"
SWEP.Trivia_Desc = "An accurate and powerful assault rifle good for medium-range combat. Its somewhat low muzzle velocity translates into lower noise and faster bullet drop."
SWEP.Trivia_Manufacturer = "Konstruktorskoe Buro Priborostroeniya"
SWEP.Trivia_Calibre = "5.45x39mm"
SWEP.Trivia_Mechanism = "Gas-Operated"
SWEP.Trivia_Country = "Russia"
SWEP.Trivia_Year = 1994
SWEP.Slot = 2
if GetConVar("arccw_truenames"):GetBool() then SWEP.PrintName = SWEP.TrueName end
SWEP.UseHands = true
SWEP.ViewModel = "models/weapons/c_VSV.mdl"
SWEP.WorldModel = "models/weapons/c_VSV.mdl"
SWEP.ViewModelFOV = 65
SWEP.DefaultBodygroups = "000000000000"
SWEP.Damage = 16
SWEP.DamageMin = 16
SWEP.Range = 400 -- in METRES
SWEP.Penetration = 11
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil -- entity to fire, if any
SWEP.MuzzleVelocity = 270 -- projectile or phys bullet muzzle velocity
-- IN M/S
SWEP.ChamberSize = 1 -- how many rounds can be chambered.
SWEP.Primary.ClipSize = 20 -- DefaultClip is automatically set.
SWEP.PhysBulletMuzzleVelocity = 270
SWEP.Recoil = 0.62
SWEP.RecoilSide = 0.255
SWEP.RecoilRise = 0.2
SWEP.RecoilPunch = 2.5
SWEP.Delay = 60 / 600 -- 60 / RPM.
SWEP.Num = 1 -- number of shots per trigger pull.
SWEP.Firemodes = {
{
Mode = 2,
},
{
Mode = 1,
},
{
Mode = 0
}
}
SWEP.NPCWeaponType = "weapon_ar2"
SWEP.NPCWeight = 100
SWEP.AccuracyMOA = 9 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
SWEP.HipDispersion = 650 -- inaccuracy added by hip firing.
SWEP.MoveDispersion = 100
SWEP.Primary.Ammo = "smg1" -- what ammo type the gun uses
SWEP.MagID = "stanag" -- the magazine pool this gun draws from
SWEP.ShootVol = 110 -- volume of shoot sound
SWEP.ShootPitch = 100 -- pitch of shoot sound
SWEP.ShootSound = "VSV/shoot.wav"
SWEP.DistantShootSound = "VSV/shoot2.wav"
SWEP.MeleeSwingSound = "arccw_go/m249/m249_draw.wav"
SWEP.MeleeMissSound = "weapons/iceaxe/iceaxe_swing1.wav"
SWEP.MeleeHitSound = "arccw_go/knife/knife_hitwall1.wav"
SWEP.MeleeHitNPCSound = "physics/body/body_medium_break2.wav"
SWEP.MuzzleEffect = "muzzleflash_4"
SWEP.ShellModel = "models/shells/shell_556.mdl"
SWEP.ShellPitch = 95
SWEP.ShellScale = 1.25
SWEP.ShellRotateAngle = Angle(0, 180, 0)
SWEP.MuzzleEffectAttachment = 1 -- which attachment to put the muzzle on
SWEP.CaseEffectAttachment = 2 -- which attachment to put the case effect on
SWEP.SpeedMult = 0.97
SWEP.SightedSpeedMult = 0.75
SWEP.SightTime = 0.30
SWEP.IronSightStruct = {
Pos = Vector(-6.281, -5, 1.879),
Ang = Angle(0, 0, 0),
Magnification = 1.1,
SwitchToSound = "", -- sound that plays when switching to this sight
CrosshairInSights = false
}
SWEP.HoldtypeHolstered = "passive"
SWEP.HoldtypeActive = "ar2"
SWEP.HoldtypeSights = "rpg"
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
SWEP.ActivePos = Vector(-1, 2, 0)
SWEP.ActiveAng = Angle(0, 0, 0)
SWEP.CrouchPos = Vector(-4, 0, -1)
SWEP.CrouchAng = Angle(0, 0, -10)
SWEP.HolsterPos = Vector(3, 3, 0)
SWEP.HolsterAng = Angle(-7.036, 30.016, 0)
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
SWEP.CustomizePos = Vector(8, 0, 1)
SWEP.CustomizeAng = Angle(5, 30, 30)
SWEP.BarrelLength = 24
SWEP.AttachmentElements = {
["lastlightvsv"] = {
VMSkin = 1,
WMSkin = 1,
},
}
SWEP.ExtraSightDist = 10
SWEP.GuaranteeLaser = true
SWEP.WorldModelOffset = {
pos = Vector(-12, 7, -3.5),
ang = Angle(-10, 0, 180)
}
SWEP.MirrorVMWM = true
SWEP.Attachments = {
{
PrintName = "Optic",
Slot = {"optic", "optic_lp"},
Bone = "VSV",
DefaultAttName = "Iron Sights",
Offset = {
vpos = Vector(0.05, -3.1, 3.635),
vang = Angle(90, 0, -90),
wpos = Vector(22, 1, -7),
wang = Angle(-9.79, 0, 180)
},
VMScale = Vector(1, 1, 1),
InstalledEles = {"rs_none", "fs_down"},
CorrectiveAng = Angle(0, 0, 0),
},
{
PrintName = "Underbarrel",
Slot = "foregrip",
Bone = "VSV",
Offset = {
vpos = Vector(0, -1, 11),
vang = Angle(90, 0, -90),
wpos = Vector(22, 1, -7),
wang = Angle(-9.79, 0, 180)
},
},
{
PrintName = "Tactical",
Slot = "tac",
Bone = "VSV",
Offset = {
vpos = Vector(0, -0.7, 15),
vang = Angle(90, 0, -90),
wpos = Vector(22, 1, -7),
wang = Angle(-9.79, 0, 180)
},
},
{
PrintName = "Ammo Type",
Slot = "go_ammo",
DefaultAttName = "Standard Ammo"
},
{
PrintName = "Perk",
Slot = "go_perk"
},
{
PrintName = "Skin",
Slot = {"metro_skinvsv"},
DefaultAttName = "Metro 2033",
FreeSlot = true
},
{
PrintName = "Charm",
Slot = "charm",
FreeSlot = true,
Bone = "VSV", -- relevant bone any attachments will be mostly referring to
Offset = {
vpos = Vector(0.6, -1.601, 0.4), -- offset that the attachment will be relative to the bone
vang = Angle(90, 0, -90),
wpos = Vector(6.099, 1.1, -3.301),
wang = Angle(171.817, 180-1.17, 0),
},
},
}
SWEP.BulletBones = {
[1] = "Bullet20",
[2] = "Bullet19",
[3] = "Bullet18",
[4] = "Bullet17",
[5] = "Bullet16",
[6] = "Bullet15",
[7] = "Bullet14",
[8] = "Bullet13",
[9] = "Bullet12",
[10] = "Bullet11",
[11] = "Bullet10",
[12] = "Bullet9",
[13] = "Bullet8",
[14] = "Bullet7",
[15] = "Bullet6",
[16] = "Bullet5",
[17] = "Bullet4",
[18] = "Bullet3",
[19] = "Bullet2",
[20] = "Bullet1",
}
SWEP.Animations = {
["idle"] = {
Source = "idle",
},
["draw"] = {
Source = "draw",
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["ready"] = {
Source = "ready",
Time = 1.7,
LHIK = true,
LHIKIn = 0,
LHIKOut = 0.5,
},
["fire"] = {
Source = "shoot",
Time = 0.5,
ShellEjectAt = 0,
},
["fire_iron"] = {
Source = "shoot_iron",
Time = 0.5,
ShellEjectAt = 0,
},
["reload"] = {
Source = "reloadpart",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
Time = 2.3,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKOut = 0.2,
LHIKEaseOut = 0.2,
LastClip1OutTime = 1,
},
["reload_empty"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
FrameRate = 30,
Time = 3,
LHIK = true,
LHIKIn = 0.2,
LHIKOut = 0.2,
LHIKEaseOut = 0.2,
LastClip1OutTime = 1,
},
["enter_inspect"] = {
LHIK = false,
},
["idle_inspect"] = {
LHIK = false,
},
["exit_inspect"] = {
LHIK = false,
},
}
sound.Add({
name = "Weapon_VSV.CA",
channel = 16,
volume = 1.0,
sound = "VSV/VSVCA.wav"
})
sound.Add({
name = "Weapon_VSV.Clipout",
channel = 16,
volume = 1.0,
sound = "VSV/VSVClipout.wav"
})
sound.Add({
name = "Weapon_VSV.Clipin",
channel = 16,
volume = 1.0,
sound = "VSV/VSVClipin.wav"
})
sound.Add({
name = "VSV.Cliphit",
channel = 16,
volume = 1.0,
sound = "VSV/cliphit.wav"
})