Compare commits

...

2 Commits

Author SHA1 Message Date
Fesiug 48e7f945e6
G36 WIP 2024-03-21 01:48:42 -04:00
Fesiug df3d91b094
Move MK23 to subfolder 2024-03-21 01:48:03 -04:00
62 changed files with 931 additions and 2 deletions

View File

@ -10,5 +10,8 @@
"path": "../ARC-9" "path": "../ARC-9"
} }
], ],
"settings": {} "settings": {
"editor.insertSpaces": true,
"editor.detectIndentation": false
}
} }

View File

@ -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")

View File

@ -3,4 +3,17 @@ L = {}
//////////////////// MK23 //////////////////// MK23
L["uplp_weapon_mk23"] = "MK 23" 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." 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"] = ""

View File

@ -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

View File

@ -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
}

BIN
materials/models/weapons/arc9/uplp-f/g36translucent.vtf (Stored with Git LFS) Normal file

Binary file not shown.

BIN
models/weapons/arc9/c_uplp-f_g36-7.dx90.vtx (Stored with Git LFS) Normal file

Binary file not shown.

BIN
models/weapons/arc9/c_uplp-f_g36-7.mdl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
models/weapons/arc9/c_uplp-f_g36-7.phy (Stored with Git LFS) Normal file

Binary file not shown.

BIN
models/weapons/arc9/c_uplp-f_g36-7.vvd (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/chamber3.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/chgrab.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/chpull2.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/fire-01.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/fire-02.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/fire-03.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/fire-04.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/fire-05.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/fire-06.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/magin.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/magout.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sound/uplp_f/g36/magtap.ogg (Stored with Git LFS) Normal file

Binary file not shown.