923 lines
27 KiB
Lua
923 lines
27 KiB
Lua
SWEP.Base = "arccw_base"
|
|
SWEP.Spawnable = true
|
|
SWEP.Category = "ArcCW - Urban Coalition"
|
|
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 = 0.5
|
|
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 = 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 = 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 / 220
|
|
SWEP.Firemodes = {
|
|
{
|
|
Mode = 1,
|
|
},
|
|
{
|
|
Mode = 1,
|
|
PrintName = "fcg.pump",
|
|
Override_ManualAction = true,
|
|
Mult_AccuracyMOA = 0.8,
|
|
Mult_HipDispersion = 0.8,
|
|
},
|
|
{
|
|
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 = 25
|
|
SWEP.HipDispersion = 400
|
|
SWEP.MoveDispersion = 125
|
|
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.835, -4, 1.55),
|
|
Ang = Angle(0.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, 0.5, 1)
|
|
SWEP.ActiveAng = Angle(0, 0, 0)
|
|
|
|
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"
|
|
|
|
local tail = ")/arccw_uc/common/12ga/"
|
|
|
|
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",
|
|
}
|
|
SWEP.DistantShootSoundIndoors = {
|
|
tail .. "fire-dist-12ga-pasg-int-01.ogg",
|
|
tail .. "fire-dist-12ga-pasg-int-02.ogg",
|
|
tail .. "fire-dist-12ga-pasg-int-03.ogg",
|
|
tail .. "fire-dist-12ga-pasg-int-04.ogg",
|
|
tail .. "fire-dist-12ga-pasg-int-05.ogg",
|
|
tail .. "fire-dist-12ga-pasg-int-06.ogg"
|
|
}
|
|
|
|
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 then
|
|
if anim == "idle_empty" then
|
|
return "idle_empty_manual"
|
|
end
|
|
if anim == "exit_inspect_empty" then
|
|
return "exit_inspect_pump_empty"
|
|
end
|
|
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)
|
|
local pump_rng = math.Truncate(util.SharedRandom("ik hou van u", 1,100)) -- nombre aleatoire, d'un a cent
|
|
|
|
if wep:GetCurrentFiremode().Override_ManualAction and pump_rng >= 50 and curanim == "sgreload_start_empty" then -- lol? how does else work again?
|
|
return "sgreload_start_empty_manual"
|
|
end
|
|
if wep:GetCurrentFiremode().Override_ManualAction and pump_rng < 50 and curanim == "sgreload_start_empty" then
|
|
return "sgreload_start_empty_manual_alt"
|
|
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,
|
|
},
|
|
["ready"] = {
|
|
Source = "deploy",
|
|
SoundTable = {
|
|
ArcCW.UC.DrawSounds,
|
|
{s = path .. "forearm_back.ogg", t = 8/30},
|
|
{s = path .. "forearm_forward.ogg", t = 15/30}, -- Not temporary
|
|
},
|
|
},
|
|
["draw_empty"] = {
|
|
Source = "draw", -- draw_empty
|
|
--Time = 20 / 30,
|
|
SoundTable = ArcCW.UC.DrawSounds,
|
|
},
|
|
["holster"] = {
|
|
Source = {"holster","holster2"},
|
|
--Time = 20 / 30,
|
|
SoundTable = ArcCW.UC.HolsterSounds,
|
|
},
|
|
["holster_empty"] = {
|
|
Source = {"holster","holster2"}, -- holster_empty
|
|
--Time = 20 / 30,
|
|
SoundTable = ArcCW.UC.HolsterSounds,
|
|
},
|
|
["fire"] = {
|
|
Source = "fire_semi",
|
|
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 },
|
|
{s = path1 .. "eject.ogg", t = 0.01},
|
|
},
|
|
},
|
|
["fire_iron"] = {
|
|
Source = "fire_semi",
|
|
ShellEjectAt = 0.01,
|
|
SoundTable = {
|
|
{s = common .. "common_mech_heavy.ogg", t = 0},
|
|
{ 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 },
|
|
{s = path1 .. "eject.ogg", t = 0.01},
|
|
},
|
|
},
|
|
["fire_2bst"] = {
|
|
Source = "fire_freeman",
|
|
LHIK = true,
|
|
LHIKIn = 0.05,
|
|
LHIKEaseOut = 0.175,
|
|
LHIKOut = 0.65,
|
|
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 },
|
|
{s = common .. "common_mech_heavy.ogg", t = 0},
|
|
{s = path1 .. "eject.ogg", t = 0.01},
|
|
},
|
|
MinProgress = 0.175
|
|
},
|
|
["fire_manual"] = { -- No bolt cycling
|
|
Source = "fire_pump",
|
|
MinProgress = 0.1,
|
|
ShellEjectAt = false,
|
|
SoundTable = {
|
|
{ s = common .. "manual_trigger.ogg", t = 0},
|
|
{s = common .. "common_mech_heavy.ogg", t = 0},
|
|
},
|
|
},
|
|
["cycle"] = {
|
|
Source = {"cycle", "cycle2"},
|
|
ShellEjectAt = 0.1,
|
|
MinProgress = 0.4,
|
|
Time = 25 / 30,
|
|
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
|
|
},
|
|
},
|
|
["cycle_2bst"] = {
|
|
Source = {"cycle_freeman", "cycle_freeman2"},
|
|
ShellEjectAt = 0.42,
|
|
MinProgress = 0.8,
|
|
--Time = 25 / 30,
|
|
SoundTable = {
|
|
{s = path .. "forearm_back_2bst.ogg", t = 0.3},
|
|
{s = path1 .. "eject.ogg", t = 0.37},
|
|
{s = path .. "forearm_forward_2bst.ogg", t = 0.5}, -- Not temporary
|
|
},
|
|
},
|
|
["unjam"] = {
|
|
Source = "cycle",
|
|
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_semi_empty", -- fire_empty
|
|
ShellEjectAt = 0.01,
|
|
SoundTable = {
|
|
{s = path1 .. "eject.ogg", t = 0}, -- Not temporary
|
|
},
|
|
},
|
|
["fire_iron_empty"] = {
|
|
Source = "fire_semi_empty", -- fire_empty
|
|
ShellEjectAt = 0.01,
|
|
SoundTable = {
|
|
{s = path1 .. "eject.ogg", t = 0}, -- Not temporary
|
|
},
|
|
},
|
|
["sgreload_start"] = {
|
|
Source = "sgreload_start",
|
|
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
|
|
RestoreAmmo = 1,
|
|
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},
|
|
{s = shellin, t = 31/30},
|
|
{s = {common .. "cloth_2.ogg", common .. "cloth_3.ogg", common .. "cloth_4.ogg", common .. "cloth_6.ogg", common .. "rattle.ogg"}, t = (31/30 + 0.05), v = 0.5},
|
|
}
|
|
},
|
|
["sgreload_start_fold"] = {
|
|
Source = "sgreload_start_fold",
|
|
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",
|
|
-- 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 = .2},
|
|
{s = path .. "breechclose.ogg", t = 0.9}, -- Temporary
|
|
{s = path .. "turn.ogg", t = 1.0}, -- Temporary
|
|
{s = rottle, t = 1.2},
|
|
{s = path .. "grab.ogg", t = 1.4},
|
|
},
|
|
ForceEmpty = true,
|
|
},
|
|
["sgreload_start_empty_fold"] = {
|
|
Source = "sgreload_start_empty_semi_fold",
|
|
-- 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 = .2},
|
|
{s = path .. "breechclose.ogg", t = 0.9}, -- Temporary
|
|
{s = path .. "turn.ogg", t = 1.0}, -- Temporary
|
|
{s = rottle, t = 1.2},
|
|
{s = path .. "grab.ogg", t = 1.4},
|
|
},
|
|
ForceEmpty = true,
|
|
},
|
|
["sgreload_start_empty_manual"] = {
|
|
Source = "sgreload_start_empty",
|
|
MinProgress = 1,
|
|
LHIK = true,
|
|
LHIKIn = 1.7,
|
|
LHIKEaseIn = 0.2,
|
|
LHIKOut = 0,
|
|
TPAnimStartTime = 0.5,
|
|
ShellEjectAt = 15/30,
|
|
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
|
|
SoundTable = {
|
|
{s = path .. "forearm_back.ogg", t = 10/30},
|
|
{s = path1 .. "eject.ogg", t = 11/30},
|
|
{s = path .. "breechload.ogg", t = 15/30},
|
|
{s = path .. "forearm_forward.ogg", t = 33/30}, -- Not temporary
|
|
{s = rottle, t = 0.2},
|
|
{s = path .. "turn.ogg", t = 1.1}, -- Temporary
|
|
{s = rottle, t = 1.2},
|
|
{s = path .. "grab.ogg", t = 1.5},
|
|
},
|
|
ForceEmpty = true,
|
|
},
|
|
["sgreload_start_empty_manual_alt"] = {
|
|
Source = "sgreload_start_empty_alt",
|
|
MinProgress = 1,
|
|
LHIK = true,
|
|
LHIKIn = 1.6,
|
|
LHIKEaseIn = 0.2,
|
|
LHIKOut = 0,
|
|
TPAnimStartTime = 0.5,
|
|
ShellEjectAt = .1,
|
|
TPAnim = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN,
|
|
SoundTable = {
|
|
{s = path .. "forearm_back.ogg", t = 16/30},
|
|
{s = path1 .. "eject.ogg", t = 18/30},
|
|
{s = path .. "breechload.ogg", t = 15/30},
|
|
{s = path .. "forearm_forward.ogg", t = 33/30}, -- Not temporary
|
|
{s = rottle, t = 0.2},
|
|
{s = path .. "turn.ogg", t = 1.1}, -- Temporary
|
|
{s = rottle, t = 1.2},
|
|
{s = path .. "grab.ogg", t = 1.4},
|
|
},
|
|
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 = 10/30},
|
|
{s = path1 .. "eject.ogg", t = 11/30},
|
|
{s = path .. "breechload.ogg", t = 15/30},
|
|
{s = path .. "forearm_forward.ogg", t = 33/30}, -- Not temporary
|
|
{s = rottle, t = 0.2},
|
|
{s = path .. "turn.ogg", t = 1.1}, -- Temporary
|
|
{s = rottle, t = 1.2},
|
|
{s = path .. "grab.ogg", t = 1.5},
|
|
},
|
|
ForceEmpty = true,
|
|
},
|
|
["sgreload_insert"] = {
|
|
Source = "sgreload_insert",
|
|
LastClip1OutTime = 20/40,
|
|
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, v = 0.5},
|
|
},
|
|
},
|
|
["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",
|
|
LHIK = true,
|
|
LHIKIn = 0,
|
|
LHIKEaseOut = 0.3,
|
|
LHIKOut = 0.6,
|
|
MinProgress = 0.7,
|
|
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.18},
|
|
{s = rottle, t = 1.0},
|
|
{s = common .. "movement-shotgun-03.ogg", t = 1.3},
|
|
{s = path .. "presscheck1.ogg", t = 1.6},
|
|
{s = path .. "presscheck2.ogg", t = 2.1},
|
|
{s = rottle, t = 2.2},
|
|
{s = common .. "movement-shotgun-04.ogg", t = 2.25},
|
|
},
|
|
},
|
|
["exit_inspect_pump_empty"] = {
|
|
Source = "inspect_exit_pump_empty",
|
|
-- 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.18},
|
|
{s = rottle, t = 1.0},
|
|
{s = common .. "movement-shotgun-03.ogg", t = 1.3},
|
|
{s = path .. "presscheck1.ogg", t = 1.6},
|
|
{s = path .. "presscheck2.ogg", t = 2.1},
|
|
{s = rottle, t = 2.2},
|
|
{s = common .. "movement-shotgun-04.ogg", t = 2.25},
|
|
},
|
|
},
|
|
["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_empty",
|
|
-- 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.18},
|
|
{s = rottle, t = 1.0},
|
|
{s = common .. "movement-shotgun-03.ogg", t = 1.3},
|
|
{s = rottle, t = 2.2},
|
|
{s = common .. "movement-shotgun-04.ogg", t = 2.25},
|
|
},
|
|
},
|
|
}
|
|
SWEP.NoHideLeftHandInCustomization = true
|
|
|
|
SWEP.BulletBones = {
|
|
[2] = "Shell_Extra",
|
|
}
|
|
|
|
-- 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, 19, 0.4),
|
|
}}
|
|
},
|
|
|
|
["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_pump"] = {
|
|
VMBodygroups = {{ind = 6, bg = 1}}
|
|
},
|
|
["rail_modern"] = {
|
|
VMBodygroups = {{ind = 4, bg = 1}},
|
|
AttPosMods = {[1] = {
|
|
SlideAmount = {
|
|
vmin = Vector(0, -2.5, 1.8),
|
|
vmax = Vector(0, 0, 1.8)
|
|
},
|
|
}}
|
|
},
|
|
["rail_none_fix"] = {
|
|
VMBodygroups = {{ind = 8, bg = 0}}
|
|
},
|
|
}
|
|
|
|
SWEP.DefaultBodygroups = "00000100"
|
|
|
|
SWEP.Attachments = {
|
|
{
|
|
PrintName = "Optic",
|
|
DefaultAttName = "Iron Sights",
|
|
Slot = {"optic_lp", "optic"},
|
|
Bone = "spas_parent",
|
|
Offset = {
|
|
vpos = Vector(0, -1, 1.6),
|
|
vang = Angle(90, -90, -90),
|
|
},
|
|
CorrectiveAng = Angle(180,0,0),
|
|
SlideAmount = {
|
|
vmin = Vector(0, -4.5, 1.6),
|
|
vmax = Vector(0, -1.5, 1.6)
|
|
},
|
|
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, 23.5, 0.4),
|
|
vang = Angle(90, -90, -90),
|
|
},
|
|
ExcludeFlags = {"nomuzzle"}
|
|
},
|
|
{
|
|
PrintName = "Underbarrel",
|
|
Slot = {"foregrip"},
|
|
Bone = "pump",
|
|
--MergeSlots = {13},
|
|
Offset = {
|
|
vpos = Vector(0, -5, -0.075),
|
|
vang = Angle(90, -90, -90),
|
|
},
|
|
InstalledEles = {"rail_pump"},
|
|
},
|
|
{
|
|
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 |