Залив

This commit is contained in:
Refosel
2026-03-30 10:39:52 +03:00
commit 2b57c019cb
2010 changed files with 185745 additions and 0 deletions

View File

@@ -0,0 +1,227 @@
AddCSLuaFile()
SWEP.Animations = {
["Idle"] = {--idle is a special animation index, movement animations are played when this is on
Sequences = {"idle"},
Fps = 30
--does not need NextSequence to loop, it's an exception to the rule
},
["Draw"] = {
Sequences = {"draw"},
Length = 0.5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_357.Raise")) end}
}
},
["Holster"] = {
Sequences = {"holster"},
Length = 0.4,
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_357.Drop")) end}
}
},
["Equip"] = {
Sequences = {"draw_First"},
Length = 1.5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_357.Raise_First.Up")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("MW19_357.Raise_First.Open")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("MW19_357.Raise_First.Close")) end},
{Time = 0.53, Callback = function(self) self:DoSound(Sound("MW19_357.Raise_First.End")) end}
}
},
["Reload"] = {
Sequences = {"reload"},
Length = 3,
Fps = 30,
MagLength = 2.2,
NextSequence = "Idle",
Events = {
{Time = 0.066, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_Start")) end},
{Time = 0.36, Callback = function(self) self:DoSound(Sound("MW19_357.Open")) end},
{Time = 0.63, Callback = function(self) self:DoSound(Sound("MW19_357.Ejectorrod")) end},
{Time = 0.73, Callback = function(self) self:DoSound(Sound("MW19_357.Shelleject")) end},
{Time = 1.96, Callback = function(self) self:DoSound(Sound("MW19_357.Speedloader")) end},
{Time = 2.56, Callback = function(self) self:DoSound(Sound("MW19_357.Close")) end},
{Time = 2.7, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_End")) end}
}
},
["Reload_Fast"] = {
Sequences = {"reload_fast"},
Length = 2,
Fps = 30,
MagLength = 1.33,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_Start_Fast")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("MW19_357.Open_Fast")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("MW19_357.Ejectorrod_Fast")) end},
{Time = 0.46, Callback = function(self) self:DoSound(Sound("MW19_357.Shelleject_Fast")) end},
{Time = 0.96, Callback = function(self) self:DoSound(Sound("MW19_357.Speedloader_Fast")) end},
{Time = 1.45, Callback = function(self) self:DoSound(Sound("MW19_357.Close_Fast")) end},
{Time = 1.66, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_End_Fast")) end}
}
},
["Reload_Empty"] = {
Sequences = {"reload"},
Length = 3,
Fps = 30,
MagLength = 2.2,
NextSequence = "Idle",
Events = {
{Time = 0.066, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_Start")) end},
{Time = 0.36, Callback = function(self) self:DoSound(Sound("MW19_357.Open")) end},
{Time = 0.63, Callback = function(self) self:DoSound(Sound("MW19_357.Ejectorrod")) end},
{Time = 0.73, Callback = function(self) self:DoSound(Sound("MW19_357.Shelleject")) end},
{Time = 1.96, Callback = function(self) self:DoSound(Sound("MW19_357.Speedloader")) end},
{Time = 2.56, Callback = function(self) self:DoSound(Sound("MW19_357.Close")) end},
{Time = 2.7, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_End")) end}
}
},
["Reload_Empty_Fast"] = {
Sequences = {"reload_fast"},
Length = 2,
Fps = 30,
MagLength = 1.33,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_Start_Fast")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("MW19_357.Open_Fast")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("MW19_357.Ejectorrod_Fast")) end},
{Time = 0.46, Callback = function(self) self:DoSound(Sound("MW19_357.Shelleject_Fast")) end},
{Time = 0.96, Callback = function(self) self:DoSound(Sound("MW19_357.Speedloader_Fast")) end},
{Time = 1.45, Callback = function(self) self:DoSound(Sound("MW19_357.Close_Fast")) end},
{Time = 1.66, Callback = function(self) self:DoSound(Sound("MW19_357.Reload_End_Fast")) end}
}
},
["Fire"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
end
}
}
},
["Charge"] = {
Sequences = {"charge"},
Fps = 60,
NextSequence = "Idle"
},
["Ads_In"] = {
Sequences = {"ads_in"},
Length = 0.3,
Fps = 45,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_P320.ADS_Up")) end}
}
},
["Ads_Out"] = {
Sequences = {"ads_out"},
Length = 0.3,
Fps = 45,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_P320.ADS_Down")) end}
}
},
["Sprint_In"] = {
Sequences = {"sprint_in"},
Fps = 30
--NextSequence = "Sprint_Loop",
},
["Sprint_Loop"] = {
Sequences = {"sprint_loop"},
Fps = 26,
NextSequence = "Sprint_Loop" --make our state loop
--while sprinting, the playback rate of the viewmodel is scaled with velocity (cod-like behaviour)
},
["Sprint_Out"] = {
Sequences = {"sprint_out"},
Length = 0.3,
Fps = 24,
NextSequence = "Idle",
},
["Inspect"] = {
Sequences = {"inspect"},
Length = 5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW19_357.Inspect01")) end},
{Time = 1, Callback = function(self) self:DoSound(Sound("MW19_357.Inspect02")) end},
{Time = 2, Callback = function(self) self:DoSound(Sound("MW19_357.Inspect03")) end},
{Time = 3.65, Callback = function(self) self:DoSound(Sound("MW19_357.Inspect04")) end}
}
},
["Jog_Out"] = {
Sequences = {"jog_out"},
Fps = 30,
NextSequence = "Idle"
},
["Jump"] = {
Sequences = {"jump"},
Fps = 15,
NextSequence = "Idle"
},
["Land"] = {
Sequences = {"jump_land"},
Fps = 30,
NextSequence = "Idle"
},
["Melee"] = {
Sequences = {"melee_miss_01", "melee_miss_02"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Small")) end}
}
},
["Melee_Hit"] = {
Sequences = {"melee_hit_01", "melee_hit_02"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Small")) end}
}
},
}

View File

@@ -0,0 +1,405 @@
AddCSLuaFile()
function SWEP:doSuppressorStats()
self.Primary.Sound = Sound("MW19_Deagle.Fire_S")
self.Reverb = {
RoomScale = 50000,
Sounds = {
Outside = {
Layer = Sound("Atmo_Pistol_Mag_Sup.Outside"),
Reflection = Sound("Reflection_ARSUP.Outside")
},
Inside = {
Layer = Sound("Atmo_Pistol_Sup.Inside"),
Reflection = Sound("Reflection_ARSUP.Inside")
}
}
}
self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
end
SWEP.Customization = {
{"att_perk", "att_vm_pi_cpapa_soh", "att_perk_fmj", "att_perk_ricochet", "att_perk_fastswap"},
{"att_receiver"},
{"attachment_vm_pi_cpapa_mag", "attachment_vm_pi_cpapa_loader_snake"},
{"att_stock", "att_vm_pi_cpapa_stock01", "att_vm_pi_cpapa_stock02"},
{"att_muzzle", "att_vm_flashhider01_pstl", "att_vm_compensator01_pstl", "att_vm_muzzlebrake01_pstl", "att_vm_oil_filter_suppressor"},
{"att_sight", "attachment_vm_pi_cpapa_scope", "att_vm_minireddot01", "att_vm_minireddot02", "att_vm_minireddot03"},
{"att_vm_pi_cpapa_barrel01", "att_vm_pi_cpapa_barrel_long", "att_vm_pi_cpapa_barrel_short", "att_vm_pi_cpapa_barrel02"},
{"att_laser", "att_vm_pi_cpapa_laser01", "att_vm_pi_cpapa_laser02", "att_vm_pi_cpapa_laser03"}
}
--NECESSARY: it loads custom attachments from other authors
require("mw_utils")
mw_utils.LoadInjectors(SWEP)
--[[SWEP.Customization = {
["Barrel"] = {
Slot = 4,
{
Key = "attachment_vm_pi_cpapa_barrel"
},
{
Key = "attachment_vm_pi_cpapa_barrel_long",
Stats = function(self)
self.Customization.Laser[2].Bodygroups.laser_rail = 1
self.Customization.Laser[3].Bodygroups.laser_rail = 1
self.Customization.Laser[4].Bodygroups.laser_rail = 1
end
},
{
Key = "attachment_vm_pi_cpapa_shortbarrel",
Stats = function(self)
self.Customization.Laser[2].Bodygroups.laser_rail = 2
self.Customization.Laser[3].Bodygroups.laser_rail = 2
self.Customization.Laser[4].Bodygroups.laser_rail = 2
end
},
{
Key = "attachment_vm_pi_cpapa_barrel_v2",
Stats = function(self)
self.Customization.Laser[2].Bodygroups.laser_rail = 0
self.Customization.Laser[3].Bodygroups.laser_rail = 0
self.Customization.Laser[4].Bodygroups.laser_rail = 0
end
}
},
["Optic"] = {
Slot = 5,
{
Key = "no_optic",
},
{
Key = "attachment_vm_minireddot01",
Bodygroups = {
["rail"] = 1
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.8)
end
},
{
Key = "attachment_vm_minireddot02",
Bodygroups = {
["rail"] = 1
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.75)
end
},
{
Key = "attachment_vm_minireddot03",
Bodygroups = {
["rail"] = 1
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.75)
end
},
{
Key = "attachment_vm_reflex_west02_lod0",
Bodygroups = {
["rail"] = 1
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.95)
end
},
{
Key = "attachment_vm_holo_west_lod0",
Bodygroups = {
["rail"] = 1
},
VElement = {
Bone = "tag_reflex",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
}
}
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.45)
end
},
{
Key = "attachment_vm_reflex_east02_lod0",
Bodygroups = {
["rail"] = 1
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.05)
end
},
{
Key = "attachment_vm_reflex_east",
Bodygroups = {
["rail"] = 1
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.3)
end
},
{
Key = "attachment_vm_4x_east",
Bodygroups = {
["rail"] = 1
},
VElement = {
Bone = "tag_reflex",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
}
}
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.13, 0, -1.13)
end
},
{
Key = "attachment_vm_4x_west",
Bodygroups = {
["rail"] = 1
},
VElement = {
Bone = "tag_reflex",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
}
}
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.015, 0, -1.22)
end
},
{
Key = "attachment_vm_4x_west02",
Bodygroups = {
["rail"] = 1
},
VElement = {
Bone = "tag_reflex",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
}
}
},
Stats = function(self)
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.11)
end
}
},
["Laser"] = {
Slot = 6,
{
Key = "no_laser",
},
{
Key = "attachment_vm_laser_pstl",
VElement = {
Bone = "tag_laser_attach",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
[2] = {Vector(0, 0, 0), Angle()},
[3] = {Vector(0, 0, 0), Angle()},
[4] = {Vector(0, 0, 0), Angle()}
}
}
},
Bodygroups = {
["laser_rail"] = 1
},
Stats = function(self)
end
},
{
Key = "attachment_vm_laser_pstl03",
VElement = {
Bone = "tag_laser_attach",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
[2] = {Vector(0, 0, 0), Angle()},
[3] = {Vector(0, 0, 0), Angle()},
[4] = {Vector(0, 0, 0), Angle()}
}
}
},
Bodygroups = {
["laser_rail"] = 1
},
Stats = function(self)
end
},
{
Key = "attachment_vm_laser_pstl04",
VElement = {
Bone = "tag_laser_attach",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
[2] = {Vector(0, 0, 0), Angle()},
[3] = {Vector(0, 0, 0), Angle()},
[4] = {Vector(0, 0, 0), Angle()}
}
}
},
Bodygroups = {
["laser_rail"] = 1
},
Stats = function(self)
end
}
},
["Muzzle"] = {
Slot = 3,
{
Key = "no_muzzle",
},
{
Key = "attachment_vm_flashhider_psl01",
VElement = {
Bone = "tag_silencer",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
[2] = {Vector(0, 1.85, 0), Angle()},
[3] = {Vector(0, -1, 0), Angle()},
[4] = {Vector(0, 0, 0), Angle()}
}
}
},
Stats = function(self)
self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
end
},
{
Key = "attachment_vm_muzzlebrake_pstl01",
VElement = {
Bone = "tag_silencer",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
[2] = {Vector(0, 1.85, 0), Angle()},
[3] = {Vector(0, -1, 0), Angle()},
[4] = {Vector(0, 0, 0), Angle()}
}
}
},
Stats = function(self)
end
},
{
Key = "attachment_vm_compensator_pstl01",
VElement = {
Bone = "tag_silencer",
Position = Vector(0, 0, 0),
Angles = Angle(),
Offsets = {
["Barrel"] = {
[2] = {Vector(0, 1.85, 0), Angle()},
[3] = {Vector(0, -1, 0), Angle()},
[4] = {Vector(0, 0, 0), Angle()}
}
}
},
Stats = function(self)
end
},
},
["Perk"] = {
Slot = 1,
{
Key = "no_perk",
},
{
Key = "perk_soh",
Stats = function(self)
self.Animations.Reload = self.Animations.Reload_Fast
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Fast
self.Animations.Reload_XmagLrg = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_XmagLrg = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Reload_Xmag = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Xmag = self.Animations.Reload_Empty_Xmag_Fast
end
},
{
Key = "perk_fastmelee",
Stats = function(self)
end
},
{
Key = "perk_heavymelee",
Stats = function(self)
end
},
{
Key = "perk_fmj",
Stats = function(self)
end
}
},
["Grip"] = {
Slot = 2,
{
Key = "attachment_vm_pi_cpapa_grip",
Stats = function(self)
end
},
{
Key = "attachment_vm_pi_cpapa_grip_stock",
Stats = function(self)
end
},
{
Key = "attachment_vm_pi_cpapa_stockl",
Stats = function(self)
end
},
},
-- ["Camo"] = {
-- Slot = 8,
-- {
-- Key = "no_camo",
-- },
-- {
-- Key = "camo_jermasus",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "camo_digital",
-- Stats = function(self)
-- end
-- }
-- },
}
]]

View File

@@ -0,0 +1,157 @@
AddCSLuaFile()
PrecacheParticleSystem("AC_muzzle_pistol")
PrecacheParticleSystem("AC_muzzle_pistol_suppressed")
PrecacheParticleSystem("AC_muzzle_pistol_smoke_barrel")
include("animations.lua")
include("customization.lua")
require("mw_utils")
mw_utils.LoadInjectors(SWEP)
if CLIENT then
killicon.Add( "mg_357", "VGUI/entities/mg_357", Color(255, 0, 0, 255))
SWEP.WepSelectIcon = surface.GetTextureID("VGUI/spawnicons/icon_cac_weapon_pi_cpapa")
end
SWEP.Base = "mg_base"
SWEP.PrintName = ".357"
SWEP.Category = "Modern Warfare"
SWEP.SubCategory = "Pistols"
SWEP.Spawnable = true
SWEP.VModel = Model("models/viper/mw/weapons/v_357.mdl")
SWEP.WorldModel = Model("models/viper/mw/weapons/w_357.mdl")
SWEP.Slot = 1
SWEP.HoldType = "Revolver"
SWEP.ParticleEffects = {
["MuzzleFlash"] = "mw_fas2_muzzleflash_pistol",
["MuzzleFlash_Suppressed"] = "mw_fas2_muzzleflash_suppressed",
}
SWEP.Trigger = {
PressedSound = Sound("wfoly_plr_pi_cpapa_charge_in_01"),
PressedAnimation = "Charge",
Time = 0.075
}
SWEP.Primary.Sound = Sound("weap_cpapa_fire_plr")
SWEP.Primary.Ammo = "357"
SWEP.Primary.ClipSize = 6
SWEP.Primary.Automatic = false
SWEP.Primary.BurstRounds = 1
SWEP.Primary.BurstDelay = 0
SWEP.Primary.RPM = 150
SWEP.CanChamberRound = false
SWEP.CanDisableAimReload = true
SWEP.Reverb = {
RoomScale = 50000, --(cubic hu)
--how big should an area be before it is categorized as 'outside'?
Sounds = {
Outside = {
Layer = Sound("Atmo_Pistol_Mag.Outside"),
Reflection = Sound("Reflection_Pistol.Outside")
},
Inside = {
Layer = Sound("Atmo_Shotgun.Inside"),
Reflection = Sound("Reflection_Shotgun.Inside")
}
}
}
SWEP.Firemodes = {
[1] = {
Name = "Semi Auto",
OnSet = function()
return nil
end
},
}
SWEP.BarrelSmoke = {
Particle = "AC_muzzle_pistol_smoke_barrel",
Attachment = "muzzle",
ShotTemperatureIncrease = 100,
TemperatureThreshold = 100, --temperature that triggers smoke
TemperatureCooldown = 100 --degrees per second
}
SWEP.Cone = {
Hip = 0.3, --accuracy while hip
Ads = 0.085, --accuracy while aiming
Increase = 0.08, --increase cone size by this amount every time we shoot
AdsMultiplier = 0.25, --multiply the increase value by this amount while aiming
Max = 2, --the cone size will not go beyond this size
Decrease = 2, -- amount (in seconds) for the cone to completely reset (from max)
Seed = 61543 --just give this a random number
}
SWEP.Recoil = {
Vertical = {0.2, 0.4}, --random value between the 2
Horizontal = {-0.4, 0.4}, --random value between the 2
Shake = 2.4, --camera shake
AdsMultiplier = 4, --multiply the values by this amount while aiming
Seed = 610312 --give this a random number until you like the current recoil pattern
}
SWEP.Bullet = {
Damage = {100, 28}, --first value is damage at 0 meters from impact, second value is damage at furthest point in effective range
EffectiveRange = 35, --in meters, damage scales within this distance
DropOffStartRange = 12, --in meters, damage scales within this distance
Range = 100, --in meters, after this distance the bullet stops existing
Tracer = false, --show tracer
NumBullets = 1, --the amount of bullets to fire
PhysicsMultiplier = 0.5, --damage is multiplied by this amount when pushing objects
HeadshotMultiplier = 1,
Penetration = {
DamageMultiplier = 0.95, --how much damaged is multipled by when leaving a surface.
MaxCount = 6, --how many times the bullet can penetrate.
Thickness = 14, --in hu, how thick an obstacle has to be to stop the bullet.
}
}
SWEP.Zoom = {
FovMultiplier = 0.95,
ViewModelFovMultiplier = 1,
Blur = {
EyeFocusDistance = 15
}
}
SWEP.WorldModelOffsets = {
Bone = "tag_pistol_offset",
Angles = Angle(0, 90, -90),
Pos = Vector(4.5, -3, -2.5)
}
SWEP.ViewModelOffsets = {
Aim = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, -4, 0)
},
Idle = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Inspection = {
Bone = "tag_pistol_offset",
X = {
[0] = {Pos = Vector(0, 2, -2), Angles = Angle(30, 0, -30)},
[1] = {Pos = Vector(0, 0, 0), Angles = Angle(0, 0, 0)}
},
Y = {
[0] = {Pos = Vector(2, 0, 0), Angles = Angle(-30, -30, 0)},
[1] = {Pos = Vector(-4, 0, 0), Angles = Angle(0, 30, 0)}
}
},
RecoilMultiplier = 1,
KickMultiplier = 1
}
SWEP.Shell = "mwb_shelleject_50bmg"

View File

@@ -0,0 +1,382 @@
AddCSLuaFile()
SWEP.Animations = {
["Idle"] = {--idle is a special animation index, movement animations are played when this is on
Sequences = {"idle"},
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
--does not need NextSequence to loop, it's an exception to the rule
},
["Draw"] = {
Sequences = {"draw"},
Length = 0.5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.oscar12.raise")) end},
}
},
["Holster"] = {
Sequences = {"holster"},
Length = 0.9,
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.oscar12.drop")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
}
},
["Equip"] = {
Sequences = {"draw_First"},
Length = 1.5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_raise_first_01")) end},
{Time = 0.867, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_raise_first_03")) end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_raise_first_02")) end},
{Time = 1.0, Callback = function(self) self:EnableGrip() end},
}
},
["Reload"] = {
Sequences = {"reload"},
Length = 2.5,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 1.367, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_04")) end},
{Time = 1.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_05")) end},
{Time = 1.767, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_06")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_01")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_02")) end},
{Time = 0.833, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_03")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.3, Callback = function(self) self:EnableGrip() end},
-- {Time = 1, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["Reload_Fast"] = {
Sequences = {"reload_fast"},
Length = 1.8,
Fps = 30,
MagLength = 1.15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0.9, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Poly"), Vector(-5, 0, 40)) end},
{Time = 1.467, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_04")) end},
{Time = 1.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_03")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.567, Callback = function(self) self:EnableGrip() end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_01")) end},
{Time = 0.233, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_02")) end},
-- {Time = 0.5, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["reload_drum"] = {
Sequences = {"reload_drum"},
Length = 2.5,
Fps = 30,
MagLength = 1.8,
NextSequence = "Idle",
Events = {
{Time = 2.367, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_drum_06")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.367, Callback = function(self) self:EnableGrip() end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_drum_04")) end},
{Time = 1.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_drum_05")) end},
{Time = 0.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_drum_02")) end},
{Time = 1.233, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_drum_03")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_drum_01")) end},
-- {Time = 1, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["reload_drum_fast"] = {
Sequences = {"reload_drum_fast"},
Length = 2,
Fps = 30,
MagLength = 1.4,
NextSequence = "Idle",
Events = {
{Time = 0.9, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.Drum"), Vector(-5, 0, 40)) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_drum_05")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_drum_02")) end},
{Time = 1.733, Callback = function(self) self:EnableGrip() end},
{Time = 1.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_drum_03")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_drum_01")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_fast_drum_04")) end},
-- {Time = 0.5, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["Reload_Empty"] = {
Sequences = {"reload_empty"},
Length = 3.1,
Fps = 30,
MagLength = 1.9,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 1.5, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Poly"), Vector(-5, 0, 40)) end},
{Time = 1.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_03")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.9, Callback = function(self) self:EnableGrip() end},
{Time = 0.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_02")) end},
{Time = 2.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_04")) end},
{Time = 2.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_05")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_01")) end},
-- {Time = 1.4, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["Reload_Empty_Fast"] = {
Sequences = {"reload_empty_fast"},
Length = 2.4,
Fps = 30,
MagLength = 1.15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0.9, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Poly"), Vector(-5, 0, 40)) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_04")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.433, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_02")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_01")) end},
{Time = 2.233, Callback = function(self) self:EnableGrip() end},
{Time = 2.233, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_05")) end},
{Time = 1.133, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_03")) end},
-- {Time = 0.6, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["reload_empty_drum"] = {
Sequences = {"reload_empty_drum"},
Length = 3.3,
Fps = 30,
MagLength = 2.15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 1.5, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Poly"), Vector(-5, 0, 40)) end},
{Time = 2.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_drum_04")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 3.067, Callback = function(self) self:EnableGrip() end},
{Time = 0.767, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_drum_02")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_drum_01")) end},
{Time = 2.433, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_drum_05")) end},
{Time = 1.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_drum_03")) end},
{Time = 3.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_drum_06")) end},
-- {Time = 1.4, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["reload_drum_empty_fast"] = {
Sequences = {"reload_empty_drum_fast"},
Length = 2.7,
Fps = 30,
MagLength = 1.35,
NextSequence = "Idle",
Events = {
{Time = 0.9, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Poly"), Vector(-5, 0, 40)) end},
{Time = 0.267, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_drum_02")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.433, Callback = function(self) self:EnableGrip() end},
{Time = 2.133, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_drum_06")) end},
{Time = 2.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_drum_07")) end},
{Time = 1.267, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_drum_04")) end},
{Time = 1.567, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_drum_05")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_drum_01")) end},
{Time = 1.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_reload_empty_fast_drum_03")) end},
-- {Time = 0.6, Callback = function(self) self:ResetBullets(self:GetAttachmentModels("Mag"), self.BulletList) end},
}
},
["Fire"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoEjection("shell_eject")
self:DoParticle("MuzzleFlash", "muzzle")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Fire_Last"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Ads_In"] = {
Sequences = {"ads_in"},
Length = 0.25,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.aalpha12.ads.up")) end},
}
},
["Ads_Out"] = {
Sequences = {"ads_out"},
Length = 0.25,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.aalpha12.ads.down")) end},
}
},
["Sprint_In"] = {
Sequences = {"sprint_in"},
Fps = 24,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
--NextSequence = "Sprint_Loop",
},
["Sprint_Loop"] = {
Sequences = {"sprint_loop"},
Fps = 30,
NextSequence = "Sprint_Loop", --make our state loop
--while sprinting, the playback rate of the viewmodel is scaled with velocity (cod-like behaviour)
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Sprint_Out"] = {
Sequences = {"sprint_out"},
Length = 0.3,
Fps = 24,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Inspect"] = {
Sequences = {"inspect"},
Length = 5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.667, Callback = function(self) self:EnableGrip() end},
{Time = 1.867, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_04")) end},
{Time = 2.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_05")) end},
{Time = 3.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_06")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_01")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_02")) end},
{Time = 1.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_03")) end},
}
},
["inspect_drum"] = {
Sequences = {"inspect_drum"},
Length = 5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.567, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_drum_02")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 0.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_drum_01")) end},
{Time = 3.767, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_drum_06")) end},
{Time = 2.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_drum_04")) end},
{Time = 2.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_drum_05")) end},
{Time = 2.767, Callback = function(self) self:EnableGrip() end},
{Time = 1.567, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sh_aalpha12_inspect_drum_03")) end},
}
},
["Jog_Out"] = {
Sequences = {"jog_out"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Jump"] = {
Sequences = {"jump"},
Fps = 15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Land"] = {
Sequences = {"jump_land"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Melee"] = {
Sequences = {"melee_miss_01", "melee_miss_02", "melee_miss_03"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end},
}
},
["Melee_Hit"] = {
Sequences = {"melee_hit_01", "melee_hit_02", "melee_hit_03"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end},
}
},
}

View File

@@ -0,0 +1,898 @@
AddCSLuaFile()
function SWEP:doSuppressorStats()
self.Primary.Sound = Sound("mw19.aalpha12.fire.s")
self.Reverb = {
RoomScale = 50000,
Sounds = {
Outside = {
Layer = Sound("Atmo_Shotgun2.Outside"),
Reflection = Sound("Reflection_ARSUP.Outside")
},
Inside = {
Layer = Sound("Reflection_ARSUP.Inside"),
Reflection = Sound("Reflection_ShotgunSUP.Inside")
}
}
}
self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
end
function SWEP:doDBStats()
self.Primary.TrailingSound = Sound("wpn_shotgun_fire_lyr")
self.ParticleEffects.MuzzleFlash = "AC_muzzle_shotgun_db"
end
-- local function doCalConversionStats(self)
-- local bSup1 = self:HasAttachment("attachment_vm_silencer_east01")
-- local bSup2 = self:HasAttachment("attachment_vm_silencer02")
-- local bSup3 = self:HasAttachment("attachment_vm_silencer03")
-- local bSup4 = self:HasAttachment("attachment_vm_silencer04")
-- local bSup5 = self:HasAttachment("attachment_vm_ar_mike4_barsil")
-- local bSup6 = self:HasAttachment("attachment_vm_ar_mike4_mag_v5")
-- if (!bSup1 && !bSup2 && !bSup3 && !bSup4 && !bSup5 && !bSup6) then
-- self.Primary.Sound = Sound("mw19_mcharlie.fire.cal")
-- self.Reverb = {
-- RoomScale = 50000,
-- Sounds = {
-- Outside = {
-- Layer = Sound("Atmo_SMG.Outside"),
-- Reflection = Sound("Reflection_AR.Outside")
-- },
-- Inside = {
-- Layer = Sound("Atmo_SMG.Inside"),
-- Reflection = Sound("Reflection_AR.Inside")
-- }
-- }
-- }
-- end
-- self.Primary.Ammo = "SMG1"
-- self.Shell.Model = Model("models/viper/mw/shells/fx_pistol_shell_lod0.mdl")
-- self.Shell.Scale = 0.5
-- self.Shell.Sound = Sound("MW_Casings.9mm")
-- end
-- local function doSocomConversionStats(self)
-- local bSup1 = self:HasAttachment("attachment_vm_silencer_east01")
-- local bSup2 = self:HasAttachment("attachment_vm_silencer02")
-- local bSup3 = self:HasAttachment("attachment_vm_silencer03")
-- local bSup4 = self:HasAttachment("attachment_vm_silencer04")
-- local bSup5 = self:HasAttachment("attachment_vm_ar_mike4_barsil")
-- local bSup6 = self:HasAttachment("attachment_vm_ar_mike4_mag_v5")
-- if (!bSup1 && !bSup2 && !bSup3 && !bSup4 && !bSup5 && !bSup6) then
-- self.Reverb = {
-- RoomScale = 50000,
-- Sounds = {
-- Outside = {
-- Layer = Sound("Atmo_LMG.Outside"),
-- Reflection = Sound("Reflection_AR.Outside")
-- },
-- Inside = {
-- Layer = Sound("Atmo_LMG.Inside"),
-- Reflection = Sound("Reflection_AR.Inside")
-- }
-- }
-- }
-- end
-- self.Shell.Model = Model("models/viper/mw/shells/vfx_9x39_shell.mdl")
-- self.Shell.Scale = 0.35
-- end
SWEP.Customization = {
{"att_perk", "attachment_vm_sh_aalpha12_perk_soh", "att_perk_hip"},
{"attachment_vm_sh_aalpha12_barrel", "attachment_vm_sh_aalpha12_barhvy", "attachment_vm_sh_aalpha12_barlong", "attachment_vm_sh_aalpha12_barshort"},
{"attachment_vm_sh_aalpha12_mag", "attachment_vm_sh_aalpha12_slugmag", "attachment_vm_sh_aalpha12_xmags", "attachment_vm_sh_aalpha12_drummag"},
{"att_ammo_default", "att_ammo_db", "att_ammo_flechette",
"att_ammo_he", "att_ammo_slugs"},
{"att_stock", "attachment_vm_sh_aalpha12_stockl",
"attachment_vm_sh_aalpha12_stockh", "attachment_vm_sh_aalpha12_stocks"},
{"att_muzzle", "att_vm_compensator_shgn01", "att_vm_compensator_shgn02", "att_vm_flashhider01_shgn", "att_vm_muzzlebrake_shgn01",
"att_vm_breacher02_shgn", "attachment_vm_sh_oscar12_suppressor", "attachment_vm_sh_oscar12_silencer02",
"attachment_vm_sh_oscar12_silencer03"},
{"att_sight", "att_vm_2x_west02_holo", "att_vm_2x_west02", "att_vm_reflex_02", "att_vm_minireddot01_tall", "att_vm_minireddot02_tall", "att_vm_minireddot03_tall",
"att_vm_holo_west01", "att_vm_holo_west02", "att_vm_holo_east01", "att_vm_reflex_east01",
"att_vm_reflex_east02_tall", "att_vm_reflex_west02_tall", "att_vm_reflex_west03",
"att_vm_thermal_east01", "att_vm_thermal_west01", "att_vm_reflex_west04", "att_vm_2x_west01",
"att_vm_4x_east01_tall", "att_vm_4x_west01_tall", "att_vm_4x_west02_tall",
"att_vm_scope_mike14", "att_vm_scope_vz"},
{"att_laser", "attachment_vm_sh_aalpha12_laser01", "attachment_vm_sh_aalpha12_laser02", "attachment_vm_sh_aalpha12_laser03"},
{"att_grip", "attachment_vm_sh_aalpha12_angledgrip01", "attachment_vm_sh_aalpha12_angledgrip02", "attachment_vm_sh_aalpha12_stubbygrip01",
"attachment_vm_sh_aalpha12_stubbygrip02", "attachment_vm_sh_aalpha12_vertgrip01", "attachment_vm_sh_aalpha12_vertgrip02",
"attachment_vm_sh_aalpha12_vertgrip03"},
}
--NECESSARY: it loads custom attachments from other authors
require("mw_utils")
mw_utils.LoadInjectors(SWEP)
-- SWEP.Customization = {
-- ["Perk"] = {
-- Slot = 1,
-- {
-- Key = "no_perk",
-- },
-- {
-- Key = "perk_soh",
-- Stats = function(self)
-- self.Animations.Reload = self.Animations.Reload_Fast
-- self.Animations.Reload_Empty = self.Animations.Reload_Empty_Fast
-- self.Animations.reload_drum = self.Animations.reload_drum_fast
-- self.Animations.reload_empty_drum = self.Animations.reload_drum_empty_fast
-- end
-- },
-- {
-- Key = "perk_fastmelee",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "perk_heavymelee",
-- Stats = function(self)
-- end
-- },
-- --[[{
-- Key = "perk_fmj",
-- Stats = function(self)
-- end
-- }]]
-- },
-- ["Ammo"] = {
-- Slot = 2,
-- {
-- Key = "no_attachment",
-- PostProcess = function(self)
-- self.Primary.TrailingSound = nil
-- self.Projectile = nil
-- end,
-- },
-- {
-- Key = "sh_slugs",
-- Stats = function(self)
-- end,
-- PostProcess = function(self)
-- self.Primary.TrailingSound = nil
-- end,
-- },
-- {
-- Key = "sh_db",
-- Stats = function(self)
-- doDBStats(self)
-- end
-- },
-- {
-- Key = "sh_flechette",
-- Stats = function(self)
-- end,
-- PostProcess = function(self)
-- self.Primary.TrailingSound = nil
-- end,
-- },
-- {
-- Key = "sh_he",
-- Stats = function(self)
-- end,
-- PostProcess = function(self)
-- self.Primary.TrailingSound = nil
-- end,
-- },
-- },
-- ["Mag"] = {
-- Slot = 3,
-- {
-- Key = "attachment_vm_sh_aalpha12_mag",
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_slugmag",
-- Stats = function(self)
-- self.Shell.Model = "models/viper/mw/shells/vfx_sgcalds_shell.mdl"
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_xmags",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_drummag",
-- Stats = function(self)
-- end
-- },
-- },
-- ["Barrel"] = {
-- Slot = 4,
-- {
-- Key = "attachment_vm_sh_aalpha12_barrel",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_barlong",
-- Bodygroups = {
-- ["tag_tip"] = 4,
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_barhvy",
-- Bodygroups = {
-- ["tag_tip"] = 2,
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_barshort",
-- Bodygroups = {
-- ["tag_tip"] = 5,
-- },
-- Stats = function(self)
-- end
-- }
-- },
-- ["Muzzle"] = {
-- Slot = 5,
-- {
-- Key = "no_muzzle"
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_choke",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_compensator_shgn01",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_flashhider_shtgn01",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ParticleEffects.MuzzleFlash = "AC_muzzle_pistol_suppressed"
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlebrake_shgn01",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlemelee_shgn01",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_oscar12_silencer03",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_oscar12_silencer02",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_oscar12_suppressor",
-- Bodygroups = {
-- ["tag_tip"] = 1,
-- },
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 8, 0), Angle()},
-- [3] = {Vector(0, 5, 0), Angle()},
-- [4] = {Vector(0, -1.2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- },
-- ["Optic"] = {
-- Slot = 6,
-- {
-- Key = "no_sight",
-- },
-- {
-- Key = "attachment_vm_minireddot_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.27)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0) --i know you tell me not to fuck with this but the dot being actually centered on the glass demands it xoxo
-- end
-- },
-- {
-- Key = "attachment_vm_minireddot02_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.3)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_minireddot03_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.3)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_holo_west02",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.1)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_holo_east",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.28)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.1, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_east02_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_west03",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_west04",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.1)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_holo_west_lod0",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_east",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.15)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.167, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_4x_east_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.11, 0, -0.045)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(0, 0, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_4x_west_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.16)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_4x_west02_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.055)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_thermal_east_tall",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.005, 0, 0.01)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_thermal_hybrid",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.005, 0, 0.435)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- self.HybridAimAngles = Angle(0, 0, -45)
-- self.HybridAimPos = Vector(-1.77, 0, 0.9)
-- end
-- },
-- {
-- Key = "attachment_vm_thermal_west_01",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.005, 0, 0.455)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_hybrid_west",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.005, 0, 0.3)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.035, 0)
-- self.HybridAimAngles = Angle(-0.01, 0.02, 0)
-- self.HybridAimPos = Vector(0,2,-0.9)
-- end
-- },
-- {
-- Key = "attachment_vm_hybrid_west03",
-- Bodygroups = {
-- ["tag_sight"] = 1,
-- },
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(-0.01, 0, 0.38)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(0, -0.012, 0)
-- self.Zoom.Blur.EyeFocusDistance = 1.5
-- self.HybridAimAngles = Angle(0, 0, -45)
-- self.HybridAimPos = Vector(-1.6, 0, 1.15)
-- end
-- },
-- },
-- ["Stock"] = {
-- Slot = 7,
-- {
-- Key = "no_attachment",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_stockh",
-- Bodygroups = {
-- ["tag_stock_hide"] = 1,
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_stockl",
-- Bodygroups = {
-- ["tag_stock_hide"] = 1,
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_sh_aalpha12_stocks",
-- Bodygroups = {
-- ["tag_stock_hide"] = 1,
-- },
-- Stats = function(self)
-- end
-- },
-- },
-- ["Laser"] = {
-- Slot = 8,
-- {
-- Key = "no_laser"
-- },
-- {
-- Key = "attachment_vm_laser01",
-- VElement = {
-- Bone = "tag_laser_attach",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self.LaserAimAngles = Angle(-0.3, 0.2, -45)
-- self.LaserAimPos = Vector(-2, 0, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_laser02",
-- VElement = {
-- Bone = "tag_laser_attach",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self.LaserAimAngles = Angle(-0.4, 0.265, -45)
-- self.LaserAimPos = Vector(-2, 0, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_laser03",
-- VElement = {
-- Bone = "tag_laser_attach",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self.LaserAimAngles = Angle(-0.3, 0.2, -45)
-- self.LaserAimPos = Vector(-2, 0, 0)
-- end
-- }
-- },
-- ["Underbarrel"] = {
-- Slot = 9,
-- {
-- Key = "no_underbarrel",
-- },
-- {
-- Key = "attachment_vm_angledgrip_lod0",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- VElement = {
-- Bone = "tag_grip_attach",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_ang_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_angledgrip04",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- VElement = {
-- Bone = "tag_grip_attach",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_ang_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip02_lod0",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip03",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip_stubby02",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip_stubby01",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip_stubby04",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- },
-- }

View File

@@ -0,0 +1,179 @@
AddCSLuaFile()
PrecacheParticleSystem("AC_muzzle_shotgun")
PrecacheParticleSystem("AC_muzzle_shotgun_db")
PrecacheParticleSystem("AC_muzzle_pistol_suppressed")
PrecacheParticleSystem("AC_muzzle_pistol_ejection")
PrecacheParticleSystem("AC_muzzle_pistol_smoke_barrel")
PrecacheParticleSystem("AC_muzzle_minigun_smoke_barrel")
SWEP.BulletList = {[0] = "j_ammoshell1", [1] = "j_ammoshell2"}
include("animations.lua")
include("customization.lua")
if CLIENT then
killicon.Add( "mg_aalpha12", "VGUI/entities/mg_aalpha12", Color(255, 0, 0, 255))
SWEP.WepSelectIcon = surface.GetTextureID("VGUI/spawnicons/icon_cac_weapon_sh_aalpha12")
end
SWEP.Base = "mg_base"
SWEP.GripPoseParameters = {"grip_ang_offset", "grip_vert_offset"}
SWEP.PrintName = "Jak-12"
SWEP.Category = "Modern Warfare"
SWEP.SubCategory = "Shotguns"
SWEP.Spawnable = true
SWEP.VModel = Model("models/viper/mw/weapons/v_aalpha12.mdl")
SWEP.WorldModel = Model("models/viper/mw/weapons/w_aalpha12.mdl")
SWEP.Trigger = {
PressedSound = Sound("mw19.aalpha12.fire.first"),
ReleasedSound = Sound("mw19.aalpha12.disconnector"),
Time = 0.15
}
SWEP.Slot = 3
SWEP.HoldType = "Rifle"
SWEP.Primary.Sound = Sound("mw19.aalpha12.fire")
SWEP.Primary.Ammo = "Buckshot"
SWEP.Primary.ClipSize = 8
SWEP.Primary.Automatic = true
SWEP.Primary.BurstRounds = 1
SWEP.Primary.BurstDelay = 0
SWEP.Primary.RPM = 300
SWEP.CanChamberRound = false
SWEP.CanDisableAimReload = false
SWEP.ParticleEffects = {
["MuzzleFlash"] = "mw_fas2_muzzleflash_shotgun",
["MuzzleFlash_DB"] = "mw_fas2_muzzleflash_slug",
["MuzzleFlash_Suppressed"] = "mw_fas2_muzzleflash_suppressed",
["Ejection"] = "mw_ins2_shell_eject",
["Overheating"] = "AC_muzzle_pistol_smoke_barrel",
}
SWEP.Reverb = {
RoomScale = 50000, --(cubic hu)
--how big should an area be before it is categorized as 'outside'?
Sounds = {
Outside = {
Layer = Sound("Atmo_Sniper.Outside"),
Reflection = Sound("Reflection_Shotgun.Outside")
},
Inside = {
Layer = Sound("Atmo_Shotgun.Inside"),
Reflection = Sound("Reflection_Shotgun.Inside")
}
}
}
SWEP.Firemodes = {
[1] = {
Name = "Automatic",
OnSet = function(self)
self.Primary.Automatic = true
return "Firemode_Auto"
end
},
}
SWEP.BarrelSmoke = {
Particle = "AC_muzzle_minigun_smoke_barrel",
Attachment = "muzzle",
ShotTemperatureIncrease = 75,
TemperatureThreshold = 250, --temperature that triggers smoke
TemperatureCooldown = 100 --degrees per second
}
SWEP.Cone = {
Hip = 0.75, --accuracy while hip
Ads = 0.75, --accuracy while aiming
Increase = 0.085, --increase cone size by this amount every time we shoot
AdsMultiplier = 0.15, --multiply the increase value by this amount while aiming
Max = 2.5, --the cone size will not go beyond this size
Decrease = 0.24, -- amount (in seconds) for the cone to completely reset (from max)
Seed = 6974 --just give this a random number
}
SWEP.Recoil = {
Vertical = {1, 2}, --random value between the 2
Horizontal = {-1, 1}, --random value between the 2
Shake = 3, --camera shake
AdsMultiplier = 0.35, --multiply the values by this amount while aiming
Seed = 1158, --give this a random number until you like the current recoil pattern
ViewModelMultiplier = 0.56
}
SWEP.Bullet = {
Damage = {60, 35}, --first value is damage at 0 meters from impact, second value is damage at furthest point in effective range
EffectiveRange = 10, --in meters, damage scales within this distance
DropOffStartRange = 10,
Range = 40, --in meters, after this distance the bullet stops existing
Tracer = false, --show tracer
NumBullets = 4, --the amount of bullets to fire
PhysicsMultiplier = 1.7, --damage is multiplied by this amount when pushing objects
Penetration = {
DamageMultiplier = 0.94, --how much damaged is multipled by when leaving a surface.
MaxCount = 10, --how many times the bullet can penetrate.
Thickness = 12, --in hu, how thick an obstacle has to be to stop the bullet.
}
}
SWEP.Zoom = {
FovMultiplier = 0.95,
ViewModelFovMultiplier = 1,
Blur = {
EyeFocusDistance = 15
}
}
SWEP.WorldModelOffsets = {
Bone = "tag_sling",
Angles = Angle(-3,90,-90),
Pos = Vector(3.5,-6,-4)
}
SWEP.ViewModelOffsets = {
Aim = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 3, 0)
},
Idle = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Inspection = {
Bone = "tag_sling",
X = {
[0] = {Pos = Vector(0, 3, 3), Angles = Angle(40, 0, -30)},
[1] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 0, 0)}
},
Y = {
[0] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 20, 0)},
[1] = {Pos = Vector(4, 0, 1.5), Angles = Angle(10, -20, 0)}
}
},
RecoilMultiplier = 1.75,
KickMultiplier = 1.3,
AimKickMultiplier = 0.45
}
SWEP.Shell = "mwb_shelleject_12g_black"
DEFINE_BASECLASS("mg_base")
-- local emptyPos = Vector(3.6, 0, 0)
-- local fullPos = Vector(0, 0, 0)
-- function SWEP:PostDrawViewModel(vm, weapon, ply)
-- BaseClass.PostDrawViewModel(self, vm, weapon, ply)
-- self:RemoveBulletsBasedOnClip(self:GetAttachmentModels("Mag"), self.BulletList)
-- self:GetViewModel():ManipulateBonePosition(self:LookupBoneCached(self:GetViewModel(), "j_bolt"), (self:Clip1() <= 0 && !self:HasFlag("Reloading")) && emptyPos || fullPos)
-- end

View File

@@ -0,0 +1,419 @@
AddCSLuaFile()
SWEP.Animations = {
["Idle"] = {--idle is a special animation index, movement animations are played when this is on
Sequences = {"idle"},
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
--does not need NextSequence to loop, it's an exception to the rule
},
["Draw"] = {
Sequences = {"draw"},
Length = 0.4,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.akilo47.raise")) end}
}
},
["Holster"] = {
Sequences = {"holster"},
Length = 0.75,
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.akilo47.drop")) end},
{Time = 0, Callback = function(self) self:DisableGrip() end},
}
},
["Equip"] = {
Sequences = {"draw_First"},
Length = 1.4,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.35, Callback = function(self) self:DoSound(Sound("mw19.akilo47.raise.first")) end},
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
},
["Reload"] = {
Sequences = {"reload"},
Length = 2.45,
Fps = 35,
MagLength = 1.5,
NextSequence = "Idle",
Events = {
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_01")) end},
{Time = 0.43, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_02")) end},
{Time = 1.13, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_03")) end},
{Time = 1.53, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_035")) end},
{Time = 1.66, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_04")) end},
{Time = 1.83, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_05")) end},
{Time = 2.13, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_06")) end},
{Time = 2.13, Callback = function(self) self:DoSound(Sound("")) end},
{Time = 2.33, Callback = function(self) self:EnableGrip() end}
}
},
["Reload_Fast"] = {
Sequences = {"reload_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1.13,
NextSequence = "Idle",
Events = {
{Time = 0.066, Callback = function(self) self:DisableGrip() end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_fast_01")) end},
{Time = 0.066, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_fast_02")) end},
{Time = 0.73, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_fast_03")) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Metal"), Vector(-10, 0, 40)) end},
{Time = 1.1, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_fast_035")) end},
{Time = 1.06, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_fast_04")) end},
{Time = 1.06,Callback = function(self) self:DoSound(Sound("")) end},
{Time = 1.06,Callback = function(self) self:DoSound(Sound("")) end},
{Time = 1.46, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_XmagLrg"] = {
Sequences = {"reload_drum"},
Length = 2.5,
Fps = 30,
MagLength = 1.75,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("")) end},
{Time = 0, Callback = function(self) self:DoSound(Sound("")) end},
{Time = 0.066, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_01")) end},
{Time = 0.066, Callback = function(self) self:DisableGrip() end},
{Time = 0.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_02")) end},
{Time = 0.96, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_03")) end},
{Time = 1.43, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_035")) end},
{Time = 1.66, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_04")) end},
{Time = 1.96, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_05")) end},
{Time = 2.3, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_XmagLrg_Fast"] = {
Sequences = {"reload_drum_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("")) end},
{Time = 0, Callback = function(self) self:DoSound(Sound("")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_fast_01")) end},
{Time = 0.066, Callback = function(self) self:DisableGrip() end},
{Time = 0.26, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_fast_02")) end},
{Time = 0.5, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.Drum"), Vector(0, 0, 40)) end},
{Time = 0.86, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_fast_03")) end},
{Time = 1.06, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_fast_035")) end},
{Time = 1.26, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_fast_04")) end},
{Time = 1.36, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty"] = {
Sequences = {"reload_empty"},
Length = 2.75,
Fps = 30,
MagLength = 1.55,
NextSequence = "Idle",
Events = {
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_01")) end},
{Time = 0.033, Callback = function(self) self:DisableGrip() end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_02")) end},
{Time = 0.96, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_03")) end},
{Time = 1.13, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_04")) end},
{Time = 1.3, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Metal"), Vector(-15, 10, 40)) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_045")) end},
{Time = 1.86, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_05")) end},
{Time = 2.26, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_06")) end},
{Time = 2.55, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty_Fast"] = {
Sequences = {"reload_empty_fast"},
Length = 1.85,
Fps = 30,
MagLength = 1,
NextSequence = "Idle",
Events = {
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_fast_01")) end},
{Time = 0.066, Callback = function(self) self:DisableGrip() end},
{Time = 0.13, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_fast_02")) end},
{Time = 0.66, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_fast_03")) end},
{Time = 1.03, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_fast_035")) end},
{Time = 1.23, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Metal"), Vector(-15, 10, 40)) end},
{Time = 1.36, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_fast_04")) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_reload_empty_fast_05")) end},
{Time = 1.7,Callback = function(self) self:DoSound(Sound("")) end},
{Time = 1.7, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty_XmagLrg"] = {
Sequences = {"reload_empty_drum"},
Length = 3.7,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 0.066, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_01")) end},
{Time = 0.066, Callback = function(self) self:DisableGrip() end},
{Time = 0.73, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_02")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_03")) end},
{Time = 1.25, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.Drum"), Vector(0, 0, 40)) end},
{Time = 1.63, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_035")) end},
{Time = 2.06, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_04")) end},
{Time = 2.16, Callback = function(self) self:EnableGrip() end},
{Time = 2.86, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_05")) end},
{Time = 3.16, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_06")) end},
}
},
["Reload_Empty_XmagLrg_Fast"] = {
Sequences = {"reload_empty_drum_fast"},
Length = 2.45,
Fps = 30,
MagLength = 1.25,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_fast_01")) end},
{Time = 0.066, Callback = function(self) self:DisableGrip() end},
{Time = 0.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_fast_02")) end},
{Time = 0.63, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_fast_03")) end},
{Time = 0.9, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.Drum"), Vector(0, 0, 40)) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_fast_04")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_fast_05")) end},
{Time = 1.53, Callback = function(self) self:EnableGrip() end},
{Time = 1.93, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_fast_06")) end},
{Time = 2.03, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_akilo47_drum_reload_empty_fast_07")) end},
}
},
["Fire"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Fire_Last"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Ads_In"] = {
Sequences = {"ads_in"},
Length = 0.3,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.akilo47.ads.up")) end}
}
},
["Ads_Out"] = {
Sequences = {"ads_out"},
Length = 0.3,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.akilo47.ads.down")) end}
}
},
["Sprint_In"] = {
Sequences = {"sprint_in"},
Fps = 24,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
--NextSequence = "Sprint_Loop",
},
["Sprint_Loop"] = {
Sequences = {"sprint_loop"},
Fps = 30,
NextSequence = "Sprint_Loop", --make our state loop
--while sprinting, the playback rate of the viewmodel is scaled with velocity (cod-like behaviour)
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Sprint_Out"] = {
Sequences = {"sprint_out"},
Length = 0.3,
Fps = 24,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Firemode_Auto"] = {
Sequences = {"semi_off"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.akilo47.selector.off")) end}
}
},
["Firemode_Semi"] = {
Sequences = {"semi_on"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.akilo47.selector.on")) end}
}
},
["Inspect"] = {
Sequences = {"inspect"},
Length = 5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.akilo47.inspect.01")) end},
{Time = 0.13, Callback = function(self) self:DisableGrip() end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("mw19.akilo47.inspect.02")) end},
{Time = 2.36, Callback = function(self) self:DoSound(Sound("mw19.akilo47.inspect.03")) end},
{Time = 3.6, Callback = function(self) self:DoSound(Sound("mw19.akilo47.inspect.04")) end},
{Time = 4.26, Callback = function(self) self:DoSound(Sound("mw19.akilo47.inspect.05")) end},
{Time = 4.4, Callback = function(self) self:EnableGrip() end},
}
},
["Jog_Out"] = {
Sequences = {"jog_out"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
},
["Jump"] = {
Sequences = {"jump"},
Fps = 15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
},
["Land"] = {
Sequences = {"jump_land"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
},
["Melee"] = {
Sequences = {"melee_miss_01", "melee_miss_02", "melee_miss_03"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
["Melee_Hit"] = {
Sequences = {"melee_hit_01", "melee_hit_02", "melee_hit_03"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
["Melee_Bayonet"] = {
Sequences = {"melee_miss_01_bayonet", "melee_miss_02_bayonet", "melee_miss_03_bayonet"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Knife")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
["Melee_Hit_Bayonet"] = {
Sequences = {"melee_hit_01_bayonet", "melee_hit_02_bayonet", "melee_hit_03_bayonet"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Medium")) end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.World_Knife")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,167 @@
AddCSLuaFile()
PrecacheParticleSystem("AC_muzzle_rifle")
PrecacheParticleSystem("mw_fas2_muzzleflash_suppressed")
PrecacheParticleSystem("mw_ins2_shell_eject")
PrecacheParticleSystem("mw_fas2_muzzleflash_ar_smoke_barrel")
include("animations.lua")
include("customization.lua")
if CLIENT then
killicon.Add( "mg_akilo47", "VGUI/entities/mg_akilo47", Color(255, 0, 0, 255))
SWEP.WepSelectIcon = surface.GetTextureID("VGUI/spawnicons/icon_cac_weapon_ar_akilo47")
end
SWEP.Base = "mg_base"
SWEP.GripPoseParameters = {"grip_ang_offset", "grip_smg_pose_offset", "grip_vert_offset", "grip_vert_smg_offset",
"grip_vert_pro_offset", "grip_vert_pro_smg_offset", "grip_smg_anggrip_offset"}
SWEP.PrintName = "AK-47"
SWEP.Category = "Modern Warfare"
SWEP.SubCategory = "Assault Rifles"
SWEP.Spawnable = true
SWEP.VModel = Model("models/viper/mw/weapons/v_akilo47.mdl")
SWEP.WorldModel = Model("models/viper/mw/weapons/w_akilo47.mdl")
SWEP.Slot = 2
SWEP.HoldType = "Rifle"
SWEP.Trigger = {
PressedSound = Sound("mw19.akilo47.fire.first"),
ReleasedSound = Sound("mw19.akilo47.fire.disconnector"),
Time = 0.025
}
SWEP.Primary.Sound = Sound("mw19.akilo47.fire")
SWEP.Primary.Ammo = "Ar2"
SWEP.Primary.ClipSize = 30
SWEP.Primary.Automatic = true
SWEP.Primary.BurstRounds = 1
SWEP.Primary.BurstDelay = 0
SWEP.Primary.RPM = 561
SWEP.CanChamberRound = true
SWEP.ParticleEffects = {
["MuzzleFlash"] = "mw_fas2_muzzleflash_ar",
["MuzzleFlash_Suppressed"] = "mw_fas2_muzzleflash_suppressed",
["Ejection"] = "mw_ins2_shell_eject",
}
SWEP.Reverb = {
RoomScale = 50000, --(cubic hu)
--how big should an area be before it is categorized as 'outside'?
Sounds = {
Outside = {
Layer = Sound("Atmo_AR.Outside"),
Reflection = Sound("Reflection_AR.Outside")
},
Inside = {
Layer = Sound("Atmo_AR.Inside"),
Reflection = Sound("Reflection_AR.Inside")
}
}
}
SWEP.Firemodes = {
[1] = {
Name = "Full Auto",
OnSet = function()
return "Firemode_Auto"
end
},
[2] = {
Name = "Semi Automatic",
OnSet = function(self)
self.Primary.Automatic = false
self.Primary.RPM = 500
return "Firemode_Semi"
end
},
}
SWEP.BarrelSmoke = {
Particle = "mw_fas2_muzzleflash_ar_smoke_barrel",
Attachment = "muzzle",
ShotTemperatureIncrease = 35,
TemperatureThreshold = 100, --temperature that triggers smoke
TemperatureCooldown = 100 --degrees per second
}
SWEP.Cone = {
Hip = 0.45, --accuracy while hip
Ads = 0.13, --accuracy while aiming
Increase = 0.093, --increase cone size by this amount every time we shoot
AdsMultiplier = 0.24, --multiply the increase value by this amount while aiming
Max = 1.75, --the cone size will not go beyond this size
Decrease = 0.6, -- amount (in seconds) for the cone to completely reset (from max)
Seed = 76676 --just give this a random number
}
SWEP.Recoil = {
Vertical = {2, 2.5}, --random value between the 2
Horizontal = {-1.75, 1.75}, --random value between the 2
Shake = 1.5, --camera shake
AdsMultiplier = 0.2, --multiply the values by this amount while aiming
Seed = 24366 --give this a random number until you like the current recoil pattern
}
SWEP.Bullet = {
Damage = {33, 15}, --first value is damage at 0 meters from impact, second value is damage at furthest point in effective range
DropOffStartRange = 20, --in meters, damage will start dropping off after this range
EffectiveRange = 45, --in meters, damage scales within this distance
Range = 180, --in meters, after this distance the bullet stops existing
Tracer = false, --show tracer
NumBullets = 1, --the amount of bullets to fire
PhysicsMultiplier = 1, --damage is multiplied by this amount when pushing objects
HeadshotMultiplier = 1,
Penetration = {
DamageMultiplier = 0.8, --how much damaged is multipled by when leaving a surface.
MaxCount = 3, --how many times the bullet can penetrate.
Thickness = 12, --in hu, how thick an obstacle has to be to stop the bullet.
}
}
SWEP.Zoom = {
FovMultiplier = 0.95,
ViewModelFovMultiplier = 1,
Blur = {
EyeFocusDistance = 8
}
}
SWEP.WorldModelOffsets = {
Bone = "tag_sling",
Angles = Angle(0, 90, -90),
Pos = Vector(-5,0,9)
}
SWEP.ViewModelOffsets = {
Aim = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Idle = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Inspection = {
Bone = "tag_sling",
X = {
[0] = {Pos = Vector(0, -4, 3), Angles = Angle(40, 0, -30)},
[1] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 0, 0)}
},
Y = {
[0] = {Pos = Vector(3, 0, -2), Angles = Angle(-10, 20, 0)},
[1] = {Pos = Vector(4, 0, 3), Angles = Angle(10, -20, 0)}
}
},
RecoilMultiplier = 0.45,
KickMultiplier = 2,
AimKickMultiplier = 1
}
SWEP.Shell = "mwb_shelleject_762"

View File

@@ -0,0 +1,475 @@
AddCSLuaFile()
SWEP.Animations = {
["Idle"] = {--idle is a special animation index, movement animations are played when this is on
Sequences = {"idle"},
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
--does not need NextSequence to loop, it's an exception to the rule
},
["Draw"] = {
Sequences = {"draw"},
Length = 0.7,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.067, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_raise_01")) end},
}
},
["Holster"] = {
Sequences = {"holster"},
Length = 1,
Fps = 30,
Events = {
{Time = 0.067, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_drop_01")) end},
}
},
["Equip"] = {
Sequences = {"draw_First"},
Length = 1.25,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.567, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_raise_first_02")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_raise_first_01")) end},
}
},
["reload_xmag"] = {
Sequences = {"reload_xmag"},
Length = 3.03,
MagLength = 2.3,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_02")) end},
{Time = 2.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_06")) end},
{Time = 2.233, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_055")) end},
{Time = 1.8, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_04")) end},
{Time = 2.1, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_05")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_03")) end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_01")) end},
}
},
["reload_xmag_fast"] = {
Sequences = {"reload_xmag_fast"},
Length = 2.06,
MagLength = 1.26,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 1.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_035")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_04")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_02")) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_03")) end},
{Time = 0.133, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_01")) end},
}
},
["reload_mmag"] = {
Sequences = {"reload_mmag"},
Length = 3.03,
MagLength = 2.3,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_02")) end},
{Time = 2.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_06")) end},
{Time = 2.233, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_055")) end},
{Time = 1.8, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_04")) end},
{Time = 2.1, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_05")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_03")) end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_01")) end},
}
},
["reload_mmag_fast"] = {
Sequences = {"reload_mmag_fast"},
Length = 2.06,
MagLength = 1.26,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 1.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_035")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_04")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_02")) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_03")) end},
{Time = 0.133, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_01")) end},
}
},
["Reload"] = {
Sequences = {"reload"},
Length = 3.03,
MagLength = 2.3,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_02")) end},
{Time = 2.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_06")) end},
{Time = 2.233, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_055")) end},
{Time = 1.8, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_04")) end},
{Time = 2.1, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_05")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_03")) end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_01")) end},
}
},
["Reload_Fast"] = {
Sequences = {"reload_fast"},
Length = 2.06,
MagLength = 1.26,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 1.5, Callback = function(self) end},
{Time = 1.5, Callback = function(self) end},
{Time = 1.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_035")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_04")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_02")) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_03")) end},
{Time = 0.133, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_fast_01")) end},
}
},
["reload_empty_xmag"] = {
Sequences = {"reload_empty_xmag"},
Length = 4.5,
MagLength = 2.83,
Fps = 30,
NextSequence = "Idle",
Events = {
{
Time = 0.5,
Callback = function(self)
self:DoEjection("shell_eject")
end
},
{Time = 2.8, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_055")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_03")) end},
{Time = 3.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_08")) end},
{Time = 3.1, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_06")) end},
{Time = 3.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_07")) end},
{Time = 1.533, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_04")) end},
{Time = 2.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_05")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_02")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_01")) end},
}
},
["reload_empty_xmag_fast"] = {
Sequences = {"reload_empty_xmag_fast"},
Length = 2.9,
MagLength = 1.73,
Fps = 30,
NextSequence = "Idle",
Events = {
{
Time = 0.25,
Callback = function(self)
self:DoEjection("shell_eject")
end
},
{Time = 2.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_06")) end},
{Time = 2.667, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_07")) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_05")) end},
{Time = 0.233, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_02")) end},
{Time = 1.867, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_055")) end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_01")) end},
{Time = 0.767, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_03")) end},
{Time = 1.0, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_04")) end},
}
},
["reload_empty_mmag"] = {
Sequences = {"reload_empty_mmag"},
Length = 4.5,
MagLength = 2.83,
Fps = 30,
NextSequence = "Idle",
Events = {
{
Time = 0.5,
Callback = function(self)
self:DoEjection("shell_eject")
end
},
{Time = 2.8, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_055")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_03")) end},
{Time = 3.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_08")) end},
{Time = 3.1, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_06")) end},
{Time = 3.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_07")) end},
{Time = 1.533, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_04")) end},
{Time = 2.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_05")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_02")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_01")) end},
}
},
["reload_empty_mmag_fast"] = {
Sequences = {"reload_empty_mmag_fast"},
Length = 2.9,
MagLength = 1.73,
Fps = 30,
NextSequence = "Idle",
Events = {
{
Time = 0.25,
Callback = function(self)
self:DoEjection("shell_eject")
end
},
{Time = 2.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_06")) end},
{Time = 2.667, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_07")) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_05")) end},
{Time = 0.233, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_02")) end},
{Time = 1.867, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_055")) end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_01")) end},
{Time = 0.767, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_03")) end},
{Time = 1.0, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_04")) end},
}
},
["Reload_Empty"] = {
Sequences = {"reload_empty"},
Length = 4.5,
MagLength = 2.83,
Fps = 30,
NextSequence = "Idle",
Events = {
{
Time = 0.5,
Callback = function(self)
self:DoEjection("shell_eject")
end
},
{Time = 2.8, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_055")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_03")) end},
{Time = 3.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_08")) end},
{Time = 3.1, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_06")) end},
{Time = 3.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_07")) end},
{Time = 1.533, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_04")) end},
{Time = 2.5, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_05")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_02")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_01")) end},
}
},
["Reload_Empty_Fast"] = {
Sequences = {"reload_empty_fast"},
Length = 2.9,
MagLength = 1.73,
Fps = 30,
NextSequence = "Idle",
Events = {
{
Time = 0.25,
Callback = function(self)
self:DoEjection("shell_eject")
end
},
{Time = 2.3, Callback = function(self) end},
{Time = 2.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_06")) end},
{Time = 2.667, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_07")) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_05")) end},
{Time = 0.233, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_02")) end},
{Time = 1.867, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_055")) end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_01")) end},
{Time = 0.767, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_03")) end},
{Time = 1.0, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_reload_empty_fast_04")) end},
}
},
["Fire"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
},
["Rechamber"] = {
Sequences = {"rechamber"},
Fps = 30,
Length = 1.3,
NextSequence = "Idle",
Events = {
{
Time = 0.5,
Callback = function(self)
self:DoEjection("shell_eject")
end
},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_01")) end},
{Time = 0.733, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_rechamber_02")) end},
}
},
["Fire_Last"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
},
["Ads_In"] = {
Sequences = {"ads_in"},
Length = 0.25,
Fps = 25,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("weap_sn_alpha50_ads_up")) end},
}
},
["Ads_Out"] = {
Sequences = {"ads_out"},
Length = 0.25,
Fps = 25,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("weap_sn_alpha50_ads_down")) end},
}
},
["Sprint_In"] = {
Sequences = {"sprint_in"},
Fps = 24,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
--NextSequence = "Sprint_Loop",
},
["Sprint_Loop"] = {
Sequences = {"sprint_loop"},
Fps = 30,
NextSequence = "Sprint_Loop", --make our state loop
--while sprinting, the playback rate of the viewmodel is scaled with velocity (cod-like behaviour)
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
},
["Sprint_Out"] = {
Sequences = {"sprint_out"},
Length = 0.3,
Fps = 24,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
},
["Inspect"] = {
Sequences = {"inspect"},
Length = 5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 1.7, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_inspect_02")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_inspect_01")) end},
{Time = 3.867, Callback = function(self) self:DoSound(Sound("wfoly_plr_sn_alpha50_inspect_03")) end},
}
},
["Jog_Out"] = {
Sequences = {"jog_out"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
},
["Jump"] = {
Sequences = {"jump"},
Fps = 15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
},
["Land"] = {
Sequences = {"jump_land"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip2() end},
}
},
["Melee"] = {
Sequences = {"melee_miss_01", "melee_miss_02", "melee_miss_03"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end},
}
},
["Melee_Hit"] = {
Sequences = {"melee_hit_01", "melee_hit_02", "melee_hit_03"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end},
}
},
}

View File

@@ -0,0 +1,49 @@
AddCSLuaFile()
function SWEP:doSuppressorStats()
self.Primary.Sound = Sound("weap_alpha50_fire_plr_sup")
self.Reverb = {
RoomScale = 50000,
Sounds = {
Outside = {
Layer = Sound("Atmo_Sniper_Sup.Outside"),
Reflection = Sound("Reflection_Sniper.Outside")
},
Inside = {
Layer = Sound("Atmo_DMR_Sup.Inside"),
Reflection = Sound("Reflection_ARSUP.Inside")
}
}
}
self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
end
SWEP.Customization = {
{"att_perk", "attachment_vm_sn_alpha50_perk_soh",
"att_perk_steadywalk", "att_perk_nodrop", "att_perk_scopesway"},
{"attachment_vm_sn_alpha50_stock", "attachment_vm_sn_alpha50_stockh",
"attachment_vm_sn_alpha50_stockl", "attachment_vm_sn_alpha50_stocks"},
{"attachment_vm_sn_alpha50_mag", "attachment_vm_sn_alpha50_xmags", "attachment_vm_sn_alpha50_mmags"},
{"attachment_vm_sn_alpha50_barrel", "attachment_vm_sn_alpha50_barshort",
"attachment_vm_sn_alpha50_barmid", "attachment_vm_sn_alpha50_barlong"},
{"att_muzzle", "att_vm_alpha50_compensator01", "att_vm_alpha50_flashhider01", "att_vm_alpha50_muzzlebrake01",
"att_vm_alpha50_muzzlebrake02", "att_vm_alpha50_silencer01", "att_vm_alpha50_silencer02", "att_vm_alpha50_silencer03"},
{"att_sight", "att_vm_2x_west02_holo", "att_vm_2x_west02", "att_vm_reflex_02", "att_vm_2x_west02_holo", "att_vm_2x_west02", "att_vm_reflex_02", "attachment_vm_sn_alpha50_scope",
"att_vm_minireddot01_tall", "att_vm_minireddot02_tall", "att_vm_minireddot03_tall",
"att_vm_holo_west01", "att_vm_holo_west02", "att_vm_holo_east01", "att_vm_reflex_east01",
"att_vm_reflex_east02_tall", "att_vm_reflex_west02_tall", "att_vm_reflex_west03",
"att_vm_thermal_east01", "att_vm_thermal_west01", "att_vm_4x_east01_tall", "att_vm_2x_west01", "att_vm_scope_vz"},
{"att_laser", "attachment_vm_sn_alpha50_laser01", "attachment_vm_sn_alpha50_laser02",
"attachment_vm_sn_alpha50_laser03"},
}
--NECESSARY: it loads custom attachments from other authors
require("mw_utils")
mw_utils.LoadInjectors(SWEP)

View File

@@ -0,0 +1,183 @@
AddCSLuaFile()
PrecacheParticleSystem("AC_muzzle_shotgun")
PrecacheParticleSystem("AC_muzzle_shotgun_db")
PrecacheParticleSystem("AC_muzzle_pistol_suppressed")
PrecacheParticleSystem("AC_muzzle_pistol_ejection")
PrecacheParticleSystem("AC_muzzle_pistol_smoke_barrel")
PrecacheParticleSystem("AC_muzzle_minigun_smoke_barrel")
include("animations.lua")
include("customization.lua")
if CLIENT then
killicon.Add( "mg_alpha50", "VGUI/entities/mg_alpha50", Color(255, 0, 0, 255))
SWEP.WepSelectIcon = surface.GetTextureID("VGUI/spawnicons/icon_cac_weapon_sn_alpha50")
end
SWEP.GripPoseParameters = {"grip_ang_offset", "grip_vert_offset"}
-- SWEP.GripPoseParameters2 = {"grip_pistolgrip_offset"}
SWEP.Base = "mg_base"
SWEP.PrintName = "AX-50"
SWEP.Category = "Modern Warfare"
SWEP.SubCategory = "Sniper Rifles"
SWEP.Spawnable = true
SWEP.VModel = Model("models/viper/mw/weapons/vm_sn_alpha50.mdl")
SWEP.WorldModel = Model("models/viper/mw/weapons/w_alpha50.mdl")
SWEP.Trigger = {
PressedSound = Sound("weap_delta_fire_first"),
ReleasedSound = Sound("weap_delta_fire_disconnector"),
Time = 0.03
}
SWEP.Slot = 3
SWEP.HoldType = "BoltAction"
SWEP.Primary.Sound = Sound("weap_alpha50_fire_plr")
SWEP.Primary.Ammo = "357"
SWEP.Primary.ClipSize = 5
SWEP.Primary.Automatic = false
SWEP.Primary.BurstRounds = 1
SWEP.Primary.BurstDelay = 0
SWEP.Primary.RPM = 297
SWEP.CanChamberRound = true
SWEP.CanDisableAimReload = false
SWEP.ReloadRechambers = true
SWEP.Projectile = {
Class = "mg_sniper_bullet", --bullet entity class
Speed = 60000,
Gravity = 8,
Penetrate = true
}
SWEP.ParticleEffects = {
["MuzzleFlash"] = "mw_fas2_muzzleflash_dmr",
["MuzzleFlash_DB"] = "mw_fas2_muzzleflash_slug",
["MuzzleFlash_Suppressed"] = "mw_fas2_muzzleflash_suppressed",
["Ejection"] = "mw_ins2_shell_eject",
["Overheating"] = "AC_muzzle_pistol_smoke_barrel",
}
SWEP.Reverb = {
RoomScale = 50000, --(cubic hu)
--how big should an area be before it is categorized as 'outside'?
Sounds = {
Outside = {
Layer = Sound("Atmo_Sniper.Outside"),
Reflection = Sound("Reflection_Sniper.Outside")
},
Inside = {
Layer = Sound("Atmo_Shotgun.Inside"),
Reflection = Sound("Reflection_Shotgun.Inside")
}
}
}
SWEP.Firemodes = {
[1] = {
Name = "Bolt-Action",
OnSet = function(self)
self.Primary.Automatic = false
return "Firemode_Semi"
end
},
}
SWEP.BarrelSmoke = {
Particle = "AC_muzzle_minigun_smoke_barrel",
Attachment = "muzzle",
ShotTemperatureIncrease = 75,
TemperatureThreshold = 100, --temperature that triggers smoke
TemperatureCooldown = 65 --degrees per second
}
SWEP.Cone = {
Hip = 2, --accuracy while hip
Ads = 0.033, --accuracy while aiming
Increase = 3, --increase cone size by this amount every time we shoot
AdsMultiplier = 0.025, --multiply the increase value by this amount while aiming
Max = 5, --the cone size will not go beyond this size
Decrease = 2, -- amount (in seconds) for the cone to completely reset (from max)
Seed = 6985 --just give this a random number
}
SWEP.Recoil = {
Vertical = {3, 4}, --random value between the 2
Horizontal = {-1, 1}, --random value between the 2
Shake = 5, --camera shake
AdsMultiplier = 1, --multiply the values by this amount while aiming
Seed = 3584, --give this a random number until you like the current recoil pattern
Punch = 1, --recoil will offset the view by this amount (takes vertical, horizontal and adsmul into account)
AdsShakeMultiplier = 2
}
SWEP.Bullet = {
Damage = {190, 140}, --first value is damage at 0 meters from impact, second value is damage at furthest point in effective range
EffectiveRange = 300, --in meters, damage scales within this distance
DropOffStartRange = 30,
Range = 350, --in meters, after this distance the bullet stops existing
Tracer = false, --show tracer
NumBullets = 1, --the amount of bullets to fire
PhysicsMultiplier = 1.25, --damage is multiplied by this amount when pushing objects
HeadshotMultiplier = 2,
Penetration = {
DamageMultiplier = 1, --how much damaged is multipled by when leaving a surface.
MaxCount = 6, --how many times the bullet can penetrate.
Thickness = 32, --in hu, how thick an obstacle has to be to stop the bullet.
}
}
SWEP.Zoom = {
FovMultiplier = 0.95,
ViewModelFovMultiplier = 1,
BreathingMultiplier = 1,
MovementMultiplier = 1,
Blur = {
EyeFocusDistance = 10
}
}
SWEP.WorldModelOffsets = {
Bone = "tag_sling",
Angles = Angle(10,5,180),
Pos = Vector(10,-2, -1.5)
}
SWEP.ViewModelOffsets = {
Aim = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, -4, 0.55)
},
Idle = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Inspection = {
Bone = "tag_sling",
X = {
[0] = {Pos = Vector(0, 3, 3), Angles = Angle(40, 0, -30)},
[1] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 0, 0)}
},
Y = {
[0] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 20, 0)},
[1] = {Pos = Vector(4, 0, 1.5), Angles = Angle(10, -20, 0)}
}
},
RecoilMultiplier = 1.75,
KickMultiplier = 3.3,
AimKickMultiplier = 0.45
}
SWEP.Shell = "mwb_shelleject_50bmg"
function SWEP:PrimaryAttack()
local clip = self:Clip1()
weapons.Get(self.Base).PrimaryAttack(self)
if (clip != self:Clip1()) then
self:MakeEnvironmentDust(210)
end
end

View File

@@ -0,0 +1,502 @@
AddCSLuaFile()
-- local function fillMagBeforeMagin(self)
-- local am = math.min(self:Clip1() + self:GetOwner():GetAmmoCount(self:GetPrimaryAmmoType()), self:GetMaxClip1())
-- self:UpdateMagPoseParam(self:GetMaxClip1() - am)
-- end
SWEP.Animations = {
["Idle"] = {--idle is a special animation index, movement animations are played when this is on
Sequences = {"idle"},
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
--does not need NextSequence to loop, it's an exception to the rule
},
["Draw"] = {
Sequences = {"draw"},
Length = 0.5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.anovember94.raise")) end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Holster"] = {
Sequences = {"holster"},
Length = 0.5,
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.anovember94.drop")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Equip"] = {
Sequences = {"draw_First"},
Length = 1.5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 1.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_raise_first_06")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.567, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_raise_first_03")) end},
{Time = 1.233, Callback = function(self) self:EnableGrip() end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_raise_first_01")) end},
{Time = 0.467, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_raise_first_02")) end},
{Time = 0.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_raise_first_04")) end},
{Time = 0.833, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_raise_first_05")) end},
}
},
["Reload"] = {
Sequences = {"reload"},
Length = 2.4,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 1.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_045")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.233, Callback = function(self) self:EnableGrip() end},
{Time = 1.867, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_05")) end},
{Time = 0.867, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_03")) end},
{Time = 0.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_02")) end},
{Time = 0.067, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_01")) end},
{Time = 2.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_06")) end},
{Time = 1.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_04")) end},
}
},
["Reload_Fast"] = {
Sequences = {"reload_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1.15,
NextSequence = "Idle",
Events = {
{Time = 1.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_05")) end},
{Time = 1.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_04")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_01")) end},
{Time = 0.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_03")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_02")) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.433, Callback = function(self) self:EnableGrip() end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_045")) end},
}
},
["reload_xmag"] = {
Sequences = {"reload_xmag"},
Length = 2.4,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 2.233, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmags_06")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmags_04")) end},
{Time = 1.767, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmags_05")) end},
{Time = 0.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmags_02")) end},
{Time = 0.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmags_03")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmags_01")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmags_045")) end},
{Time = 2.233, Callback = function(self) self:EnableGrip() end},
}
},
["reload_xmag_fast"] = {
Sequences = {"reload_xmag_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1.15,
NextSequence = "Idle",
Events = {
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmags_03")) end},
{Time = 1.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmags_04")) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 1.433, Callback = function(self) self:EnableGrip() end},
{Time = 0.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmags_02")) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmags_035")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmags_01")) end},
}
},
["reload_xmaglrg"] = {
Sequences = {"reload_xmaglrg"},
Length = 2.4,
Fps = 30,
MagLength = 1.7,
NextSequence = "Idle",
Events = {
{Time = 1.067, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmagslrg_04")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmagslrg_05")) end},
{Time = 2.067, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmagslrg_06")) end},
{Time = 0.133, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmagslrg_01")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmagslrg_02")) end},
{Time = 0.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmagslrg_03")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.233, Callback = function(self) self:EnableGrip() end},
{Time = 1.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_xmagslrg_055")) end},
}
},
["reload_xmaglrg_fast"] = {
Sequences = {"reload_xmaglrg_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1.15,
NextSequence = "Idle",
Events = {
{Time = 0.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmagslrg_02")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmagslrg_035")) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 1.433, Callback = function(self) self:EnableGrip() end},
{Time = 0.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmagslrg_03")) end},
{Time = 1.467, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmagslrg_04")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_fast_xmagslrg_01")) end},
}
},
["Reload_Empty"] = {
Sequences = {"reload_empty"},
Length = 2.6,
Fps = 30,
MagLength = 1.65,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 0.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_03")) end},
{Time = 0.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_02")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_01")) end},
{Time = 1.5, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 2.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_07")) end},
{Time = 2.133, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_06")) end},
{Time = 1.867, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_05")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_04")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.4, Callback = function(self) self:EnableGrip() end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_045")) end},
}
},
["Reload_Empty_Fast"] = {
Sequences = {"reload_empty_fast"},
Length = 2,
Fps = 30,
MagLength = 1.1,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_01")) end},
{Time = 0.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_03")) end},
{Time = 0.467, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_02")) end},
{Time = 1.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_05")) end},
{Time = 1.75, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 1.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_04")) end},
{Time = 1.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_06")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.8, Callback = function(self) self:EnableGrip() end},
{Time = 1.133, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_035")) end},
}
},
["reload_empty_xmag"] = {
Sequences = {"reload_empty_xmag"},
Length = 2.6,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 0.433, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_02")) end},
{Time = 0.8, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_03")) end},
{Time = 1.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_045")) end},
{Time = 1.5, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_01")) end},
{Time = 2.11, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_06")) end},
{Time = 2.133, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_07")) end},
{Time = 1.267, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_04")) end},
{Time = 1.95, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmags_05")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.4, Callback = function(self) self:EnableGrip() end},
}
},
["reload_empty_xmag_fast"] = {
Sequences = {"reload_empty_xmag_fast"},
Length = 2,
Fps = 30,
MagLength = 1.15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_01")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_02")) end},
{Time = 0.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_03")) end},
{Time = 0.967, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_04")) end},
{Time = 1.75, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 1.467, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_05")) end},
{Time = 1.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_06")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.833, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_07")) end},
{Time = 1.8, Callback = function(self) self:EnableGrip() end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmags_045")) end},
}
},
["reload_empty_xmaglrg"] = {
Sequences = {"reload_empty_xmaglrg"},
Length = 2.6,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_01")) end},
{Time = 0.767, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_02")) end},
{Time = 0.867, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_03")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_04")) end},
{Time = 1.5, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 1.967, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_05")) end},
{Time = 2.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_06")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 2.467, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_07")) end},
{Time = 2.4, Callback = function(self) self:EnableGrip() end},
{Time = 1.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_xmagslrg_045")) end},
}
},
["reload_empty_xmaglrg_fast"] = {
Sequences = {"reload_empty_xmaglrg_fast"},
Length = 2,
Fps = 30,
MagLength = 1.1,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_045")) end},
{Time = 1.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_06")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.567, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_05")) end},
{Time = 0.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_02")) end},
{Time = 1.75, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AK.Poly"), Vector(-10, 0, 40)) end},
{Time = 0.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_03")) end},
{Time = 1.8, Callback = function(self) self:EnableGrip() end},
{Time = 1.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_07")) end},
{Time = 0.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_01")) end},
{Time = 0.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_reload_empty_fast_xmagslrg_04")) end},
}
},
["Fire"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Fire_Last"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Ads_In"] = {
Sequences = {"ads_in"},
Length = 0.25,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.anovember94.ads.up")) end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Ads_Out"] = {
Sequences = {"ads_out"},
Length = 0.25,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.anovember94.ads.down")) end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Sprint_In"] = {
Sequences = {"sprint_in"},
Fps = 24,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end} ,
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
--NextSequence = "Sprint_Loop",
},
["Sprint_Loop"] = {
Sequences = {"sprint_loop"},
Fps = 30,
NextSequence = "Sprint_Loop", --make our state loop
--while sprinting, the playback rate of the viewmodel is scaled with velocity (cod-like behaviour)
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Sprint_Out"] = {
Sequences = {"sprint_out"},
Length = 0.3,
Fps = 24,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Firemode_Auto"] = {
Sequences = {"semi_off"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.anovember94.fire.switch.off")) end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Firemode_Semi"] = {
Sequences = {"semi_on"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.anovember94.fire.switch.on")) end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Inspect"] = {
Sequences = {"inspect"},
Length = 5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_inspect_01")) end},
{Time = 2.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_inspect_03")) end},
{Time = 1.433, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_inspect_02")) end},
{Time = 4.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_ar_anovember94_inspect_05")) end},
{Time = 4.3, Callback = function(self) self:EnableGrip() end},
{Time = 0.133, Callback = function(self) self:DisableGrip() end},
}
},
["Jog_Out"] = {
Sequences = {"jog_out"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Jump"] = {
Sequences = {"jump"},
Fps = 15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Land"] = {
Sequences = {"jump_land"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:EnableGrip() self:AllowRuntimeMagPoseParam(true) end}
}
},
["Melee"] = {
Sequences = {"melee_miss_01", "melee_miss_02", "melee_miss_03"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:AllowRuntimeMagPoseParam(true) end}
}
},
["Melee_Hit"] = {
Sequences = {"melee_hit_01", "melee_hit_02", "melee_hit_03"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:AllowRuntimeMagPoseParam(true) end}
}
},
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,228 @@
AddCSLuaFile()
PrecacheParticleSystem("AC_muzzle_rifle")
PrecacheParticleSystem("AC_muzzle_pistol_suppressed")
PrecacheParticleSystem("AC_muzzle_pistol_ejection")
PrecacheParticleSystem("AC_muzzle_pistol_smoke_barrel")
include("animations.lua")
include("customization.lua")
if CLIENT then
killicon.Add( "mg_anovember94", "VGUI/entities/mg_anovember94", Color(255, 0, 0, 255))
SWEP.WepSelectIcon = surface.GetTextureID("VGUI/spawnicons/icon_cac_weapon_ar_anovember94")
end
SWEP.Base = "mg_base"
SWEP.GripPoseParameters = {"grip_ang_offset", "grip_vert_offset", "grip_vertbutawesome_offset"}
SWEP.PrintName = "AN-94"
SWEP.Category = "Modern Warfare"
SWEP.SubCategory = "Assault Rifles"
SWEP.Spawnable = true
SWEP.VModel = Model("models/viper/mw/weapons/v_anovember94.mdl")
SWEP.WorldModel = Model("models/viper/mw/weapons/w_anovember94.mdl")
SWEP.Trigger = {
PressedSound = Sound("mw19.anovember94.fire.first"),
ReleasedSound = Sound("mw19.anovember94.disconnector"),
Time = 0.025
}
SWEP.Slot = 2
SWEP.HoldType = "Rifle"
SWEP.Primary.Sound = Sound("mw19.anovember94.fire")
SWEP.Primary.Ammo = "Ar2"
SWEP.Primary.ClipSize = 30
SWEP.Primary.Automatic = true
SWEP.Primary.BurstRounds = 1
SWEP.Primary.BurstDelay = 0
SWEP.Primary.RPM = 560
SWEP.CanChamberRound = true
SWEP.ParticleEffects = {
["MuzzleFlash"] = "mw_fas2_muzzleflash_ar",
["MuzzleFlash_Suppressed"] = "mw_fas2_muzzleflash_suppressed",
["Ejection"] = "mw_ins2_shell_eject",
}
SWEP.Reverb = {
RoomScale = 50000, --(cubic hu)
--how big should an area be before it is categorized as 'outside'?
Sounds = {
Outside = {
Layer = Sound("Atmo_AR5.Outside"),
Reflection = Sound("Reflection_AR.Outside")
},
Inside = {
Layer = Sound("Atmo_AR.Inside"),
Reflection = Sound("Reflection_Shotgun.Inside")
}
}
}
local hyperRPM = 1000
SWEP.Firemodes = {
[1] = {
Name = "Full Auto",
OnSet = function()
return "Firemode_Auto"
end
},
[2] = {
Name = "2rnd Burst",
OnSet = function(self)
self.Primary.Automatic = false
self.Primary.RPM = hyperRPM
self.Primary.BurstRounds = 2
self.Primary.BurstDelay = 0.2
--self.Recoil.Shake = 2.5
--self.ViewModelOffsets.KickMultiplier = 3
--self.ViewModelOffsets.AdsKickMultiplier = 0
return "Firemode_Semi"
end
},
}
SWEP.DisableCantedReload = false
SWEP.BarrelSmoke = {
Particle = "AC_muzzle_pistol_smoke_barrel",
Attachment = "muzzle",
ShotTemperatureIncrease = 35,
TemperatureThreshold = 100, --temperature that triggers smoke
TemperatureCooldown = 100 --degrees per second
}
SWEP.Cone = {
Hip = 0.53, --accuracy while hip
Ads = 0.035, --accuracy while aiming
Increase = 0.085, --increase cone size by this amount every time we shoot
AdsMultiplier = 0.15, --multiply the increase value by this amount while aiming
Max = 1.7, --the cone size will not go beyond this size
Decrease = 0.24, -- amount (in seconds) for the cone to completely reset (from max)
Seed = 56487 --just give this a random number
}
SWEP.Recoil = {
Vertical = {1, 1.5}, --random value between the 2
Horizontal = {-1.75, 1.75}, --random value between the 2
Shake = 1.15, --camera shake
AdsMultiplier = 0.35, --multiply the values by this amount while aiming
Seed = 8778456, --give this a random number until you like the current recoil pattern
ViewModelMultiplier = 1
}
SWEP.Bullet = {
Damage = {25, 14}, --first value is damage at 0 meters from impact, second value is damage at furthest point in effective range
DropOffStartRange = 18, --in meters, damage will start dropping off after this range
EffectiveRange = 45, --in meters, damage scales within this distance
Range = 180, --in meters, after this distance the bullet stops existing
Tracer = false, --show tracer
NumBullets = 1, --the amount of bullets to fire
PhysicsMultiplier = 1, --damage is multiplied by this amount when pushing objects
HeadshotMultiplier = 1,
Penetration = {
DamageMultiplier = 0.86, --how much damaged is multipled by when leaving a surface.
MaxCount = 5, --how many times the bullet can penetrate.
Thickness = 14, --in hu, how thick an obstacle has to be to stop the bullet.
}
}
SWEP.Zoom = {
FovMultiplier = 0.95,
ViewModelFovMultiplier = 1,
Blur = {
EyeFocusDistance = 6.5
}
}
SWEP.WorldModelOffsets = {
Bone = "tag_sling",
Angles = Angle(0, 100, -90),
Pos = Vector(4,-3,-2)
}
SWEP.ViewModelOffsets = {
Aim = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0.02)
},
Idle = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Inspection = {
Bone = "tag_sling",
X = {
[0] = {Pos = Vector(0, 3, 3), Angles = Angle(40, 0, -30)},
[1] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 0, 0)}
},
Y = {
[0] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 20, 0)},
[1] = {Pos = Vector(4, 0, 1.5), Angles = Angle(10, -20, 0)}
}
},
RecoilMultiplier = 0.5,
KickMultiplier = 0.35,
AimKickMultiplier = 1
}
SWEP.Shell = "mwb_shelleject_545"
DEFINE_BASECLASS("mg_base")
-- SWEP.bEnableMagPoseParam = true
-- function SWEP:PostDrawViewModel(vm, weapon, ply)
-- BaseClass.PostDrawViewModel(self, vm, weapon, ply)
-- if (self.bEnableMagPoseParam) then
-- self:UpdateMagPoseParam(self:GetMaxClip1() - self:Clip1())
-- end
-- end
-- function SWEP:AllowRuntimeMagPoseParam(allow)
-- self.bEnableMagPoseParam = allow
-- end
-- local tiny = Vector(0.01, 0.01, 0.01)
-- local normal = Vector(1, 1, 1)
--[[function SWEP:UpdateMagPoseParam(val)
self:GetViewModel():SetPoseParameter("bullets_offset", val)
for b = 1, 30, 1 do
local bone = "j_bullet0"..b
-- if (b < 10) then
-- bone = "j_bullet_0"..b
-- end
local bId = self:LookupBoneCached(self:GetViewModel(), bone)
if (bId != nil) then
self:GetViewModel():ManipulateBoneScale(bId, self:GetMaxClip1() - (val + 1) < b && tiny || normal)
end
end
end]]
function SWEP:PrimaryAttack(fromFallback)
if (self:GetFiremode() == 1) then
if (self:GetSprayRounds() < 1) then
self.Primary.RPM = hyperRPM
--self.Recoil.Shake = 2.5
else
local original = weapons.GetStored(self:GetClass())
self.Primary.RPM = original.Primary.RPM
--self.Recoil.Shake = original.Recoil.Shake
end
end
BaseClass.PrimaryAttack(self, fromFallback)
end

View File

@@ -0,0 +1,309 @@
AddCSLuaFile()
SWEP.Animations = {
["Idle"] = {--idle is a special animation index, movement animations are played when this is on
Sequences = {"idle"},
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
--does not need NextSequence to loop, it's an exception to the rule
},
["Draw"] = {
Sequences = {"draw"},
Length = 0.7,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.asierra12.raise")) end}
}
},
["Holster"] = {
Sequences = {"holster"},
Length = 0.75,
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.asierra12.drop")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
}
},
["Equip"] = {
Sequences = {"draw_First"},
Length = 1.6,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.033, Callback = function(self) self:DoSound(Sound("mw19.asierra12.raise.first.1")) end},
{Time = 0.65, Callback = function(self) self:DoSound(Sound("mw19.asierra12.raise.first.2")) end},
{Time = 0.8, Callback = function(self) self:DoSound(Sound("mw19.asierra12.raise.first.3")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 1.4, Callback = function(self) self:EnableGrip() end}
}
},
["Reload"] = {
Sequences = {"reload"},
Length = 2.5,
Fps = 30,
MagLength = 1.95,
NextSequence = "Idle",
Events = {
{Time = 0.16, Callback = function(self) self:DisableGrip() end},
{Time = 0.066, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_01")) end},
{Time = 0.23, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_02")) end},
{Time = 0.56, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_03")) end},
{Time = 1.46, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_04")) end},
{Time = 1.96, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_045")) end},
{Time = 2.2, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_05")) end},
{Time = 2.34, Callback = function(self) self:EnableGrip() end}
}
},
["Reload_Fast"] = {
Sequences = {"reload_fast"},
Length = 1.5,
Fps = 30,
MagLength = 1.2,
NextSequence = "Idle",
Events = {
{Time = 0.066, Callback = function(self) self:DisableGrip() end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_fast_01")) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Metal"), Vector(0, 0, 0)) end},
{Time = 0.13, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_fast_02")) end},
{Time = 0.86, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_fast_03")) end},
{Time = 0.93, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_fast_04")) end},
{Time = 1.16, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_fast_045")) end},
{Time = 1.23, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_fast_05")) end},
{Time = 1.37, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty"] = {
Sequences = {"reload_empty"},
Length = 3.4,
Fps = 30,
MagLength = 1.95,
NextSequence = "Idle",
Events = {
{Time = 0.066, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_01")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.36, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_02")) end},
{Time = 0.73, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_03")) end},
{Time = 1.33, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_04")) end},
{Time = 1.5, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Metal"), Vector(20, 10, 40)) end},
{Time = 1.63, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_05")) end},
{Time = 1.93, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_055")) end},
{Time = 2.26, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_06")) end},
{Time = 2.43, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_07")) end},
{Time = 2.9, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_08")) end},
{Time = 3.15, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty_Fast"] = {
Sequences = {"reload_empty_fast"},
Length = 2.4,
Fps = 30,
MagLength = 1.16,
NextSequence = "Idle",
Events = {
{Time = 0.033, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_01")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.13, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_02")) end},
{Time = 0.66, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_03")) end},
{Time = 1.03, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_04")) end},
{Time = 0.7, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Metal"), Vector(15, 10, 40)) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_045")) end},
{Time = 1.7, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_05")) end},
{Time = 1.7, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_06")) end},
{Time = 1.7, Callback = function(self) self:DoSound(Sound("wfoly_plr_ar_asierra12_reload_empty_fast_07")) end},
{Time = 1.7, Callback = function(self) end},
{Time = 2.15, Callback = function(self) self:EnableGrip() end},
}
},
["Fire"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Fire_Last"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Ads_In"] = {
Sequences = {"ads_in"},
Length = 0.25,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.asierra12.ads.up")) end}
}
},
["Ads_Out"] = {
Sequences = {"ads_out"},
Length = 0.25,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.asierra12.ads.down")) end}
}
},
["Sprint_In"] = {
Sequences = {"sprint_in"},
Fps = 24,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
--NextSequence = "Sprint_Loop",
},
["Sprint_Loop"] = {
Sequences = {"sprint_loop"},
Fps = 30,
NextSequence = "Sprint_Loop", --make our state loop
--while sprinting, the playback rate of the viewmodel is scaled with velocity (cod-like behaviour)
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Sprint_Out"] = {
Sequences = {"sprint_out"},
Length = 0.3,
Fps = 24,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Firemode_Auto"] = {
Sequences = {"semi_on"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.asierra12.selector.off")) end}
}
},
["Firemode_Semi"] = {
Sequences = {"semi_off"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.asierra12.selector.on")) end}
}
},
["Inspect"] = {
Sequences = {"inspect"},
Length = 5,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.asierra12.inspect.01")) end},
{Time = 0.06, Callback = function(self) self:DisableGrip() end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("mw19.asierra12.inspect.02")) end},
{Time = 2.36, Callback = function(self) self:DoSound(Sound("mw19.asierra12.inspect.03")) end},
{Time = 3.6, Callback = function(self) self:DoSound(Sound("mw19.asierra12.inspect.04")) end},
{Time = 4.26, Callback = function(self) self:DoSound(Sound("mw19.asierra12.inspect.05")) end},
{Time = 4.3, Callback = function(self) self:EnableGrip() end},
}
},
["Jog_Out"] = {
Sequences = {"jog_out"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
},
["Jump"] = {
Sequences = {"jump"},
Fps = 15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
},
["Land"] = {
Sequences = {"jump_land"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end}
}
},
["Melee"] = {
Sequences = {"melee_miss_01", "melee_miss_02", "melee_miss_03"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
["Melee_Hit"] = {
Sequences = {"melee_hit_01", "melee_hit_02", "melee_hit_03"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
}

View File

@@ -0,0 +1,897 @@
AddCSLuaFile()
function SWEP:doSuppressorStats()
self.Primary.Sound = Sound("mw19.asierra12.fire.suppressed")
self.Reverb = {
RoomScale = 50000,
Sounds = {
Outside = {
Layer = Sound("Atmo_AR_Sup.Outside"),
Reflection = Sound("Reflection_ARSUP.Outside")
},
Inside = {
Layer = Sound("Atmo_AR_Sup.Inside"),
Reflection = Sound("Reflection_ARSUP.Inside")
}
}
}
self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
end
SWEP.Customization = {
{"att_perk", "attachment_vm_ar_asierra12_perk_soh", "att_perk_fmj", "att_perk_ricochet", "att_perk_headshot"},
{"attachment_vm_ar_asierra12_barrel", "attachment_vm_ar_asierra12_barshort",
"attachment_vm_ar_asierra12_barlong", "attachment_vm_ar_asierra12_barlong2"},
{"attachment_vm_ar_asierra12_stock", "attachment_vm_ar_asierra12_stockh", "attachment_vm_ar_asierra12_stockl"},
{"attachment_vm_ar_asierra12_mag", "attachment_vm_ar_asierra12_mag_sniper",
"attachment_vm_ar_asierra12_xmags", "attachment_vm_ar_asierra12_xxmags"},
{"att_muzzle", "att_vm_breacher01", "att_vm_breacher02", "att_vm_compensator01",
"att_vm_compensator02", "att_vm_flashhider01", "att_vm_flashhider02",
"att_vm_flashhider03", "att_vm_flashhider04", "att_vm_muzzlebrake01",
"att_vm_muzzlebrake02", "att_vm_muzzlebrake03",
"att_vm_silencer01", "att_vm_silencer02", "att_vm_silencer03",
"att_vm_silencer04", "att_vm_silencer05", "att_vm_silencer06", "attachment_vm_ar_asierra12_longsuppressor"},
{"att_sight", "att_vm_2x_west02_holo", "att_vm_2x_west02", "att_vm_reflex_02", "att_vm_minireddot01_tall", "att_vm_minireddot02_tall", "att_vm_minireddot03_tall",
"att_vm_holo_west01", "att_vm_holo_west02", "att_vm_holo_east01", "att_vm_reflex_east01",
"att_vm_reflex_east02_tall", "att_vm_reflex_west02_tall", "att_vm_reflex_west03",
"att_vm_thermal_east01", "att_vm_thermal_west01", "att_vm_thermal_east01_hybrid", "att_vm_reflex_west04", "att_vm_2x_west01",
"att_vm_hybrid_west01", "att_vm_hybrid_west03", "att_vm_4x_east01_tall",
"att_vm_4x_west01_tall", "att_vm_4x_west02_tall",
"att_vm_scope_mike14", "att_vm_scope_vz", "attachment_vm_ar_asierra12_scope"},
{"att_laser", "attachment_vm_ar_asierra12_laser01", "attachment_vm_ar_asierra12_laser02", "attachment_vm_ar_asierra12_laser03"},
{"att_grip", "attachment_vm_ar_asierra12_angledgrip01", "attachment_vm_ar_asierra12_angledgrip02", "attachment_vm_ar_asierra12_stubbygrip01",
"attachment_vm_ar_asierra12_stubbygrip02", "attachment_vm_ar_asierra12_vertgrip01", "attachment_vm_ar_asierra12_vertgrip02",
"attachment_vm_ar_asierra12_vertgrip03", "attachment_vm_ar_asierra12_bipodgrip"},
{"att_receiver"},
}
--NECESSARY: it loads custom attachments from other authors
require("mw_utils")
mw_utils.LoadInjectors(SWEP)
-- SWEP.Customization = {
-- ["Barrel"] = {
-- Slot = 2,
-- {
-- Key = "attachment_vm_ar_asierra12_barrel",
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_barshort",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_barlong",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_barlong2",
-- Stats = function(self)
-- end
-- }
-- },
-- ["Laser"] = {
-- Slot = 6,
-- {
-- Key = "no_laser",
-- },
-- {
-- Key = "attachment_vm_laser01",
-- VElement = {
-- Bone = "tag_laser_attach",
-- Position = Vector(0,0,0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.LaserAimAngles = Angle(-0.3, 0.05, -45)
-- self.LaserAimPos = Vector(-2, 0, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_laser02",
-- VElement = {
-- Bone = "tag_laser_attach",
-- Position = Vector(0,0,0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.LaserAimAngles = Angle(-0.2, 0.07, -45)
-- self.LaserAimPos = Vector(-2, 0, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_laser03",
-- VElement = {
-- Bone = "tag_laser_attach",
-- Position = Vector(0,0,0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.LaserAimAngles = Angle(-0.3, 0.03, -45)
-- self.LaserAimPos = Vector(-2, 0, 0)
-- end
-- }
-- },
-- ["Optic"] = {
-- Slot = 4,
-- {
-- Key = "no_sight",
-- },
-- {
-- Key = "attachment_vm_minireddot_tall",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.97)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.02, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_minireddot02_tall",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.9)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.02, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_minireddot03_tall",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.92)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.02, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_holo_west02",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 2, -1.05)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.015, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_east02_tall",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.25)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.02, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_west03",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.19)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.02, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_west04",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.09)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.01, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_holo_west_lod0",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -1.2)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.05, 0.03, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_holo_east",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.951)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.04, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_reflex_east",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.02, 0, -1.1)
-- self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(-0.015, 0.03, 0)
-- end
-- },
-- {
-- Key = "attachment_vm_4x_east_tall",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.12, 0, -1.281)
-- end
-- },
-- {
-- Key = "attachment_vm_4x_west_tall",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.0026, 0, -1.385)
-- end
-- },
-- {
-- Key = "attachment_vm_4x_west02_tall",
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.004, 0, -1.278)
-- end
-- },
-- {
-- Key = "attachment_vm_thermal_east_tall",
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.009, 0, -1.213)
-- end
-- },
-- {
-- Key = "attachment_vm_thermal_hybrid",
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.009, 0, -0.7862)
-- self.HybridAimAngles = Angle(-0.06, 0.03, -45)
-- self.HybridAimPos = Vector(-1.78, 0, -0.32)
-- end
-- },
-- {
-- Key = "attachment_vm_thermal_west_01",
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.006, 0, -0.77)
-- end
-- },
-- {
-- Key = "weapon_vm_scope_mike14_alt",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(-0.033, 1.5, 0.71)
-- self.Zoom.Blur.EyeFocusDistance = 3.5
-- end
-- },
-- {
-- Key = "attachment_vm_scope_vz",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(-0.028, 1.5, 0.78)
-- self.Zoom.Blur.EyeFocusDistance = 3.5
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_scope",
-- Bodygroups = {
-- ["tag_rail"] = 1,
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(-0.028, 1.5, 0.49)
-- self.Zoom.Blur.EyeFocusDistance = 3.5
-- end
-- },
-- {
-- Key = "attachment_vm_hybrid_west",
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.007, 0, -0.924)
-- self.HybridAimAngles = Angle(0, 0.02, 0)
-- self.HybridAimPos = Vector(0,0,-2.15)
-- end
-- },
-- {
-- Key = "attachment_vm_hybrid_west03",
-- VElement = {
-- Bone = "tag_reflex",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [2] = {Vector(0, 0, 0), Angle()},
-- [3] = {Vector(0, 0, 0), Angle()},
-- [4] = {Vector(0, 0, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.004, 0, -0.854)
-- self.Zoom.Blur.EyeFocusDistance = 3.5
-- self.HybridAimAngles = Angle(-0.02, 0.03, -45)
-- self.HybridAimPos = Vector(-1.55, 0, -0.05)
-- end
-- },
-- },
-- ["Muzzle"] = {
-- Slot = 3,
-- {
-- Key = "attachment_vm_ar_asierra12_muzzlebrake",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, -10, 0), Angle()},
-- [2] = {Vector(0, -11.15, 0), Angle()},
-- [3] = {Vector(0, -7.5, 0), Angle()},
-- [4] = {Vector(0, -5.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_flashhider01",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
-- end
-- },
-- {
-- Key = "attachment_vm_flashhider02",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
-- end
-- },
-- {
-- Key = "attachment_vm_flashhider05",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self.ParticleEffects.MuzzleFlash = "mw_fas2_muzzleflash_suppressed"
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlebrake01",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlebrake02",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlebrake03",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlebrake04",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_compensator01",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_compensator02",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlemelee01",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_muzzlemelee02",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_silencer_east01",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_longsuppressor",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- {
-- Key = "attachment_vm_silencer02",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- {
-- Key = "attachment_vm_silencer03",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- {
-- Key = "attachment_vm_silencer04",
-- VElement = {
-- Bone = "tag_silencer",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [1] = {Vector(0, 0, 0), Angle()},
-- [2] = {Vector(0, -1.5, 0), Angle()},
-- [3] = {Vector(0, 1.5, 0), Angle()},
-- [4] = {Vector(0, 4.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- doSuppressorStats(self)
-- end
-- },
-- },
-- ["Perk"] = {
-- Slot = 1,
-- {
-- Key = "no_perk",
-- },
-- {
-- Key = "perk_soh",
-- Stats = function(self)
-- self.Animations.Reload = self.Animations.Reload_Fast
-- self.Animations.Reload_Empty = self.Animations.Reload_Empty_Fast
-- self.Animations.Reload_XmagLrg = self.Animations.Reload_XmagLrg_Fast
-- self.Animations.Reload_Empty_XmagLrg = self.Animations.Reload_Empty_XmagLrg_Fast
-- self.Animations.Reload_Xmag = self.Animations.Reload_Xmag_Fast
-- self.Animations.Reload_Empty_Xmag = self.Animations.Reload_Empty_Xmag_Fast
-- end
-- },
-- {
-- Key = "perk_fastmelee",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "perk_heavymelee",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "perk_fmj",
-- Stats = function(self)
-- end
-- }
-- },
-- ["Stock"] = {
-- Slot = 7,
-- {
-- Key = "attachment_vm_ar_asierra12_stock",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_stockh",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_stockl",
-- Bodygroups = {
-- ["tag_stock"] = 1,
-- },
-- Stats = function(self)
-- end
-- }
-- },
-- ["Underbarrel"] = {
-- Slot = 8,
-- {
-- Key = "no_underbarrel",
-- },
-- {
-- Key = "attachment_vm_angledgrip_lod0",
-- VElement = {
-- Bone = "tag_grip_attach",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [5] = {Vector(0, -1.5, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_ang_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_angledgrip04",
-- VElement = {
-- Bone = "tag_grip_attach",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [5] = {Vector(0, -2, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_ang_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip02_lod0",
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [5] = {Vector(0, -1, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip03",
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [5] = {Vector(0, -1, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip_stubby02",
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [5] = {Vector(0, -1, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip_stubby01",
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [5] = {Vector(0, -1, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- {
-- Key = "attachment_vm_vertgrip_stubby04",
-- VElement = {
-- Bone = "tag_folding_grip",
-- Position = Vector(0, 0, 0),
-- Angles = Angle(),
-- Offsets = {
-- ["Barrel"] = {
-- [5] = {Vector(0, -1, 0), Angle()}
-- }
-- }
-- },
-- Stats = function(self)
-- self:SetGripPoseParameter("grip_vert_offset")
-- end
-- },
-- },
-- ["Magazine"] = {
-- Slot = 5,
-- {
-- Key = "attachment_vm_ar_asierra12_mag",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_xmags",
-- Stats = function(self)
-- end
-- },
-- {
-- Key = "attachment_vm_ar_asierra12_xxmags",
-- Stats = function(self)
-- end
-- }
-- },
-- -- ["Camo"] = {
-- -- Slot = 9,
-- -- {
-- -- Key = "no_camo",
-- -- },
-- -- {
-- -- Key = "camo_jermasus",
-- -- Stats = function(self)
-- -- end
-- -- },
-- -- {
-- -- Key = "camo_digital",
-- -- Stats = function(self)
-- -- end
-- -- }
-- -- },
-- }

View File

@@ -0,0 +1,168 @@
AddCSLuaFile()
PrecacheParticleSystem("AC_muzzle_rifle")
PrecacheParticleSystem("mw_fas2_muzzleflash_suppressed")
PrecacheParticleSystem("mw_ins2_shell_eject")
PrecacheParticleSystem("mw_fas2_muzzleflash_ar_smoke_barrel")
include("animations.lua")
include("customization.lua")
if CLIENT then
killicon.Add( "mg_asierra12", "VGUI/entities/mg_asierra12", Color(255, 0, 0, 255))
SWEP.WepSelectIcon = surface.GetTextureID("VGUI/spawnicons/icon_cac_weapon_ar_asierra12")
end
SWEP.Base = "mg_base"
SWEP.GripPoseParameters = {"grip_ang_offset", "grip_vert_offset", "grip_vert_good_offset"}
SWEP.PrintName = "Oden"
SWEP.Category = "Modern Warfare"
SWEP.SubCategory = "Assault Rifles"
SWEP.Spawnable = true
SWEP.VModel = Model("models/viper/mw/weapons/v_asierra12.mdl")
SWEP.WorldModel = Model("models/viper/mw/weapons/w_asierra12.mdl")
SWEP.Slot = 2
SWEP.HoldType = "Rifle"
SWEP.Trigger = {
PressedSound = Sound("mw19.akilo47.fire.first"),
ReleasedSound = Sound("mw19.akilo47.fire.disconnector"),
Time = 0.025
}
SWEP.Primary.Sound = Sound("mw19.asierra12.fire")
SWEP.Primary.Ammo = "Ar2"
SWEP.Primary.ClipSize = 20
SWEP.Primary.Automatic = true
SWEP.Primary.BurstRounds = 1
SWEP.Primary.BurstDelay = 0
SWEP.Primary.RPM = 410
SWEP.CanChamberRound = true
SWEP.ParticleEffects = {
["MuzzleFlash"] = "mw_fas2_muzzleflash_ar",
["MuzzleFlash_Suppressed"] = "mw_fas2_muzzleflash_suppressed",
["Ejection"] = "mw_ins2_shell_eject",
}
SWEP.Reverb = {
RoomScale = 50000, --(cubic hu)
--how big should an area be before it is categorized as 'outside'?
Sounds = {
Outside = {
Layer = Sound("Atmo_AR2.Outside"),
Reflection = Sound("Reflection_AR.Outside")
},
Inside = {
Layer = Sound("Atmo_AR.Inside"),
Reflection = Sound("Reflection_AR.Inside")
}
}
}
SWEP.Firemodes = {
[1] = {
Name = "Full Auto",
OnSet = function()
return "Firemode_Auto"
end
},
[2] = {
Name = "Semi Automatic",
OnSet = function(self)
self.Primary.Automatic = false
self.Primary.RPM = 500
return "Firemode_Semi"
end
},
}
SWEP.BarrelSmoke = {
Particle = "mw_fas2_muzzleflash_ar_smoke_barrel",
Attachment = "muzzle",
ShotTemperatureIncrease = 35,
TemperatureThreshold = 100, --temperature that triggers smoke
TemperatureCooldown = 100 --degrees per second
}
SWEP.Cone = {
Hip = 0.3, --accuracy while hip
Ads = 0.18, --accuracy while aiming
Increase = 0.075, --increase cone size by this amount every time we shoot
AdsMultiplier = 0.15, --multiply the increase value by this amount while aiming
Max = 2, --the cone size will not go beyond this size
Decrease = 1.0, -- amount (in seconds) for the cone to completely reset (from max)
Seed = 45867 --just give this a random number
}
SWEP.Recoil = {
Vertical = {1, 1.5}, --random value between the 2
Horizontal = {-1, 1}, --random value between the 2
Shake = 2, --camera shake
AdsMultiplier = 0.5, --multiply the values by this amount while aiming
Seed = 346598, --give this a random number until you like the current recoil pattern
ViewModelMultiplier = 1.5
}
SWEP.Bullet = {
Damage = {40, 20}, --first value is damage at 0 meters from impact, second value is damage at furthest point in effective range
DropOffStartRange = 25, --in meters, damage will start dropping off after this range
EffectiveRange = 50, --in meters, damage scales within this distance
Range = 180, --in meters, after this distance the bullet stops existing
Tracer = false, --show tracer
NumBullets = 1, --the amount of bullets to fire
PhysicsMultiplier = 1, --damage is multiplied by this amount when pushing objects
HeadshotMultiplier = 1,
Penetration = {
DamageMultiplier = 0.7, --how much damaged is multipled by when leaving a surface.
MaxCount = 5, --how many times the bullet can penetrate.
Thickness = 28, --in hu, how thick an obstacle has to be to stop the bullet.
}
}
SWEP.Zoom = {
FovMultiplier = 0.95,
ViewModelFovMultiplier = 1,
Blur = {
EyeFocusDistance = 7.5
}
}
SWEP.WorldModelOffsets = {
Bone = "tag_sling",
Angles = Angle(0, 95, -90),
Pos = Vector(-13,-4,15)
}
SWEP.ViewModelOffsets = {
Aim = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Idle = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Inspection = {
Bone = "tag_sling",
X = {
[0] = {Pos = Vector(0, -7, 5), Angles = Angle(40, 0, -30)},
[1] = {Pos = Vector(0, 0, 0), Angles = Angle(-10, 0, 0)}
},
Y = {
[0] = {Pos = Vector(0, 0, 0), Angles = Angle(0, 10, 0)},
[1] = {Pos = Vector(2, 4, 5), Angles = Angle(0, -30, 0)}
}
},
RecoilMultiplier = 0.6,
KickMultiplier = 1,
AimKickMultiplier = 1
}
SWEP.Shell = "mwb_shelleject_127"

View File

@@ -0,0 +1,564 @@
AddCSLuaFile()
SWEP.Animations = {
["Idle"] = {--idle is a special animation index, movement animations are played when this is on
Sequences = {"idle"},
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
--does not need NextSequence to loop, it's an exception to the rule
},
["Draw"] = {
Sequences = {"draw"},
Length = 0.6,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.augolf.raise")) end}
}
},
["Holster"] = {
Sequences = {"holster"},
Length = 0.4,
Fps = 30,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.augolf.drop")) end},
}
},
["Equip"] = {
Sequences = {"draw_First"},
Length = 1.166,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0.8, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_raise_first_03")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_raise_first_01")) end},
{Time = 0.667, Callback = function(self) self:EnableGrip() end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_raise_first_02")) end},
}
},
["Reload"] = {
Sequences = {"reload"},
Length = 2.3,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_05")) end},
{Time = 1.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_04")) end},
{Time = 1.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_07")) end},
{Time = 1.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_06")) end},
{Time = 0.067, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_01")) end},
{Time = 0.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_03")) end},
{Time = 0.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_02")) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_055")) end},
{Time = 1.833, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Fast"] = {
Sequences = {"reload_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1.03,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.SMG.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_03")) end},
{Time = 1.2, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_05")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.267, Callback = function(self) self:EnableGrip() end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_02")) end},
{Time = 0.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_01")) end},
{Time = 0.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_04")) end},
}
},
["Reload_ARmag"] = {
Sequences = {"reload_armag"},
Length = 2.3,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 1.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_waffle_03")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_waffle_045")) end},
{Time = 1.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_waffle_04")) end},
{Time = 1.833, Callback = function(self) self:EnableGrip() end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_waffle_01")) end},
{Time = 0.5, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_waffle_02")) end},
{Time = 1.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_waffle_05")) end},
}
},
["Reload_ARmag_Fast"] = {
Sequences = {"reload_armag_fast"},
Length = 1.66,
Fps = 30,
MagLength = 1.06,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.267, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_waffle_02")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.233, Callback = function(self) self:EnableGrip() end},
{Time = 0.733, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_waffle_03")) end},
{Time = 0.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_waffle_04")) end},
{Time = 1.233, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_waffle_05")) end},
{Time = 0.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_waffle_01")) end},
}
},
["Reload_Xmag"] = {
Sequences = {"reload_xmag"},
Length = 2.3,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_05")) end},
{Time = 1.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_04")) end},
{Time = 1.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_07")) end},
{Time = 1.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_06")) end},
{Time = 0.067, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_01")) end},
{Time = 0.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_03")) end},
{Time = 0.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_02")) end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_055")) end},
{Time = 1.833, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Xmag_Fast"] = {
Sequences = {"reload_xmag_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1.03,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.SMG.Metal"), Vector(0, 0, 40)) end},
{Time = 0.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_03")) end},
{Time = 1.2, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_05")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.267, Callback = function(self) self:EnableGrip() end},
{Time = 0.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_02")) end},
{Time = 0.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_01")) end},
{Time = 0.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_04")) end},
}
},
["Reload_DrumMag"] = {
Sequences = {"reload_drummag"},
Length = 2.3,
Fps = 30,
MagLength = 1.6,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_drum_01")) end},
{Time = 0.567, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_drum_03")) end},
{Time = 0.567, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_drum_02")) end},
{Time = 1.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_drum_05")) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_drum_04")) end},
{Time = 1.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_drum_06")) end},
{Time = 1.867, Callback = function(self) self:EnableGrip() end},
{Time = 1.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_drum_055")) end},
}
},
["Reload_DrumMag_Fast"] = {
Sequences = {"reload_drummag_fast"},
Length = 1.6,
Fps = 30,
MagLength = 1.03,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) end},
{Time = 0, Callback = function(self) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.Drum"), Vector(-5, 0, 40)) end},
{Time = 0.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_drum_03")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.2, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_drum_05")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_drum_02")) end},
{Time = 0.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_drum_04")) end},
{Time = 0.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_fast_drum_01")) end},
{Time = 1.267, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty"] = {
Sequences = {"reload_empty"},
Length = 3.4,
Fps = 30,
MagLength = 2.2,
NextSequence = "Idle",
Events = {
{Time = 1.7, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.SMG.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_02")) end},
{Time = 2.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_065")) end},
{Time = 2.867, Callback = function(self) self:EnableGrip() end},
{Time = 2.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_08")) end},
{Time = 1.8, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_05")) end},
{Time = 1.233, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_04")) end},
{Time = 2.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_07")) end},
{Time = 2.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_06")) end},
{Time = 0.067, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_01")) end},
{Time = 0.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_03")) end},
}
},
["Reload_Empty_Fast"] = {
Sequences = {"reload_empty_fast"},
Length = 2,
Fps = 30,
MagLength = 1.1,
NextSequence = "Idle",
Events = {
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.SMG.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.10, Callback = function(self) self:DisableGrip() end},
{Time = 1.6, Callback = function(self) self:EnableGrip() end},
{Time = 1.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_07")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_06")) end},
{Time = 0.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_05")) end},
{Time = 0.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_04")) end},
{Time = 0.433, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_03")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_02")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_01")) end},
}
},
["Reload_Empty_ARmag"] = {
Sequences = {"reload_empty_armag"},
Length = 3.4,
Fps = 30,
MagLength = 2.2,
NextSequence = "Idle",
Events = {
{Time = 1.7, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_04")) end},
{Time = 1.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_05")) end},
{Time = 1.833, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_06")) end},
{Time = 2.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_07")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_01")) end},
{Time = 0.367, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_02")) end},
{Time = 0.833, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_03")) end},
{Time = 2.533, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_08")) end},
{Time = 2.867, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_09")) end},
{Time = 2.267, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_waffle_075")) end},
{Time = 2.967, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty_ARmag_Fast"] = {
Sequences = {"reload_empty_armag_fast"},
Length = 2,
Fps = 30,
MagLength = 1.1,
NextSequence = "Idle",
Events = {
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) end},
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.AR.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_waffle_02")) end},
{Time = 0.433, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_waffle_03")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_waffle_01")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_waffle_06")) end},
{Time = 1.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_waffle_07")) end},
{Time = 0.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_waffle_04")) end},
{Time = 0.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_waffle_05")) end},
{Time = 1.6, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty_Xmag"] = {
Sequences = {"reload_empty_xmag"},
Length = 3.4,
Fps = 30,
MagLength = 2.2,
NextSequence = "Idle",
Events = {
{Time = 1.7, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.SMG.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 0.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_02")) end},
{Time = 2.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_065")) end},
{Time = 2.867, Callback = function(self) self:EnableGrip() end},
{Time = 2.6, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_08")) end},
{Time = 1.8, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_05")) end},
{Time = 1.233, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_04")) end},
{Time = 2.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_07")) end},
{Time = 2.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_06")) end},
{Time = 0.067, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_01")) end},
{Time = 0.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_03")) end},
}
},
["Reload_Empty_Xmag_Fast"] = {
Sequences = {"reload_empty_xmag_fast"},
Length = 2,
Fps = 30,
MagLength = 1.1,
NextSequence = "Idle",
Events = {
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.SMG.Metal"), Vector(-5, 0, 40)) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.10, Callback = function(self) self:DisableGrip() end},
{Time = 1.6, Callback = function(self) self:EnableGrip() end},
{Time = 1.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_07")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_06")) end},
{Time = 0.9, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_05")) end},
{Time = 0.7, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_04")) end},
{Time = 0.433, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_03")) end},
{Time = 0.2, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_02")) end},
{Time = 0.033, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_01")) end},
}
},
["Reload_Empty_DrumMag"] = {
Sequences = {"reload_empty_drummag"},
Length = 3.4,
Fps = 30,
MagLength = 2.2,
NextSequence = "Idle",
Events = {
{Time = 1.7, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.Drum"), Vector(-5, 0, 40)) end},
{Time = 2.933, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_09")) end},
{Time = 2.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_08")) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_05")) end},
{Time = 1.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_04")) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 1.667, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_06")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_01")) end},
{Time = 0.767, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_03")) end},
{Time = 0.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_02")) end},
{Time = 2.167, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_drum_07")) end},
{Time = 2.967, Callback = function(self) self:EnableGrip() end},
}
},
["Reload_Empty_DrumMag_Fast"] = {
Sequences = {"reload_empty_drummag_fast"},
Length = 2,
Fps = 30,
MagLength = 1.1,
NextSequence = "Idle",
Events = {
{Time = 1, Callback = function(self) self:DoSpatialSound(Sound("MW_MagazineDrop.Drum"), Vector(-5, 0, 40)) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) end},
{Time = 0.0, Callback = function(self) self:DisableGrip() end},
{Time = 0.8, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_drum_03")) end},
{Time = 0.333, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_drum_02")) end},
{Time = 0.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_drum_01")) end},
{Time = 1.633, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_drum_06")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_drum_05")) end},
{Time = 1.1, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_reload_empty_fast_drum_04")) end},
{Time = 1.667, Callback = function(self) self:EnableGrip() end},
}
},
["Fire"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Fire_Last"] = {
Sequences = {"fire"},
Fps = 60,
NextSequence = "Idle",
Events = {
{
Time = 0,
Callback = function(self)
self:DoParticle("MuzzleFlash", "muzzle")
self:DoParticle("Ejection", "shell_eject")
self:DoEjection("shell_eject")
end
},
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Ads_In"] = {
Sequences = {"ads_in"},
Length = 0.25,
Fps = 45,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.augolf.ads.up")) end}
}
},
["Ads_Out"] = {
Sequences = {"ads_out"},
Length = 0.25,
Fps = 45,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.augolf.ads.down")) end}
}
},
["Sprint_In"] = {
Sequences = {"sprint_in"},
Fps = 24,
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
--NextSequence = "Sprint_Loop",
},
["Sprint_Loop"] = {
Sequences = {"sprint_loop"},
Fps = 30,
NextSequence = "Sprint_Loop", --make our state loop
--while sprinting, the playback rate of the viewmodel is scaled with velocity (cod-like behaviour)
Events = {
}
},
["Sprint_Out"] = {
Sequences = {"sprint_out"},
Length = 0.3,
Fps = 39,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Firemode_Auto"] = {
Sequences = {"semi_on"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.augolf.selector.off")) end}
}
},
["Firemode_Semi"] = {
Sequences = {"semi_off"},
Length = 0.75,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("mw19.augolf.selector.on")) end}
}
},
["Inspect"] = {
Sequences = {"inspect"},
Length = 4.366,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 2.467, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_inspect_03")) end},
{Time = 1.4, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_inspect_02")) end},
{Time = 0.0, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_inspect_01")) end},
{Time = 4.133, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_inspect_05")) end},
{Time = 0.1, Callback = function(self) self:DisableGrip() end},
{Time = 3.3, Callback = function(self) self:DoSound(Sound("ps_wfoly_plr_sm_augolf_inspect_04")) end},
{Time = 2.533, Callback = function(self) self:EnableGrip() end},
}
},
["Jog_Out"] = {
Sequences = {"jog_out"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Jump"] = {
Sequences = {"jump"},
Fps = 15,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Land"] = {
Sequences = {"jump_land"},
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:EnableGrip() end},
}
},
["Melee"] = {
Sequences = {"melee_miss_01", "melee_miss_02", "melee_miss_03"},
Length = 0.6, --if melee misses
Size = 15,
Range = 40,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Miss_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
["Melee_Hit"] = {
Sequences = {"melee_hit_01", "melee_hit_02", "melee_hit_03"},
Length = 0.3, --if melee hits
Damage = 45,
Fps = 30,
NextSequence = "Idle",
Events = {
{Time = 0, Callback = function(self) self:DisableGrip() end},
{Time = 0, Callback = function(self) self:DoSound(Sound("MW_Melee.Flesh_Medium")) end},
{Time = 0.8, Callback = function(self) self:EnableGrip() end}
}
},
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,169 @@
AddCSLuaFile()
PrecacheParticleSystem("AC_muzzle_rifle")
PrecacheParticleSystem("AC_muzzle_pistol_suppressed")
PrecacheParticleSystem("AC_muzzle_pistol_ejection")
PrecacheParticleSystem("AC_muzzle_pistol_smoke_barrel")
include("animations.lua")
include("customization.lua")
if CLIENT then
killicon.Add( "mg_augolf", "VGUI/entities/mg_augolf", Color(255, 0, 0, 255))
SWEP.WepSelectIcon = surface.GetTextureID("VGUI/spawnicons/icon_cac_weapon_sm_augolf")
end
SWEP.Base = "mg_base"
SWEP.GripPoseParameters = {"grip_ang_offset", "grip_vert_offset"}
SWEP.PrintName = "AUG"
SWEP.Category = "Modern Warfare"
SWEP.SubCategory = "Submachine Guns"
SWEP.Spawnable = true
SWEP.VModel = Model("models/viper/mw/weapons/v_augolf.mdl")
SWEP.WorldModel = Model("models/viper/mw/weapons/w_augolf.mdl")
SWEP.Slot = 2
SWEP.HoldType = "RifleWithVerticalGrip"
SWEP.Trigger = {
PressedSound = Sound("weap_augolf_fire_first_plr"),
ReleasedSound = Sound("weap_augolf_disconnector_plr"),
Time = 0.025
}
SWEP.Primary.Sound = Sound("weap_augolf_fire_plr")
SWEP.Primary.Ammo = "SMG1"
SWEP.Primary.ClipSize = 25
SWEP.Primary.Automatic = true
SWEP.Primary.BurstRounds = 1
SWEP.Primary.BurstDelay = 0
SWEP.Primary.RPM = 769
SWEP.CanChamberRound = true
SWEP.ParticleEffects = {
["MuzzleFlash"] = "mw_fas2_muzzleflash_pistol",
["MuzzleFlash_Suppressed"] = "mw_fas2_muzzleflash_suppressed",
["Ejection"] = "mw_ins2_shell_eject",
}
SWEP.Reverb = {
RoomScale = 50000, --(cubic hu)
--how big should an area be before it is categorized as 'outside'?
Sounds = {
Outside = {
Layer = Sound("Atmo_SMG.Outside"),
Reflection = Sound("Reflection_Pistol.Outside")
},
Inside = {
Layer = Sound("Atmo_SMG.Inside"),
Reflection = Sound("Reflection_Pistol.Inside")
}
}
}
SWEP.Firemodes = {
[1] = {
Name = "Full Auto",
OnSet = function()
return "Firemode_Auto"
end
},
[2] = {
Name = "Semi Auto",
OnSet = function(self)
self.Primary.Automatic = false
--self.Primary.RPM = 450
return "Firemode_Semi"
end
},
}
SWEP.BarrelSmoke = {
Particle = "AC_muzzle_pistol_smoke_barrel",
Attachment = "muzzle",
ShotTemperatureIncrease = 35,
TemperatureThreshold = 100, --temperature that triggers smoke
TemperatureCooldown = 100 --degrees per second
}
SWEP.Cone = {
Hip = 0.23, --accuracy while hip
Ads = 0.055, --accuracy while aiming
Increase = 0.025, --increase cone size by this amount every time we shoot
AdsMultiplier = 0.15, --multiply the increase value by this amount while aiming
Max = 1.3, --the cone size will not go beyond this size
Decrease = 0.75, -- amount (in seconds) for the cone to completely reset (from max)
Seed = 4156 --just give this a random number
}
SWEP.Recoil = {
Vertical = {0.6, 0.8}, --random value between the 2
Horizontal = {-1.8, 1.8}, --random value between the 2
Shake = 1.15, --camera shake
AdsMultiplier = 0.35, --multiply the values by this amount while aiming
Seed = 124455 --give this a random number until you like the current recoil pattern
}
SWEP.Bullet = {
Damage = {23, 11}, --first value is damage at 0 meters from impact, second value is damage at furthest point in effective range
EffectiveRange = 35, --in meters, damage scales within this distance
DropOffStartRange = 13, --in meters, damage scales within this distance
Range = 100, --in meters, after this distance the bullet stops existing
Tracer = false, --show tracer
NumBullets = 1, --the amount of bullets to fire
PhysicsMultiplier = 1, --damage is multiplied by this amount when pushing objects
HeadshotMultiplier = 1,
Penetration = {
DamageMultiplier = 0.5, --how much damaged is multipled by when leaving a surface.
MaxCount = 3, --how many times the bullet can penetrate.
Thickness = 10, --in hu, how thick an obstacle has to be to stop the bullet.
}
}
SWEP.Zoom = {
FovMultiplier = 0.95,
ViewModelFovMultiplier = 1,
Blur = {
EyeFocusDistance = 7.5
}
}
SWEP.WorldModelOffsets = {
Bone = "tag_sling",
Angles = Angle(-5,95,-90),
Pos = Vector(-11,-3,13)
}
SWEP.ViewModelOffsets = {
Aim = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 3, 0)
},
Idle = {
Angles = Angle(0, 0, 0),
Pos = Vector(0, 0, 0)
},
Inspection = {
Bone = "tag_sling",
X = {
[0] = {Pos = Vector(0, -2, 2), Angles = Angle(30, 0, -30)},
[1] = {Pos = Vector(0, 2, 0), Angles = Angle(-10, 0, 0)}
},
Y = {
[0] = {Pos = Vector(0, 0, -2), Angles = Angle(-10, 20, 0)},
[1] = {Pos = Vector(3, 0, 5), Angles = Angle(10, -20, 0)}
}
},
RecoilMultiplier = 0.25,
KickMultiplier = 0.2,
AimKickMultiplier = 0.75
}
SWEP.Shell = "mwb_shelleject_9mm"
DEFINE_BASECLASS("mg_base")

View File

@@ -0,0 +1,94 @@
AddCSLuaFile()
include("shared.lua")
MWBASE_STENCIL_REFVALUE = 69
CreateClientConVar("mgbase_rig", "chands", true, false, "Change first person arms rig.")
CreateClientConVar("mgbase_rig_skin", "0", true, false, "Change first person arms rig skin.", 0)
CreateClientConVar("mgbase_gloves", "", true, false, "Change first person arms gloves.")
CreateClientConVar("mgbase_gloves_skin", "0", true, false, "Change first person arms gloves.", 0)
CreateClientConVar("mgbase_toggleaim", "0", true, true, "Hold to aim.", 0, 1)
CreateClientConVar("mgbase_autoreload", "1", true, true, "Toggle auto reload.", 0, 1)
CreateClientConVar("mgbase_aimassist", "1", true, true, "Toggle aim assist.", 0, 1)
CreateClientConVar("mgbase_manualrechamber", "0", true, true, "Toggle manual rechambering.", 0, 1)
CreateClientConVar("mgbase_fx_blur", "1", true, false, "Toggle first person blur.", 0, 1)
CreateClientConVar("mgbase_fx_smoke", "1", true, false, "Toggle barrel smoke.", 0, 1)
CreateClientConVar("mgbase_fx_laser_weaponcolor", "0", true, false, "Toggle sandbox weapon color usage for lasers.", 0, 1)
CreateClientConVar("mgbase_fx_vmfov", "1", true, false, "Change viewmodel FOV.", 0.1, 2)
CreateClientConVar("mgbase_fx_vmfov_ads", "1", true, false, "Change viewmodel FOV (only when aiming).", 0.1, 2)
CreateClientConVar("mgbase_hud_xhaircolor", "255 255 255", true, false, "Crosshair color.", 0, 1)
CreateClientConVar("mgbase_hud_xhair", "1", true, false, "Toggle crosshair.", 0, 1)
CreateClientConVar("mgbase_hud_firemode", "1", true, false, "Toggle firemode HUD.", 0, 1)
CreateClientConVar("mgbase_hud_sights", "1", true, false, "Toggle sights HUD.", 0, 1)
CreateClientConVar("mgbase_hud_flashlight", "1", true, false, "Toggle flashlight HUD.", 0, 1)
CreateClientConVar("mgbase_debug_freeview", "0", false, false, "Toggle debug free view.", 0, 1)
CreateClientConVar("mgbase_debug_crosshair", "0", false, false, "Toggle debug crosshair for ironsights.", 0, 1)
CreateClientConVar("mgbase_debug_disablebreathing", "0", false, false, "Toggle breathing.", 0, 1)
CreateClientConVar("mgbase_debug_vmrender", "1", false, false, "Toggle viewmodel render.", 0, 1)
CreateClientConVar("mgbase_debug_wmrender", "1", false, false, "Toggle worldmodel render.", 0, 1)
--CreateClientConVar("mgbase_debug_freezeanim", "0", false, false, "Freeze viewmodel animations.", 0, 1)
--CreateClientConVar("mgbase_debug_animdelta", "0", false, false, "Scrub the current animation on the viewmodel.", 0, 1)
CreateClientConVar("mgbase_presetspawnmethod", "0", true, false, "Spawn preset method: 0 = none, 1 = random, 2 = random default, 3 = random favorite")
--binds
local mbind, sbind, cbind, ibind, fbind = input.LookupBinding("+grenade2"), input.LookupBinding("+zoom"), input.LookupBinding("+menu_context"), input.LookupBinding("+reload"), input.LookupBinding("+grenade1")
CreateClientConVar("mgbase_binds_melee", mbind and input.GetKeyCode(mbind) or "0", true, true)
CreateClientConVar("mgbase_binds_switchsights", sbind and input.GetKeyCode(sbind) or "0", true, true)
CreateClientConVar("mgbase_binds_customize", cbind and input.GetKeyCode(cbind) or "0", true, true)
CreateClientConVar("mgbase_binds_safety", "0", true, true)
CreateClientConVar("mgbase_binds_inspect", ibind and input.GetKeyCode(ibind) or "0", true, true)
CreateClientConVar("mgbase_binds_firemode", fbind and input.GetKeyCode(fbind) or "0", true, true)
CreateClientConVar("mgbase_binds_holster", "0", true, true)
if (math.random(1, 100) == 1) then
list.Set( "ContentCategoryIcons", "Modern Warfare", "vgui/bentler.png" )
else
list.Set( "ContentCategoryIcons", "Modern Warfare", "vgui/mw_logo.png" )
end
concommand.Add("mgbase_generatepreset", function(p, c, args)
local w = p:GetActiveWeapon()
if (args[1] == nil) then
print("Missing name! Type a name in quotes (eg. \"The Gun\")")
return
end
if (IsValid(w) && weapons.IsBasedOn(w:GetClass(), "mg_base")) then
local attachmentList = ""
for _, a in pairs(w:GetAllAttachmentsInUse()) do
if (a.Index > 1) then
attachmentList = attachmentList..", \""..a.ClassName.."\""
end
end
attachmentList = string.sub(attachmentList, 3)
local finalPrint = "PRESET.SWEP = \""..w:GetClass().."\"\n"
finalPrint = finalPrint.."PRESET.Name = \""..args[1].."\"\n"
finalPrint = finalPrint.."PRESET.Attachments = {"..attachmentList.."}"
print("Here's your preset (copied to clipboard already)")
print("Remember to put this in lua/weapons/mg_base/modules/presets")
print("From there, create a .lua file with any name you want and paste the contents in there")
print("=================")
print(finalPrint)
SetClipboardText(finalPrint)
end
end)
net.Receive("mgbase_tpanim", function()
local slot = net.ReadUInt(2)
local anim = net.ReadInt(12)
local ply = net.ReadEntity()
if (ply == NULL) then
return
end
ply:AnimRestartGesture(slot, anim, true)
end)

View File

@@ -0,0 +1,92 @@
AddCSLuaFile()
AddCSLuaFile("shared.lua")
AddCSLuaFile("cl_init.lua")
--modules
AddCSLuaFile("modules/shared/sh_think.lua")
AddCSLuaFile("modules/shared/sh_sprint_behaviour.lua")
AddCSLuaFile("modules/shared/sh_datatables.lua")
AddCSLuaFile("modules/shared/sh_aim_behaviour.lua")
AddCSLuaFile("modules/shared/sh_reload_behaviour.lua")
AddCSLuaFile("modules/shared/sh_melee_behaviour.lua")
AddCSLuaFile("modules/shared/sh_firemode_behaviour.lua")
AddCSLuaFile("modules/shared/sh_primaryattack_behaviour.lua")
AddCSLuaFile("modules/shared/sh_holdtypes.lua")
AddCSLuaFile("modules/shared/sh_customization.lua")
--AddCSLuaFile("modules/client/cl_anim_think.lua")
AddCSLuaFile("modules/client/cl_calcview.lua")
--AddCSLuaFile("modules/client/cl_calcviewmodelview.lua")
--AddCSLuaFile("modules/client/cl_viewmodel_render.lua")
AddCSLuaFile("modules/client/cl_worldmodel_render.lua")
--AddCSLuaFile("modules/client/cl_viewmodel_blur.lua")
--AddCSLuaFile("modules/client/cl_rigs.lua")
AddCSLuaFile("modules/client/cl_hud.lua")
AddCSLuaFile("modules/client/cl_spawnmenu.lua")
AddCSLuaFile("modules/reverb/mw_reverb.lua")
AddCSLuaFile("modules/reverb/mw_reverbimpl.lua")
AddCSLuaFile("modules/sounds/mw_sounds_channels.lua")
--AddCSLuaFile("modules/sounds/mw_sounds_general.lua")
include("shared.lua")
util.AddNetworkString("mgbase_tpanim")
util.AddNetworkString("mgbase_customize_att")
util.AddNetworkString("mgbase_fire_tracer")
concommand.Add("mgbase_reloadatts", function(p)
if (!p:IsSuperAdmin()) then
return
end
include("autorun/mw_loader.lua")
p:SendLua("include('autorun/mw_loader.lua')")
end)
net.Receive("mgbase_customize_att", function(len, ply)
local slotIndex = net.ReadInt(32)
local attIndex = net.ReadInt(32)
local weapon = net.ReadEntity()
if (!GetConVar("mgbase_sv_customization"):GetBool()) then
return
end
if (IsValid(weapon)) then
if (weapon:GetOwner() != ply) then
return
end
if (weapon.m_LastRestored != nil && CurTime() <= weapon.m_LastRestored + 1) then
return
end
if (!weapons.IsBasedOn(weapon:GetClass(), "mg_base")) then
return
end
if (weapon.Customization[slotIndex] == nil) then
return
end
if (weapon:GetAttachmentInUseForSlot(slotIndex).ClassName == weapon.Customization[slotIndex][attIndex]) then
attIndex = 1
end
weapon:CreateAttachmentEntity(weapon.Customization[slotIndex][attIndex])
end
end)
hook.Add("Think", "MW19_SafeToDeleteThinkHook", function()
--[[for _, p in pairs(player.GetAll()) do
if (!p:IsBot()) then
continue
end
if (p.targetPracticePos == nil) then
p.targetPracticePos = Entity(1):GetPos()
end
p:SetPos(p.targetPracticePos)
end ]]
end)

View File

@@ -0,0 +1,216 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_akilo47_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_xmags"] = {
Name = "40 Round Mags",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_xmags_akilo47_v11.vmt"),
Stats = function(self)
self.Primary.ClipSize = 40
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_smgmag"] = {
Name = "5.45x39mm 30-Round Mags",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_smgmag.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_smgmag_akilo47.vmt"),
Stats = function(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 0.98
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 0.98
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.8
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.7
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.8
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.8
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.8
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.8
self.Primary.ClipSize = 30
self.Primary.RPM = 690
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_drum_mag"] = {
Name = "75 Round Mags",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_drum_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_drums_akilo47.vmt"),
Stats = function(self)
self.Primary.ClipSize = 75
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.81
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.81
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.8
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_comp"] = { --unused
Name = "Compensator",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_comp.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_comp_akilo47.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.8
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.8
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.95
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.95
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.95
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_custombarrel"] = {
Name = "Spetsnaz Elite",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_custombarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_custombarrel_akilo47.vmt"),
Stats = function(self)
self.Cone.Increase = self.Cone.Increase * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_lmgbarrel_grip"] = {
Name = "23.0 Romanian",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_lmgbarrel_grip.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_gripvert_akilo47.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.06
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.06
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.87
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.87
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.87
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.87
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.93
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.93
self.HoldType = "RifleWithVerticalGrip"
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_lmgbarrel"] = {
Name = "23.0 RPK Barrel",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_lmgbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_lmgbarrel_akilo47.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.06
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.06
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.91
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.91
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.91
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.91
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_smgbarcust"] = {
Name = "8.1 Compact Barrel",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_smgbarcust.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_vertgrip_akilo47.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.9
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.08
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.08
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.08
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.08
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.85
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.85
self.HoldType = "RifleWithVerticalGrip"
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_smgbarrel"] = {
Name = "8.1 Compact Barrel",
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_smgbarrel_akilo47.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.9
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_lmgstock"] = {
Name = "Field LMG Stock",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_lmgstock.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_stocklmg_akilo47.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.92
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.92
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.91
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.91
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.91
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.91
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_smgstock_unfolded"] = {
Name = "Skeleton Stock",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_smgstock_unfolded.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_smgstock_unfolded_akilo47.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.15
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.15
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.15
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.15
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_smgstock"] = {
Name = "Skeleton Stock Folded",
Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_smgstock.mdl"),
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_smgstock_akilo47.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
end
}
MW_ATT_KEYS["attachment_vm_ar_akilo47_stockno"] = {
Name = "No Stock",
Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_stockno_akilo47.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
end
}

View File

@@ -0,0 +1,219 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_anovember94_thermal_v3"] = {
Name = "POS-M3 Thermal Scope",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anovember94_thermal_v3.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_thermal.vmt"),
Optic = {
LensHideMaterial = Material("viper/MW/attachments/attachment_vm_4x_east_lens.vmt"),
LensBodygroup = "lens",
FOV = 7,
ParallaxSize = 0, --a value of zero means 1:1 size with the end of the optic
Thermal = true
},
Reticle = {
Material = Material("viper/mw/reticles/reticle_acog_default2.vmt"),
Size = 700,
Color = Color(255, 255, 255, 255),
Attachment = "reticle"
},
Stats = function(self)
--self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.89
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.85
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.85
self.Zoom.ViewModelFovMultiplier = 0.95
self.Zoom.FovMultiplier = 0.8
end
}
MW_ATT_KEYS["attachment_vm_ar_anovember94_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anovember94_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_anovember94_muzzlebrake"] = {
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anovember94_tag_tip_5.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_brake.vmt"),
Name = "AN-94 Sonic Brake",
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.93
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.93
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.9
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_xmags"] = {
Name = "45 Round Mags",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 45
self.Animations.Reload = self.Animations.reload_xmag
self.Animations.Reload_Empty = self.Animations.reload_empty_xmag
self.Animations.Reload_Fast = self.Animations.reload_xmag_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_xmag_fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
--self.Animations.Reload_Empty.Length = self.Animations.Reload_Empty.Length + 0.15
--self.Animations.Reload.Length = self.Animations.Reload.Length + 0.05
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_xmagslrg"] = {
Name = "60 Round Casket Mags",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_xmagslrg.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_xmagslrg.vmt"),
Stats = function(self)
self.Primary.ClipSize = 60
self.Animations.Reload = self.Animations.reload_xmaglrg
self.Animations.Reload_Empty = self.Animations.reload_empty_xmaglrg
self.Animations.Reload_Fast = self.Animations.reload_xmaglrg_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_xmaglrg_fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.85
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.85
end
}
MW_ATT_KEYS["attachment_vm_ar_anovember94_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anovember94_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_ar_anov94_barhvy"] = {
Name = "VLK AN-94 Sila",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_barhvy.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_barhvy.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.94
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.94
self.Cone.Hip = self.Cone.Hip * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_barlong"] = {
Name = "AN-94 Factory X-438mm",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_barlong.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.06
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.06
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_barshort"] = {
Name = "AN-94 Factory 330mm",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_barshort.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.07
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.07
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.94
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.94
end
}
MW_ATT_KEYS["attachment_vm_ar_anovember94_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anovember94_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_stockh"] = {
Name = "AN-94 Factory Heavy",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_stockh.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.89
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.89
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.88
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.88
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.85
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.85
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.85
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.85
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_stockl"] = {
Name = "FORGE TAC Ultralight",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_stockl.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.15
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.15
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.1
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.1
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.1
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_stocks"] = {
Name = "FSS Close Quarters Stock",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_stocks.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.09
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.09
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.05
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.05
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.05
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.05
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_stockskel"] = {
Name = "VLK PX-9 Pero",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_stockskel.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_stockskel.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.15
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.15
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.15
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.15
end
}
MW_ATT_KEYS["attachment_vm_ar_anov94_stockno"] = {
Name = "Folded Stock",
Model = Model("models/viper/mw/attachments/anovember94/attachment_vm_ar_anov94_stockno.mdl"),
Icon = Material("viper/mw/attachments/icons/anovember94/icon_attachment_ar_anov94_stockno.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
self.Recoil.ViewModelMultiplier = 2.25
end
}

View File

@@ -0,0 +1,119 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_falima_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_mmags"] = {
Name = "24 Round Mags",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_mmags.mdl"),
Icon = Material("viper/mw/attachments/icons/falima/icon_attachment_ar_falima_mmags.vmt"),
Stats = function(self)
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.95
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.95
self.Primary.ClipSize = 24
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_xmags"] = {
Name = "30 Round Mags",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/falima/icon_attachment_ar_falima_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 30
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.91
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.91
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.87
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.87
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_barrel_muzzle"] = {
Name = "Muzzlebrake",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_barrel_muzzle.mdl"),
Icon = Material("viper/mw/attachments/icons/falima/icon_attachment_ar_falima_muzzle.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_ar_falima_barlong"] = {
Name = "18.0 Ultralight",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/falima/icon_attachment_ar_falima_barlong.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.05
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.05
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.91
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.91
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_barsmg"] = {
Name = "13.0 OSW Para",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_barsmg.mdl"),
Icon = Material("viper/mw/attachments/icons/falima/icon_attachment_ar_falima_barsmg.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.94
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.94
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.05
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.05
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_stock.mdl"),
Icon = Material("viper/mw/attachments/icons/falima/icon_attachment_ar_asierra12_barlong.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_nostock"] = {
Name = "No Stock",
Icon = Material("viper/mw/attachments/icons/stock/icon_attachment_stock_no.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
end
}
MW_ATT_KEYS["attachment_vm_ar_falima_stockl"] = {
Name = "Factory 18 Aluminum Stock",
Model = Model("models/viper/mw/attachments/falima/attachment_vm_ar_falima_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/falima/icon_attachment_ar_falima_stockl.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.06
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.06
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.06
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.06
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.02
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.02
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.02
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.02
end
}

View File

@@ -0,0 +1,138 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_falpha_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_xmags"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 50
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_xmags2"] = {
Name = "60 Round Mags",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_xmags2.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_xmags2.vmt"),
Stats = function(self)
self.Primary.ClipSize = 60
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.89
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.89
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_barrel_muzzle"] = {
Name = "Compensator",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_barrel_muzzle.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_muzzle.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_ar_falpha_barlong2"] = {
Name = "TAC FORGE Ultralight",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_barlong2.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_barlong2.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.03
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.03
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.02
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.02
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_barrellong_alt"] = {
Name = "FR 24.4 Sniper",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_barrellong_alt.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_barrellong.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.08
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.08
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_barshort"] = {
Name = "FR 15.9 Commando",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_barshort.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.95
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_stock"] = {
Name = "Default",
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_stock_light"] = {
Name = "FR Ultralight Hollow",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_stock_light.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_stock_light_v1.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.02
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.02
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.97
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.97
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_stock_stable"] = {
Name = "FSS Tac-Wrap",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_stock_stable.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_stock_stable_v1.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_falpha_stock_tactical_v1"] = {
Name = "FORGE TAC Ballast Pack",
Model = Model("models/viper/mw/attachments/falpha/attachment_vm_ar_falpha_stock_tactical_v1.mdl"),
Icon = Material("viper/mw/attachments/icons/falpha/icon_attachment_ar_falpha_stock_tactical_v1.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.13
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.13
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
end
}

View File

@@ -0,0 +1,24 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_magazine_g3_custom"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_magazine_g3_custom.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_magazine_ext_g3_custom"] = {
Name = "30 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_magazine_ext_g3_custom.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_mmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 30
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Cone.Hip = self.Cone.Hip * 0.95
end
}

View File

@@ -0,0 +1,191 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_galima_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_smag"] = {
Name = "M67 10-R Mags",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_smag.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_smag.vmt"),
Stats = function(self)
self.Primary.ClipSize = 10
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.15
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.15
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.2
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.2
self.Animations.Reload = self.Animations.reload_smag
self.Animations.Reload_Empty = self.Animations.reload_empty_smag
self.Animations.Reload_Fast = self.Animations.reload_smag_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_smag_fast
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_xmag"] = {
Name = "45 Round Mags",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_xmag.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_xmag.vmt"),
Stats = function(self)
self.Primary.ClipSize = 45
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_ar_galima_barlight"] = {
Name = "FSS 11.8 Squall",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_barlight.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_barrel_02.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.98
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.98
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Cone.Hip = self.Cone.Hip * 0.9
self.Cone.Increase = self.Cone.Increase * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_barlong"] = {
Name = "XRK Zodiac S440",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_barlong.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.09
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.09
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_barshort"] = {
Name = "FSS 8.3 Intruder",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_barshort.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.9
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_stockl"] = {
Name = "FSS Close Quarters Stock",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_stockl.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.09
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.09
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.05
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.05
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.05
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.05
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_stockh"] = {
Name = "FTAC Hunter",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_stockh.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.91
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.91
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.91
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.91
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.87
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.87
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_stocks"] = {
Name = "FTAC Spartan",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_stock_02.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.03
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.03
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.05
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.05
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.02
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.02
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.02
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.02
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_stockskel"] = {
Name = "CR-56 EXO",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_stockskel.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_stockskel.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.12
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.12
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.15
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.15
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.1
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.1
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.1
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_stocksn"] = {
Name = "XRK Gatekeeper",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_stocksn.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_stocksn.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.84
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.84
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.84
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.84
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.8
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.8
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.8
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_ar_galima_stockno"] = {
Name = "No Stock",
Model = Model("models/viper/mw/attachments/galima/attachment_vm_ar_galima_stockno.mdl"),
Icon = Material("viper/mw/attachments/icons/galima/icon_attachment_ar_galima_stockno.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
self.Recoil.ViewModelMultiplier = 2.25
end
}

View File

@@ -0,0 +1,148 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_kilo433_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_xmags"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_ar_kilo433_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 50
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.96
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.96
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_drum_mag"] = {
Name = "100 Round Drums",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_drum_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_ar_kilo433_drum_mag.vmt"),
Stats = function(self)
self.Primary.ClipSize = 100
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Inspect = self.Animations.Inspect_Drum
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.85
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.8
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_barrel_tip"] = {
Name = "Compensator",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_barrel_tip.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_pi_mike1911_muzzlebrake.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Cone.Hip = self.Cone.Hip * 0.8
self.Cone.Ads = self.Cone.Ads * 1.03
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_barshort"] = {
Name = "Singuard Arms 16.6 SOCOM",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_ar_kilo433_barshort.vmt"),
Stats = function(self)
--[[self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.263
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.263
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.93
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.93
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.93
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.93
self.Cone.Hip = self.Cone.Hip * 1.225]]
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.05
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.05
self.Cone.Hip = self.Cone.Hip * 0.92
self.Cone.Ads = self.Cone.Ads * 0.92
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_long_barrel"] = {
Name = "Singuard Arms 19.8 Prowler",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_long_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_ar_kilo433_long_barrel.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.1
self.Cone.Hip = self.Cone.Hip * 0.88
self.Cone.Ads = self.Cone.Ads * 0.88
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_barsil"] = {
Name = "Singuard Arms Whisper",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_barsil.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_ar_kilo433_barsil.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.06
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.06
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.99
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.99
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.99
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.99
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_stock_heavy"] = {
Name = "Singuard Arms Sniper Pro",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_kilo433_stock_heavy.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_ar_kilo433_stock_heavy.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.91
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.91
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.91
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.91
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.89
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.89
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.92
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.92
end
}
MW_ATT_KEYS["attachment_vm_ar_kilo433_stockno"] = {
Name = "No Stock",
Icon = Material("viper/mw/attachments/icons/stock/icon_attachment_stock_no.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
end
}

View File

@@ -0,0 +1,150 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_mcharlie_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_magsub"] = {
Name = ".300 Blackout 30-Round Mags",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_magsub.mdl"),
Icon = Material("viper/mw/attachments/icons/mcharlie/icon_attachment_ar_mcharlie_magsub.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.2
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.2
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.2
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.2
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.1
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_xmags"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo433/icon_attachment_ar_kilo433_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 50
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_xmags2"] = {
Name = "60 Round Mags",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_xmags2.mdl"),
Icon = Material("viper/mw/attachments/icons/mcharlie/icon_attachment_ar_mcharlie_xmags2_clip.vmt"),
Stats = function(self)
self.Primary.ClipSize = 60
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
self.Animations.Reload_Empty.Length = self.Animations.Reload_Empty.Length + 0.2
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_barrel.mdl")
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_shortbarrel"] = {
Name = "Tempus Mini",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_shortbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mcharlie/icon_attachment_ar_mcharlie_shortbarrel.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.85
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.85
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.08
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.08
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.08
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.08
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_longbarrel"] = {
Name = "Tempus Marksman",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_longbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mcharlie/icon_attachment_ar_mcharlie_longbarrel.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.1
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.94
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.94
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Cone.Hip = self.Cone.Hip * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_suppressorbarrel"] = {
Name = "Tempus Cyclone",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_suppressorbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mcharlie/icon_attachment_ar_mcharlie_suppressorbarrel.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.08
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.08
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.97
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.97
self.Cone.Hip = self.Cone.Hip * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_lightstock"] = {
Name = "M13 Skeleton Stock",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_lightstock.mdl"),
Icon = Material("viper/mw/attachments/icons/mcharlie/icon_attachment_ar_mcharlie_lightstock.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.15
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.15
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.15
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.15
end
}
MW_ATT_KEYS["attachment_vm_ar_mcharlie_stock_v2"] = {
Name = "Lightweight Stock",
Model = Model("models/viper/mw/attachments/mcharlie/attachment_vm_ar_mcharlie_stock_v3.mdl"),
Icon = Material("viper/mw/attachments/icons/mcharlie/icon_attachment_ar_mcharlie_stock_v2.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.15
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.15
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.15
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.15
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.2
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.2
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.2
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.2
end
}

View File

@@ -0,0 +1,245 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_mike4_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
local function doCalConversionStats(self)
local bSup1 = self:HasAttachment("attachment_vm_silencer_east01")
local bSup2 = self:HasAttachment("attachment_vm_silencer02")
local bSup3 = self:HasAttachment("attachment_vm_silencer03")
local bSup4 = self:HasAttachment("attachment_vm_silencer04")
local bSup5 = self:HasAttachment("attachment_vm_ar_mike4_barsil")
local bSup6 = self:HasAttachment("attachment_vm_ar_mike4_mag_v5")
if (!bSup1 && !bSup2 && !bSup3 && !bSup4 && !bSup5 && !bSup6) then
self.Primary.Sound = Sound("mw19_mcharlie.fire.cal")
self.Reverb = {
RoomScale = 50000,
Sounds = {
Outside = {
Layer = Sound("Atmo_SMG.Outside"),
Reflection = Sound("Reflection_AR.Outside")
},
Inside = {
Layer = Sound("Atmo_SMG.Inside"),
Reflection = Sound("Reflection_AR.Inside")
}
}
}
end
self.Primary.Ammo = "SMG1"
self.Shell = "mwb_shelleject_9mm"
end
MW_ATT_KEYS["attachment_vm_ar_mike4_calsmg"] = {
Name = "9mm Para 32-Round Mags",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_calsmg.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_ar_mike4_calsmg.vmt"),
Stats = function(self)
self.Primary.ClipSize = 32
self.Animations.Reload = self.Animations.Reload_Calsmg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Calsmg
self.Animations.Reload_Fast = self.Animations.Reload_Calsmg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Calsmg_Fast
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 0.7
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 0.8
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.6
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.6
self.Primary.RPM = self.Primary.RPM * 1.25
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Cone.Increase = self.Cone.Increase * 0.5
doCalConversionStats(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_xmags"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_ar_mike4_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 50
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_mag_v5"] = {
Name = ".458 SOCOM 10-Round Mags",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_mag_v5.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_ar_mike4_mag_v5.vmt"),
Stats = function(self)
self.Primary.ClipSize = 10
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
self.Animations.Reload_Fast = self.Animations.Reload_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Fast
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.25
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.4
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.4
self.Primary.RPM = self.Primary.RPM * 0.75
doSocomConversionStats(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_carryhandle"] = {
Name = "Carry Handle",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_carryhandle.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_ar_mike4_carryhandle.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_carryhandle_v18"] = {
Name = "Carry Handle",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_carryhandle_v18.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_ar_mike4_carryhandle.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_xmags2"] = {
Name = "60 Round Mags",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_xmags2.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_ar_mike4_xmags2.vmt"),
Stats = function(self)
self.Primary.ClipSize = 60
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.85
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.85
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_barrel.mdl")
}
MW_ATT_KEYS["attachment_vm_ar_mike4_custombarrel"] = {
Name = "Corvus Custom Marksman",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_custombarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_barcust_mike4.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.94
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.94
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_mike203barrel"] = {
Name = "Stock M16 Grenadier",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_mike203barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_barmid_mike4.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_shortbarrel"] = {
Name = "FSS 11.5 Commando",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_shortbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_barshort_mike4.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.13
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.13
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.15
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.15
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.9
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_barrel_v3_alt"] = {
Name = "FSS 14.5 Tac Lite",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_barrel_v3_alt.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_bar_mike4_v03.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.95
self.Cone.Ads = self.Cone.Ads * 0.95
self.Cone.Increase = self.Cone.Increase * 0.85
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.07
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.07
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.05
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_barsil"] = {
Name = "FSS 12.4 Predator",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_barsil.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_ar_mike4_barsil.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.95
self.Cone.Ads = self.Cone.Ads * 0.95
self.Cone.Increase = self.Cone.Increase * 0.85
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.05
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.04
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.04
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_stockno"] = {
Name = "No Stock",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_stockno.mdl"),
Icon = Material("viper/mw/attachments/icons/stock/icon_attachment_stock_no.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
end
}
MW_ATT_KEYS["attachment_vm_ar_mike4_customstock"] = {
Name = "M-16 Stock",
Model = Model("models/viper/mw/attachments/mike4/attachment_vm_ar_mike4_customstock.mdl"),
Icon = Material("viper/mw/attachments/icons/mike4/icon_attachment_stockcust_mike4.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.86
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.86
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.86
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.86
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.89
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.89
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.92
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.92
end
}

View File

@@ -0,0 +1,162 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_asierra12_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_xmags"] = {
Name = "25 Round Mags",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 25
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_xxmags"] = {
Name = "30 Round Mags",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_xxmags.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_xxmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 30
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.85
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.85
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_muzzlebrake"] = {
Name = "Muzzlebrake",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_muzzlebrake.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_muzzlebrake01.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_longsuppressor"] = {
Name = "Collosus Suppressor",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_longsuppressor.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_longsuppressor.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.85
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.85
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.75
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.75
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.2
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.2
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_scope"] = {
Name = "Sniper Scope",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_scope.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_scope.vmt"),
Optic = {
LensHideMaterial = Material("viper/MW/weapons/asierra12/weapon_vm_ar_asierra12_scopeglass.vmt"),
LensBodygroup = "lens",
FOV = 7,
ParallaxSize = 400, --a value of zero means 1:1 size with the end of the optic
Thermal = false
},
Reticle = {
Material = Material("viper/mw/reticles/reticle_int_default.vmt"),
Size = 800,
Color = Color(255, 255, 255, 255),
Attachment = "reticle"
},
Stats = function(self)
--self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 3
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.89
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.89
self.Zoom.ViewModelFovMultiplier = 0.95
self.Zoom.FovMultiplier = 0.8
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_barshort"] = {
Name = "Oden Factory 420mm",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_barshort.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.06
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.06
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_barlong"] = {
Name = "Oden Factory 730mm",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_barlong.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.96
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.96
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.05
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.05
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_barlong2"] = {
Name = "Oden Factory 810mm",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_barlong2.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_barlong2.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.91
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.91
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.13
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.13
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_stock"] = {
Name = "Default",
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_stockh"] = {
Name = "FORGE TAC Ballast Pack",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_stockh.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.13
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.13
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_asierra12_stockl"] = {
Name = "Oden Ultralight Hollow",
Model = Model("models/viper/mw/attachments/asierra12/attachment_vm_ar_asierra12_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/asierra12/icon_attachment_ar_asierra12_stockl.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.02
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.02
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.97
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.97
end
}

View File

@@ -0,0 +1,125 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_scharlie_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_mmags"] = {
Name = "25 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_mmags.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_mmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 25
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.97
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.97
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload.Length = self.Animations.Reload.Length + 0.067
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.95
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_xmags"] = {
Name = "30 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_mag_ext.vmt"),
Stats = function(self)
self.Primary.ClipSize = 30
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.93
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.93
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.96
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.96
self.Animations.Reload.Length = self.Animations.Reload.Length + 0.067
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.87
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.87
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_barrel_long"] = {
Name = "FORGE TAC 20.0 LB",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_barrel_long.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_barrel_long.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.1
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_barrel_mid"] = {
Name = "FORGE TAC 17.2",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_barrel_mid.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_barrel_mid.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.05
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.05
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_barrel_pdw"] = {
Name = "FORGE TAC CQC Pro",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_barrel_pdw.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_barrel_pdw.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.85
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.85
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_stock_dmr"] = {
Name = "XRK Obelisk Pro",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_stock_dmr.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_stock_dmr.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.9
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.9
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.9
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_scharlie_stock_light"] = {
Name = "FTAC Collapsible Stock",
Model = Model("models/viper/mw/attachments/attachment_vm_ar_scharlie_stock_light.mdl"),
Icon = Material("viper/mw/attachments/icons/scharlie/icon_attachment_ar_scharlie_stock_light.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.19
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.19
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.12
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.12
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.75
end
}

View File

@@ -0,0 +1,180 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_sierra552_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_xmags"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 50
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Reload = self.Animations.reload_mmag
self.Animations.Reload_Empty = self.Animations.reload_empty_mmag
self.Animations.Reload_Fast = self.Animations.reload_mmag_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_mmag_fast
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_xmagslrg"] = {
Name = "60 Round Mags",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_xmagslrg.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_xmagslrg.vmt"),
Stats = function(self)
self.Primary.ClipSize = 60
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.83
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.83
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.8
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.8
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.8
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_barlight"] = {
Name = "Barlight",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_barlight.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_barh.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.04
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.04
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.99
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.99
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.04
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.04
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.07
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_barh"] = {
Name = "XRK CZEN mk2",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_barh.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_barh.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.06
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.06
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.08
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.08
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.1
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_barlong"] = {
Name = "FFS 20.8 Nexus",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_barlong.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.1
self.Cone.Hip = self.Cone.Hip * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_barshort"] = {
Name = "ZLR Drifter A-08",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_barshort.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.12
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.12
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.15
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.15
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.87
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.87
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.95
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.95
self.HoldType = "RifleWithVerticalGrip"
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_barxlong"] = {
Name = "Tempus 26.4 Archangel",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_barxlong.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_barxlong.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.8
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.8
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.8
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.8
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.2
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.2
self.Cone.Hip = self.Cone.Hip * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_stockh"] = {
Name = "FSS Blackjack",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_stockh.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.85
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.85
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.85
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.9
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.9
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.9
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_stockl"] = {
Name = "XRK StrikeLite III",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_stockl.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.06
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.06
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.18
end
}
MW_ATT_KEYS["attachment_vm_ar_sierra552_stockno"] = {
Name = "No Stock",
Model = Model("models/viper/mw/attachments/sierra552/attachment_vm_ar_sierra552_stockno.mdl"),
Icon = Material("viper/mw/attachments/icons/sierra552/icon_attachment_ar_sierra552_stockno.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
self.Recoil.ViewModelMultiplier = 2.25
end
}

View File

@@ -0,0 +1,148 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_tango21_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_xmags"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 50
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.93
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.93
self.Animations.Reload = self.Animations.reload_xmag
self.Animations.Reload_Empty = self.Animations.reload_empty_xmag
self.Animations.Reload_Fast = self.Animations.reload_xmag_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_xmag_fast
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_drummag"] = {
Name = "60 Round 9mm Drum",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_drummag.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_drummag.vmt"),
Stats = function(self)
self.Primary.ClipSize = 60
self.Primary.RPM = 1000
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 0.85
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 0.85
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.5
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.5
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.5
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.5
self.Animations.Reload = self.Animations.reload_drum
self.Animations.Reload_Empty = self.Animations.reload_empty_drum
self.Animations.Reload_Fast = self.Animations.reload_drum_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_drum_fast
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.6
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.6
doCalConversionStats(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_ar_tango21_barrel_long"] = {
Name = "FSS Ranger",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_barrel_long.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_barrel_long.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.06
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.06
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_barrel_med"] = {
Name = "FORGE TAC Eclipse",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_barrel_med.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_barrel_med.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.03
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.03
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_barrel_short"] = {
Name = "FTAC 13.5 Compact",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_barrel_short.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_barrel_short.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.92
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.92
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_stock_heavy"] = {
Name = "XRK Close Quarters Stock",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_stock_heavy.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_stock_heavy.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.15
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_stock_light"] = {
Name = "XRK Ultralight Hollow",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_stock_light.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_stock_light.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.95
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.95
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.07
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.07
end
}
MW_ATT_KEYS["attachment_vm_ar_tango21_stock_tactical"] = {
Name = "FTAC Equilibrium",
Model = Model("models/viper/mw/attachments/tango21/attachment_vm_ar_tango21_stock_tactical.mdl"),
Icon = Material("viper/mw/attachments/icons/tango21/icon_attachment_ar_tango21_stock_tactical.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.06
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.06
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.9
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}

View File

@@ -0,0 +1,194 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_ar_valpha_scope"] = {
Name = "Dragunov Scope",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_scope.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_scope.vmt"),
Optic = {
LensHideMaterial = Material("viper/MW/weapons/valpha/weapon_vm_sn_delta_scope_lens.vmt"),
LensBodygroup = "lens",
FOV = 5,
ParallaxSize = 700, --a value of zero means 1:1 size with the end of the optic
Thermal = false
},
Reticle = {
Material = Material("viper/shared/reticles/po4x_crosshair_remake"),
Size = 2500,
Color = Color(255, 255, 255, 255),
Attachment = "reticle"
},
Stats = function(self)
--self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.89
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Zoom.ViewModelFovMultiplier = 0.95
self.Zoom.FovMultiplier = 0.8
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_smags"] = {
Name = "SPP 10-R Mags",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_smags.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_smags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 10
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.33
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.33
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.25
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.25
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.07
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.07
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.12
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.12
self.Animations.Reload = self.Animations.reload_smag
self.Animations.Reload_Empty = self.Animations.reload_empty_smag
self.Animations.Reload_Fast = self.Animations.reload_smag_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_smag_fast
self.Animations.Inspect = self.Animations.inspect_smag
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_xmags"] = {
Name = "30 Round Mags",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 30
self.Animations.Reload = self.Animations.reload_xmag
self.Animations.Reload_Empty = self.Animations.reload_empty_xmag
self.Animations.Reload_Fast = self.Animations.reload_xmag_fast
self.Animations.Reload_Empty_Fast = self.Animations.reload_empty_xmag_fast
self.Animations.Inspect = self.Animations.inspect_xmag
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_ar_valpha_barhvy"] = {
Name = "VLK 200mm Osa",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_barhvy.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_barhvy.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.07
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.07
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.08
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_barlight"] = {
Name = "VLK 105mm Sova",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_barlight.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_barlight.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.12
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.12
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.13
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.13
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.125
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.95
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.95
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_barshort"] = {
Name = "Stovl SOF",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_barshort.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.17
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.17
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.2
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.2
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.125
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.9
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.9
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_stockh"] = {
Name = "VLK Vintazh",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_stockh.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.88
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.88
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.91
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.91
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.91
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.91
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_stocks"] = {
Name = "FSS Intl. Gen 4 GRU",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_stocks.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.09
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.09
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.05
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.05
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.05
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.05
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_stockskel"] = {
Name = "Stovl 6P30 Skelet",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_stockskel.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_stockskel.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.13
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.13
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.08
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.08
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.11
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.11
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.11
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.11
end
}
MW_ATT_KEYS["attachment_vm_ar_valpha_stocksn"] = {
Name = "VLK Strelok",
Model = Model("models/viper/mw/attachments/valpha/attachment_vm_ar_valpha_stocksn.mdl"),
Icon = Material("viper/mw/attachments/icons/valpha/icon_attachment_ar_valpha_stocksn.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.84
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.84
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.82
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.82
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.83
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.83
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.83
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.83
end
}

View File

@@ -0,0 +1,81 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_pi_cpapa_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_cpapa_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/cpapa/icon_attachment_pi_cpapa_barrel.vmt")
}
MW_ATT_KEYS["attachment_vm_pi_cpapa_barrel_long"] = {
Name = ".357 Long",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_cpapa_barrel_long.mdl"),
Icon = Material("viper/mw/attachments/icons/cpapa/icon_attachment_pi_cpapa_barrel_long.vmt"),
Stats = function(self)
self.Cone.Hip = self.Cone.Hip * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.08
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.08
end
}
MW_ATT_KEYS["attachment_vm_pi_cpapa_shortbarrel"] = {
Name = ".357 Snub Nose",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_cpapa_shortbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/cpapa/icon_attachment_pi_cpapa_shortbarrel.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.13
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.13
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.9
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_cpapa_barrel_v2"] = {
Name = "Silverfield Ordnance .357",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_cpapa_barrel_v2.mdl"),
Icon = Material("viper/mw/attachments/icons/cpapa/icon_attachment_pi_cpapa_barrel_v2.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.85
end
}
MW_ATT_KEYS["attachment_vm_pi_cpapa_grip"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_cpapa_grip.mdl"),
Icon = Material("viper/mw/attachments/icons/cpapa/icon_attachment_pi_cpapa_grip.vmt")
}
MW_ATT_KEYS["attachment_vm_pi_cpapa_grip_stock"] = {
Name = "Lockwood .357 Custom Stock",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_cpapa_grip_stock.mdl"),
Icon = Material("viper/mw/attachments/icons/cpapa/icon_attachment_pi_cpapa_grip_stock.vmt"),
Stats = function(self)
self:SetViewModel("models/viper/mw/weapons/v_357_stock.mdl")
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.8
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.8
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.8
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.8
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.5
end
}
MW_ATT_KEYS["attachment_vm_pi_cpapa_stockl"] = {
Name = "FSS Raider Stock",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_cpapa_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/cpapa/icon_attachment_pi_cpapa_stockl.vmt"),
Stats = function(self)
self:SetViewModel("models/viper/mw/weapons/v_357_stock.mdl")
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.88
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.88
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.88
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.88
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.65
end
}

View File

@@ -0,0 +1,110 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_pi_decho_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_mag.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_pi_decho_xmags"] = {
Name = "10 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 10
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.95
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_pi_decho_xmags2"] = {
Name = "13 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_xmags2.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_xmags2.vmt"),
Stats = function(self)
self.Primary.ClipSize = 13
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.93
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.93
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_decho_muzzlebrake"] = {
Name = "Muzzle Brake",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_muzzlebrake.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_muzzlebrake.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.85
end
}
MW_ATT_KEYS["attachment_vm_pi_decho_slide"] = {
Name = "Default Slide",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_slide.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_slide.vmt"),
}
MW_ATT_KEYS["attachment_vm_pi_decho_slide_extended02"] = {
Name = "FORGE TAC Enforcer",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_slide_extended02.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_slide_extended02.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.03
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_pi_decho_slide_extended"] = {
Name = "FORGE TAC Extended",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_slide_extended.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_slide_extended.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.12
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.85
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.85
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.85
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, -0.1)
self.ViewModelOffsets.Aim.Angles = self.ViewModelOffsets.Aim.Angles + Angle(0, 0, -0.2)
end
}
MW_ATT_KEYS["attachment_vm_pi_decho_grip"] = {
Name = "Default Grip",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_grip.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_grip.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_pi_decho_cust_grip"] = {
Name = "Rubberized Grip",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_decho_cust_grip.mdl"),
Icon = Material("viper/mw/attachments/icons/decho/icon_attachment_pi_decho_pistolgrip_tape_v2.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
end
}

View File

@@ -0,0 +1,109 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_pi_golf21_slide_black"] = {
Name = "Vanguard Elite",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_slide_black.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_slide.vmt"),
Stats = function(self)
self.Firemodes[1].Name = "3rnd Burst"
self.Primary.RPM = 1200
self.Primary.BurstRounds = 3
self.Primary.BurstDelay = 0.2
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 5
end
}
MW_ATT_KEYS["attachment_vm_pi_golf21_slide_long"] = {
Name = "Singuard Arms Advantage",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_slide_long.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_slide_long.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.04
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.04
self.Primary.RPM = self.Primary.RPM + 100
end
}
MW_ATT_KEYS["attachment_vm_pi_golf21_slide_auto"] = {
Name = "Singuard Arms Featherweight",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_slide_auto.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_slide_auto.vmt"),
Stats = function(self)
self.Firemodes[1].Name = "Full Auto"
self.Primary.Automatic = true
self.Primary.RPM = 1200
self.Cone.Max = 2
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 5
end
}
MW_ATT_KEYS["attachment_vm_pi_golf21_slide"] = {
Name = "Default Slide",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_slide.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_pi_golf21_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_mag.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_pi_golf21_mag_xmags"] = {
Name = "17 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_mag_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_mag_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 17
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_pi_golf21_mag_xmags2"] = {
Name = "26 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_mag_xmags2.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_mag_xmags2.vmt"),
Stats = function(self)
self.Primary.ClipSize = 26
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.85
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_golf21_stock"] = {
Name = "X16 Stock",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_golf21_stock.mdl"),
Icon = Material("viper/mw/attachments/icons/golf21/icon_attachment_pi_golf21_stock.vmt"),
Stats = function(self)
self:SetViewModel("models/viper/mw/weapons/v_glock_stock.mdl")
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0, 0, 0.05)
self.ViewModelOffsets.Idle.Pos = Vector(-0.15, -0.5, -0.5)
self.Zoom.Blur.EyeFocusDistance = 10
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.85
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.5
end
}

View File

@@ -0,0 +1,164 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_pi_mike_barlight"] = {
Name = "SSB 105mm",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_barlight.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_barlight.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_barsil"] = {
Name = "SSL 308mm",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_barsil.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_barsil.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Cone.Hip = self.Cone.Hip * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_barauto"] = {
Name = "Sorokin 140mm Auto",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_barauto.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_barauto.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Recoil.Shake = self.Recoil.Shake * 1.3
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 2
self.Cone.Max = self.Cone.Max * 1.5
self.Primary.Automatic = true
self.Primary.RPM = 800
self.Firemodes[1].Name = "Full Auto"
self.PrintName = "Sorokin"
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_barrel"] = {
Name = "Default Slide",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_barrel.mdl")
}
MW_ATT_KEYS["attachment_vm_pi_mike_grip"] = {
Name = "Default Grip",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_grip.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_pistolgrip01"] = {
Name = "VLK Spetznaz",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_pistolgrip01.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_pistolgrip01.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.9
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_pistolgrip02"] = {
Name = "VLK Prizrak",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_pistolgrip02.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_pistolgrip02.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.1
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_pistolgrip03"] = {
Name = "VLK Elita",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_pistolgrip03.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_pistolgrip03.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.08
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_mag.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_xmags"] = {
Name = "20 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 20
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Inspect = self.Animations.Inspect_Xmag
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_drummag"] = {
Name = "80 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_drummag.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_drummag.vmt"),
Stats = function(self)
self.Primary.ClipSize = 80
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Inspect = self.Animations.Inspect_Drum
self.Animations.Equip = self.Animations.Equip_Drum
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.65
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.65
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.7
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.7
self.Animations.Reload_XmagLrg.Fps = self.Animations.Reload_XmagLrg.Fps * 0.9
self.Animations.Reload_Empty_XmagLrg.Fps = self.Animations.Reload_Empty_XmagLrg.Fps * 0.8
self.Animations.Reload_XmagLrg_Fast.Fps = self.Animations.Reload_XmagLrg.Fps * 0.9
self.Animations.Reload_Empty_XmagLrg_Fast.Fps = self.Animations.Reload_Empty_XmagLrg.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_stockl"] = {
Name = "PP-Skelet",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_stockl.vmt"),
Stats = function(self)
self:SetViewModel("models/viper/mw/weapons/v_makarov_stock.mdl")
self.Animations.Equip = self.Animations.Equip_Stock
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(-0.15, 0, 0)
self.Recoil.Shake = self.Recoil.Shake * 0.74
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.85
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.5
self.Zoom.Blur.EyeFocusDistance = 7
end
}
MW_ATT_KEYS["attachment_vm_pi_mike_stockh"] = {
Name = "PP-Karabin",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/mike/icon_attachment_pi_mike_stockh.vmt"),
Stats = function(self)
self:SetViewModel("models/viper/mw/weapons/v_makarov_stock.mdl")
self.Animations.Equip = self.Animations.Equip_Stock
self.Recoil.Shake = self.Recoil.Shake * 0.74
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.85
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.5
self.Zoom.Blur.EyeFocusDistance = 7
end
}

View File

@@ -0,0 +1,105 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_pi_mike1911_v1_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_v1_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_v1_mag.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_pi_mike1911_mmags"] = {
Name = "10 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_mmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_mmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 10
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.93
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.93
end
}
MW_ATT_KEYS["attachment_vm_pi_mike1911_xmags"] = {
Name = "15 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 15
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.88
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.88
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.95
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_pi_mike1911_muzzlebrake"] = {
Name = "Muzzle Brake",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_muzzlebrake.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_muzzlebrake.vmt"),
Stats = function(self)
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.98
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.98
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.98
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.98
end
}
MW_ATT_KEYS["attachment_vm_pi_mike1911_v1_slide"] = {
Name = "Default Slide",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_v1_slide.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_pi_mike1911_barlong"] = {
Name = ".45 Match Grade",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_barlong.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.05
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.05
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.94
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.94
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_pi_mike1911_barshort"] = {
Name = ".45 Compact",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_barshort.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.96
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.96
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.07
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.07
end
}
MW_ATT_KEYS["attachment_vm_pi_mike1911_v2_slide"] = {
Name = "1911 Stalker",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike1911_v2_slide.mdl"),
Icon = Material("viper/mw/attachments/icons/mike1911/icon_attachment_pi_mike1911_v2_slide.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.02
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.02
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.97
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.97
end
}

View File

@@ -0,0 +1,172 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_pi_mike9_barauto"] = {
Name = "Mk3 Burst Mod",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_barauto.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_barauto.vmt"),
Stats = function(self)
self.Primary.RPM = 1000
self.Primary.BurstRounds = 3
self.Primary.BurstDelay = 0.2
self.Firemodes[1].Name = "3rnd Burst"
self.Recoil.Shake = self.Recoil.Shake * 1.3
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 2.5
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_barlight"] = {
Name = "Mk1 Competition",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_barlight.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_barlight.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Cone.Increase = self.Cone.Increase * 0.5
self.Cone.Hip = self.Cone.Hip * 0.5
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_barlong"] = {
Name = "Mk1 Extended",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_barlong.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.07
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.07
self.Cone.Hip = self.Cone.Hip * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.85
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.85
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_barrel"] = {
Name = "Default Slide (Tan)",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_barrel.mdl")
}
MW_ATT_KEYS["attachment_vm_pi_mike9_barrel_black"] = {
Name = "Default Slide (Black)",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_barrel_black.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_barrel.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_xmags"] = {
Name = "21 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_xmagslrg.vmt"),
Stats = function(self)
self.Primary.ClipSize = 21
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_compensator"] = {
Name = "Compensator",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_compensator.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_compensator_v2.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Cone.Hip = self.Cone.Hip * 0.9
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.05
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.05
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_xmagslrg"] = {
Name = "27 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_xmagslrg.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_xmagslrg_v2.vmt"),
Stats = function(self)
self.Primary.ClipSize = 27
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.85
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.85
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_stock"] = {
Name = "FTAC Satus CS-3",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_stock.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_stock.vmt"),
Stats = function(self)
self:SetViewModel("models/viper/mw/weapons/v_m9_stock.mdl")
self.ViewModelOffsets.Aim.Pos = self.ViewModelOffsets.Aim.Pos + Vector(0.16, 0, 0)
--self.Recoil.Shake = self.Recoil.Shake * 0.74
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.85
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.85
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.5
self.Zoom.Blur.EyeFocusDistance = 11
end
}
MW_ATT_KEYS["no_pistgrip"] = {
Name = "Default Pistolgrip",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_pgrip.mdl"),
}
MW_ATT_KEYS["attachment_vm_pi_mike9_pstlgrpcust"] = {
Name = "XRK Pro Grip",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_pstlgrpcust.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_pstlgrpcust.vmt"),
Stats = function(self)
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.9
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_pstlgrplght"] = {
Name = "XRK Speed Grip",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_pstlgrplght.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_pstlgrplght.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.2
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.07
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.07
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_pi_mike9_gripvert"] = {
Name = "Folding Grip",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_mike9_gripvert.mdl"),
Icon = Material("viper/mw/attachments/icons/mike9/icon_attachment_pi_mike9_pstlgrpcust_v2.vmt"),
Stats = function(self)
self:SetGripPoseParameter("grip_offset")
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.85
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.85
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.93
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.93
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.93
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.93
end
}

View File

@@ -0,0 +1,85 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_pi_papa320_slide_black"] = {
Name = "XRK L Super",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_papa320_slide_black.mdl"),
Icon = Material("viper/mw/attachments/icons/icon_attachment_pi_papa320_slide.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_pi_papa320_slide_vented"] = {
Name = "A9-16 Lightweight",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_papa320_slide_vented.mdl"),
Icon = Material("viper/mw/attachments/icons/icon_attachment_pi_papa320_slide.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.02
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.02
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.97
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.97
end
}
MW_ATT_KEYS["attachment_vm_pi_papa320_barrel_ext"] = {
Name = "XRK V Extended",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_papa320_barrel_ext.mdl"),
Icon = Material("viper/mw/attachments/icons/icon_attachment_pi_papa320_barrel_ext.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.05
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.05
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.94
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.94
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_pi_papa320_slide"] = {
Name = "Default Slide",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_papa320_slide.mdl"),
Icon = Material("viper/mw/attachments/icons/icon_attachment_pi_papa320_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_pi_papa320_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_papa320_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/icon_attachment_pi_papa320_mag.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_pi_papa320_mag_ext"] = {
Name = "21 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_papa320_mag_ext.mdl"),
Icon = Material("viper/mw/attachments/icons/icon_attachment_pi_papa320_mag_ext.vmt"),
Stats = function(self)
self.Primary.ClipSize = 21
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload_Fast = self.Animations.Reload_Xmag_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_Xmag_Fast
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.93
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.93
end
}
MW_ATT_KEYS["attachment_vm_pi_papa320_mag_ext2"] = {
Name = "32 Round Mags",
Model = Model("models/viper/mw/attachments/attachment_vm_pi_papa320_mag_ext2.mdl"),
Icon = Material("viper/mw/attachments/icons/icon_attachment_pi_papa320_mag_ext2.vmt"),
Stats = function(self)
self.Primary.ClipSize = 32
self.Animations.Reload = self.Animations.Reload_XmagLrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_XmagLrg
self.Animations.Reload_Fast = self.Animations.Reload_XmagLrg_Fast
self.Animations.Reload_Empty_Fast = self.Animations.Reload_Empty_XmagLrg_Fast
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.88
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.88
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.95
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.95
end
}

View File

@@ -0,0 +1,142 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sh_aalpha12_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_barlong"] = {
Name = "ZLR J-3600 Torrent",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_barlong.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.85
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.85
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.85
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.85
weapon.Cone.Hip = weapon.Cone.Hip * 0.85
weapon.Cone.Ads = weapon.Cone.Ads * 0.85
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_barhvy"] = {
Name = "ZLR J-2800 Influx",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barhvy.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_barhvy.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Cone.Ads = weapon.Cone.Ads * 0.9
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.08
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_barshort"] = {
Name = "JAK Urban King",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_barshort.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.15
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.15
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
weapon.Cone.Hip = weapon.Cone.Hip * 1.2
weapon.Cone.Ads = weapon.Cone.Ads * 1.2
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_mag.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_slugmag"] = {
Name = "12g Mags",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_slugmag.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_slugmag.vmt"),
Stats = function(weapon)
if (weapon:HasAttachment("sh_flechette")) then
return
end
weapon.Bullet.NumBullets = 6
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_drummag"] = {
Name = "32 Round Drum Mags",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_drummag.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_drummag.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 32
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.7
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.7
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.7
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.7
weapon.Animations.Reload = weapon.Animations.reload_drum
weapon.Animations.Reload_Empty = weapon.Animations.reload_empty_drum
weapon.Animations.Inspect = weapon.Animations.inspect_drum
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.8
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_xmags"] = {
Name = "20 Round Drum Mags",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_xmags.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 20
weapon.Animations.Reload = weapon.Animations.reload_drum
weapon.Animations.Reload_Empty = weapon.Animations.reload_empty_drum
weapon.Animations.Inspect = weapon.Animations.inspect_drum
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.84
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.84
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.8
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.8
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.9
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_stockh"] = {
Name = "ZLR Tsunami",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_stockh.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.8
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.91
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.91
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_stockl"] = {
Name = "JAK Rabbit Ultralight",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_stockl.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sh_aalpha12_stocks"] = {
Name = "FSS Power Wrap",
Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_stocks.vmt"),
Stats = function(weapon)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 1.12
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 1.12
end
}

View File

@@ -0,0 +1,265 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sh_charlie725_choke"] = {
Name = "Choke",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_choke.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_choke.vmt"),
Stats = function(self)
weapon.Cone.Hip = weapon.Cone.Hip * 0.88
weapon.Cone.Ads = weapon.Cone.Ads * 0.88
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_comp"] = {
Name = "Compensator",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_comp.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_comp.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Cone.Hip = weapon.Cone.Hip * 0.76
weapon.Cone.Ads = weapon.Cone.Ads * 0.76
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_muzzlebrake"] = {
Name = "Muzzle Brake",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_muzzlebrake.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_muzzlebrake.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.9
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.9
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.9
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_muzzlemelee"] = {
Name = "Breacher Device",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_muzzlemelee.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_muzzlemelee.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.97
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.97
weapon.Animations.Melee_Hit.Damage = weapon.Animations.Melee_Hit.Damage * 1.5
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_flashhider"] = {
Name = "Flash Guard",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_flashhider.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_flashhider.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_silencer01"] = {
Name = "Lightweight Suppressor",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_silencer01.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_silencer01.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.02
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_silencer02"] = {
Name = "Monolithic Suppressor",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_silencer02.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_silencer02.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.95
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_silencer03"] = {
Name = "Tactical Suppressor",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_silencer03.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_silencer03.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.99
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.99
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.98
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.98
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.04
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.98
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.98
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_barrel_long"] = {
Name = "Tempus 32 Competition",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_barrel_long.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_barrel_long.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.9
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.9
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Cone.Ads = weapon.Cone.Ads * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_barrel_mid"] = {
Name = "Tempus Smooth Bore",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_barrel_mid.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_barrel_mid.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 1.05
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 1.05
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.94
weapon.Cone.Hip = weapon.Cone.Hip * 1.1
weapon.Cone.Ads = weapon.Cone.Ads * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_barrel_sawnoff"] = {
Name = "Sawed-off Barrel",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_barrel_sawnoff.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_barrel_sawnoff.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.15
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.2
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.2
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 1.15
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 1.15
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.8
weapon.Cone.Hip = weapon.Cone.Hip * 1.5
weapon.Cone.Ads = weapon.Cone.Ads * 1.5
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_guard"] = {
Name = "attachment_vm_sh_charlie725_guard",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_guard.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_foreendlight"] = {
Name = "FORGE TAC Grip",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_foreendlight.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_foreendlight.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.08
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.08
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_forendstable"] = {
Name = "FORGE TAC Steady Grip",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_forendstable.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_forendstable.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.95
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.95
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_forendtactical"] = {
Name = "FORGE TAC Commander",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_forendtactical.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_forendtactical.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 1.05
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 1.05
end
}
MW_ATT_KEYS["attachment_vm_ar_charlie725_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_stock_sawnoff"] = {
Name = "Sawed-off Stock",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_stock_sawnoff.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_stock_sawnoff.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.15
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.2
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.2
weapon.Recoil.AdsMultiplier = 1
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_stocklight"] = {
Name = "Cronen Pro Light",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_stocklight.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_stocklight.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.05
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.05
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
weapon.Recoil.AdsMultiplier = 0.5
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_stockstable"] = {
Name = "Cronen Equilibrium",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_stockstable.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_stockstable.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.9
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_charlie725_stocktactical"] = {
Name = "Tempus Sport",
Model = Model("models/viper/mw/attachments/charlie725/attachment_vm_sh_charlie725_stocktactical.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_stocktactical.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.87
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.87
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.85
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.85
end
}

View File

@@ -0,0 +1,218 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sh_dpapa12_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_barmid"] = {
Name = "FORGE TAC Gemini",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_barmid.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_barmid.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.06
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_barlong"] = {
Name = "FORGE TAC Sentry",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_barlong.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Cone.Ads = weapon.Cone.Ads * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_barshort"] = {
Name = "6 Revolt",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_barshort.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.8
end
} --Doesn't exist in the game, but in the files.
MW_ATT_KEYS["attachment_vm_sh_dpapa12_ammo"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_ammo.mdl"),
Stats = function(weapon)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_grip"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_grip.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_pump"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_pump.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_pump_light"] = {
Name = "FTAC Ultralight Pump",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_pump_light.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_pump_light.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 1.15
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_pump_stable"] = {
Name = "FSS R9-0 Bulldog",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_pump_stable.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_pump_stable.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.7
weapon.Animations.Rechamber.Fps = weapon.Animations.Rechamber.Fps * 0.85
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_pump_tactical"] = {
Name = "FTAC Close Quarters Pro",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_pump_tactical.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_pump_tactical.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.4
weapon.Animations.Rechamber.Fps = weapon.Animations.Rechamber.Fps * 1.2
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_choke"] = {
Name = "Choke",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_choke.mdl"),
Icon = Material("viper/mw/attachments/icons/muzzle/icon_attachment_sh_romeo870_choke.vmt"),
Stats = function(weapon)
weapon.Cone.Hip = weapon.Cone.Hip * 0.88
weapon.Cone.Ads = weapon.Cone.Ads * 0.88
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_comp"] = {
Name = "Compensator",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_comp.mdl"),
Icon = Material("viper/mw/attachments/icons/muzzle/icon_attachment_compensator_shgn01.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Cone.Hip = weapon.Cone.Hip * 0.76
weapon.Cone.Ads = weapon.Cone.Ads * 0.76
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_muzzlebrake"] = {
Name = "Muzzle Brake",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_muzzlebrake.mdl"),
Icon = Material("viper/mw/attachments/icons/muzzle/icon_attachment_muzzlebrake_shgn01.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.9
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.9
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.9
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_muzzlemelee"] = {
Name = "Breacher Device",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_muzzlemelee.mdl"),
Icon = Material("viper/mw/attachments/icons/muzzle/icon_attachment_muzzlemelee_shgn01.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.97
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.97
weapon.Animations.Melee_Hit.Damage = weapon.Animations.Melee_Hit.Damage * 1.5
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_flashhider"] = {
Name = "Flash Guard",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_flashhider.mdl"),
Icon = Material("viper/mw/attachments/icons/muzzle/icon_attachment_flashhider_shtgn01.vmt"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_silencer01"] = {
Name = "Lightweight Suppressor",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_silencer02.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_silencer02.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.02
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_silencer02"] = {
Name = "Monolithic Suppressor",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_silencer01.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_silencer01.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
end
}
MW_ATT_KEYS["attachment_vm_sh_dpapa12_silencer03"] = {
Name = "Tactical Suppressor",
Model = Model("models/viper/mw/attachments/dpapa12/attachment_vm_sh_dpapa12_silencer03.mdl"),
Icon = Material("viper/mw/attachments/icons/dpapa12/icon_attachment_sh_dpapa12_silencer03.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.99
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.99
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.98
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.98
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.04
end
}
--experimental
MW_ATT_KEYS["attachment_vm_vertgrip_stubby02_dpapa12"] = {
Name = "Foregrip",
Model = Model("models/viper/mw/attachments/attachment_vm_vertgrip_stubby02.mdl"),
Icon = Material("viper/mw/attachments/icons/grips/icon_attachment_vertgrip_stubby02.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.9
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_vertgrip_stubby04_dpapa12"] = {
Name = "Operator Foregrip",
Model = Model("models/viper/mw/attachments/attachment_vm_vertgrip_stubby04.mdl"),
Icon = Material("viper/mw/attachments/icons/grips/icon_attachment_vertgrip_stubby04.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.97
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.97
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.97
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.97
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.85
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.85
end
}

View File

@@ -0,0 +1,142 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sh_mike26_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sh_mike26_barheavy"] = {
Name = "VLK Czar",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_barheavy.mdl"),
Icon = Material("viper/mw/attachments/icons/mike26/icon_attachment_sh_mike26_barheavy.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.85
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.85
weapon.Cone.Hip = weapon.Cone.Hip * 0.7
weapon.Cone.Ads = weapon.Cone.Ads * 0.7
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_barlong"] = {
Name = "16 Warlord",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/mike26/icon_attachment_sh_mike26_barlong.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Cone.Ads = weapon.Cone.Ads * 0.9
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_barshort"] = {
Name = "6 Revolt",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/mike26/icon_attachment_sh_mike26_barshort.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.15
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.15
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.2
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.2
weapon.Cone.Hip = weapon.Cone.Hip * 1.5
weapon.Cone.Ads = weapon.Cone.Ads * 1.5
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_mag.mdl"),
Stats = function(weapon)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
-- MW_ATT_KEYS["attachment_vm_sh_mike26_slugmag"] = {
-- Name = "Default Magazine",
-- Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_slugmag.mdl"),
-- Stats = function(weapon)
-- weapon.Animations.Reload = weapon.Animations.Reload
-- weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
-- end
-- }
-- MW_ATT_KEYS["attachment_vm_sh_mike26_dbmag"] = {
-- Name = "Default Magazine",
-- Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_dbmag.mdl"),
-- Stats = function(weapon)
-- weapon.Animations.Reload = weapon.Animations.Reload
-- weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
-- end
-- }
MW_ATT_KEYS["attachment_vm_sh_mike26_smag"] = {
Name = "4 Round Mags",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_smag.mdl"),
Icon = Material("viper/mw/attachments/icons/mike26/icon_attachment_sh_mike26_smag.vmt"),
Stats = function(weapon)
weapon.Animations.Reload = weapon.Animations.reload_smag
weapon.Animations.Reload_Empty = weapon.Animations.reload_empty_smag
weapon.Primary.ClipSize = 4
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_xmag"] = {
Name = "12 Round Mags",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_xmag.mdl"),
Icon = Material("viper/mw/attachments/icons/mike26/icon_attachment_sh_mike26_xmag.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 12
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Reload = weapon.Animations.reload_xmag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.85
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.85
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_stock.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_pumphandle"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_pumphandle.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_pumpl"] = {
Name = "XRK Race Grip",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_pumpl.mdl"),
Icon = Material("viper/mw/attachments/icons/mike26/icon_attachment_sh_mike26_pumpl.vmt"),
Stats = function(weapon)
weapon.Animations.Rechamber.Fps = weapon.Animations.Rechamber.Fps * 1.25
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.2
end
}
MW_ATT_KEYS["attachment_vm_sh_mike26_pumph"] = {
Name = "VLK Prime Pump Grip",
Model = Model("models/viper/mw/attachments/mike26/attachment_vm_sh_mike26_pumph.mdl"),
Icon = Material("viper/mw/attachments/icons/mike26/icon_attachment_sh_mike26_pumph.vmt"),
Stats = function(weapon)
weapon.Animations.Rechamber.Fps = weapon.Animations.Rechamber.Fps * 0.8
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
end
}

View File

@@ -0,0 +1,217 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sh_oscar12_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_barrellong"] = {
Name = "FORGE TAC Impaler",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_barrellong.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_barrellong.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.8
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.8
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.8
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.8
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.15
weapon.Cone.Hip = weapon.Cone.Hip * 0.85
weapon.Cone.Ads = weapon.Cone.Ads * 0.85
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_barrelmid"] = {
Name = "FORGE TAC Precision",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_barrelmid.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_barrelmid.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_barrelshort"] = {
Name = "FORGE TAC Wideshot",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_barrelshort.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_barrelshort.vmt"),
Stats = function(weapon)
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.95
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.95
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.03
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_suppressor"] = {
Name = "Monolithic Suppressor",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_suppressor.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_suppressor.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_silencer02"] = {
Name = "Tactical Suppressor",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_silencer03.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_silencer03.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.99
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.99
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.98
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.98
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.04
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_silencer03"] = {
Name = "Lightweight Suppressor",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_silencer02.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_silencer02.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.02
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_mag.mdl"),
Stats = function(weapon)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_slug_mag"] = {
Name = "8 Round Slug Mags", --not worth the hassle as it's just an elastic band with the word "SLUGS" on it
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_slug_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_slug_mag.vmt"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_drummag"] = {
Name = "26 Round Drum Mags",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_drummag.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_drummag.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 26
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.7
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.7
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.7
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.7
weapon.Animations.Reload = weapon.Animations.reload_drum
weapon.Animations.Reload_Empty = weapon.Animations.reload_empty_drum
weapon.Animations.Equip = weapon.Animations.Equip_Drum
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.8
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_xmags"] = {
Name = "12 Round Mags",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_xmags.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 12
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.91
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.91
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Equip = weapon.Animations.Equip_Drum
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.9
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_sidegrip"] = {
Name = "attachment_vm_sh_oscar12_sidegrip",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_sidegrip.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_sidegrip_long"] = {
Name = "Merc Foregrip",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_sidegrip_long.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_sidegrip_long.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.07
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.07
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_sidegripang"] = {
Name = "Commando Foregrip",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_sidegripang.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_sidegripang.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.11
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.13
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.13
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_stock.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_stockhvy"] = {
Name = "FTAC Hunter",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_stockhvy.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_stockhvy.vmt"),
Stats = function(weapon)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.91
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.91
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.91
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.91
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.87
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.87
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_stocklgt"] = {
Name = "FORGE TAC Dart",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_stocklgt.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_stocklgt.vmt"),
Stats = function(weapon)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 1.13
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 1.13
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 1.13
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 1.13
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.08
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.08
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sh_oscar12_stockno"] = {
Name = "No Stock",
Icon = Material("viper/mw/attachments/icons/stock/icon_attachment_stock_no.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = 0.75
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.26
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.26
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.26
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.26
weapon.Recoil.ViewModelMultiplier = 2.25
end
}

View File

@@ -0,0 +1,167 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sh_romeo870_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_pi_mike1911_v1_slide.vmt")
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_heatguard_mp"] = {
Name = "XRK 18.0 Liberator",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_heatguard_mp.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_heatguard.vmt"),
Stats = function(weapon)
weapon.Cone.Hip = weapon.Cone.Hip * 1.2
weapon.Cone.Ads = weapon.Cone.Ads * 1.2
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.07
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.07
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_barrel_long"] = {
Name = "XRK 30.0 Sport",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_barrel_long.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_barrel_long.vmt"),
Stats = function(weapon)
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Cone.Ads = weapon.Cone.Ads * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.85
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.85
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.8
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.8
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.1
weapon.Primary.ClipSize = 10
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_barrel_sawn"] = {
Name = "XRK 14.0 SWAT",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_barrel_sawn.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_barrel_sawn.vmt"),
Stats = function(weapon)
weapon.Cone.Hip = weapon.Cone.Hip * 1.5
weapon.Cone.Ads = weapon.Cone.Ads * 1.5
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.15
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.15
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.2
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.2
weapon.Primary.ClipSize = 5
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_shtgnsilencer"] = {
Name = "Lightweight Suppressor",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_shtgnsilencer.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_shtgnsilencer.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.02
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_silencer02"] = {
Name = "Monolithic Suppressor",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_silencer03.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_silencer03.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_silencer03"] = {
Name = "Tactical Suppressor",
Model = Model("models/viper/mw/attachments/oscar12/attachment_vm_sh_oscar12_silencer02.mdl"),
Icon = Material("viper/mw/attachments/icons/oscar12/icon_attachment_sh_oscar12_silencer02.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.99
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.99
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.98
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.98
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.04
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_pump_custom"] = {
Name = "XRK Truegrip Tactical",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_pump_custom.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_pump_custom.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.2
weapon.Animations.Rechamber.Fps = weapon.Animations.Rechamber.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_pump_wood"] = {
Name = "Lockwood Precision Series",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_pump_wood.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_pump_wood.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Animations.Rechamber.Fps = weapon.Animations.Rechamber.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_stock.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_stock_pistolgrip"] = {
Name = "No Stock",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_stock_pistolgrip.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_stock_pistolgrip.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = 0.75
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.26
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.26
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.26
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.26
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_stock_wood"] = {
Name = "Lockwood Precision Series",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_stock_wood.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_stock_wood.vmt"),
Stats = function(weapon)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.9
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.9
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.9
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.92
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_mag"] = {
Name = "6-R Mags",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/romeo870/icon_attachment_sh_romeo870_mag.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 6
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sh_romeo870_6rbar"] = {
Name = "XKX Eagle's Claw",
Model = Model("models/viper/mw/attachments/romeo870/attachment_vm_sh_romeo870_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie725/icon_attachment_sh_charlie725_foreendlight"),
Stats = function(weapon)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.95
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.03
end
}

View File

@@ -0,0 +1,182 @@
AddCSLuaFile()
local function fivefivesixConversion(self)
weapon.Primary.RPM = 680
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.195
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.195
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.2
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.2
weapon.Bullet.Penetration.Thickness = weapon.Bullet.Penetration.Thickness * 2
weapon.Bullet.Range = weapon.Bullet.Range * 1.5
weapon.Cone.Increase = weapon.Cone.Increase * 2
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 1.5
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 1.5
end
MW_ATT_KEYS["attachment_vm_sm_augolf_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_smgmag.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_ar_augolf_lightstock.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 25
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_armag"] = {
Name = "5.56 NATO 30-Round Mags",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_armag.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_armag.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 30
fivefivesixConversion(self)
weapon.Animations.Reload = weapon.Animations.Reload_ARmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_ARmag
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.96
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.96
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_drummag"] = {
Name = "5.56 NATO 60-Round Drum",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_drummag.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_drummag.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 60
fivefivesixConversion(self)
weapon.Animations.Reload = weapon.Animations.Reload_DrumMag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_DrumMag
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.85
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.85
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.8
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.8
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_smg_xmag"] = {
Name = "32 Round Mags",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_smg_xmag.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_smg_xmag.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 32
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.95
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_smgbarrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_smgbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_ar_augolf_lightstock.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_arbarrel"] = {
Name = "407mm Lightweight",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_arbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_arbarrel.vmt"),
Stats = function(self)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.07
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_arrail"] = {
Name = "AR Rail",
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_arrail.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_lmgbarrel"] = {
Name = "622mm Long Barrel",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_lmgbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_lmgbarrel.vmt"),
Stats = function(self)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.14
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.14
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_lmgrail"] = {
Name = "Integral 3.0x Optic",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_lmgrail.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_lmgrail.vmt"),
Optic = {
LensHideMaterial = Material("viper/mw/weapons/augolf/weapon_vm_sm_augolf_scope_lens.vmt"),
LensBodygroup = "lens",
FOV = 7,
ParallaxSize = 20, --a value of zero means 1:1 size with the end of the optic
Thermal = false
},
Reticle = {
Material = Material("viper/mw/reticles/reticle_aug.vmt"),
Size = 800,
Color = Color(255, 255, 255, 255),
Attachment = "reticle"
},
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Zoom.ViewModelFovMultiplier = 0.95
weapon.Zoom.FovMultiplier = 0.7
--Scout Combat Optic reskin
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_stock_tactical"] = {
Name = "FFS Heavy Stock Pro",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_stock_tactical.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_stock_tactical.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.92
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.75
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_stockl"] = {
Name = "Forge TAC CQB Comb",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_stockl.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.06
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.06
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sm_augolf_stocks"] = {
Name = "FTAC Ultralight Hollow",
Model = Model("models/viper/mw/attachments/augolf/attachment_vm_sm_augolf_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_stocks.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.05
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.05
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.08
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.08
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 1.1
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 1.1
end
}

View File

@@ -0,0 +1,94 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sm_beta_mag"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_mag.mdl"),
Stats = function(self)
self.Primary.ClipSize = 25
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_beta_xmags"] = {
Name = "84 Round Helical Mags",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/beta/icon_attachment_sm_beta_xmags.vmt"),
Stats = function(self)
self.Primary.ClipSize = 84
self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.85
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.85
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.94
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sm_beta_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_barrel.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_beta_barlong"] = {
Name = "8.7 Polygonal",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/beta/icon_attachment_sm_beta_barlong.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.99
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.99
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.02
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.02
end
}
MW_ATT_KEYS["attachment_vm_sm_beta_barmid"] = {
Name = "8.7 Steel",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_barmid.mdl"),
Icon = Material("viper/mw/attachments/icons/beta/icon_attachment_sm_beta_barmid.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.97
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.97
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.91
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.91
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.04
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.04
end
}
MW_ATT_KEYS["attachment_vm_sm_beta_barshort"] = {
Name = "8.7 Aluminum",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/beta/icon_attachment_sm_beta_barshort.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.08
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.08
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sm_beta_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_beta_stockmrkt"] = {
Name = "Factory Aluminum Stock",
Model = Model("models/viper/mw/attachments/beta/attachment_vm_sm_beta_stockmrkt.mdl"),
Icon = Material("viper/mw/attachments/icons/beta/icon_attachment_sm_beta_stockmrkt.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.08
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.08
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.15
end
}

View File

@@ -0,0 +1,142 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sm_charlie9_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_mag.mdl"),
Stats = function(weapon)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_drummag"] = {
Name = "50 Round Drums",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_drummag.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_drummag.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 50
weapon.Animations.Reload = weapon.Animations.Reload_Drum
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Drum
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.82
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.82
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_xmag"] = {
Name = "30 Round Mags",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_xmag.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_xmag.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 30
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.98
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.98
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_barsil"] = {
Name = "FSS Nightshade",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_barsil.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_barsil.vmt"),
Stats = function(weapon)
weapon.HoldType = "Rifle"
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.2
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.7
weapon.Cone.Hip = weapon.Cone.Hip * 0.83
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_longbarrel"] = {
Name = "FSS Revolution",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_longbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_longbarrel.vmt"),
Stats = function(weapon)
weapon.HoldType = "Rifle"
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.09
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.09
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.97
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.97
weapon.Cone.Hip = weapon.Cone.Hip * 0.91
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_medbarrel"] = {
Name = "FTAC 225mm Dominator",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_medbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_medbarrel_v1.vmt"),
Stats = function(weapon)
weapon.HoldType = "Rifle"
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.03
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.03
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.97
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.97
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.99
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.99
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_shortbarrel"] = {
Name = "ISO 140mm CQB",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_shortbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_shortbarrel.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.94
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 0.94
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.03
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.03
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.09
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.09
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_stock.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_fullstock"] = {
Name = "FTAC Vagrant",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_fullstock.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_fullstock.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.89
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.89
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.9
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.9
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sm_charlie9_nostock"] = {
Name = "ISO Collapsible",
Model = Model("models/viper/mw/attachments/charlie9/attachment_vm_sm_charlie9_nostock.mdl"),
Icon = Material("viper/mw/attachments/icons/charlie9/icon_attachment_sm_charlie9_nostock.vmt"),
Stats = function(weapon)
weapon.Recoil.AdsMultiplier = 0.5
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.26
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.26
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.26
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.26
weapon.Recoil.ViewModelMultiplier = 2.25
end
}

View File

@@ -0,0 +1,162 @@
AddCSLuaFile()
local function tenmilConversion(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.19
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.15
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.15
self.Bullet.Range = self.Bullet.Range * 1.25
self.Cone.Increase = self.Cone.Increase * 1.35
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.2
end
MW_ATT_KEYS["attachment_vm_sm_mpapa5_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_ar_mpapa5_lightstock.vmt"),
Stats = function(self)
self.Primary.ClipSize = 25
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_mag_xmag"] = {
Name = "45 Round Mags",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_mag_xmag.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_mag_xmag_clip.vmt"),
Stats = function(self)
self.Primary.ClipSize = 45
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
--[[self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag]]
self.Animations.Reload.Fps = self.Animations.Reload.Fps * 0.9
self.Animations.Reload_Empty.Fps = self.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_mag_xmag2"] = {
Name = "10mm Auto 30-Round Mags",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_mag_xmag2.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_mag_xmag2.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
--[[self.Animations.Reload = self.Animations.Reload_Xmag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmag]]
tenmilConversion(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.99
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.99
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_ar_mpapa5_lightstock.vmt"),
Flashlight = {
FlashlightMaterial = Material("effects/flashlight001.vmt"),
Color = Color(255, 255, 255, 255),
Attachment = "flashlight"
},
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_barrel_noflash"] = {
Name = "Default (No flashlight)",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_barrel.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_railgrip.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_barshort"] = {
Name = "FSS Mini",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_barshort.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.1
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.1
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.92
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.92
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_barrel_suppressor"] = {
Name = "Subsonic Integral Suppressor",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_barrel_suppressor.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_barrel_suppressor.vmt"),
Stats = function(self)
self.PrintName = "MP5SD"
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.94
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.94
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.1
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_barrel_suppshort"] = {
Name = "Monolithic Integral Suppressor",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_barrel_suppshort.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_barrel_suppressor_v4.vmt"),
Stats = function(self)
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.06
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.06
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.03
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.03
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_railgrip"] = {
Name = "FSS Light",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_railgrip.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_railgrip.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.05
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.05
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_stock"] = {
Name = "Default Stock",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_stock.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_stock_tactical.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_stock_fullstock"] = {
Name = "Classic Straight-line Stock",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_stock_fullstock.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_stock_fullstock.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.94
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.94
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.9
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa5_stock_nostock"] = {
Name = "FTAC Collapsible",
Model = Model("models/viper/mw/attachments/mpapa5/attachment_vm_sm_mpapa5_stock_nostock.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa5/icon_attachment_sm_mpapa5_stock_nostock.vmt"),
Stats = function(self)
self.Recoil.AdsMultiplier = 0.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.26
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.26
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.26
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.26
self.Recoil.ViewModelMultiplier = 2.25
end
}

View File

@@ -0,0 +1,124 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sm_mpapa7_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_mag.mdl"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa7_mmags"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_mmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa7/icon_attachment_sm_mpapa7_mmags.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 50
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Reload_Fast = weapon.Animations.Reload_Xmag_Fast
weapon.Animations.Reload_Empty_Fast = weapon.Animations.Reload_Empty_Xmag_Fast
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.97
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.97
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.9
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa7_xmags"] = {
Name = "60 Round Mags",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa7/icon_attachment_sm_mpapa7_xmags.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 60
weapon.Animations.Reload = weapon.Animations.Reload_Xmag2
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag2
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.85
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.85
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.85
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.85
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa7_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sm_mpapa7_barlight"] = {
Name = "FSS SWAT",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_barlight.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa7/icon_attachment_sm_mpapa7_barlight.vmt"),
Stats = function(self)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.05
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.05
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.98
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 0.98
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa7_barlong"] = {
Name = "FSS Recon",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa7/icon_attachment_sm_mpapa7_barlong.vmt"),
Stats = function(self)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.96
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.96
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.08
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.08
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa7_barlong2"] = {
Name = "FSS Strike",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_barlong2.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa7/icon_attachment_sm_mpapa7_barlong2.vmt"),
Stats = function(self)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.89
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.89
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.06
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.06
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_mpapa7_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mpapa7/attachment_vm_sm_mpapa7_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["xrk_retractable_stock"] = {
Name = "XRK Retractable Stock",
Model = Model("models/jacob_lhh3_ports/modernwarfare2019/weapons/mp7/attachments/xrk_retractable_stock.mdl"),
Icon = Material("viper/mw/attachments/icons/mpapa7/icon_attachment_sm_mpapa7_stock_v2.vmt"),
Stats = function(self)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.06
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.06
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.08
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.08
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.09
end
}
MW_ATT_KEYS["fss_folding_grip"] = {
Name = "FSS Folding Grip",
Model = Model("models/jacob_lhh3_ports/modernwarfare2019/weapons/mp7/attachments/fss_folding_grip.mdl"),
Icon = Material("viper/mw/attachments/icons/augolf/icon_attachment_sm_augolf_vertgrip.vmt"),
Stats = function(self)
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 1.04
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 1.04
weapon.Animations.Sprint_Out.Fps = weapon.Animations.Sprint_Out.Fps * 1.1
weapon.HoldType = "RifleWithVerticalGrip"
end
}

View File

@@ -0,0 +1,99 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sm_papa90_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_mag.mdl"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_papa90_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_barrel.mdl")
}
MW_ATT_KEYS["attachment_vm_sm_papa90_longbarrel"] = {
Name = "FSS 10.6 Pro",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_longbarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/papa90/icon_attachment_sm_papa90_longbarrel.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.05
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.05
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.95
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sm_papa90_custombarrel"] = {
Name = "FORGE TAC Retribution",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_custombarrel.mdl"),
Icon = Material("viper/mw/attachments/icons/papa90/icon_attachment_sm_papa90_custombarrel.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.15
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.15
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.92
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.92
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.94
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sm_papa90_reddotscope"] = {
Name = "FSS Ring Sight",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_reddotscope.mdl"),
Icon = Material("viper/mw/attachments/icons/papa90/icon_attachment_sm_papa90_reddotscope.vmt"),
Reticle = {
Material = Material("viper/shared/reticles/aimpoint_reticle.vmt"),
Size = 140,
Color = Color(255, 255, 255, 255),
Attachment = "reticle"
},
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_papa90_stock_tactical"] = {
Name = "FORGE TAC CQB Comb",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_stock_tactical.mdl"),
Icon = Material("viper/mw/attachments/icons/papa90/icon_attachment_sm_papa90_stock_tactical.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.99
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.99
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.91
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.91
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.91
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.91
end
}
MW_ATT_KEYS["attachment_vm_sm_papa90_stockl"] = {
Name = "Fly Strap",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/papa90/icon_attachment_sm_papa90_stockl.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.18
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.18
weapon.Animations.Sprint_Out.Fps = weapon.Animations.Sprint_Out.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sm_papa90_stocks"] = {
Name = "FSS Heavy Stock Pro",
Model = Model("models/viper/mw/attachments/papa90/attachment_vm_sm_papa90_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/papa90/icon_attachment_sm_papa90_stocks.vmt"),
Stats = function(self)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.8
end
}

View File

@@ -0,0 +1,194 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sm_secho_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_mag.mdl"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_smags"] = {
Name = "9mm Hollow Point 12-R Mags",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_smags.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_smags.vmt"),
Stats = function(self)
weapon.Firemodes[1].Name = "3rnd Burst"
weapon.Primary.Automatic = false
weapon.Primary.BurstRounds = 3
weapon.Primary.BurstDelay = 0.1
weapon.Primary.ClipSize = 12
weapon.Animations.Reload = weapon.Animations.Reload_Smag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Smag
weapon.Animations.Inspect = weapon.Animations.Inspect_Smag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.1
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.1
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.25
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_xmags"] = {
Name = "30 Round Mags",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_xmags.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 30
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.99
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.99
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_drummags"] = {
Name = "50 Round Drums",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_drummags.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_drummags.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 60
weapon.Animations.Reload = weapon.Animations.Reload_Drum
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Drum
weapon.Animations.Inspect = weapon.Animations.Inspect_Drum
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.85
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.85
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sm_secho_barlong"] = {
Name = "CX-38",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_barlong.vmt"),
Stats = function(self)
weapon.HoldType = "Rifle"
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.12
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.12
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.89
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.89
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_barshort"] = {
Name = "CX-23",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_barshort.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.92
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 0.92
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.12
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.12
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.2
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.2
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_barsillong"] = {
Name = "CX-38S",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_barsillong.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_barsillong.vmt"),
Stats = function(self)
weapon.HoldType = "Rifle"
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.15
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.15
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Cone.Increase = weapon.Cone.Increase * 0.7
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.89
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.89
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.91
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.91
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_barsilshort"] = {
Name = "CX-23S",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_barsilshort.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_barsilshort.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.94
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 0.94
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.08
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.08
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_barxlong"] = {
Name = "CX-38E",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_barxlong.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_barxlong.vmt"),
Stats = function(self)
weapon.HoldType = "Rifle"
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.18
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.18
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.81
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.81
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.91
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.91
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.8
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_stockh"] = {
Name = "CX-MM",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_stockh.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.89
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.89
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.91
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.91
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.74
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.74
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_stockno"] = {
Name = "CX-FR",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_stockno.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_stockno.vmt"),
Stats = function(self)
weapon.Recoil.AdsMultiplier = 0.65
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.26
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.26
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.26
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.26
weapon.Recoil.ViewModelMultiplier = 2.25
end
}
MW_ATT_KEYS["attachment_vm_sm_secho_stockskel"] = {
Name = "CX-FA",
Model = Model("models/viper/mw/attachments/secho/attachment_vm_sm_secho_stockskel.mdl"),
Icon = Material("viper/mw/attachments/icons/secho/icon_attachment_sm_secho_stockskel.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.95
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.95
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.81
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.81
end
}

View File

@@ -0,0 +1,169 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sm_smgolf45_receiver_v2"] = {
Name = "UMP-45 Receiver",
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_receiver_v2.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_mag.mdl"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_mag_v2"] = {
Name = "UMP-45 Magazine",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_mag_v2.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_mag_v2.vmt"),
Stats = function(self)
self.Animations.Reload = self.Animations.Reload
self.Animations.Reload_Empty = self.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_smags"] = {
Name = ".45 Hollow Point 12-R Mags",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_smags.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_smags.vmt"),
Stats = function(self)
self.Primary.RPM = self.Primary.RPM - 19
self.Primary.ClipSize = 12
self.Animations.Reload = self.Animations.Reload_Smag
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Smag
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.14
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.14
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.25
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.25
--self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.15
--self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.15
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 1.35
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_xmagslrg"] = {
Name = "45 Round Mags",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_xmagslrg.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_xmagslrg.vmt"),
Stats = function(self)
self.Primary.ClipSize = 45
self.Animations.Reload = self.Animations.Reload_Xmaglrg
self.Animations.Reload_Empty = self.Animations.Reload_Empty_Xmaglrg
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.93
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.93
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.98
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.98
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_barlong"] = {
Name = "400mm Stainless Steel",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_barlong.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.13
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.13
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.93
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.93
self.Cone.Hip = self.Cone.Hip * 0.8
self.Cone.Increase = self.Cone.Increase * 0.8
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_barmid"] = {
Name = "300mm Poly Barrel",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_barmid.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_barmid.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.07
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 1.07
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.95
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.95
self.Recoil.AdsMultiplier = self.Recoil.AdsMultiplier * 0.85
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_barshort"] = {
Name = "150mm Stainless Steel",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_barrel.vmt"),
Stats = function(self)
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 0.95
self.Bullet.DropOffStartRange = self.Bullet.DropOffStartRange * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.03
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.03
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.05
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.05
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_stock_v2"] = {
Name = "UMP-45 Stock",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_stock_v2.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_stock_v2.vmt"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_stockcqb"] = {
Name = "XRK Gen III Survivalist Series",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_stockcqb.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_stockcqb.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 1.05
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 1.05
self.Animations.Sprint_Out.Fps = self.Animations.Sprint_Out.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_stockl"] = {
Name = "FSS Guardian",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_stockl.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.98
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.98
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.84
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.84
end
}
MW_ATT_KEYS["attachment_vm_sm_smgolf45_stockh"] = {
Name = "FTAC Precision Fixed Stock",
Model = Model("models/viper/mw/attachments/smgolf45/attachment_vm_sm_smgolf45_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/smgolf45/icon_attachment_sm_smgolf45_stockh.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.89
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.89
self.Animations.Holster.Fps = self.Animations.Holster.Fps * 0.93
self.Animations.Draw.Fps = self.Animations.Draw.Fps * 0.93
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.74
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.74
end
}

View File

@@ -0,0 +1,183 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sm_uzulu_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_mag.mdl"),
Stats = function(weapon)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_xmag2"] = {
Name = "50 Round Mags",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_xmag2.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_xmag2.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 50
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Reload_Fast = weapon.Animations.Reload_Xmag_Fast
weapon.Animations.Reload_Empty_Fast = weapon.Animations.Reload_Empty_Xmag_Fast
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.92
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.9
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_magcalcust9mm"] = {
Name = "9x19mm 32-Round Mags",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_mag.vmt"),
Stats = function(weapon)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 0.89
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 0.99
weapon.Primary.ClipSize = 32
weapon.Primary.RPM = 960
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_magcalcust"] = {
Name = ".41 AE 32-Round Mags",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_magcalcust.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_mag_clip.vmt"),
Stats = function(weapon)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.15
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.15
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.15
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.15
weapon.Primary.ClipSize = 32
weapon.Primary.RPM = 500
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_xmags"] = {
Name = "40 Round Mags",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_xmags.vmt"),
Stats = function(weapon)
weapon.Primary.ClipSize = 40
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Reload_Fast = weapon.Animations.Reload_Xmag_Fast
weapon.Animations.Reload_Empty_Fast = weapon.Animations.Reload_Empty_Xmag_Fast
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.97
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.97
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.95
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_suppressor"] = {
Name = "Monolithic Suppressor",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_suppressor.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_suppressor.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.85
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.85
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.15
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.15
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_barcust"] = {
Name = "FSS Carbine Pro",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_barcust.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_barrel_v13.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.12
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.12
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_barlong"] = {
Name = "16.5 Factory Carbine",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_barlong.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.07
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.07
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.93
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.93
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.96
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.96
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_barmid"] = {
Name = "13.1 First Responder",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_barmid.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_barmid.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.04
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.04
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.99
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.99
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_barshort"] = {
Name = "8.5 Factory Mini",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_barshort.vmt"),
Stats = function(weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.92
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 0.92
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.07
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.07
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_stock.mdl"),
Stats = function(weapon)
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_stock_folded"] = {
Name = "Folded Stock",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_stock_folded.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_stock.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.15
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.15
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.25
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.25
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 2
end
}
MW_ATT_KEYS["attachment_vm_sm_uzulu_stockh"] = {
Name = "Standard-Issue Wood Stock",
Model = Model("models/viper/mw/attachments/uzulu/attachment_vm_sm_uzulu_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/uzulu/icon_attachment_sm_uzulu_stockh.vmt"),
Stats = function(weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.82
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.82
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Recoil.AdsMultiplier = 0
end
}

View File

@@ -0,0 +1,187 @@
AddCSLuaFile()
local function doSuppressorStats(self)
weapon.Primary.Sound = Sound("mw19.victor.fire.s")
weapon.Reverb = {
RoomScale = 50000,
Sounds = {
Outside = {
Layer = Sound("Atmo_SMG_Sup.Outside"),
Reflection = Sound("Reflection_ARSUP.Outside")
},
Inside = {
Layer = Sound("Atmo_Pistol_Sup.Inside"),
Reflection = Sound("Reflection_ARSUP.Inside")
}
}
}
weapon.ParticleEffects.MuzzleFlash = "AC_muzzle_pistol_suppressed"
end
MW_ATT_KEYS["attachment_vm_sm_victor_mag"] = {
Name = "Default Magazine",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_mag.mdl"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_smags"] = {
Name = "9mm Hollow Point 12-R Mags",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_smags.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_smags.vmt"),
Stats = function(self)
weapon.Primary.RPM = weapon.Primary.RPM - 511
weapon.Primary.ClipSize = 12
weapon.Animations.Reload = weapon.Animations.Reload_Smag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Smag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.7
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.7
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.7
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.7
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.2
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.1
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 1.1
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_drummag"] = {
Name = "40 Round Drums",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_drummag.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_drummag.vmt"),
Stats = function(self)
weapon.Primary.ClipSize = 40
weapon.Animations.Reload = weapon.Animations.Reload_Drum
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Drum
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.89
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.89
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.9
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sm_victor_barlong"] = {
Name = "ZLR 16 Apex",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_barlong.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.12
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.12
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.9
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_barsil"] = {
Name = "ZLR 18 Deadfall",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_barsil.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_barsil.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.14
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.14
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.92
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.92
weapon.Cone.Hip = weapon.Cone.Hip * 0.75
weapon.Cone.Increase = weapon.Cone.Increase * 0.75
doSuppressorStats(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_suppressor"] = {
Name = "ZLR Sabre",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_suppressor.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_suppressor.vmt"),
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.08
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.08
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.92
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.92
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.95
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_stockh"] = {
Name = "FTAC C6 Carbine PRO",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_stockh.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_stockh.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.95
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.95
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.95
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.95
--copy of forge tac stalker
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_stockno"] = {
Name = "No Stock",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_stockno.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_stockno.vmt"),
Stats = function(self)
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.5
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.26
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.26
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.26
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.26
weapon.Recoil.ViewModelMultiplier = 2.25
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_stocks"] = {
Name = "Forge TAC CQS",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_stocks.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.09
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.09
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 1.05
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 1.05
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 1.05
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 1.05
--copy of fss close quarters stock
end
}
MW_ATT_KEYS["attachment_vm_sm_victor_stocksn"] = {
Name = "ZLR Blade",
Model = Model("models/viper/mw/attachments/victor/attachment_vm_sm_victor_stocksn.mdl"),
Icon = Material("viper/mw/attachments/icons/victor/icon_attachment_sm_victor_stocksn.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.95
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.95
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.85
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.92
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.92
end
}

View File

@@ -0,0 +1,137 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sn_kilo98_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/kilo98/attachment_vm_sn_kilo98_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_barlong"] = {
Name = "FSS 24.0 Factory",
Model = Model("models/viper/mw/attachments/kilo98/attachment_vm_sn_kilo98_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_sn_kilo98_barlong.vmt"),
Stats = function(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.3
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.3
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.9
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.9
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.9
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.9
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.9
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_barmid"] = {
Name = "FSS 20.0 Factory",
Model = Model("models/viper/mw/attachments/kilo98/attachment_vm_sn_kilo98_barmid.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_sn_kilo98_barmid.vmt"),
Stats = function(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.15
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.15
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.96
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.96
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.96
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.96
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.94
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_nostrippers"] = {
Name = "No Stripper Clips",
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_barshort"] = {
Name = "FSS 18.0 Factory",
Model = Model("models/viper/mw/attachments/kilo98/attachment_vm_sn_kilo98_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_sn_kilo98_barshort.vmt"),
Stats = function(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.18
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.075
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 1.1
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 1.1
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 1.1
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 1.1
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.25
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["weapon_vm_scope_kilo98"] = {
Name = "Scope",
Model = Model("models/viper/mw/attachments/kilo98/weapon_vm_scope_kilo98.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_scope_kilo98.vmt"),
Optic = {
LensHideMaterial = Material("viper/mw/weapons/kilo98/weapon_vm_sn_kilo98_scopeglass.vmt"),
LensBodygroup = "lens",
FOV = 7,
ParallaxSize = 750, --a value of zero means 1:1 size with the end of the optic
Thermal = false
},
Reticle = {
Material = Material("viper/mw/reticles/reticle_16.vmt"),
Size = 1000,
Color = Color(255, 255, 255, 255),
Attachment = "reticle"
},
Stats = function(self)
self.Animations.Rechamber = self.Animations.rechamber_scope
self.Bullet.EffectiveRange = self.Bullet.EffectiveRange * 1.5
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.92
self.Zoom.ViewModelFovMultiplier = 0.95
self.Zoom.FovMultiplier = 0.8
end
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_stock_tactical"] = {
Name = "MK2 Ultralight Hollow",
Model = Model("models/viper/mw/attachments/kilo98/attachment_vm_sn_kilo98_stock_tactical.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_sn_kilo98_stock_tactical.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.92
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.92
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.92
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.92
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.1
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_stocks"] = {
Name = "FSS MK2 Sport Comb",
Model = Model("models/viper/mw/attachments/kilo98/attachment_vm_sn_kilo98_stocks.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_sn_kilo98_stocks.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.85
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.85
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.85
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.85
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.94
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_stockl"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/kilo98/attachment_vm_sn_kilo98_stockl.mdl"),
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_sn_kilo98_stockl.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.95
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.95
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.95
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.25
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_kilo98_sling"] = {
Icon = Material("viper/mw/attachments/icons/kilo98/icon_attachment_sn_kilo98_sling.vmt"),
Name = "Sling",
Stats = function(self)
end
}

View File

@@ -0,0 +1,148 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sn_mike14_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sn_mike14_barlight"] = {
Name = "FSS 24.0 Factory",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_barlight.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_barlight.vmt"),
Stats = function(self)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.3
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.3
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.9
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.9
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.9
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_barlong"] = {
Name = "FSS 20.0 Factory",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_barlong.vmt"),
Stats = function(self)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.15
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.15
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.96
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.96
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.96
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.96
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_barlong2"] = {
Name = "FSS 20.0 Factory",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_barlong2.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_barlong2_v2.vmt"),
Stats = function(self)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.15
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.15
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.96
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.96
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.96
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.96
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_stock"] = {
Name = "Default",
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_stock_v2_alt"] = {
Name = "MK2 Ultralight Hollow",
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_stock_v2.vmt"),
Stats = function(self)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.92
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.92
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.92
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.92
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_stock_v3"] = {
Name = "FSS MK2 Sport Comb",
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_stock_v3.vmt"),
Stats = function(self)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.85
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.85
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.85
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.85
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_stockcqb_alt"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_stockcqb_alt.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_stockcqb.vmt"),
Stats = function(self)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.95
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.95
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.95
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.95
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.25
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_stock_tactical"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_stock_tactical.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_stock_tactical.vmt"),
Stats = function(self)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.95
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.95
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.95
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.95
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.25
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_mag"] = {
Name = "FSS MK2 Sport Comb",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_stocks.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_xmags"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_xmags.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_xmags.vmt"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.25
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_mike14_xmags2"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/mike14/attachment_vm_sn_mike14_xmags2.mdl"),
Icon = Material("viper/mw/attachments/icons/mike14/icon_attachment_sn_mike14_xmags2.vmt"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload_Xmag2
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag2
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.25
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.25
end
}

View File

@@ -0,0 +1,104 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sh_sbeta_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sn_sbeta_barlong"] = {
Name = "FSS 24.0 Factory",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/sbeta/icon_attachment_sn_sbeta_barlong.vmt"),
Stats = function(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.28
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.28
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.92
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.92
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.92
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.92
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.92
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sn_sbeta_barmid"] = {
Name = "FSS 20.0 Factory",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_barmid.mdl"),
Icon = Material("viper/mw/attachments/icons/sbeta/icon_attachment_sn_sbeta_barmid.vmt"),
Stats = function(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.17
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.17
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.95
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.95
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.95
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.95
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.94
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_sbeta_barshort"] = {
Name = "FSS 18.0 Factory",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/sbeta/icon_attachment_sn_sbeta_barshort.vmt"),
Stats = function(self)
self.Bullet.Damage[1] = self.Bullet.Damage[1] * 1.11
self.Bullet.Damage[2] = self.Bullet.Damage[2] * 1.11
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.97
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.97
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.97
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.97
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.96
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.96
end
}
MW_ATT_KEYS["attachment_vm_sn_sbeta_rack"] = {
Name = "Cartridge Sleeve",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_rack.mdl"),
Icon = Material("viper/mw/attachments/icons/sbeta/icon_attachment_sn_sbeta_rack.vmt"),
Stats = function(self)
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.95
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.95
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.95
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.95
end
}
MW_ATT_KEYS["attachment_vm_sn_sbeta_stock_light"] = {
Name = "MK2 Ultralight Hollow",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_stock_light.mdl"),
Icon = Material("viper/mw/attachments/icons/sbeta/icon_attachment_sn_sbeta_stock_light.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.25
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_sbeta_stock_stable"] = {
Name = "FSS MK2 Sport Comb",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_stock_stable.mdl"),
Icon = Material("viper/mw/attachments/icons/sbeta/icon_attachment_sn_sbeta_stock_stable.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 1.12
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 1.12
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.94
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.94
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.93
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.93
end
}
MW_ATT_KEYS["attachment_vm_sn_sbeta_stock_tactical"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/sbeta/attachment_vm_sn_sbeta_stock_tactical.mdl"),
Icon = Material("viper/mw/attachments/icons/sbeta/icon_attachment_sn_sbeta_stock_tactical.vmt"),
Stats = function(self)
self.Animations.Ads_In.Fps = self.Animations.Ads_In.Fps * 0.95
self.Animations.Ads_Out.Fps = self.Animations.Ads_Out.Fps * 0.95
self.Recoil.Vertical[1] = self.Recoil.Vertical[1] * 0.9
self.Recoil.Vertical[2] = self.Recoil.Vertical[2] * 0.9
self.Recoil.Horizontal[1] = self.Recoil.Horizontal[1] * 0.9
self.Recoil.Horizontal[2] = self.Recoil.Horizontal[2] * 0.9
end
}

View File

@@ -0,0 +1,165 @@
AddCSLuaFile()
MW_ATT_KEYS["attachment_vm_sn_sksierra_barrel"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_barrel.mdl"),
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_barlong"] = {
Name = "FSS 24.0 Factory",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_barlong.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_barlong.vmt"),
Stats = function(self)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.3
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.3
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.9
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.9
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.9
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_barhvy"] = {
Name = "FSS 20.0 Factory",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_barhvy.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_barhvy.vmt"),
Stats = function(self)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.15
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.15
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.96
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.96
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.96
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.96
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_barshort"] = {
Name = "FSS 20.0 Factory",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_barshort.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_barshort.vmt"),
Stats = function(self)
weapon.Bullet.Damage[1] = weapon.Bullet.Damage[1] * 1.15
weapon.Bullet.Damage[2] = weapon.Bullet.Damage[2] * 1.15
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.96
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.96
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.96
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.96
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_stock"] = {
Name = "Default",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_stock.mdl"),
Stats = function(self)
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_stockhvy"] = {
Name = "MK2 Ultralight Hollow",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_stockhvy.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_stockhvy.vmt"),
Stats = function(self)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.92
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.92
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.92
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.92
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_stockhvy2"] = {
Name = "FSS MK2 Sport Comb",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_stockhvy2.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_stockhvy2.vmt"),
Stats = function(self)
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.85
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.85
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.85
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.85
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_stockno"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_stockno.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_stockno.vmt"),
Stats = function(self)
weapon.Animations.Melee = weapon.Animations.Melee_Nostock
weapon.Animations.Melee_Hit = weapon.Animations.Melee_Hit_Nostock
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.95
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.95
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.95
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.95
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.25
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_mag"] = {
Name = "FSS MK2 Sport Comb",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_mag.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_stocks.vmt"),
Stats = function(self)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.94
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.94
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_smag"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_smag.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_smag.vmt"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload_Smag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Smag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.25
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_xmag"] = {
Name = "FSS MK2 Precision Comb",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_xmag.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_xmag.vmt"),
Stats = function(self)
weapon.Animations.Reload = weapon.Animations.Reload_Xmag
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Xmag
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.25
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.25
end
}
MW_ATT_KEYS["attachment_vm_sn_sksierra_scope"] = {
Name = "PSU Scope",
Model = Model("models/viper/mw/attachments/sksierra/attachment_vm_sn_sksierra_scope.mdl"),
Icon = Material("viper/mw/attachments/icons/sksierra/icon_attachment_sn_sksierra_scope.vmt"),
Optic = {
LensHideMaterial = Material("viper/mw/weapons/sksierra/weapon_vm_sn_sksierra_scopeglass.vmt"),
LensBodygroup = "lens",
FOV = 7,
ParallaxSize = 750, --a value of zero means 1:1 size with the end of the optic
Thermal = false
},
Reticle = {
Material = Material("viper/mw/reticles/reticle_16.vmt"),
Size = 1000,
Color = Color(255, 255, 255, 255),
Attachment = "reticle"
},
Stats = function(self)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.5
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.92
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.92
weapon.Zoom.ViewModelFovMultiplier = 0.95
weapon.Zoom.FovMultiplier = 0.8
end
}

View File

@@ -0,0 +1,18 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "ZLR J-2800 Influx"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barhvy.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_barhvy.vmt")
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.9
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.9
weapon.Cone.Hip = weapon.Cone.Hip * 0.9
weapon.Cone.Ads = weapon.Cone.Ads * 0.9
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.08
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end

View File

@@ -0,0 +1,15 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "ZLR J-3600 Torrent"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barlong.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_barlong.vmt")
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.85
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.85
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.85
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.85
weapon.Cone.Hip = weapon.Cone.Hip * 0.85
weapon.Cone.Ads = weapon.Cone.Ads * 0.85
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.15
end

View File

@@ -0,0 +1,2 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barrel.mdl")

View File

@@ -0,0 +1,20 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "JAK Urban King"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barshort.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_barshort.vmt")
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.15
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.15
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
weapon.Cone.Hip = weapon.Cone.Hip * 1.2
weapon.Cone.Ads = weapon.Cone.Ads * 1.2
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.9
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_angledgrip01"
ATTACHMENT.AttachmentBodygroups = {
["tag_grip_hide"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_ang_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_angledgrip02"
ATTACHMENT.AttachmentBodygroups = {
["tag_grip_hide"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_ang_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_stubbygrip01"
ATTACHMENT.AttachmentBodygroups = {
["tag_grip_hide"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_stubbygrip02"
ATTACHMENT.AttachmentBodygroups = {
["tag_grip_hide"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_vertgrip01"
ATTACHMENT.AttachmentBodygroups = {
["tag_grip_hide"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_vertgrip02"
ATTACHMENT.AttachmentBodygroups = {
["tag_grip_hide"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_vertgrip03"
ATTACHMENT.AttachmentBodygroups = {
["tag_grip_hide"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_laser01"
ATTACHMENT.Bodygroups ={
["tag_laser"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.LaserAimAngles = Angle(-0.3, 0.05, -45)
weapon.LaserAimPos = Vector(-2, 0, 0)
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_laser02"
ATTACHMENT.Bodygroups ={
["tag_laser"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.LaserAimAngles = Angle(-0.3, 0.05, -45)
weapon.LaserAimPos = Vector(-2, 0, 0)
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_laser03"
ATTACHMENT.Bodygroups ={
["tag_laser"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.LaserAimAngles = Angle(-0.3, 0.05, -45)
weapon.LaserAimPos = Vector(-2, 0, 0)
end

View File

@@ -0,0 +1,31 @@
ATTACHMENT.Base = "att_magazine"
ATTACHMENT.Name = "32 Round Drum Mags"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_drummag.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_drummag.vmt")
ATTACHMENT.ExcludedAttachments = {"attachment_vm_sh_aalpha12_none"}
--Current mag
ATTACHMENT.BulletList = {
[0] = {"j_ammoshell1"},
[1] = {"j_ammoshell2"},
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Primary.ClipSize = 32
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.7
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.7
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.7
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.7
weapon.Animations.Reload = weapon.Animations.reload_drum
weapon.Animations.Reload_Empty = weapon.Animations.reload_empty_drum
weapon.Animations.Inspect = weapon.Animations.inspect_drum
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.8
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.8
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end

View File

@@ -0,0 +1,8 @@
ATTACHMENT.Base = "att_magazine"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_mag.mdl")
--Current mag
ATTACHMENT.BulletList = {
[0] = {"j_ammoshell1"},
[1] = {"j_ammoshell2"},
}

View File

@@ -0,0 +1,25 @@
ATTACHMENT.Base = "att_magazine"
ATTACHMENT.Name = "12g Mags"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_slugmag.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_slugmag.vmt")
--Current mag
ATTACHMENT.BulletList = {
[0] = {"j_ammoshell1"},
[1] = {"j_ammoshell2"},
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Shell = "mwb_shelleject_12g_green"
if (weapon:HasAttachment("att_ammo_flechette")) then
return
end
weapon.Bullet.NumBullets = 6
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end

View File

@@ -0,0 +1,27 @@
ATTACHMENT.Base = "att_magazine"
ATTACHMENT.Name = "20 Round Drum Mags"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_xmags.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_xmags.vmt")
--Current mag
ATTACHMENT.BulletList = {
[0] = {"j_ammoshell1"},
[1] = {"j_ammoshell2"},
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Primary.ClipSize = 20
weapon.Animations.Reload = weapon.Animations.reload_drum
weapon.Animations.Reload_Empty = weapon.Animations.reload_empty_drum
weapon.Animations.Inspect = weapon.Animations.inspect_drum
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.84
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.84
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.8
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.8
weapon.Animations.Reload.Fps = weapon.Animations.Reload.Fps * 0.9
weapon.Animations.Reload_Empty.Fps = weapon.Animations.Reload_Empty.Fps * 0.9
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end

View File

@@ -0,0 +1,9 @@
ATTACHMENT.Base = "att_perk_soh"
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Animations.Reload = weapon.Animations.Reload_Fast
weapon.Animations.Reload_Empty = weapon.Animations.Reload_Empty_Fast
weapon.Animations.reload_drum = weapon.Animations.reload_drum_fast
weapon.Animations.reload_empty_drum = weapon.Animations.reload_drum_empty_fast
end

View File

@@ -0,0 +1,15 @@
ATTACHMENT.Base = "att_stock"
ATTACHMENT.Name = "ZLR Tsunami"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_stockh.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_stockh.vmt")
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 0.8
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.91
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.91
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.94
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.94
end

View File

@@ -0,0 +1,14 @@
ATTACHMENT.Base = "att_stock"
ATTACHMENT.Name = "JAK Rabbit Ultralight"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_stockl.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_stockl.vmt")
ATTACHMENT.Bodygroups = {
["tag_stock"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.25
end

View File

@@ -0,0 +1,13 @@
ATTACHMENT.Base = "att_stock"
ATTACHMENT.Name = "FSS Power Wrap"
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_stocks.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/aalpha12/icon_attachment_sh_aalpha12_stocks.vmt")
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.15
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.15
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 1.12
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 1.12
end

View File

@@ -0,0 +1,2 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_barrel.mdl")

View File

@@ -0,0 +1,13 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "Spetsnaz Elite"
ATTACHMENT.Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_custombarrel.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_custombarrel_akilo47.vmt")
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Cone.Increase = weapon.Cone.Increase * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.05
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.05
weapon.Recoil.AdsMultiplier = weapon.Recoil.AdsMultiplier * 1.1
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "23.0 RPK Barrel"
ATTACHMENT.Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_lmgbarrel.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_lmgbarrel_akilo47.vmt")
ATTACHMENT.Bipod = true
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.06
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.06
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.91
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.91
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.91
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.91
weapon.PrintName = "RPK"
end

View File

@@ -0,0 +1,28 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "23.0 Romanian"
ATTACHMENT.Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_lmgbarrel_grip.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_gripvert_akilo47.vmt")
ATTACHMENT.ExcludedCategories = {
"Grips"
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 1.06
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 1.06
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 0.87
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 0.87
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 0.87
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 0.87
weapon.Recoil.Vertical[1] = weapon.Recoil.Vertical[1] * 0.93
weapon.Recoil.Vertical[2] = weapon.Recoil.Vertical[2] * 0.93
weapon.HoldType = "RifleWithVerticalGrip"
weapon.PrintName = "PM.md 63"
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,27 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "8.1 Compact Barrel"
ATTACHMENT.Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_smgbarcust.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_vertgrip_akilo47.vmt")
ATTACHMENT.ExcludedCategories = {
"Grips"
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.9
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.08
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.08
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.08
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.08
weapon.Recoil.Horizontal[1] = weapon.Recoil.Horizontal[1] * 0.85
weapon.Recoil.Horizontal[2] = weapon.Recoil.Horizontal[2] * 0.85
weapon.HoldType = "RifleWithVerticalGrip"
weapon.PrintName = "PM.md 90"
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_pro_offset")
end

View File

@@ -0,0 +1,21 @@
ATTACHMENT.Base = "att_barrel"
ATTACHMENT.Name = "8.1 Compact Barrel"
ATTACHMENT.Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_smgbarrel_akilo47.mdl")
ATTACHMENT.Icon = Material("viper/mw/attachments/icons/akilo47/icon_attachment_smgbarrel_akilo47.vmt")
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:Stats(weapon)
BaseClass.Stats(self, weapon)
weapon.Bullet.EffectiveRange = weapon.Bullet.EffectiveRange * 0.9
weapon.Bullet.DropOffStartRange = weapon.Bullet.DropOffStartRange * 0.9
weapon.Animations.Ads_In.Fps = weapon.Animations.Ads_In.Fps * 1.1
weapon.Animations.Ads_Out.Fps = weapon.Animations.Ads_Out.Fps * 1.1
weapon.Animations.Draw.Fps = weapon.Animations.Draw.Fps * 1.1
weapon.Animations.Holster.Fps = weapon.Animations.Holster.Fps * 1.1
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_smg_pose_offset")
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_vm_angledgrip01"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_ang_offset")
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_vm_angledgrip02"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_ang_offset")
end

View File

@@ -0,0 +1,10 @@
ATTACHMENT.Base = "att_vm_bipodgrip"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_vm_stubbygrip01"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_pro_offset")
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_vm_stubbygrip02"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_pro_offset")
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_vm_vertgrip01"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_vm_vertgrip02"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

View File

@@ -0,0 +1,16 @@
ATTACHMENT.Base = "att_vm_vertgrip03"
ATTACHMENT.BonemergeToCategory = {"Barrels"}
ATTACHMENT.AttachmentBodygroups ={
["handguard"] = 1
}
local BaseClass = GetAttachmentBaseClass(ATTACHMENT.Base)
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
end
function ATTACHMENT:PostProcess(weapon)
BaseClass.PostProcess(self, weapon)
weapon:SetGripPoseParameter("grip_vert_offset")
end

Some files were not shown because too many files have changed in this diff Show More