Залив
This commit is contained in:
227
lua/weapons/mg_357/animations.lua
Normal file
227
lua/weapons/mg_357/animations.lua
Normal 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}
|
||||
}
|
||||
},
|
||||
}
|
||||
405
lua/weapons/mg_357/customization.lua
Normal file
405
lua/weapons/mg_357/customization.lua
Normal 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
|
||||
-- }
|
||||
-- },
|
||||
}
|
||||
|
||||
]]
|
||||
157
lua/weapons/mg_357/shared.lua
Normal file
157
lua/weapons/mg_357/shared.lua
Normal 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"
|
||||
382
lua/weapons/mg_aalpha12/animations.lua
Normal file
382
lua/weapons/mg_aalpha12/animations.lua
Normal 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},
|
||||
}
|
||||
},
|
||||
}
|
||||
898
lua/weapons/mg_aalpha12/customization.lua
Normal file
898
lua/weapons/mg_aalpha12/customization.lua
Normal 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
|
||||
-- },
|
||||
-- },
|
||||
-- }
|
||||
179
lua/weapons/mg_aalpha12/shared.lua
Normal file
179
lua/weapons/mg_aalpha12/shared.lua
Normal 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
|
||||
419
lua/weapons/mg_akilo47/animations.lua
Normal file
419
lua/weapons/mg_akilo47/animations.lua
Normal 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}
|
||||
}
|
||||
},
|
||||
}
|
||||
1168
lua/weapons/mg_akilo47/customization.lua
Normal file
1168
lua/weapons/mg_akilo47/customization.lua
Normal file
File diff suppressed because it is too large
Load Diff
167
lua/weapons/mg_akilo47/shared.lua
Normal file
167
lua/weapons/mg_akilo47/shared.lua
Normal 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"
|
||||
475
lua/weapons/mg_alpha50/animations.lua
Normal file
475
lua/weapons/mg_alpha50/animations.lua
Normal 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},
|
||||
}
|
||||
},
|
||||
}
|
||||
49
lua/weapons/mg_alpha50/customization.lua
Normal file
49
lua/weapons/mg_alpha50/customization.lua
Normal 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)
|
||||
183
lua/weapons/mg_alpha50/shared.lua
Normal file
183
lua/weapons/mg_alpha50/shared.lua
Normal 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
|
||||
502
lua/weapons/mg_anovember94/animations.lua
Normal file
502
lua/weapons/mg_anovember94/animations.lua
Normal 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}
|
||||
}
|
||||
},
|
||||
}
|
||||
1039
lua/weapons/mg_anovember94/customization.lua
Normal file
1039
lua/weapons/mg_anovember94/customization.lua
Normal file
File diff suppressed because it is too large
Load Diff
228
lua/weapons/mg_anovember94/shared.lua
Normal file
228
lua/weapons/mg_anovember94/shared.lua
Normal 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
|
||||
309
lua/weapons/mg_asierra12/animations.lua
Normal file
309
lua/weapons/mg_asierra12/animations.lua
Normal 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}
|
||||
}
|
||||
},
|
||||
}
|
||||
897
lua/weapons/mg_asierra12/customization.lua
Normal file
897
lua/weapons/mg_asierra12/customization.lua
Normal 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
|
||||
-- -- }
|
||||
-- -- },
|
||||
-- }
|
||||
168
lua/weapons/mg_asierra12/shared.lua
Normal file
168
lua/weapons/mg_asierra12/shared.lua
Normal 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"
|
||||
|
||||
564
lua/weapons/mg_augolf/animations.lua
Normal file
564
lua/weapons/mg_augolf/animations.lua
Normal 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}
|
||||
}
|
||||
},
|
||||
}
|
||||
1031
lua/weapons/mg_augolf/customization.lua
Normal file
1031
lua/weapons/mg_augolf/customization.lua
Normal file
File diff suppressed because it is too large
Load Diff
169
lua/weapons/mg_augolf/shared.lua
Normal file
169
lua/weapons/mg_augolf/shared.lua
Normal 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")
|
||||
94
lua/weapons/mg_base/cl_init.lua
Normal file
94
lua/weapons/mg_base/cl_init.lua
Normal 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)
|
||||
92
lua/weapons/mg_base/init.lua
Normal file
92
lua/weapons/mg_base/init.lua
Normal 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)
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
245
lua/weapons/mg_base/modules/attachments/attachments_ar_mike4.lua
Normal file
245
lua/weapons/mg_base/modules/attachments/attachments_ar_mike4.lua
Normal 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
|
||||
}
|
||||
162
lua/weapons/mg_base/modules/attachments/attachments_ar_oden.lua
Normal file
162
lua/weapons/mg_base/modules/attachments/attachments_ar_oden.lua
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
110
lua/weapons/mg_base/modules/attachments/attachments_pi_decho.lua
Normal file
110
lua/weapons/mg_base/modules/attachments/attachments_pi_decho.lua
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
164
lua/weapons/mg_base/modules/attachments/attachments_pi_mike.lua
Normal file
164
lua/weapons/mg_base/modules/attachments/attachments_pi_mike.lua
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
172
lua/weapons/mg_base/modules/attachments/attachments_pi_mike9.lua
Normal file
172
lua/weapons/mg_base/modules/attachments/attachments_pi_mike9.lua
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
194
lua/weapons/mg_base/modules/attachments/attachments_sm_secho.lua
Normal file
194
lua/weapons/mg_base/modules/attachments/attachments_sm_secho.lua
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
183
lua/weapons/mg_base/modules/attachments/attachments_sm_uzulu.lua
Normal file
183
lua/weapons/mg_base/modules/attachments/attachments_sm_uzulu.lua
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
104
lua/weapons/mg_base/modules/attachments/attachments_sn_sbeta.lua
Normal file
104
lua/weapons/mg_base/modules/attachments/attachments_sn_sbeta.lua
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
ATTACHMENT.Base = "att_barrel"
|
||||
ATTACHMENT.Model = Model("models/viper/mw/attachments/aalpha12/attachment_vm_sh_aalpha12_barrel.mdl")
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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"},
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
ATTACHMENT.Base = "att_barrel"
|
||||
ATTACHMENT.Model = Model("models/viper/mw/attachments/akilo47/attachment_vm_ar_akilo47_barrel.mdl")
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
Reference in New Issue
Block a user