Compare commits
2 Commits
0c6dab072f
...
48e7f945e6
Author | SHA1 | Date |
---|---|---|
Fesiug | 48e7f945e6 | |
Fesiug | df3d91b094 |
|
@ -10,5 +10,8 @@
|
|||
"path": "../ARC-9"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
"settings": {
|
||||
"editor.insertSpaces": true,
|
||||
"editor.detectIndentation": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
local ATT = {}
|
||||
local iconfolder = "entities/uplp_attachements/"
|
||||
|
||||
-- Barrels
|
||||
|
||||
ATT = {}
|
||||
|
||||
ATT.PrintName = "G36 18.9\" (480mm) Barrel"
|
||||
ATT.CompactName = "480mm"
|
||||
ATT.Description = "Full-length barrel for the G36."
|
||||
ATT.Category = "uplp_g36_barrel"
|
||||
|
||||
-- Positives
|
||||
ATT.HeatCapacityMult = 1.24
|
||||
|
||||
ARC9.LoadAttachment(ATT, "uplp_g36_barrel_19")
|
||||
|
||||
ATT = {}
|
||||
|
||||
ATT.PrintName = "G36K 12.5\" (318mm) Barrel"
|
||||
ATT.CompactName = "318mm"
|
||||
ATT.Description = "Carbine-length barrel for the G36K."
|
||||
ATT.Category = "uplp_g36_barrel"
|
||||
ATT.Ignore = true -- This one is installed by default.
|
||||
|
||||
ARC9.LoadAttachment(ATT, "uplp_g36_barrel_12")
|
||||
|
||||
ATT = {}
|
||||
|
||||
ATT.PrintName = "G36C 9\" (228mm) Barrel"
|
||||
ATT.CompactName = "228mm"
|
||||
ATT.Description = "Extremely compact barrel for the G36C. The extremely short barrel and reduced size of the gas system improves the cyclic rate of the weapon, but performs worse under pressure and heat."
|
||||
ATT.Category = "uplp_g36_barrel"
|
||||
|
||||
-- Positives
|
||||
ATT.RPMMult = 1.18
|
||||
ATT.AimDownSightsTimeAdd = -0.03
|
||||
ATT.SprintToFireTimeAdd = -0.03
|
||||
|
||||
-- Negatives
|
||||
ATT.HeatCapacityMult = 0.34
|
||||
ATT.RecoilUpMult = 1.35
|
||||
ATT.RecoilSideMult = 1.3
|
||||
ATT.RecoilAutoControlMult = 0.6
|
||||
ATT.SpreadAddHipFire = -0.01
|
||||
|
||||
ARC9.LoadAttachment(ATT, "uplp_g36_barrel_9")
|
||||
|
||||
-- Stocks
|
||||
|
||||
ATT = {}
|
||||
|
||||
ATT.PrintName = "G36 Carbine Stock"
|
||||
ATT.CompactName = "Carbine"
|
||||
ATT.Description = "Shortened stock for G36C and used on later models of the G36K for its better handling while using body armor."
|
||||
ATT.Category = "uplp_g36_stock"
|
||||
|
||||
ATT.AimDownSightsTimeAdd = -0.1
|
||||
ATT.SprintToFireTimeAdd = -0.1
|
||||
ATT.SpreadAddHipFire = -0.01
|
||||
ATT.SpeedMultSights = 1.11
|
||||
|
||||
ATT.RecoilAutoControlMult = 0.8
|
||||
|
||||
ARC9.LoadAttachment(ATT, "uplp_g36_stock_carbine")
|
||||
|
||||
-- Optic
|
||||
|
||||
ATT = {}
|
||||
|
||||
ATT.PrintName = "G36 Integrated Optic"
|
||||
ATT.CompactName = "Integrated"
|
||||
ATT.Description = "Integrated optic for the G36."
|
||||
ATT.Category = "uplp_g36_optic"
|
||||
|
||||
ARC9.LoadAttachment(ATT, "uplp_g36_optic_integrated")
|
|
@ -4,3 +4,16 @@ L = {}
|
|||
//////////////////// MK23
|
||||
L["uplp_weapon_mk23"] = "MK 23"
|
||||
L["uplp_weapon_mk23_desc"] = "The \"USSOCOM MARK 23\", shortened MK 23, is a semi-automatic large frame handgun chambered in .45 ACP designed specifically to be an offensive pistol. Considered a match grade pistol, its accuracy is equal to that of the finest custom made handguns, yet exceeds the most stringent operational requirements ever demanded of a combat handgun. Endurance testing demonstrated a service life of over 30,000 rounds of +P ammunition."
|
||||
|
||||
//////////////////// G36
|
||||
L["uplp_weapon_g36"] = "G36"
|
||||
L["uplp_weapon_g36_desc"] = "The G36 melts in the desert. Bah, I'm just playing with you."
|
||||
|
||||
L["uplp_weapon_g36_c"] = "G36C"
|
||||
L["uplp_weapon_g36_c_desc"] = "Compact variant of the G36. The extremely short barrel and reduced size of the gas system improves the cyclic rate of the weapon, but performs worse under pressure and heat."
|
||||
|
||||
L["uplp_weapon_g36_k"] = "G36K"
|
||||
L["uplp_weapon_g36_k_desc"] = "Carbine variant of the G36. The short stroke piston allows for easier configuration of suppressors, and as such this weapon performs better with them."
|
||||
|
||||
L["uplp_weapon_g36_sl8"] = "SL8"
|
||||
L["uplp_weapon_g36_sl8_desc"] = ""
|
|
@ -0,0 +1,769 @@
|
|||
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
|
|
@ -0,0 +1,17 @@
|
|||
VertexLitGeneric
|
||||
{
|
||||
$basetexture "models/weapons/arc9/uplp-f/g36translucent"
|
||||
$color2 "[0.30 0.27 0.22]"
|
||||
$translucent 1
|
||||
$bumpmap "dev/flat_normal"
|
||||
$halflambert 1
|
||||
$envmap "env_cubemap"
|
||||
$envmaptint "[0.02 0.02 0.02]"
|
||||
|
||||
$phong 1
|
||||
$phongboost 1
|
||||
$phongexponent 10
|
||||
$phongfresnelranges "[0 1 10]"
|
||||
|
||||
$nocull 0
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue