506 lines
16 KiB
Lua
506 lines
16 KiB
Lua
SWEP.Base = "arccw_base"
|
|
SWEP.Spawnable = true -- this obviously has to be set to true
|
|
SWEP.Category = "ArcCW - Urban Coalition" -- edit this if you like
|
|
SWEP.UC_CategoryPack = "4Urban Anarchy"
|
|
SWEP.AdminOnly = false
|
|
|
|
SWEP.PrintName = "Fuck-You-In-Particular-inator"
|
|
SWEP.TrueName = "M82A1"
|
|
SWEP.Trivia_Class = "Anti-materiel Rifle"
|
|
SWEP.Trivia_Desc = [[The state firearm of Tennessee. As the first shoulder-fired weapon of its caliber, this massive, barely man-portable weapon popularized the idea of modern anti-materiel rifles as a way to help individual marksmen counter heavy targets.
|
|
|
|
Chambered for a mounted machine gun cartridge designed to punch holes through cover and armored vehicles. To shoot a man with it might be overkill (or great fun, depending on your tastes).]]
|
|
SWEP.Trivia_Manufacturer = "Barrett Firearms Manufacturing"
|
|
SWEP.Trivia_Calibre = ".50 Browning Machine Gun"
|
|
SWEP.Trivia_Mechanism = "Recoil-Operated Rotating Bolt"
|
|
SWEP.Trivia_Country = "USA"
|
|
SWEP.Trivia_Year = 1980
|
|
|
|
if GetConVar("arccw_truenames"):GetBool() then
|
|
SWEP.PrintName = SWEP.TrueName
|
|
end
|
|
|
|
SWEP.Slot = 3
|
|
|
|
SWEP.UseHands = true
|
|
|
|
SWEP.ViewModel = "models/weapons/arccw/c_ua_m82.mdl"
|
|
SWEP.WorldModel = "models/weapons/arccw/c_ua_m82.mdl"
|
|
SWEP.ViewModelFOV = 57
|
|
SWEP.MirrorVMWM = true
|
|
SWEP.WorldModelOffset = {
|
|
pos = Vector(-6.5, 4, -7),
|
|
ang = Angle(-6, 0, 180),
|
|
bone = "ValveBiped.Bip01_R_Hand",
|
|
}
|
|
|
|
SWEP.DefaultBodygroups = "00000000000"
|
|
|
|
SWEP.Damage = ArcCW.UC.StdDmg["50bmg"].max
|
|
SWEP.DamageMin = ArcCW.UC.StdDmg["50bmg"].min -- damage done at maximum range
|
|
SWEP.Range = 1800 -- in METRES
|
|
SWEP.Penetration = ArcCW.UC.StdDmg["50bmg"].pen
|
|
SWEP.DamageType = DMG_AIRBOAT + DMG_BULLET + DMG_ALWAYSGIB
|
|
SWEP.ShootEntity = nil -- entity to fire, if any
|
|
SWEP.PhysBulletMuzzleVelocity = 853 -- 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 = 10 -- DefaultClip is automatically set.
|
|
|
|
SWEP.Recoil = 4
|
|
SWEP.RecoilSide = 2
|
|
SWEP.RecoilRise = 2
|
|
SWEP.SpeedMult = 0.7
|
|
SWEP.SightedSpeedMult = 0.35
|
|
SWEP.SightTime = 0.72
|
|
SWEP.Sway = 1.5
|
|
|
|
SWEP.Delay = 60 / 200 -- 60 / RPM.
|
|
SWEP.Num = 1 -- number of shots per trigger pull.
|
|
SWEP.Firemodes = {
|
|
{
|
|
Mode = 1,
|
|
},
|
|
{
|
|
Mode = 0
|
|
}
|
|
}
|
|
|
|
SWEP.NPCWeaponType = {
|
|
"weapon_crossbow",
|
|
}
|
|
SWEP.NPCWeight = 75
|
|
|
|
SWEP.AccuracyMOA = 0.2 -- accuracy in Minutes of Angle. There are 60 MOA in a degree.
|
|
SWEP.HipDispersion = 1750 -- inaccuracy added by hip firing.
|
|
SWEP.MoveDispersion = 250
|
|
|
|
SWEP.Primary.Ammo = "SniperPenetratedRound" -- what ammo type the gun uses
|
|
SWEP.MagID = "svd" -- the magazine pool this gun draws from
|
|
|
|
SWEP.ShootVol = 500 -- volume of shoot sound
|
|
SWEP.ShootPitch = 100 -- pitch of shoot sound
|
|
|
|
local path = ")^weapons/arccw_ue/m82/"
|
|
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-06.ogg"
|
|
SWEP.DistantShootSound = nil
|
|
SWEP.DistantShootSoundSilenced = nil
|
|
SWEP.ShootDrySound = path .. "dryfire.ogg"
|
|
|
|
local tail = ")^/arccw_uc/common/50bmg/"
|
|
|
|
SWEP.DistantShootSoundOutdoors = {
|
|
tail .. "fire-dist-50bmg-rif-ext-01.ogg",
|
|
tail .. "fire-dist-50bmg-rif-ext-02.ogg",
|
|
tail .. "fire-dist-50bmg-rif-ext-03.ogg",
|
|
tail .. "fire-dist-50bmg-rif-ext-04.ogg",
|
|
tail .. "fire-dist-50bmg-rif-ext-05.ogg",
|
|
tail .. "fire-dist-50bmg-rif-ext-06.ogg"
|
|
}
|
|
SWEP.DistantShootSoundIndoors = {
|
|
tail .. "fire-dist-50bmg-rif-int-01.ogg",
|
|
tail .. "fire-dist-50bmg-rif-int-02.ogg",
|
|
tail .. "fire-dist-50bmg-rif-int-03.ogg",
|
|
tail .. "fire-dist-50bmg-rif-int-04.ogg",
|
|
tail .. "fire-dist-50bmg-rif-int-05.ogg",
|
|
tail .. "fire-dist-50bmg-rif-int-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_1"
|
|
SWEP.ShellEffect = "arccw_uc_shelleffect"
|
|
SWEP.ShellModel = "models/weapons/arccw/uc_shells/556x45.mdl"
|
|
SWEP.ShellPitch = 65
|
|
SWEP.ShellScale = 1.4
|
|
|
|
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 = 4
|
|
|
|
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(-3.3, 4, 0.55),
|
|
Ang = Angle(0, 0, 0),
|
|
Magnification = 1.05,
|
|
}
|
|
|
|
SWEP.HoldtypeHolstered = "passive"
|
|
SWEP.HoldtypeActive = "ar2"
|
|
SWEP.HoldtypeSights = "rpg"
|
|
|
|
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_RPG
|
|
|
|
SWEP.ActivePos = Vector(1, 3, 1)
|
|
SWEP.ActiveAng = Angle(1, 1, -2)
|
|
|
|
SWEP.SprintPos = Vector(1, 0, 2)
|
|
SWEP.SprintAng = Angle(-5, 5, 0)
|
|
|
|
SWEP.HolsterPos = Vector(2, 0, 2)
|
|
SWEP.HolsterAng = Angle(-15, 30, 0)
|
|
|
|
SWEP.BarrelOffsetSighted = Vector(0, 0, -1)
|
|
SWEP.BarrelOffsetHip = Vector(2, 0, -2)
|
|
|
|
SWEP.CrouchPos = Vector(-1, 1, -1)
|
|
SWEP.CrouchAng = Angle(0, 0, -10)
|
|
|
|
SWEP.BarrelLength = 60
|
|
|
|
SWEP.ShellRotateAngle = Angle(0, 90, 0)
|
|
|
|
SWEP.AttachmentElements = {
|
|
["m82_lowersights"] = {
|
|
VMBodygroups = {
|
|
{ind = 2, bg = 1}
|
|
}
|
|
},
|
|
|
|
["ua_m82_mag_5"] = {
|
|
VMBodygroups = {
|
|
{ind = 1, bg = 1}
|
|
}
|
|
},
|
|
["ua_m82_charm_tlp"] = {
|
|
AttPosMods = {[5] = {
|
|
vpos = Vector(0, 13, 3.1),
|
|
vang = Angle(180, -90, 0),
|
|
}},
|
|
Override_IronSightStruct = {
|
|
Pos = Vector(-6, 10, -2),
|
|
Ang = Angle(0, 0, -30),
|
|
GlobalPos = false,
|
|
GlobalAng = true,
|
|
Magnification = 1,
|
|
ScrollFunc = ArcCW.SCROLL_NONE
|
|
},
|
|
},
|
|
}
|
|
|
|
SWEP.ExtraSightDist = 3
|
|
|
|
SWEP.RejectAttachments = {
|
|
}
|
|
|
|
SWEP.Attachments = {
|
|
{
|
|
PrintName = "Optic", -- print name
|
|
DefaultAttName = "Iron Sights",
|
|
Slot = {"optic", "optic_lp", "optic_sniper", "optic_fas1_m82"}, -- what kind of attachments can fit here, can be string or table
|
|
Bone = "b_wpn", -- relevant bone any attachments will be mostly referring to
|
|
Offset = {
|
|
vpos = Vector(0, -1, 3.3), -- offset that the attachment will be relative to the bone
|
|
vang = Angle(90, -90, -90),
|
|
wpos = Vector(9, 0.739, -6.801),
|
|
wang = Angle(-10, 0, 180)
|
|
},
|
|
SlideAmount = {
|
|
vmin = Vector(0,0,3.3),
|
|
vmax = Vector(0,-2,3.3),
|
|
},
|
|
CorrectiveAng = Angle(180, 0, 0),
|
|
InstalledEles = {"m82_lowersights"},
|
|
ExtraSightDist = 3,
|
|
},
|
|
{
|
|
PrintName = "Barrel",
|
|
DefaultAttName = "29\" Standard Barrel",
|
|
Slot = "mifl_fas2_m82_hg",
|
|
Bone = "b_wpn",
|
|
Offset = {
|
|
vpos = Vector(0.5, 6, -1),
|
|
vang = Angle(90, -90, -90),
|
|
},
|
|
},
|
|
{
|
|
PrintName = "Magazine",
|
|
Slot = {"ua_m82_mag"},
|
|
DefaultAttName = "10-Round Mag",
|
|
-- DefaultAttIcon = Material("entities/att/ur_ak/magazines/762_30.png", "mips smooth"),
|
|
},
|
|
{
|
|
PrintName = "Underbarrel",
|
|
Slot = {"foregrip", "ubgl"},
|
|
Bone = "b_wpn",
|
|
Offset = {
|
|
vpos = Vector(0, 10, 0.6),
|
|
vang = Angle(90, -90, -90),
|
|
},
|
|
},
|
|
{
|
|
PrintName = "Tactical",
|
|
Slot = "tac",
|
|
Bone = "b_wpn",
|
|
Offset = {
|
|
vpos = Vector(-0.9, 13, 2.2), -- offset that the attachment will be relative to the bone
|
|
vang = Angle(180, -90, 60),
|
|
},
|
|
ExtraSightDist = 22,
|
|
CorrectivePos = Vector(2, -2, 0),
|
|
GivesFlags = {"tac"},
|
|
},
|
|
{
|
|
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",
|
|
DefaultAttName = "None",
|
|
Slot = {"charm","ua_m82_charm"},
|
|
Bone = "b_wpn",
|
|
Offset = {
|
|
vpos = Vector(0.9, -1.5, 0),
|
|
vang = Angle(90, -90, -90),
|
|
},
|
|
FreeSlot = true,
|
|
},
|
|
}
|
|
|
|
SWEP.Hook_ModifyBodygroups = function(wep, data)
|
|
local vm = data.vm
|
|
local papcamo = wep.Attachments[6].Installed == "ammo_papunch"
|
|
|
|
if papcamo then return vm:SetSkin(3) end
|
|
end
|
|
|
|
local rottle = {common .. "cloth_1.ogg", common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_5.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}
|
|
local mech = {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 ratel = {common .. "rattle1.ogg", common .. "rattle2.ogg", common .. "rattle3.ogg"}
|
|
local rutle = {common .. "movement-sniper-01.ogg", common .. "movement-sniper-02.ogg", common .. "movement-sniper-03.ogg", common .. "movement-sniper-04.ogg"}
|
|
local magdrop = {common .. "rifle_magdrop_1.ogg", common .. "rifle_magdrop_2.ogg", common .. "rifle_magdrop_3.ogg", common .. "rifle_magdrop_4.ogg"}
|
|
|
|
SWEP.Animations = {
|
|
["draw"] = {
|
|
Source = "draw",
|
|
LHIK = true,
|
|
LHIKIn = 0,
|
|
LHIKOut = 0.25,
|
|
SoundTable = {
|
|
{s = rottle, t = 0},
|
|
{s = rutle, t = 0.05},
|
|
{s = rottle, t = 0.7},
|
|
{s = common .. "shoulder.ogg", t = 1.1, v = 0.5}
|
|
},
|
|
},
|
|
["ready"] = {
|
|
Source = "equip",
|
|
LHIK = true,
|
|
LHIKIn = 0,
|
|
LHIKOut = 0.25,
|
|
},
|
|
["idle"] = {
|
|
Source = "idle",
|
|
},
|
|
["idle_empty"] = {
|
|
Source = "idle_empty",
|
|
},
|
|
["holster"] = {
|
|
Source = "holster",
|
|
LHIK = true,
|
|
LHIKEaseOut = 0.2,
|
|
LHIKIn = 0.6,
|
|
LHIKOut = 0.3,
|
|
SoundTable = {
|
|
{s = rottle, t = 0},
|
|
{s = rutle, t = 0.05},
|
|
}
|
|
},
|
|
|
|
["fire"] = {
|
|
Source = "fire",
|
|
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",
|
|
ShellEjectAt = 0,
|
|
SoundTable = {
|
|
{s = common .. "common_mech_heavy.ogg", t = 0, v = 0.4},
|
|
{s = common .. "common_mech_light.ogg", t = 0},
|
|
{ s = mech, t = 0 }
|
|
},
|
|
},
|
|
|
|
["reload"] = {
|
|
Source = "reload",
|
|
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
|
|
FrameRate = 30,
|
|
MinProgress = 3.8,
|
|
SoundTable = {
|
|
{s = rottle, t = 0},
|
|
{s = rutle, t = 0.1},
|
|
{s = path .. "magrel.ogg", t = 1.1},
|
|
{s = path .. "magtouch.ogg", t = 1.6},
|
|
{s = path .. "magout.ogg", t = 1.7},
|
|
{s = rottle, t = 1.65},
|
|
{s = rutle, t = 1.68},
|
|
{s = common .. "magpouch.ogg", t = 2.7, v = 0.2},
|
|
{s = path .. "struggle.ogg", t = 3.1},
|
|
{s = path .. "magin.ogg", t = 3.55},
|
|
{s = path .. "grab.ogg", t = 3.5},
|
|
{s = rottle, t = 3.7},
|
|
{s = rutle, t = 3.75},
|
|
{s = common .. "shoulder.ogg", t = 4.4, v = 0.6},
|
|
},
|
|
LHIK = true,
|
|
LHIKIn = 0.5,
|
|
LHIKOut = 0.5,
|
|
},
|
|
["reload_empty"] = {
|
|
Source = "reload_empty",
|
|
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
|
|
FrameRate = 30,
|
|
MinProgress = 4.75,
|
|
SoundTable = {
|
|
{s = rottle, t = 0},
|
|
{s = rutle, t = 0.1},
|
|
{s = common .. "magpouch.ogg", t = 0.9, v = 0.2},
|
|
{s = path .. "magtouch.ogg", t = 1.5},
|
|
{s = path .. "magrel.ogg", t = 1.66},
|
|
{s = path .. "magout.ogg", t = 1.7},
|
|
{s = rottle, t = 1.65},
|
|
{s = rutle, t = 1.68},
|
|
{s = path .. "struggle.ogg", t = 2.3},
|
|
{s = magdrop, t = 2.45, p = 87.5, v = 0.35},
|
|
{s = path .. "magin.ogg", t = 2.85},
|
|
{s = path .. "grab.ogg", t = 2.8},
|
|
{s = rottle, t = 3.0},
|
|
{s = rutle, t = 3.05},
|
|
{s = path .. "chstart.ogg", t = 3.95},
|
|
{s = path .. "chback.ogg", t = 4.05},
|
|
{s = path .. "chamber.ogg", t = 4.6},
|
|
{s = rottle, t = 5.0},
|
|
{s = rutle, t = 5.05},
|
|
{s = common .. "shoulder.ogg", t = 5.4, v = 0.6},
|
|
},
|
|
LHIK = true,
|
|
LHIKIn = 0.5,
|
|
LHIKOut = 0.5,
|
|
},
|
|
["reload_5"] = {
|
|
Source = "reload_5",
|
|
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
|
|
FrameRate = 30,
|
|
MinProgress = 3.8,
|
|
SoundTable = {
|
|
{s = rottle, t = 0},
|
|
{s = rutle, t = 0.1},
|
|
{s = path .. "magrel.ogg", t = 1.1},
|
|
{s = path .. "magtouch.ogg", t = 1.6},
|
|
{s = path .. "magout.ogg", t = 1.7},
|
|
{s = rottle, t = 1.65},
|
|
{s = rutle, t = 1.68},
|
|
{s = common .. "magpouch.ogg", t = 2.7, v = 0.2},
|
|
{s = path .. "struggle.ogg", t = 3.1},
|
|
{s = path .. "magin.ogg", t = 3.55},
|
|
{s = path .. "grab.ogg", t = 3.5},
|
|
{s = rottle, t = 3.7},
|
|
{s = rutle, t = 3.75},
|
|
{s = common .. "shoulder.ogg", t = 4.4, v = 0.6},
|
|
},
|
|
LHIK = true,
|
|
LHIKIn = 0.5,
|
|
LHIKOut = 0.5,
|
|
},
|
|
["reload_empty_5"] = {
|
|
Source = "reload_empty_5",
|
|
TPAnim = ACT_HL2MP_GESTURE_RELOAD_AR2,
|
|
FrameRate = 30,
|
|
MinProgress = 4.75,
|
|
SoundTable = {
|
|
{s = rottle, t = 0},
|
|
{s = rutle, t = 0.1},
|
|
{s = common .. "magpouch.ogg", t = 0.9, v = 0.2},
|
|
{s = path .. "magtouch.ogg", t = 1.5},
|
|
{s = path .. "magrel.ogg", t = 1.66},
|
|
{s = path .. "magout.ogg", t = 1.7},
|
|
{s = rottle, t = 1.65},
|
|
{s = rutle, t = 1.68},
|
|
{s = path .. "struggle.ogg", t = 2.3},
|
|
{s = magdrop, t = 2.45, p = 95},
|
|
{s = path .. "magin.ogg", t = 2.85},
|
|
{s = path .. "grab.ogg", t = 2.8},
|
|
{s = rottle, t = 3.0},
|
|
{s = rutle, t = 3.05},
|
|
{s = path .. "chstart.ogg", t = 3.95},
|
|
{s = path .. "chback.ogg", t = 4.05},
|
|
{s = path .. "chamber.ogg", t = 4.6},
|
|
{s = rottle, t = 5.0},
|
|
{s = rutle, t = 5.05},
|
|
{s = common .. "shoulder.ogg", t = 5.4, v = 0.6},
|
|
},
|
|
LHIK = true,
|
|
LHIKIn = 0.5,
|
|
LHIKOut = 0.5,
|
|
},
|
|
|
|
["fix"] = {
|
|
Source = "unjam",
|
|
LHIKIn = 0.5,
|
|
LHIKOut = 0.5,
|
|
}
|
|
} |