770 lines
23 KiB
Lua
770 lines
23 KiB
Lua
|
AddCSLuaFile()
|
||
|
SWEP.Base = "arc9_uplp_base"
|
||
|
SWEP.Category = "ARC9 - Poly Arms"
|
||
|
SWEP.Spawnable = true
|
||
|
|
||
|
---- FUNDAMENTALS
|
||
|
|
||
|
SWEP.Slot = 2 -- Which slot the weapon is in; starts at 0
|
||
|
|
||
|
---- Name, Description, Class, Category and Trivia
|
||
|
SWEP.PrintName = ARC9:GetPhrase("uplp_weapon_g36_k")
|
||
|
SWEP.Description = ARC9:GetPhrase("uplp_weapon_g36_k_desc")
|
||
|
|
||
|
SWEP.Class = ARC9:GetPhrase("uplp_class_weapon_ar") -- In the Customization Menu
|
||
|
SWEP.SubCategory = ARC9:GetPhrase("uplp_category_weapon_ar") -- In the Spawnmenu
|
||
|
|
||
|
SWEP.Trivia = {
|
||
|
[ ARC9:GetPhrase( "uplp_realname" ) ] = ARC9:GetPhrase("uplp_weapon_g36_real"),
|
||
|
|
||
|
[ ARC9:GetPhrase( "uplp_manufacturer" ) ] = ARC9:GetPhrase( "uplp_weapon_g36_manufacturer" ),
|
||
|
[ ARC9:GetPhrase( "uplp_caliber" ) ] = ARC9:GetPhrase( "uplp_caliber_5.56x45mm"),
|
||
|
[ ARC9:GetPhrase( "uplp_mechanism" ) ] = string.format( ARC9:GetPhrase("uplp_mechanism_3" ),
|
||
|
ARC9:GetPhrase( "uplp_mechanism_shortstroke" ),
|
||
|
ARC9:GetPhrase( "uplp_mechanism_closedbolt" ),
|
||
|
ARC9:GetPhrase( "uplp_mechanism_rotatingbolt" ) ),
|
||
|
[ ARC9:GetPhrase( "uplp_country" ) ] = ARC9:GetPhrase( "uplp_country_usa" ),
|
||
|
[ ARC9:GetPhrase( "uplp_year" ) ] = string.format( ARC9:GetPhrase("uplp_year_present"), "1964" ),
|
||
|
}
|
||
|
|
||
|
|
||
|
SWEP.Credits = {
|
||
|
[ ARC9:GetPhrase( "uplp_lua" ) ] = "Moka, 8Z",
|
||
|
[ ARC9:GetPhrase( "uplp_assets" ) ] = "TastyTony",
|
||
|
[ ARC9:GetPhrase( "uplp_animations" ) ] = "Partexedd",
|
||
|
[ ARC9:GetPhrase( "uplp_sounds" ) ] = "rzen1th",
|
||
|
[ ARC9:GetPhrase( "uplp_general" ) ] = "Darsu",
|
||
|
}
|
||
|
|
||
|
SWEP.StandardPresets = {
|
||
|
}
|
||
|
|
||
|
SWEP.DefaultBodygroups = "010111"
|
||
|
-- 0: Main
|
||
|
-- 0
|
||
|
-- 1: Stock
|
||
|
-- 0 - C
|
||
|
-- 1 - R
|
||
|
-- 2 -
|
||
|
-- 2: Carryhandle
|
||
|
-- 0 - C Carryhandle
|
||
|
-- 1 - R Optic
|
||
|
-- 2 -
|
||
|
-- 3: Handguard
|
||
|
-- 0 - C
|
||
|
-- 1 - K
|
||
|
-- 2 - R
|
||
|
-- 3 -
|
||
|
-- 4: Break
|
||
|
-- 0 - C
|
||
|
-- 1 - K
|
||
|
-- 2 - R
|
||
|
-- 3 -
|
||
|
-- 5: Rails
|
||
|
-- 0 - C
|
||
|
-- 1 -
|
||
|
|
||
|
---- Muzzle Effects, Shell Effects, Camera
|
||
|
SWEP.MuzzleParticle = "muzzleflash_3"
|
||
|
SWEP.MuzzleEffectQCA = 1
|
||
|
|
||
|
SWEP.TracerNum = 1
|
||
|
SWEP.TracerSize = 1
|
||
|
|
||
|
SWEP.ShellModel = "models/weapons/arc9/uplp/shells/shell_556.mdl"
|
||
|
SWEP.ShellScale = 1.5
|
||
|
SWEP.ShellPitch = 90
|
||
|
|
||
|
SWEP.CaseEffectQCA = 2
|
||
|
SWEP.CamQCA = 3
|
||
|
SWEP.CamOffsetAng = Angle(0, 0, 90)
|
||
|
|
||
|
---- View & Worldmodel
|
||
|
SWEP.ViewModel = "models/weapons/arc9/c_uplp-f_g36-7.mdl"
|
||
|
SWEP.WorldModel = "models/weapons/arc9/w_uplp_ar15.mdl"
|
||
|
|
||
|
SWEP.MirrorVMWM = true
|
||
|
SWEP.NoTPIKVMPos = true
|
||
|
-- SWEP.WorldModelMirror = "models/weapons/arc9/c_uplp_ar15.mdl"
|
||
|
SWEP.WorldModelOffset = {
|
||
|
Pos = Vector(-3.5, 3, -8),
|
||
|
Ang = Angle(0, 0, 180),
|
||
|
TPIKPos = Vector(-4.5, 2, -7),
|
||
|
TPIKAng = Angle(0, 0, 180),
|
||
|
Scale = 1
|
||
|
}
|
||
|
|
||
|
SWEP.ViewModelFOVBase = 70
|
||
|
|
||
|
SWEP.AnimShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_AR2
|
||
|
SWEP.AnimReload = ACT_HL2MP_GESTURE_RELOAD_MAGIC
|
||
|
|
||
|
---- Weapon Stats and Behaviour
|
||
|
-- Damage
|
||
|
SWEP.DamageMax = 25 -- Damage dealt point-blank
|
||
|
SWEP.DamageMin = 14 -- Damage dealt after maximum range
|
||
|
SWEP.DamageType = DMG_BULLET
|
||
|
|
||
|
SWEP.Penetration = 15 -- Units of wood that can be penetrated
|
||
|
SWEP.ImpactForce = 2 -- How much kick things will have when hit
|
||
|
|
||
|
-- Range
|
||
|
SWEP.RangeMin = 20 / ARC9.HUToM
|
||
|
SWEP.RangeMax = 60 / ARC9.HUToM
|
||
|
|
||
|
-- Physical Bullets
|
||
|
SWEP.PhysBulletMuzzleVelocity = 715 / ARC9.HUToM
|
||
|
SWEP.PhysBulletGravity = 1.5
|
||
|
SWEP.PhysBulletDrag = 1.5
|
||
|
|
||
|
-- Magazine Info
|
||
|
SWEP.Ammo = "smg1" -- What ammo type this gun uses.
|
||
|
|
||
|
SWEP.ChamberSize = 1
|
||
|
SWEP.ClipSize = 30
|
||
|
|
||
|
-- Recoil
|
||
|
SWEP.Recoil = 1
|
||
|
SWEP.RecoilUp = 1
|
||
|
SWEP.RecoilSide = 1.4
|
||
|
|
||
|
SWEP.RecoilRandomUp = 1
|
||
|
SWEP.RecoilRandomSide = 1.1
|
||
|
|
||
|
SWEP.RecoilRise = 0
|
||
|
SWEP.MaxRecoilBlowback = 0
|
||
|
SWEP.RecoilPunch = 0
|
||
|
SWEP.RecoilAutoControl = 1.9
|
||
|
|
||
|
SWEP.RecoilMultSights = 1
|
||
|
SWEP.RecoilMultCrouch = 0.75
|
||
|
|
||
|
-- Visual Recoil
|
||
|
SWEP.VisualRecoil = 0.5
|
||
|
SWEP.VisualRecoilMultSights = 1
|
||
|
SWEP.VisualRecoilCenter = Vector(2, 11, 2)
|
||
|
SWEP.VisualRecoilUp = 0.075 -- Vertical tilt
|
||
|
SWEP.VisualRecoilSide = 0.01 -- Horizontal tilt
|
||
|
SWEP.VisualRecoilRoll = -2.5 -- Roll tilt
|
||
|
SWEP.VisualRecoilPunch = 10 -- How far back visual recoil moves the gun
|
||
|
SWEP.VisualRecoilDampingConst = 80
|
||
|
SWEP.VisualRecoilSpringMagnitude = 0.44
|
||
|
SWEP.VisualRecoilPositionBumpUp = .25
|
||
|
|
||
|
SWEP.VisualRecoilMultHipFire = .35
|
||
|
SWEP.VisualRecoilUpHipFire = 2
|
||
|
SWEP.VisualRecoilSideHipFire = -0.1
|
||
|
SWEP.VisualRecoilRollHipFire = 20
|
||
|
SWEP.VisualRecoilPunchHipFire = 2
|
||
|
SWEP.VisualRecoilDampingConstHipFire = 45
|
||
|
SWEP.VisualRecoilPositionBumpUpHipFire = .5
|
||
|
|
||
|
-- Accuracy and Spread
|
||
|
SWEP.Spread = 0.008
|
||
|
SWEP.SpreadAddHipFire = 0.025
|
||
|
|
||
|
SWEP.SpreadAddRecoil = 0.012
|
||
|
SWEP.SpreadAddMove = 0.01
|
||
|
SWEP.SpreadAddMidAir = 0.05
|
||
|
|
||
|
SWEP.SpreadMultSights = 1
|
||
|
SWEP.SpreadMultMove = 1
|
||
|
|
||
|
SWEP.RecoilDissipationRate = 8
|
||
|
SWEP.RecoilResetTime = 0.03
|
||
|
SWEP.RecoilPerShot = 1 / 5
|
||
|
SWEP.RecoilMax = 1
|
||
|
SWEP.RecoilModifierCap = 1
|
||
|
|
||
|
-- Weapon handling
|
||
|
SWEP.Speed = 0.85 -- Walk speed multiplier
|
||
|
SWEP.SpeedMultSights = 0.7 -- When aiming
|
||
|
SWEP.SpeedMultShooting = 0.9
|
||
|
|
||
|
SWEP.AimDownSightsTime = 0.42 -- Time it takes to fully enter ADS
|
||
|
SWEP.SprintToFireTime = 0.42 -- Time it takes to fully enter sprint
|
||
|
|
||
|
SWEP.SwayAddSights = 0
|
||
|
SWEP.BarrelLength = 35
|
||
|
|
||
|
-- Shooting and Firemodes
|
||
|
SWEP.RPM = 670 -- How fast gun shoot
|
||
|
SWEP.HeatCapacity = 180 -- For suppresors; how many shots for full heat With big silencer (Small silencers will make this number lower down to 70%)
|
||
|
|
||
|
SWEP.Num = 1 -- How many bullets shot at once
|
||
|
|
||
|
SWEP.Firemodes = {
|
||
|
{ Mode = -1, -- Full
|
||
|
PoseParam = 1 },
|
||
|
{ Mode = 1, -- Semi
|
||
|
RPM = 555,
|
||
|
PoseParam = 2 }
|
||
|
}
|
||
|
|
||
|
SWEP.ShootPitch = 90
|
||
|
SWEP.ShootVolume = 120
|
||
|
|
||
|
-- HoldType Info
|
||
|
SWEP.HoldType = "ar2"
|
||
|
SWEP.HoldTypeSprint = "passive"
|
||
|
SWEP.HoldTypeHolstered = nil
|
||
|
SWEP.HoldTypeSights = "smg"
|
||
|
SWEP.HoldTypeCustomize = "slam"
|
||
|
SWEP.HoldTypeNPC = nil
|
||
|
|
||
|
-- NPC Info
|
||
|
SWEP.NPCWeaponType = "weapon_ar2"
|
||
|
SWEP.NPCWeight = 60
|
||
|
|
||
|
-- Iron Sight and Sight Info
|
||
|
SWEP.IronSights = {
|
||
|
Pos = Vector(-3.05491, -3, 0.75966),
|
||
|
Ang = Angle(0, 0, 0),
|
||
|
Magnification = 1.15,
|
||
|
ViewModelFOV = 65,
|
||
|
}
|
||
|
|
||
|
SWEP.IronSightsHook = function(self) -- If any attachments equipped should alter Irons
|
||
|
local attached = self:GetElements()
|
||
|
|
||
|
if attached["uplp_ar15_rs_tall"] then
|
||
|
return {
|
||
|
Pos = Vector(-3.05491, -3, -0.17),
|
||
|
Ang = Angle(0, 0, 0),
|
||
|
Magnification = 1.15,
|
||
|
ViewModelFOV = 65,
|
||
|
}
|
||
|
elseif attached["uplp_ar15_rs_short"] then
|
||
|
return {
|
||
|
Pos = Vector(-3.05491, -3, -0.03),
|
||
|
Ang = Angle(0, 0, 0),
|
||
|
Magnification = 1.15,
|
||
|
ViewModelFOV = 65,
|
||
|
}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Customization Menu Info
|
||
|
SWEP.CustomizePos = Vector(14, 32.5, 5)
|
||
|
SWEP.CustomizeAng = Angle(90, 0, 0)
|
||
|
SWEP.CustomizeRotateAnchor = Vector(14, -4, -3)
|
||
|
|
||
|
SWEP.CustomizeSnapshotPos = Vector(0, 5, 0)
|
||
|
SWEP.CustomizeSnapshotFOV = 90
|
||
|
|
||
|
-- Dropped Magazine
|
||
|
SWEP.ShouldDropMag = true
|
||
|
SWEP.ShouldDropMagEmpty = true
|
||
|
SWEP.DropMagazineModel = "models/weapons/arc9/uplp/ar15_mag_stanag30.mdl"
|
||
|
SWEP.DropMagazineTime = 0.33 * 1.1
|
||
|
SWEP.DropMagazineQCA = 4
|
||
|
SWEP.DropMagazinePos = Vector(0, 1.75, -2.5)
|
||
|
SWEP.DropMagazineAng = Angle(90, 90, 90)
|
||
|
SWEP.DropMagazineVelocity = Vector(0, -15, 10)
|
||
|
|
||
|
---- Sounds
|
||
|
|
||
|
-- urbna!
|
||
|
local pathUT = "uplp_urban_temp/ar15/"
|
||
|
local pathREAL = "uplp_f/g36/"
|
||
|
local pathUTS = "uplp_urban_temp/scar/"
|
||
|
local pathUTA = "uplp_urban_temp/ak/"
|
||
|
local pathUTC = "uplp_urban_temp/common/"
|
||
|
|
||
|
SWEP.ShootSound = {
|
||
|
pathREAL .. "fire-01.ogg",
|
||
|
pathREAL .. "fire-02.ogg",
|
||
|
pathREAL .. "fire-03.ogg",
|
||
|
pathREAL .. "fire-04.ogg",
|
||
|
pathREAL .. "fire-05.ogg",
|
||
|
pathREAL .. "fire-06.ogg",
|
||
|
}
|
||
|
|
||
|
SWEP.ShootSoundSilenced = {
|
||
|
pathUT .. "fire-sup-01.ogg",
|
||
|
pathUT .. "fire-sup-02.ogg",
|
||
|
pathUT .. "fire-sup-03.ogg",
|
||
|
pathUT .. "fire-sup-04.ogg",
|
||
|
pathUT .. "fire-sup-05.ogg",
|
||
|
pathUT .. "fire-sup-06.ogg",
|
||
|
}
|
||
|
|
||
|
SWEP.ShootSoundSilencedIndoor = SWEP.ShootSoundSilenced
|
||
|
|
||
|
SWEP.DistantShootSound = {
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-ext-01.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-ext-02.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-ext-03.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-ext-04.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-ext-05.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-ext-06.ogg",
|
||
|
}
|
||
|
SWEP.DistantShootSoundIndoor = {
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-int-01.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-int-02.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-int-03.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-int-04.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-int-05.ogg",
|
||
|
pathUTC .. "556tails/fire-dist-556x45-rif-int-06.ogg",
|
||
|
}
|
||
|
|
||
|
SWEP.DistantShootSoundSilenced = {
|
||
|
pathUTC .. "generictails/sup-tail-01.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-02.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-03.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-04.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-05.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-06.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-07.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-08.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-09.ogg",
|
||
|
pathUTC .. "generictails/sup-tail-10.ogg"
|
||
|
}
|
||
|
SWEP.DistantShootSoundSilencedIndoor = {
|
||
|
pathUTC .. "generictails/fire-dist-int-pistol-light-01.ogg",
|
||
|
pathUTC .. "generictails/fire-dist-int-pistol-light-02.ogg",
|
||
|
pathUTC .. "generictails/fire-dist-int-pistol-light-03.ogg",
|
||
|
pathUTC .. "generictails/fire-dist-int-pistol-light-04.ogg",
|
||
|
pathUTC .. "generictails/fire-dist-int-pistol-light-05.ogg",
|
||
|
pathUTC .. "generictails/fire-dist-int-pistol-light-06.ogg",
|
||
|
}
|
||
|
|
||
|
SWEP.DropMagazineSounds = {
|
||
|
pathUTC .. "rifle_magdrop_1.ogg",
|
||
|
pathUTC .. "rifle_magdrop_2.ogg",
|
||
|
pathUTC .. "rifle_magdrop_3.ogg",
|
||
|
pathUTC .. "rifle_magdrop_4.ogg",
|
||
|
pathUTC .. "rifle_magdrop.ogg",
|
||
|
}
|
||
|
|
||
|
|
||
|
---- Animations
|
||
|
-- HideBones, BulletBones, etc.
|
||
|
SWEP.BulletBones = {
|
||
|
[1] = "bullet1",
|
||
|
[2] = "bullet2",
|
||
|
[3] = "bullet3",
|
||
|
}
|
||
|
|
||
|
-- SWEP.HideBones = {
|
||
|
-- "fakemag",
|
||
|
-- "fakerounds",
|
||
|
-- "bullet1",
|
||
|
-- "bullet2",
|
||
|
-- "bullet3",
|
||
|
-- "bullet4",
|
||
|
-- }
|
||
|
|
||
|
SWEP.ReloadHideBoneTables = {
|
||
|
[1] = {
|
||
|
"mag",
|
||
|
"bullet1",
|
||
|
"bullet2",
|
||
|
"bullet3",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
local mechh = {
|
||
|
pathUT .. "mech-01.ogg",
|
||
|
pathUT .. "mech-02.ogg",
|
||
|
pathUT .. "mech-03.ogg",
|
||
|
pathUT .. "mech-04.ogg",
|
||
|
pathUT .. "mech-05.ogg",
|
||
|
pathUT .. "mech-06.ogg",
|
||
|
}
|
||
|
|
||
|
local thetoggle = {{
|
||
|
s = {
|
||
|
"arc9/toggles/flashlight_laser_toggle_off_01.ogg",
|
||
|
"arc9/toggles/flashlight_laser_toggle_off_02.ogg",
|
||
|
"arc9/toggles/flashlight_laser_toggle_off_03.ogg",
|
||
|
"arc9/toggles/flashlight_laser_toggle_on_01.ogg",
|
||
|
"arc9/toggles/flashlight_laser_toggle_on_02.ogg",
|
||
|
"arc9/toggles/flashlight_laser_toggle_on_03.ogg",
|
||
|
}, t = 0
|
||
|
}}
|
||
|
|
||
|
-- Animations
|
||
|
SWEP.Animations = {
|
||
|
["idle"] = {
|
||
|
Source = "idle",
|
||
|
IKTimeLine = { { t = 0, lhik = 1 } },
|
||
|
},
|
||
|
["ready"] = {
|
||
|
Source = "ready",
|
||
|
MinProgress = 0.75,
|
||
|
FireASAP = true,
|
||
|
EventTable = {
|
||
|
{ s = pathUTC .. "raise.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathREAL .. "chgrab.ogg", t = 1 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathREAL .. "chpull.ogg", t = 4 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathREAL .. "chamber3.ogg", t = 10 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "grab-polymer.ogg", t = 18 / 30, c = ca, v = 0.3 },
|
||
|
{ s = pathUTC .. "cloth_3.ogg", t = 18 / 30, c = ca, v = 0.8 },
|
||
|
},
|
||
|
IKTimeLine = {
|
||
|
{ t = 0, lhik = 1 },
|
||
|
{ t = 0.15, lhik = 0 },
|
||
|
{ t = 0.5, lhik = 0 },
|
||
|
{ t = 0.8, lhik = 1 },
|
||
|
{ t = 1, lhik = 1 },
|
||
|
},
|
||
|
},
|
||
|
|
||
|
["draw"] = {
|
||
|
Source = "ready" or "draw",
|
||
|
Time = 0.25,
|
||
|
MinProgress = 0.6,
|
||
|
FireASAP = true,
|
||
|
EventTable = {
|
||
|
{ s = pathUTC .. "raise.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
},
|
||
|
},
|
||
|
["holster"] = {
|
||
|
Source = "ready" or "holster",
|
||
|
Time = 0.25,
|
||
|
MinProgress = 0.4,
|
||
|
Mult = 0.8,
|
||
|
EventTable = {
|
||
|
{ s = pathUTC .. "rattle2.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
},
|
||
|
IKTimeLine = { { t = 0, lhik = 1 } },
|
||
|
},
|
||
|
["draw_empty"] = {
|
||
|
Source = "ready" or "draw_empty",
|
||
|
Time = 0.25,
|
||
|
MinProgress = 0.6,
|
||
|
FireASAP = true,
|
||
|
EventTable = {
|
||
|
{ s = pathUTC .. "raise.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
},
|
||
|
},
|
||
|
["holster_empty"] = {
|
||
|
Source = "ready" or "holster_empty",
|
||
|
Time = 0.25,
|
||
|
MinProgress = 0.4,
|
||
|
Mult = 0.8,
|
||
|
EventTable = {
|
||
|
{ s = pathUTC .. "rattle2.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
},
|
||
|
IKTimeLine = { { t = 0, lhik = 1 } },
|
||
|
},
|
||
|
|
||
|
["fire"] = {
|
||
|
Source = "fire",
|
||
|
ShellEjectAt = 0.01,
|
||
|
IKTimeLine = { { t = 0, lhik = 1 } },
|
||
|
EventTable = { { s = mechh, t = 0 } },
|
||
|
},
|
||
|
["fire_empty"] = {
|
||
|
Source = "fire_empty",
|
||
|
ShellEjectAt = 0.01,
|
||
|
IKTimeLine = { { t = 0, lhik = 1 } },
|
||
|
EventTable = { { s = pathUT .. "mech_last.ogg", t = 0 } },
|
||
|
},
|
||
|
|
||
|
-- Reloads --
|
||
|
|
||
|
["reload"] = {
|
||
|
Source = "reload",
|
||
|
MinProgress = 0.8,
|
||
|
PeekProgress = 0.775,
|
||
|
RefillProgress = 0.6,
|
||
|
FireASAP = true,
|
||
|
Mult = 1.1,
|
||
|
EventTable = {
|
||
|
{ s = pathUTA .. "reload_start.ogg", t = 0 / 30, v = 0.8 },
|
||
|
{ s = pathREAL .. "magout.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTS .. "struggle.ogg", t = 17 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathREAL .. "magin.ogg", t = 22 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "cloth_4.ogg", t = 25 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "cloth_4.ogg", t = 32 / 30 - 0.07, c = ca, v = 0.3 },
|
||
|
|
||
|
{hide = 0, t = 0},
|
||
|
{hide = 1, t = 0.33},
|
||
|
{hide = 0, t = 0.45}
|
||
|
},
|
||
|
IKTimeLine = {
|
||
|
{ t = 0, lhik = 1 },
|
||
|
{ t = 0.15, lhik = 0 },
|
||
|
{ t = 0.6, lhik = 0 },
|
||
|
{ t = 0.85, lhik = 1 },
|
||
|
{ t = 1, lhik = 1 },
|
||
|
},
|
||
|
},
|
||
|
["reload_empty"] = {
|
||
|
Source = "reload_empty",
|
||
|
MinProgress = 0.8,
|
||
|
PeekProgress = 0.775,
|
||
|
RefillProgress = 0.65,
|
||
|
FireASAP = true,
|
||
|
Mult = 1.1,
|
||
|
EventTable = {
|
||
|
{ s = pathUTA .. "reload_start.ogg", t = 0 / 30, v = 0.8 },
|
||
|
{ s = pathREAL .. "magout.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTS .. "struggle.ogg", t = 17 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathREAL .. "magin.ogg", t = 22 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "cloth_1.ogg", t = 25 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathREAL .. "chpull2.ogg", t = 42 / 30, c = ca, v = 1 },
|
||
|
{ s = pathREAL .. "chamber3.ogg", t = 49 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "cloth_4.ogg", t = 54 / 30, c = ca, v = 0.3 },
|
||
|
|
||
|
{hide = 0, t = 0},
|
||
|
{hide = 1, t = 0.33},
|
||
|
{hide = 0, t = 0.45}
|
||
|
},
|
||
|
IKTimeLine = {
|
||
|
{ t = 0, lhik = 1 },
|
||
|
{ t = 0.15, lhik = 0 },
|
||
|
{ t = 0.65, lhik = 0 },
|
||
|
{ t = 0.85, lhik = 1 },
|
||
|
{ t = 1, lhik = 1 },
|
||
|
},
|
||
|
},
|
||
|
|
||
|
-- Inspecc --
|
||
|
|
||
|
["inspect"] = {
|
||
|
Source = "idle" or "inspect",
|
||
|
FireASAP = true,
|
||
|
MinProgress = 0.925,
|
||
|
Mult = 1.2,
|
||
|
EventTable = {
|
||
|
{ s = pathUTC .. "cloth_4.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "movement-rifle-03.ogg", t = 5 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "cloth_2.ogg", t = 37 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "movement-rifle-04.ogg", t = 45 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "movement-rifle-02.ogg", t = 90 / 30, c = ca, v = 0.8 },
|
||
|
-- {hide = 1, t = 0},
|
||
|
},
|
||
|
IKTimeLine = {
|
||
|
{ t = 0, lhik = 1 },
|
||
|
{ t = 0.15, lhik = 0 },
|
||
|
{ t = 0.8, lhik = 0 },
|
||
|
{ t = 0.95, lhik = 1 },
|
||
|
{ t = 1, lhik = 1 },
|
||
|
},
|
||
|
},
|
||
|
["inspect_empty"] = {
|
||
|
Source = "idle" or "inspect_empty",
|
||
|
FireASAP = true,
|
||
|
MinProgress = 0.925,
|
||
|
Mult = 1.2,
|
||
|
EventTable = {
|
||
|
{ s = pathUTC .. "cloth_4.ogg", t = 0 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "movement-rifle-03.ogg", t = 5 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "cloth_2.ogg", t = 37 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "movement-rifle-04.ogg", t = 45 / 30, c = ca, v = 0.8 },
|
||
|
{ s = pathUTC .. "movement-rifle-02.ogg", t = 90 / 30, c = ca, v = 0.8 },
|
||
|
-- {hide = 1, t = 0},
|
||
|
},
|
||
|
IKTimeLine = {
|
||
|
{ t = 0, lhik = 1 },
|
||
|
{ t = 0.15, lhik = 0 },
|
||
|
{ t = 0.8, lhik = 0 },
|
||
|
{ t = 0.95, lhik = 1 },
|
||
|
{ t = 1, lhik = 1 },
|
||
|
},
|
||
|
},
|
||
|
-- Firemodee --
|
||
|
|
||
|
["firemode_1"] = {
|
||
|
Source = "idle" or "firemode_0",
|
||
|
EventTable = {
|
||
|
{ s = "uplp_urban_temp/ar15/selector-01.ogg", t = 0 },
|
||
|
}
|
||
|
},
|
||
|
["firemode_2"] = {
|
||
|
Source = "idle" or "firemode_1",
|
||
|
EventTable = {
|
||
|
{ s = "uplp_urban_temp/ar15/selector-06.ogg", t = 0 },
|
||
|
}
|
||
|
},
|
||
|
["firemode_1_empty"] = {
|
||
|
Source = "idle" or "firemode_0_empty",
|
||
|
EventTable = {
|
||
|
{ s = "uplp_urban_temp/ar15/selector-01.ogg", t = 0 },
|
||
|
}
|
||
|
},
|
||
|
["firemode_2_empty"] = {
|
||
|
Source = "idle" or "firemode_1_empty",
|
||
|
EventTable = {
|
||
|
{ s = "uplp_urban_temp/ar15/selector-06.ogg", t = 0 },
|
||
|
}
|
||
|
},
|
||
|
|
||
|
["toggle"] = {
|
||
|
Source = "modeswitch",
|
||
|
EventTable = thetoggle
|
||
|
},
|
||
|
["toggle_empty"] = {
|
||
|
Source = "modeswitch_empty",
|
||
|
EventTable = thetoggle
|
||
|
},
|
||
|
|
||
|
["switchsights"] = {
|
||
|
Source = "modeswitch",
|
||
|
EventTable = thetoggle
|
||
|
},
|
||
|
["switchsights_empty"] = {
|
||
|
Source = "modeswitch_empty",
|
||
|
EventTable = thetoggle
|
||
|
},
|
||
|
}
|
||
|
|
||
|
---- Attachments
|
||
|
SWEP.Hook_ModifyBodygroups = function(wep, data)
|
||
|
local eles = data.elements
|
||
|
local mdl = data.model
|
||
|
|
||
|
local muzzle = (eles["muzzleattached"] and 3) or (eles["uplp_g36_barrel_19"] and 2) or (eles["uplp_g36_barrel_9"] and 0) or 1
|
||
|
local grip = (eles["gripattached"] and 0) or 1
|
||
|
|
||
|
mdl:SetBodygroup( 4, muzzle )
|
||
|
mdl:SetBodygroup( 5, grip )
|
||
|
|
||
|
local optic = (eles["uplp_g36_optic_integrated"] and 2) or (eles["opticattached"] and 1) or 0
|
||
|
mdl:SetBodygroup( 2, optic )
|
||
|
end
|
||
|
|
||
|
SWEP.AttachmentElements = {
|
||
|
["uplp_g36_barrel_19"] = { Bodygroups = { { 3, 2 }, { 4, 2 } }, AttPosMods = { [5] = { Pos = Vector(0, 0.61485, 21.5) } } },
|
||
|
["uplp_g36_barrel_12"] = { Bodygroups = { { 3, 1 }, { 4, 1 } } },
|
||
|
["uplp_g36_barrel_9"] = { Bodygroups = { { 3, 0 }, { 4, 0 } }, AttPosMods = { [5] = { Pos = Vector(0, 0.61485, 11.6) } } },
|
||
|
["uplp_g36_stock_carbine"] = { Bodygroups = { { 1, 0 } } },
|
||
|
}
|
||
|
|
||
|
local defatt = "arc9/def_att_icons/"
|
||
|
local defatt2 = "entities/uplp_attachements/def/"
|
||
|
|
||
|
SWEP.Attachments = {
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_sight_rear"),
|
||
|
Category = {"uplp_ar15_rs", "uplp_backup_optic"},
|
||
|
DefaultIcon = Material(defatt .. "rs.png", "mips smooth"),
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0, -2.04, -4.2),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
ActiveElements = {"uplp_g36_rsinstalled"},
|
||
|
InstalledElements = {"opticattached"},
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_optic"),
|
||
|
Category = {"uplp_g36_optic", "uplp_optic_small", "uplp_optic_mid", "uplp_optic_big"},
|
||
|
DefaultIcon = Material(defatt .. "optic.png", "mips smooth"),
|
||
|
Bone = "body",
|
||
|
CorrectiveAng = Angle(0, 0, 0),
|
||
|
Pos = Vector(0, -2.04, -2),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
Icon_Offset = Vector(1, 0, 0),
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_stock"),
|
||
|
Category = "uplp_g36_stock",
|
||
|
DefaultIcon = Material(defatt2 .. "arstock.png", "mips smooth"),
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0, 0.99, -8),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_barrel"),
|
||
|
Category = "uplp_g36_barrel",
|
||
|
DefaultIcon = Material(defatt .. "barrel.png", "mips smooth"),
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0, 0.61485, 5),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
ActiveElements = {"uplp_g36_barrel"},
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_muzzle"),
|
||
|
Category = "uplp_muzzle",
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0, 0.61485, 15.5),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
Icon_Offset = Vector(3, 0, 0),
|
||
|
InstalledElements = {"muzzleattached"},
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_sight_front"),
|
||
|
Category = "uplp_ar15_fs",
|
||
|
DefaultIcon = Material(defatt .. "fs.png", "mips smooth"),
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0, -2.04, 6.5),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
RequireElements = {"uplp_ar15_rs"},
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_tactical"),
|
||
|
Category = "uplp_tac",
|
||
|
Bone = "body",
|
||
|
Pos = Vector(-1.22, 0.55, 9),
|
||
|
Ang = Angle(90, 90, -90),
|
||
|
Icon_Offset = Vector(0, 0, 1),
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_grip"),
|
||
|
Category = {"uplp_grip_vert", "uplp_grip_horiz", "uplp_grip_horiz_cclamp"},
|
||
|
DefaultIcon = Material(defatt2 .. "grip.png", "mips smooth"),
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0, 1.98, 8.2),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
Icon_Offset = Vector(0, 0, -2),
|
||
|
InstalledElements = {"gripattached"},
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_receiver"),
|
||
|
Category = "uplp_g36_reciever",
|
||
|
DefaultIcon = Material(defatt2 .. "rec.png", "mips smooth"),
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0, 1.5, -1),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_magazine"),
|
||
|
Category = {"uplp_ar15_556_mag", "uplp_g36_mag"},
|
||
|
DefaultIcon = Material(defatt2 .. "armag.png", "mips smooth"),
|
||
|
Bone = "mag",
|
||
|
Pos = Vector(0, -1.75, -1.25),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
Icon_Offset = Vector(1.5, 0, -3),
|
||
|
},
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_backup"),
|
||
|
Category = "uplp_backup_optic_front",
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0.045, -0.2, 11.5),
|
||
|
Ang = Angle(90, 90, 180),
|
||
|
RequireElements = {"uplp_backup_optic_is"},
|
||
|
Installed = "uplp_backup_optic_is_front",
|
||
|
Integral = "uplp_backup_optic_is_front",
|
||
|
Hidden = true,
|
||
|
},
|
||
|
|
||
|
|
||
|
|
||
|
-- Cosmetic shit
|
||
|
{
|
||
|
PrintName = ARC9:GetPhrase("uplp_category_charm"),
|
||
|
Category = "charm",
|
||
|
Bone = "body",
|
||
|
Pos = Vector(0.63, 1.84, 5.15),
|
||
|
Ang = Angle(90, 0, -90),
|
||
|
},
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
SWEP.HookP_NameChange = function(self, name)
|
||
|
local att = self:GetElements()
|
||
|
|
||
|
if att["uplp_g36_barrel_19"] then
|
||
|
name = ARC9:GetPhrase("uplp_weapon_g36")
|
||
|
end
|
||
|
|
||
|
if att["uplp_g36_barrel_9"] then
|
||
|
name = ARC9:GetPhrase("uplp_weapon_g36_c")
|
||
|
end
|
||
|
|
||
|
return name
|
||
|
end
|