Decay/lua/weapons/arccw_ud_glock.lua

1218 lines
36 KiB
Lua

SWEP.Base = "arccw_base"
SWEP.Spawnable = true
SWEP.Category = "ArcCW - Urban Coalition"
SWEP.UC_CategoryPack = "1Urban Decay"
SWEP.AdminOnly = false
SWEP.UseHands = true
-- Muzzle and shell 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 = "GEN3"
-- True name --
SWEP.TrueName = "Glock 17"
-- Trivia --
SWEP.Trivia_Class = "Pistol"
SWEP.Trivia_Desc = [[Handgun originally designed by a curtain rod manufacturer for the Austrian military. Its reliable and cost-effective polymer design has since made it one of the most popular and widely used pistols in the world, common in military, police and civilian use alike.
Great backup weapon due to its quick draw and sight times, but a relatively low damage output makes it a less than ideal primary.]]
SWEP.Trivia_Manufacturer = "Next Generation Weapons Inc."
SWEP.Trivia_Calibre = "9x19mm Parabellum"
SWEP.Trivia_Mechanism = "Short Recoil"
SWEP.Trivia_Country = "Austria"
SWEP.Trivia_Year = 1982
-- Weapon slot --
SWEP.Slot = 1
-- Weapon's manufacturer real name --
if GetConVar("arccw_truenames"):GetBool() then
SWEP.PrintName = SWEP.TrueName
SWEP.Trivia_Manufacturer = "Glock Ges.m.b.H."
end
-- Viewmodel / Worldmodel / FOV --
SWEP.ViewModel = "models/weapons/arccw/c_ud_glock.mdl"
SWEP.WorldModel = "models/weapons/arccw/c_ud_glock.mdl"
SWEP.ViewModelFOV = 60
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
-- Damage --
SWEP.Damage = ArcCW.UC.StdDmg["9mm"].max
SWEP.DamageMin = ArcCW.UC.StdDmg["9mm"].min
SWEP.Penetration = ArcCW.UC.StdDmg["9mm"].pen
SWEP.RangeMin = 15
SWEP.Range = 50 -- 4 shot until ~35m
SWEP.DamageType = DMG_BULLET
SWEP.ShootEntity = nil
SWEP.MuzzleVelocity = 375
SWEP.PhysBulletMuzzleVelocity = 375
SWEP.BodyDamageMults = ArcCW.UC.BodyDamageMults
-- Mag size --
SWEP.ChamberSize = 1
SWEP.Primary.ClipSize = 17
SWEP.ExtendedClipSize = 33
SWEP.ReducedClipSize = 10
-- Recoil --
SWEP.Recoil = 1.0
SWEP.RecoilSide = 0.5
SWEP.RecoilRise = 0.24
SWEP.VisualRecoilMult = 1
SWEP.MaxRecoilBlowback = 0.5
SWEP.MaxRecoilPunch = 0.6
SWEP.Sway = 1
-- Firerate / Firemodes --
SWEP.Delay = 60 / 525
SWEP.Num = 1
SWEP.Firemodes = {
{
Mode = 1,
},
{
PrintName = "fcg.safe2",
Mode = 0,
}
}
SWEP.ShootPitch = 100
SWEP.ShootVol = 120
SWEP.ProceduralRegularFire = false
SWEP.ProceduralIronFire = false
SWEP.ReloadInSights = true
-- NPC --
SWEP.NPCWeaponType = "weapon_pistol"
SWEP.NPCWeight = 60
-- Accuracy --
SWEP.AccuracyMOA = 7
SWEP.HipDispersion = 500
SWEP.MoveDispersion = 250
SWEP.JumpDispersion = 1000
SWEP.Primary.Ammo = "pistol"
SWEP.MagID = "glock"
SWEP.HeatCapacity = 50
SWEP.HeatDissipation = 20
SWEP.HeatDelayTime = 3
SWEP.MalfunctionMean = 150
SWEP.MalfunctionTakeRound = false
-- Speed multipliers --
SWEP.SpeedMult = 0.975
SWEP.SightedSpeedMult = 0.9
SWEP.SightTime = 0.25
SWEP.ShootSpeedMult = 1
-- Length --
SWEP.BarrelLength = 8
SWEP.ExtraSightDist = 10
-- Ironsights / Customization / Poses --
SWEP.HolsterPos = Vector(-0.5, -2, -1)
SWEP.HolsterAng = Angle(3.5, 7, -20)
SWEP.HolsterPos = Vector(-1, -2, 3)
SWEP.HolsterAng = Angle(-15.5, 2, -7)
SWEP.HoldtypeHolstered = "normal"
SWEP.HoldtypeActive = "pistol"
SWEP.HoldtypeSights = "revolver"
SWEP.IronSightStruct = {
Pos = Vector(-1.73, 1, 2.3),
Ang = Angle(0.3, 0, 0),
Magnification = 1,
ViewModelFOV = 55,
SwitchToSound = ratel, -- sound that plays when switching to this sight
SwitchFromSound = ratel
}
SWEP.ActivePos = Vector(0, 1, 2)
SWEP.ActiveAng = Angle(0, 0, -6)
SWEP.CustomizePos = Vector(7, -2, -2)
SWEP.CustomizeAng = Angle(15, 25, 0)
SWEP.CrouchPos = Vector(-2, -2, 1)
SWEP.CrouchAng = Angle(0, 0, -20)
SWEP.BarrelOffsetHip = Vector(3.5, 0, -3)
SWEP.MirrorVMWM = true
SWEP.WorldModelOffset = {
pos = Vector(-10.5, 3.5, -4.8),
ang = Angle(-6, 0, 180),
bone = "ValveBiped.Bip01_R_Hand",
}
-- Firing sounds --
local path = ")weapons/arccw_ud/glock/"
local path1 = ")weapons/arccw_ud/uzi/"
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 = nil
SWEP.DistantShootSoundSilenced = nil
SWEP.ShootDrySound = path .. "dryfire.ogg"
local tail = ")/arccw_uc/common/9x19/"
SWEP.DistantShootSoundOutdoors = {
tail .. "fire-dist-9x19-pistol-ext-01.ogg",
tail .. "fire-dist-9x19-pistol-ext-02.ogg",
tail .. "fire-dist-9x19-pistol-ext-03.ogg",
tail .. "fire-dist-9x19-pistol-ext-04.ogg",
tail .. "fire-dist-9x19-pistol-ext-05.ogg",
tail .. "fire-dist-9x19-pistol-ext-06.ogg"
}
SWEP.DistantShootSoundIndoors = {
tail .. "fire-dist-9x19-pistol-int-01.ogg",
tail .. "fire-dist-9x19-pistol-int-02.ogg",
tail .. "fire-dist-9x19-pistol-int-03.ogg",
tail .. "fire-dist-9x19-pistol-int-04.ogg",
tail .. "fire-dist-9x19-pistol-int-05.ogg",
tail .. "fire-dist-9x19-pistol-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
local miss = {common .. "punch-gun-miss-01.ogg", common .. "punch-gun-miss-02.ogg", common .. "punch-gun-miss-03.ogg", common .. "punch-gun-miss-04.ogg", common .. "punch-gun-miss-05.ogg", common .. "punch-gun-miss-06.ogg"}
local hitwall = {common .. "punch-gun-wall-01.ogg", common .. "punch-gun-wall-02.ogg", common .. "punch-gun-wall-03.ogg", common .. "punch-gun-wall-04.ogg", common .. "punch-gun-wall-05.ogg", common .. "punch-gun-wall-06.ogg"}
local hitplayer = {common .. "punch-gun-player-01.ogg", common .. "punch-gun-player-02.ogg", common .. "punch-gun-player-03.ogg", common .. "punch-gun-player-04.ogg", common .. "punch-gun-player-05.ogg", common .. "punch-gun-player-06.ogg"}
SWEP.MeleeMissSound = miss
SWEP.MeleeHitSound = hitwall
SWEP.MeleeHitNPCSound = hitplayer
-- Bodygroups --
SWEP.BulletBones = {
[2] = "glock_bullet1"
}
SWEP.AttachmentElements = {
["ud_glock_skin_tan"] = {
VMSkin = 1,
},
["ud_glock_skin_olive"] = {
VMSkin = 2,
},
["ud_glock_skin_custom"] = {
VMSkin = 3,
},
["ud_glock_mag_10"] = {
VMBodygroups = {{ind = 1, bg = 1}},
AttPosMods = {
[8] = {
vpos = Vector(0.1, 1, -1.2),
vang = Angle(90, 0, -90),
}
}
},
["ud_glock_frame_subcompact"] = {
VMBodygroups = {{ind = 0, bg = 2}},
},
["ud_glock_frame_flared"] = {
VMBodygroups = {{ind = 0, bg = 1}},
},
["ud_glock_mag_33"] = {
VMBodygroups = {{ind = 1, bg = 2}},
},
["ud_glock_mag_100"] = {
VMBodygroups = {{ind = 1, bg = 3}},
},
["ud_glock_rail_optic"] = {
VMBodygroups = {{ind = 2, bg = 1}},
},
["ud_glock_slide_comp"] = {
VMBodygroups = {{ind = 3, bg = 1}},
NameChange = "GEN3 Custom",
TrueNameChange = "Glock 17 Custom",
Override_IronSightStruct = {
Pos = Vector(-2.283, 0, 2.506),
Ang = Angle(0.58, 0, 0),
Magnification = 1,
}
},
["ud_glock_slide_lb"] = {
VMBodygroups = {{ind = 3, bg = 2}},
NameChange = "GEN3 Extended",
TrueNameChange = "Glock 17L",
AttPosMods = {
[5] = {
vpos = Vector(0, 0, 1.5),
vang = Angle(90, 0, -90),
}
}
},
["ud_glock_slide_auto"] = {
VMBodygroups = {{ind = 3, bg = 3}},
NameChange = "GEN3 Auto",
TrueNameChange = "Glock 18C",
},
["ud_glock_slide_subcompact"] = {
VMBodygroups = {{ind = 3, bg = 8}},
NameChange = "GEN3K",
TrueNameChange = "Glock 26",
AttPosMods = {
[5] = {
vpos = Vector(0, 0, -0.5),
vang = Angle(90, 0, -90),
}
}
},
["ud_glock_slide_cs"] = {
VMBodygroups = {{ind = 3, bg = 6}},
NameChange = "GEN3 CS",
TrueNameChange = "Glock 18CS",
},
["ud_glock_slide_carbine"] = {
VMBodygroups = {{ind = 3, bg = 4}, {ind=4,bg=1}},
NameChange = "GEN3 Euro Carbine",
TrueNameChange = "Glock 17XXXL",
AttPosMods = {
[5] = {
vpos = Vector(0, 0, 11.2),
vang = Angle(90, 0, -90),
}
}
},
["ud_glock_slide_sd"] = {
VMBodygroups = {{ind = 3, bg = 5}},
NameChange = "GEN3 Silent Mistress",
TrueNameChange = "Glock 17SD",
GivesFlags = {"sd"},
AttPosMods = {
[6] = {
vpos = Vector(0, 0.1, 5),
vang = Angle(90, 0, -90),
},
[7] = {
vpos = Vector(0, 0.1, 5),
vang = Angle(90, 0, -90),
},
}
},
["ud_glock_slide_nytesyte"] = {
VMBodygroups = {{ind = 3, bg = 7}},
NameChange = "GEN3 Homeboy",
TrueNameChange = "Glock 17 NyteSyte",
AttPosMods = {
[1] = {
vpos = Vector(-0.5, 0.05, -0.5),
vang = Angle(90, 0, 0),
}
},
Override_IronSightStruct = {
Pos = Vector(-2.65, 0, 3.18),
Ang = Angle(0, -0.5, -90),
Magnification = 1,
}
},
}
local desg_barr = {
["ud_glock_slide_auto"] = 1,
["ud_glock_slide_lb"] = 2,
["ud_glock_slide_carbine"] = 3,
["ud_glock_slide_comp"] = 4,
["ud_glock_slide_cs"] = 5,
["ud_glock_slide_sd"] = 6,
["ud_glock_slide_nytesyte"] = 7,
["ud_glock_slide_subcompact"] = 8,
}
local desg_cal = {
["ud_glock_caliber_40sw"] = 1,
["ud_glock_caliber_357sig"] = 2,
["ud_glock_caliber_10auto"] = 3,
["ud_glock_caliber_45acp"] = 4,
["ud_glock_caliber_22lr"] = 5,
["ud_glock_caliber_380acp"] = 6,
["ud_glock_caliber_460"] = 7,
["ud_glock_caliber_50gi"] = 8,
}
SWEP.Hook_NameChange = function(wep,name)
barrel = desg_barr[wep.Attachments[2].Installed] or 0
caliber = desg_cal[wep.Attachments[4].Installed] or 0
trueNames = GetConVar("arccw_truenames"):GetBool()
start = ""
mid = ""
suffix = ""
if trueNames then
start = "Glock "
if caliber == 0 then
if barrel == 1 then
mid = "18C"
elseif barrel == 2 then
mid = "17L"
elseif barrel == 5 then
mid = "18"
elseif barrel == 8 then
mid = "26"
else
mid = "17"
end
else
if caliber == 1 then
if barrel == 2 then
mid = "24"
elseif barrel == 8 then
mid = "27"
else
mid = "22"
end
elseif caliber == 2 then
if barrel == 8 then
mid = "33"
else
mid = "31"
end
elseif caliber == 3 then
if barrel == 2 then
mid = "40"
elseif barrel == 8 then
mid = "29"
else
mid = "20"
end
elseif caliber == 4 then
if barrel == 8 then
mid = "30"
else
mid = "21"
end
elseif caliber == 5 then
mid = "44"
elseif caliber == 6 then
if barrel == 8 then
mid = "28"
else
mid = "25"
end
elseif caliber == 7 then
if barrel == 8 then
mid = "30"
else
mid = "21"
end
elseif caliber == 8 then
if barrel == 8 then
mid = "30"
else
mid = "21"
end
end
end
else
start = "GEN"
if caliber == 0 then
mid = "3"
elseif caliber == 1 then
mid = "5"
elseif caliber == 2 then
mid = "6"
elseif caliber == 3 then
mid = "8"
elseif caliber == 4 then
mid = "11"
elseif caliber == 5 then
mid = "22"
elseif caliber == 6 then
mid = "15"
end
if barrel == 2 then
suffix = "L"
elseif barrel == 8 then
suffix = "K"
end
end
if barrel == 1 and (caliber ~= 0 or !trueNames) then
suffix = " Auto"
elseif barrel == 2 and !trueNames then
suffix = "L"
elseif barrel == 3 then
if trueNames then
suffix = "XXXL"
else
suffix = " Euro Carbine"
end
elseif barrel == 4 then
suffix = " Custom"
elseif barrel == 5 then
suffix = "CS"
elseif barrel == 6 then
if trueNames then
suffix = " Hush Puppy"
else
suffix = " Silent Mistress"
end
elseif barrel == 7 then
if trueNames then
suffix = " NyteSyte"
else
suffix = " Homeboy"
end
end
-- Todo: Subcompact variants when the barrel variant comes out
return start .. mid .. suffix
end
-- Animations --
SWEP.Hook_Think = ArcCW.UC.ADSReload
-- CHAN_ITEM doesn't sound too right
local ci = CHAN_AUTO
local ratel = {path .. "pistol_rattle_1.ogg", path .. "pistol_rattle_2.ogg", path .. "pistol_rattle_3.ogg"}
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"}
SWEP.Animations = {
["ready"] = {
Source = "fix",
Time = 53 / 30,
ShellEjectAt = false,
SoundTable = {
{s = path .. "draw.ogg", t = 0}, -- Not Temporary
{s = common .. "raise.ogg", t = 0.05},
{s = ratel, t = 0},
{s = path .. "slide_pull_new.ogg", t = 0.7, c = ci},
{s = path .. "sliderel_deact.ogg", t = 0.7, c = ci},
{s = path .. "slide_rel_new.ogg", t = 0.9, c = ci},
},
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.1,
LHIKOut = 0.2,
ProcDraw = true,
},
["idle"] = {
Source = "idle",
},
["idle_empty"] = {
Source = "idle_empty",
},
["draw"] = {
Source = "draw",
SoundTable = {
{s = path .. "draw.ogg", t = 0}, -- Not Temporary
{s = common .. "raise.ogg", t = 0.05},
},
MinProgress = 0.4
},
["draw_empty"] = {
Source = "draw_empty",
Time = 12 / 30,
SoundTable = {
{s = path .. "draw.ogg", t = 0}, -- Not Temporary
{s = common .. "raise.ogg", t = 0.05},
},
MinProgress = 0.4
},
["holster"] = {
Source = "holster",
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0,
LHIKOut = 0,
SoundTable = {
{s = common .. "cloth_2.ogg", t = 0},
{s = path .. "holster.ogg", t = 0.2}, -- Not Temporary
},
},
["holster_empty"] = {
Source = "holster_empty",
Time = 12 / 30,
LHIK = true,
LHIKIn = 0.4,
LHIKEaseIn = 0.4,
LHIKEaseOut = 0,
LHIKOut = 0,
SoundTable = {
{s = common .. "cloth_2.ogg", t = 0},
{s = path .. "holster.ogg", t = 0.2}, -- Not Temporary
},
},
["bash"] = {
Source = "melee2",
Time = 35 / 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.5 }},
},
["bash_empty"] = {
Source = "melee2_empty",
Time = 35 / 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"] = {
Source = "fire",
Time = 16 / 30,
ShellEjectAt = 0.03,
SoundTable = {
{ s = mech, t = 0, v = 0.5 }
},
},
["fire_iron"] = {
Source = "fire",
Time = 16 / 30,
ShellEjectAt = 0.03,
SoundTable = {
{ s = common .. "common_mech_light.ogg", t = 0, v = 0.5 },
{ s = mech, t = 0 }
},
},
["fire_empty"] = {
Source = "fire_empty",
Time = 16 / 30,
ShellEjectAt = 0.03,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Not Temporary
},
},
["fire_iron_empty"] = {
Source = "fire_empty",
Time = 16 / 30,
ShellEjectAt = 0.03,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0}, -- Not Temporary
},
},
["fire_stock"] = {
Source = "fire_stock",
Time = 16 / 30,
ShellEjectAt = 0.03,
SoundTable = {
{ s = mech, t = 0, v = 0.5 }
},
},
["fire_empty_stock"] = {
Source = "fire_empty_stock",
Time = 16 / 30,
ShellEjectAt = 0.03,
SoundTable = {
{s = path .. "mech_last.ogg", t = 0, c = ci}, -- Not Temporary
},
},
["fire_cycle"] = {
Source = "fire_cycle",
Time = 16 / 30,
},
["fix"] = {
Source = "fix",
Time = 53 / 30,
ShellEjectAt = false,
SoundTable = {
{s = rottle, t = 0, c = ci},
{s = path .. "slide_pull_new.ogg", t = 0.7, c = ci},
{s = path .. "sliderel_deact.ogg", t = 0.7, c = ci},
{s = path .. "slide_rel_new.ogg", t = 0.9, c = ci},
},
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.1,
LHIKOut = 0.2,
},
["fix_empty"] = {
Source = "fix_empty",
Time = 50 / 30,
ShellEjectAt = false,
SoundTable = {
{s = path .. "magtap.ogg", t = 0.18, c = ci},
{s = path .. "slide_pull_new.ogg", t = 0.5, c = ci},
{s = path .. "sliderel_deact.ogg", t = 0.5, c = ci},
},
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.1,
LHIKOut = 0.2,
},
-- ["fix_10"] = {
-- Source = "fix_10",
-- Time = 40 / 30,
-- ShellEjectAt = false,
-- SoundTable = {
-- {s = path .. "magtap.ogg", t = 0.18, c = ci},
-- {s = path .. "slide_pull_new.ogg", t = 0.5, c = ci},
-- {s = path .. "sliderel_deact.ogg", t = 0.5, c = ci},
-- {s = path .. "slide_rel_new.ogg", t = 0.7, c = ci},
-- },
-- LHIK = true,
-- LHIKIn = 0.2,
-- LHIKEaseIn = 0.1,
-- LHIKEaseOut = 0.1,
-- LHIKOut = 0.2,
-- },
-- ["fix_empty_10"] = {
-- Source = "fix_empty_10",
-- Time = 40 / 30,
-- ShellEjectAt = false,
-- SoundTable = {
-- {s = path .. "magtap.ogg", t = 0.18, c = ci},
-- {s = path .. "slide_pull_new.ogg", t = 0.5, c = ci},
-- {s = path .. "sliderel_deact.ogg", t = 0.5, c = ci},
-- },
-- LHIK = true,
-- LHIKIn = 0.2,
-- LHIKEaseIn = 0.1,
-- LHIKEaseOut = 0.1,
-- LHIKOut = 0.2,
-- },
-- ["fix_33"] = {
-- Source = "fix_33",
-- Time = 40 / 30,
-- ShellEjectAt = false,
-- SoundTable = {
-- {s = path .. "magtap.ogg", t = 0.18, c = ci},
-- {s = path .. "slide_pull_new.ogg", t = 0.5, c = ci},
-- {s = path .. "sliderel_deact.ogg", t = 0.5, c = ci},
-- {s = path .. "slide_rel_new.ogg", t = 0.7, c = ci},
-- },
-- LHIK = true,
-- LHIKIn = 0.2,
-- LHIKEaseIn = 0.1,
-- LHIKEaseOut = 0.1,
-- LHIKOut = 0.2,
-- },
-- ["fix_empty_33"] = {
-- Source = "fix_empty_33",
-- Time = 40 / 30,
-- ShellEjectAt = false,
-- SoundTable = {
-- {s = path .. "magtap.ogg", t = 0.18, c = ci},
-- {s = path .. "slide_pull_new.ogg", t = 0.5, c = ci},
-- {s = path .. "sliderel_deact.ogg", t = 0.5, c = ci},
-- },
-- LHIK = true,
-- LHIKIn = 0.2,
-- LHIKEaseIn = 0.1,
-- LHIKEaseOut = 0.1,
-- LHIKOut = 0.2,
-- },
-- ["fix_100"] = {
-- Source = "fix_100",
-- Time = 40 / 30,
-- ShellEjectAt = false,
-- SoundTable = {
-- {s = ratel, t = 0},
-- {s = path .. "slide_pull_new.ogg", t = 0.4, c = ci},
-- {s = path .. "sliderel_deact.ogg", t = 0.4, c = ci},
-- {s = path .. "slide_rel_new.ogg", t = 0.6, c = ci},
-- },
-- LHIK = true,
-- LHIKIn = 0.2,
-- LHIKEaseIn = 0.1,
-- LHIKEaseOut = 0.1,
-- LHIKOut = 0.2,
-- },
-- ["fix_empty_100"] = {
-- Source = "cycle_empty",
-- Time = 40 / 30,
-- ShellEjectAt = false,
-- SoundTable = {
-- {s = ratel, t = 0},
-- {s = path .. "sliderel_deact.ogg", t = 0.5, c = ci},
-- {s = path .. "slide_pull_new.ogg", t = 0.5, c = ci},
-- },
-- LHIK = true,
-- LHIKIn = 0.2,
-- LHIKEaseIn = 0.1,
-- LHIKEaseOut = 0.1,
-- LHIKOut = 0.2,
-- },
["cycle"] = {
Source = "cycle",
Time = 36 / 30,
MinProgress = 0.75,
ShellEjectAt = 0.4,
SoundTable = {
{s = rottle, t = 0, v = 50},
{s = path .. "slide_pull_new.ogg", t = 0.18, c = ci, v = 50},
{s = path .. "sliderel_deact.ogg", t = 0.18, c = ci, v = 50},
{s = path .. "slide_rel_new.ogg", t = 0.3, c = ci, v = 50},
},
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.1,
LHIKOut = 0.2,
},
["cycle_empty"] = {
Source = "cycle_empty",
Time = 36 / 30,
ShellEjectAt = 0.4,
SoundTable = {
{s = rottle, t = 0, v = 50},
{s = path .. "slide_pull_new.ogg", t = 0.18, c = ci, v = 50},
{s = path .. "slide_lock.ogg", t = 0.4, c = ci, v = 50},
},
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.1,
LHIKEaseOut = 0.1,
LHIKOut = 0.2,
},
-- 17 Round Reloads --
["reload"] = {
Source = "reload",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 66 / 30,
MinProgress = 1.1,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = rottle, t = 0},
{s = common .. "magpouch_pull_small.ogg", t = 0.1, v = 0.5},
{s = path .. "magout_partial_start.ogg", t = 0.2, c = ci},
{s = ratel, t = 0.37},
{s = path .. "magout_partial.ogg", t = 0.5, c = ci},
{s = ratel, t = 0.4},
{s = path .. "magin_new.ogg", t = 0.65, c = ci},
{s = rottle, t = 0.9, v = 0.6},
{s = rottle, t = 1.2},
{s = common .. "magpouch_replace_small.ogg", t = 1.375},
{s = ratel, t = 1.6},
{s = path .. "grab.ogg", t = 1.8, c = ci},
},
},
["reload_empty"] = {
Source = "reload_empty",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 75 / 30,
MinProgress = 1.5,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = rottle, t = 0.1},
{s = path .. "magout_empty.ogg", t = 0.13, c = ci},
{s = common .. "magpouch_pull_small.ogg", t = 0.35},
{s = rottle, t = 0.36, v = 0.6},
{s = path .. "magin_new.ogg", t = 0.6, v = 1.5},
{s = ratel, t = 0.5},
{s = common .. "pistol_magdrop.ogg", t = 0.65},
{s = rottle, t = 1.15, v = 0.6},
{s = ratel, t = 1.55},
{s = path .. "chamber.ogg", t = 1.55},
{s = rottle, t = 1.6, v = 0.6},
{s = ratel, t = 1.7},
{s = path .. "grab.ogg", t = 1.95, c = ci},
},
},
["reload_empty_fesiug"] = {
Source = "reload_empty_fesiug",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 78 / 30,
MinProgress = 1.5,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = path .. "magout_empty.ogg", t = 0.13, c = ci},
{s = common .. "magpouch_pull_small.ogg", t = 0.35},
{s = path .. "magin_new.ogg", t = 0.55, c = ci},
{s = ratel, t = 0.5},
{s = common .. "pistol_magdrop.ogg", t = 0.65},
{s = ratel, t = 1.2},
{s = path .. "sliderel_deact.ogg", t = 1.62, c = ci},
{s = path .. "chamber.ogg", t = 1.85, v = 1.5},
{s = rottle, t = 1.9},
},
},
-- 10 Round Reloads --
["reload_10"] = {
Source = "reload_10",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 65 / 30,
MinProgress = 1.1,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = common .. "magpouch_pull_small.ogg", t = 0.025, c = ci},
{s = ratel, t = 0.3},
{s = path .. "magrelease.ogg", t = 0.31, c = ci},
{s = path .. "magout_partial.ogg", t = 0.47, c = ci},
{s = path .. "magin_new.ogg", t = 0.53, v = 1.5},
{s = common .. "magpouch_replace_small.ogg", t = 1.2},
{s = rottle, t = 0.65},
{s = path .. "grab.ogg", t = 1.78, c = ci},
},
},
["reload_empty_10"] = {
Source = "reload_empty_10",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 74 / 30,
MinProgress = 1.5,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = path .. "magrelease.ogg", t = 0.15, c = ci},
{s = path .. "magout_empty.ogg", t = 0.1, c = ci},
{s = common .. "magpouch_pull_small.ogg", t = 0.3, c = ci},
{s = path .. "magin_new.ogg", t = 0.47, c = ci},
{s = ratel, t = 0.5},
{s = common .. "pistol_magdrop.ogg", t = 0.65},
{s = rottle, t = 0.9},
{s = path .. "chamber.ogg", t = 1.45, c = ci},
{s = path .. "grab.ogg", t = 1.89, c = ci},
},
},
-- 33 Round Reloads --
["reload_33"] = {
Source = "reload_33",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 66 / 30,
MinProgress = 1.1,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = common .. "magpouch.ogg", t = 0.05},
{s = path .. "magrelease.ogg", t = 0.17, c = ci},
{s = ratel, t = 0.3},
{s = path .. "magout_partial.ogg", t = 0.49, c = ci},
{s = path .. "magin_new.ogg", t = 0.6},
{s = rottle, t = 0.75},
{s = common .. "magpouchin.ogg", t = 1.25, v = .35},
{s = path .. "grab.ogg", t = 1.8, c = ci},
},
},
["reload_empty_33"] = {
Source = "reload_empty_33",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 76 / 30,
MinProgress = 1.5,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = path .. "magrelease.ogg", t = 0.15, c = ci},
{s = path .. "magout_empty.ogg", t = 0.16, c = ci},
{s = common .. "magpouch.ogg", t = 0.35, c = ci},
{s = ratel, t = 0.5},
{s = path .. "magin_new.ogg", t = 0.65, c = ci},
{s = common .. "pistol_magdrop.ogg", t = 0.66},
{s = rottle, t = 1.3},
{s = path .. "chamber.ogg", t = 1.52, c = ci},
{s = path .. "grab.ogg", t = 1.9, c = ci},
},
},
-- 100 Round Reloads --
["reload_100"] = {
Source = "reload_100",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 56 / 30,
MinProgress = 1.3,
LastClip1OutTime = 0.9,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = path .. "magrelease.ogg", t = 0.1, c = ci},
{s = path .. "magout.ogg", t = 0.2, c = ci},
{s = rottle, t = 0.25},
{s = common .. "magpouch.ogg", t = 0.5, c = ci},
{s = path .. "magin.ogg", t = 0.6, c = ci},
{s = ratel, t = 0.7},
{s = path .. "magtap.ogg", t = 1.1, c = ci},
{s = rottle, t = 1.2},
{s = path .. "grab.ogg", t = 1.4, c = ci},
},
},
["reload_empty_100"] = {
Source = "reload_empty_100",
TPAnim = ACT_HL2MP_GESTURE_RELOAD_PISTOL,
Time = 66 / 30,
MinProgress = 1.75,
LastClip1OutTime = 0.7,
LHIK = true,
LHIKIn = 0.2,
LHIKEaseIn = 0.2,
LHIKEaseOut = 0.15,
LHIKOut = 0.3,
SoundTable = {
{s = ratel, t = 0},
{s = path .. "magrelease.ogg", t = 0.12, c = ci},
{s = path .. "magout.ogg", t = 0.12, c = ci},
{s = path .. "magin.ogg", t = 0.5, c = ci},
{s = common .. "magdrop.ogg", t = 0.55},
{s = ratel, t = 0.7},
{s = path .. "magtap.ogg", t = 1.1, c = ci},
{s = path .. "sliderel_deact.ogg", t = 1.33, c = ci},
{s = path .. "chamber.ogg", t = 1.525, c = ci},
{s = rottle, t = 1.6},
},
},
}
SWEP.AutosolveSourceSeq = "idle"
SWEP.Hook_TranslateAnimation = function(wep, anim)
if wep.Attachments[9].Installed and (anim == "fire" or anim == "fire_empty") then
return anim .. "_stock"
end
end
SWEP.Attachments = {
{
PrintName = "Optic",
DefaultAttName = "Iron Sights",
Slot = {"optic_lp"},
Bone = "glock_slide",
Offset = {
vpos = Vector(-0.0125, -0.4, -0.2),
vang = Angle(90, 0, -88),
},
CorrectivePos = Vector(0, 0, 0.02),
VMScale = Vector(.9, .9, .9),
WMScale = VMScale,
--WMScale = Vector(1.25, 1.25, 1.25),
--InstalledEles = {"ud_glock_rail_optic"},
},
{
PrintName = "Slide",
DefaultAttName = "Standard Slide",
DefaultAttIcon = Material("entities/att/acwatt_ud_glock_slide.png", "smooth mips"),
Slot = "ud_glock_slide",
Bone = "glock_flash",
Offset = {
vpos = Vector(2.4, -0.2, -29.2), -- Op. CS slide
vang = Angle(90, 3, -90),
},
},
{
PrintName = "Frame",
DefaultAttName = "Standard Frame",
DefaultAttIcon = Material("entities/att/acwatt_ud_glock_frame.png", "smooth mips"),
Slot = "ud_glock_frame",
},
{
PrintName = "Caliber",
DefaultAttName = "9x19mm Parabellum",
DefaultAttIcon = Material("entities/att/uc_bullets/9x19.png", "smooth mips"),
Slot = "ud_glock_caliber",
},
{
PrintName = "Muzzle",
DefaultAttName = "Standard Muzzle",
Slot = {"muzzle", "ud_glock_muzzle"},
Bone = "glock_flash",
Offset = {
vpos = Vector(0, 0, -0.5),
vang = Angle(90, 0, -90),
},
ExcludeFlags = {"sd"},
VMScale = Vector(0.8, 0.8, 0.8)
},
{
PrintName = "Tactical",
Slot = {"tac_pistol", "uce_pistol_foregrip"},
Bone = "glock_parent",
Offset = {
vpos = Vector(0, -1.3, 5),
vang = Angle(90, 0, -90),
},
MergeSlots = {7},
ExcludeFlags = {"ud_glock_slide_subcompact"}
},
{
Hidden = true,
PrintName = "Tactical",
Slot = {"tac_pistol"},
Bone = "glock_parent",
Offset = {
vpos = Vector(0, -1.3, 5),
vang = Angle(90, 0, -90),
}, -- This slot is obsolete and exists solely for compatiblity with old loadouts. Do not remove.
},
{
PrintName = "Magazine",
Slot = {"ud_glock_mag"},
DefaultAttIcon = Material("entities/att/acwatt_ud_glock_mag_17.png", "smooth mips"),
DefaultAttName = "17-Round Mag",
},
{
PrintName = "Stock",
Slot = {"uc_stock", "go_stock_pistol_bt"},
DefaultAttName = "No Stock",
Bone = "glock_parent",
Offset = {
vpos = Vector(0.1, 2.9, -2.1),
vang = Angle(90, 0, -90),
},
ExcludeFlags = {"ud_glock_frame_subcompact"}
},
{
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 = "glock_slide",
Offset = {
vpos = Vector(0.45, 0.1, 4),
vang = Angle(90, 0, -90),
},
VMScale = Vector(0.8, 0.8, 0.8),
},
{
PrintName = "Material",
DefaultAttName = "Black Polymer",
DefaultAttIcon = Material("entities/att/acwatt_ud_glock_material.png", "smooth mips"),
Slot = "ud_glock_skin",
FreeSlot = true,
},
}