mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
679 lines
21 KiB
Lua
679 lines
21 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
|
|
/*
|
|
|
|
Take a look at
|
|
https://github.com/HaodongMo/ArcCW/wiki/Attachment-Parameters
|
|
for descriptions on these
|
|
|
|
*/
|
|
|
|
att.PrintName = ""
|
|
att.AbbrevName = "" -- Shown in lists, cust2 only
|
|
att.Icon = nil
|
|
att.Description = ""
|
|
att.Desc_Pros = {}
|
|
att.Desc_Cons = {}
|
|
att.Desc_Neutrals = {}
|
|
att.Slot = ""
|
|
|
|
att.SortOrder = 0
|
|
|
|
att.Spawnable = false -- generate entity
|
|
att.AdminOnly = false -- see above
|
|
att.Ignore = true
|
|
att.InvAtt = nil -- use this other attachment in inventory
|
|
att.Free = false -- attachment is always available, and doesn't need to be picked up or unlocked
|
|
att.IgnorePickX = false -- will not increment the Pick X counter
|
|
att.Hidden = false
|
|
att.HideIfBlocked = false -- if the attachment cannot be attached due to flag reasons, do not show up
|
|
att.HideIfUnavailable = false -- if the attachment is not owned, do not show up even if "Hide Unowned Attachments" is off
|
|
att.NoRandom = false -- will not be randomly rolled
|
|
att.RandomWeight = 1 -- random rolling weight, defaults to 1
|
|
|
|
att.NotForNPCs = false
|
|
|
|
att.AddPrefix = ""
|
|
att.AddSuffix = ""
|
|
|
|
att.ToggleLockDefault = false -- if true then lock attachment from switching stats through bind (use on stocks/colored stuff)
|
|
|
|
att.ToggleStats = {
|
|
-- {
|
|
-- PrintName = "Red",
|
|
-- AutoStatName = "On",
|
|
-- NoAutoStat = false,
|
|
-- Laser = true,
|
|
-- LaserColor = Color(255, 0, 0),
|
|
-- Mult_HipDispersion = 0.75,
|
|
-- AdditionalSights = {
|
|
-- {
|
|
-- Pos = Vector(-2, 10, -4), -- relative to where att.Model is placed
|
|
-- Ang = Angle(0, 0, -45),
|
|
-- GlobalPos = false,
|
|
-- GlobalAng = true,
|
|
-- Magnification = 1
|
|
-- }
|
|
-- },
|
|
-- },
|
|
-- {
|
|
-- PrintName = "Blue",
|
|
-- AutoStats = true,
|
|
-- Laser = true,
|
|
-- LaserColor = Color(0, 0, 255),
|
|
-- Mult_HipDispersion = 0.75,
|
|
-- AdditionalSights = {
|
|
-- {
|
|
-- Pos = Vector(-2, 10, -4), -- relative to where att.Model is placed
|
|
-- Ang = Angle(0, 0, -45),
|
|
-- GlobalPos = false,
|
|
-- GlobalAng = true,
|
|
-- Magnification = 1
|
|
-- }
|
|
-- },
|
|
-- },
|
|
-- {
|
|
-- PrintName = "Off",
|
|
-- Laser = false,
|
|
-- Mult_HipDispersion = 1,
|
|
-- }
|
|
}
|
|
|
|
att.KeepBaseIrons = false
|
|
att.BaseIronsFirst = false
|
|
|
|
att.GivesFlags = {}
|
|
att.RequireFlags = {}
|
|
att.ExcludeFlags = {}
|
|
|
|
-- any strings present in data will be added to weapon flags
|
|
att.Hook_ExtraFlags = function(wep, data) end
|
|
|
|
-- Do not use right now.
|
|
att.SubSlots = {
|
|
{
|
|
PrintName = "Optic",
|
|
Slot = {"optic", "optic_lp"}, -- OR
|
|
Slot = "optic",
|
|
DefaultAttName = "Iron Sights",
|
|
DefaultAttIcon = Material(""),
|
|
MergeSlots = {}, -- mergeslots are relative to att.SubSlots, so this entry would be [1], then [2], etc
|
|
-- bone/wmbone is inherited
|
|
ExtraSightDist = 0,
|
|
Offset = { -- inherits from base slot
|
|
vpos = Vector(0, 0, 0),
|
|
vang = Angle(0, 0, 0),
|
|
wpos = Vector(0, 0, 0),
|
|
wang = Angle(0, 0, 0)
|
|
},
|
|
SlideAmount = {
|
|
vmin = Vector(0, 0, 0),
|
|
vmax = Vector(0, 0, 0),
|
|
wmin = Vector(0, 0, 0),
|
|
wmax = Vector(0, 0, 0),
|
|
},
|
|
}
|
|
-- CorrectiveAng/Pos is inherited from base slot
|
|
-- everything else is the same as normal slots
|
|
}
|
|
|
|
att.Max = nil -- the maximum number of this attachment that can be attached.
|
|
|
|
att.Model = ""
|
|
att.HideModel = false
|
|
att.ModelBodygroups = ""
|
|
att.ModelSkin = 0
|
|
att.ModelScale = Vector(1, 1, 1)
|
|
att.ModelOffset = Vector(0, 0, 0)
|
|
att.OffsetAng = Angle(0, 0, 0)
|
|
att.ModelIsShield = false
|
|
att.ShieldResistance = nil -- amount of penetration to get through one unit of shield
|
|
att.ShieldBone = "ValveBiped.Bip01_R_Hand"
|
|
|
|
att.Charm = false
|
|
att.CharmBone = "Charm"
|
|
att.CharmModel = ""
|
|
att.CharmOffset = Vector(0, 0, 0)
|
|
att.CharmScale = Vector(1, 1, 1)
|
|
att.CharmSkin = 0
|
|
att.CharmBodygroups = ""
|
|
|
|
att.Health = 0 -- for breakable attachments
|
|
|
|
att.ShieldCorrectAng = Angle(0, 0, 0)
|
|
att.ShieldCorrectPos = Vector(0, 0, 0)
|
|
|
|
-- amount of damage done to this attachment
|
|
-- attachments which are even a bit damaged are not returned
|
|
att.DamageOnShoot = 0
|
|
att.DamageOnReload = 0
|
|
att.DamagePerSecond = 0
|
|
|
|
-- {slot = int, atthp = float, dmg = DamageInfo}
|
|
att.Hook_PlayerTakeDamage = function(wep, data) end
|
|
|
|
-- {slot = int, oldhp = float, dmg = float}
|
|
att.Hook_AttTakeDamage = function(wep, data) end
|
|
|
|
-- {slot = int, dmg = float}
|
|
att.Hook_AttDestroyed = function(wep, data) end
|
|
|
|
att.VMColor = Color(255, 255, 255)
|
|
att.WMColor = Color(255, 255, 255)
|
|
att.VMMaterial = ""
|
|
att.WMMaterial = ""
|
|
|
|
att.DroppedModel = nil
|
|
att.LHIKHide = false -- use this to just hide the left hand
|
|
att.LHIK = false -- use this model for left hand IK
|
|
att.LHIK_Animation = false
|
|
att.LHIK_GunDriver = ""
|
|
att.LHIK_CamDriver = ""
|
|
|
|
att.Override_NoHideLeftHandInCustomization = nil
|
|
|
|
att.ActivateElements = {}
|
|
|
|
att.MountPositionOverride = nil -- set between 0 to 1 to always mount in a certain position
|
|
|
|
att.AdditionalSights = {
|
|
{
|
|
Pos = Vector(0, 0, 0), -- relative to where att.Model is placed
|
|
Ang = Angle(0, 0, 0),
|
|
GlobalPos = false, -- solver will not correct position relative to att.Model position
|
|
GlobalAng = false, -- solver will not correct angle
|
|
ViewModelFOV = 45,
|
|
ScrollFunc = ArcCW.SCROLL_ZOOM,
|
|
ZoomLevels = 6,
|
|
ZoomSound = "weapons/arccw/fiveseven/fiveseven_slideback.wav",
|
|
NVScope = nil, -- enables night vision effects for scope
|
|
NVScopeColor = Color(0, 255, 100),
|
|
NVFullColor = false, -- night vision scope is true full color
|
|
Thermal = true,
|
|
ThermalScopeColor = Color(255, 255, 255),
|
|
ThermalHighlightColor = Color(255, 255, 255),
|
|
ThermalFullColor = false,
|
|
ThermalScopeSimple = false,
|
|
ThermalNoCC = false,
|
|
ThermalBHOT = false, -- invert bright/dark
|
|
IgnoreExtra = false, -- ignore gun-determined extra sight distance
|
|
Contrast = 1, -- allows you to adjust the values for contrast and brightness when either NVScope or Thermal is enabled.
|
|
Brightness = 0,
|
|
SpecialScopeFunction = function(screen) end -- perform whatever screen space effects you like here, copy SWEP:FormThermalImaging and SWEP:FormNightVision for examples
|
|
}
|
|
}
|
|
|
|
att.UBGL = false -- is underbarrel grenade launcher
|
|
att.UBGL_Icon = nil -- set to a IMaterial to replace icon in HUD
|
|
|
|
|
|
att.UBGL_Automatic = false
|
|
att.UBGL_ClipSize = 1
|
|
att.UBGL_Ammo = "smg1_grenade"
|
|
att.UBGL_RPM = 300
|
|
|
|
-- Use animations on the weapon itself, useful for weapon-specific UBGL
|
|
att.UBGL_BaseAnims = false
|
|
|
|
-- wep: weapon
|
|
-- ubgl: UBGL attachment slot.
|
|
att.UBGL_Fire = function(wep, ubgl) end
|
|
att.UBGL_Reload = function(wep, ubgl) end
|
|
|
|
att.Silencer = false
|
|
|
|
att.Bipod = false
|
|
att.Bipod_Icon = nil -- set to a IMaterial to replace icon in HUD
|
|
att.Mult_BipodRecoil = 0.25
|
|
att.Mult_BipodDispersion = 0.1
|
|
att.Override_InBipodPos = nil
|
|
|
|
att.Override_AlwaysPhysBullet = nil
|
|
att.Override_NeverPhysBullet = nil
|
|
|
|
att.Override_AmmoPerShot = 1
|
|
att.Override_InfiniteAmmo = nil
|
|
att.Override_BottomlessClip = nil
|
|
|
|
att.MagExtender = false
|
|
att.MagReducer = false
|
|
att.OverrideClipSize = nil
|
|
att.Add_ClipSize = 0
|
|
att.BaseClipSize = nil -- currently only used to make autostats treat this as the "base" clip size for pros/cons
|
|
|
|
att.Override_FuseTime = nil
|
|
|
|
att.Laser = false
|
|
att.LaserStrength = 1
|
|
att.LaserBone = "laser"
|
|
att.LaserColor = Color(255, 0, 0)
|
|
|
|
att.Flashlight = false
|
|
att.FlashlightFOV = 50
|
|
att.FlashlightHFOV = nil -- horizontal FOV
|
|
att.FlashlightVFOV = nil -- vertical FOV
|
|
-- basically, use HFOV + VFOV if you want it to be non square
|
|
att.FlashlightFarZ = 512 -- how far it goes
|
|
att.FlashlightNearZ = 4 -- how far away it starts
|
|
att.FlashlightAttenuationType = ArcCW.FLASH_ATT_LINEAR -- LINEAR, CONSTANT, QUADRATIC are available
|
|
att.FlashlightColor = Color(255, 255, 255)
|
|
att.FlashlightTexture = ""
|
|
att.FlashlightBrightness = 1
|
|
att.FlashlightBone = "laser"
|
|
|
|
att.Holosight = false
|
|
att.HolosightReticle = nil
|
|
att.HolosightFlare = nil
|
|
att.HolosightSize = nil
|
|
att.HolosightBone = "holosight"
|
|
att.HolosightPiece = nil -- the lens of the holo sight, if applicable
|
|
att.HolosightMagnification = 1 -- magnify the lens by this much
|
|
att.HolosightBlackbox = false
|
|
att.HolosightNoHSP = false -- for this holosight ignore HSP
|
|
att.HolosightConstDist = nil -- constant holosight distance, mainly for scopes with range finder
|
|
|
|
att.Colorable = false -- automatically use the player's color option
|
|
att.HolosightColor = Color(255, 255, 255)
|
|
|
|
att.Override_Ammo = "ar2" -- overrides the ammo type with this one
|
|
|
|
att.Override_Firemodes = {}
|
|
|
|
-- you can use _Priority to determine the priority of overrides.
|
|
-- append it to the end of an Override_ stat to set this.
|
|
-- for example, att.Override_Firemodes_Priority = 2
|
|
-- higher priority = will be chosen over lower priority
|
|
-- default priority for all stats is 1.
|
|
|
|
-- all hooks will work when applied to the SWEP table as well
|
|
-- e.g. SWEP.Hook_FireBullets
|
|
|
|
-- use A_Hook_[Add_Whatever] to hook into additive hooks.
|
|
-- {buff = string buff, add = num add}
|
|
-- return table
|
|
|
|
-- use O_Hook_[Override_Whatever] to hook into override hooks.
|
|
-- {buff = string buff, current = any override, winningslot = int slot}
|
|
|
|
-- use M_Hook_[Mult_Whatever] to hook into multiply hooks.
|
|
-- {buff = string buff, mult = num mult}
|
|
|
|
-- all hooks, mults, and adds will work on fire modes
|
|
|
|
-- called when the active sight is changed
|
|
-- return to change activesight
|
|
-- {active = int activesight, asight = table}
|
|
att.Hook_SwitchActiveSights = function(wep, data) end
|
|
|
|
-- Allows you to directly edit the burst count
|
|
att.Hook_GetBurstCount = function(wep, burstcount) end
|
|
|
|
-- Allows you to directly edit how long a burst is
|
|
att.Hook_GetBurstLength = function(wep, length) end
|
|
|
|
-- Allows you to directly edit whether the weapon is reloading/inoperable
|
|
att.Hook_GetReloading = function(wep, reloading) end
|
|
|
|
-- Directly modify dispersion
|
|
att.Hook_ModDispersion = function(wep, dispersion) end
|
|
|
|
-- Allows you to change the weapon's name
|
|
-- string name
|
|
att.Hook_NameChange = function(wep, name) end
|
|
|
|
-- allows you to do whatever you like to the weapon VMs
|
|
-- {vm = vm, eles = ae}
|
|
att.Hook_ModifyBodygroups = function(wep, data) end
|
|
|
|
-- modify the attachment however you like; only called for the particular attachment
|
|
-- {vm = vm, element = VElement / WElement, slottbl = slottbl, wm = false/true}
|
|
att.Hook_ModifyAttBodygroups = function(wep, data) end
|
|
|
|
-- allows you to return a shotgun spread offset
|
|
-- {n = int number, ang = angle offset}
|
|
att.Hook_ShotgunSpreadOffset = function(wep, data) end
|
|
|
|
-- done before playing an effect
|
|
-- return false to prevent playing
|
|
-- fx: {eff = effect name, fx = EffectData()}
|
|
att.Hook_PreDoEffects = function(wep, fx) end
|
|
|
|
-- return true = compatible
|
|
-- return false = incompatible
|
|
-- data = {slot = string or table, att = string}
|
|
att.Hook_Compatible = function(wep, data) end
|
|
|
|
-- called before the bullet is made.
|
|
att.Hook_PostFireBullets = function(wep) end
|
|
|
|
-- hook that lets you change the values of the bullet before it's fired.
|
|
att.Hook_FireBullets = function(wep, bullettable) end
|
|
|
|
-- called after all other primary attack functions. Do stuff here.
|
|
att.Hook_PostFireBullets = function(wep) end
|
|
|
|
-- return true to prevent fire
|
|
att.Hook_ShouldNotFire = function(wep) end
|
|
|
|
-- return true to prevent fire, bashing, anything involving the fire button
|
|
att.Hook_ShouldNotFireFirst = function(wep) end
|
|
|
|
-- return true to prevent ads
|
|
att.Hook_ShouldNotSight = function(wep) end
|
|
|
|
-- return anything to select this reload animation. Bear in mind that not all guns have the same animations, so check first.
|
|
att.Hook_SelectReloadAnimation = function(wep, curanim) end
|
|
|
|
-- return anything to multiply reload time by that much
|
|
att.Hook_MultReload = function(wep, mult) end
|
|
|
|
-- data has entries:
|
|
-- number count, how much ammo to add with this insert
|
|
-- string anim, which animation to play
|
|
-- bool empty, whether we are reloading from empty
|
|
att.Hook_SelectInsertAnimation = function(wep, data) end
|
|
|
|
-- return to override fire animation
|
|
att.Hook_SelectFireAnimation = function(wep, curanim) end
|
|
|
|
-- return string to change played anim
|
|
-- string anim, animation we are attempting to play
|
|
-- return false to block animation
|
|
-- return nil to do nothing
|
|
att.Hook_TranslateAnimation = function(wep, anim) end
|
|
|
|
-- directly changes source sequence to play
|
|
-- seq and return can either be string or table
|
|
att.Hook_TranslateSequence = function(wep, seq) end
|
|
|
|
-- called when the vm is about to play an idle animation
|
|
-- return a value to override ianim
|
|
att.Hook_IdleReset = function(wep, ianim) end
|
|
|
|
-- allows any sound to be translated to any other
|
|
att.Hook_TranslateSound = function(wep, soundname) end
|
|
|
|
-- directly changes sequence to play
|
|
-- return "DoNotPlayIdle" to stop idle animation
|
|
att.Hook_LHIK_TranslateAnimation = function(wep, anim) end
|
|
|
|
-- att.Hook_TranslateAnimation = function(wep, anim)
|
|
-- if anim == "reload" then
|
|
-- return "reload_soh"
|
|
-- elseif anim == "reload_empty" then
|
|
-- return "reload_empty_soh"
|
|
-- end
|
|
-- end
|
|
|
|
-- anim is string
|
|
att.Hook_SelectBashAnim = function(wep, anim) end
|
|
|
|
att.Hook_SelectFixAnim = function(wep, anim) end
|
|
|
|
att.Hook_PreBash = function(wep) end
|
|
|
|
-- data = {tr = tr, dmg = dmg}
|
|
att.Hook_PostBash = function(wep, data) end
|
|
|
|
-- Called just before a physbullet will call FireBullets
|
|
-- data.bullet - physbullet info; data.tr - trace info
|
|
att.Hook_PhysBulletHit = function(wep, data) end
|
|
|
|
-- data has entries:
|
|
-- number range, the distance the bullet had to travel
|
|
-- number damage, the calculated damage the bullet will do
|
|
-- number penleft, the amount of penetration the bullet still possesses
|
|
-- enum dmgtype, the DMG_ enum of the damagetype
|
|
-- table tr, the trace result
|
|
-- entity att, the attacker (?)
|
|
-- DamageInfo dmg, the damage info
|
|
|
|
-- changes to dmg may be overwritten later, so set damage and dmgtype instead
|
|
att.Hook_BulletHit = function(wep, data) end
|
|
|
|
-- called right after BulletHit, no further changes can be applied to damage
|
|
att.Hook_PostBulletHit = function(wep, data) end
|
|
|
|
-- return true to prevent reloading
|
|
att.Hook_PreReload = function(wep) end
|
|
|
|
att.Hook_PostReload = function(wep) end
|
|
|
|
-- return true to prevent firemode change
|
|
att.Hook_ChangeFiremode = function(wep) end
|
|
|
|
-- return true to ignore current bullets in clip when reloading
|
|
att.Hook_ReloadDumpClip = function(wep) end
|
|
|
|
att.Hook_GetVisualBullets = function(wep) end
|
|
|
|
att.Hook_GetVisualClip = function(wep) end
|
|
|
|
-- modify what the event system be do
|
|
-- the event is a table containing stuff that it does
|
|
-- sh_timers last stuff timers are stupid lets not
|
|
-- please dont return anything people kinda would wanna run events i'd imagine
|
|
att.Hook_PrePlayEvent = function(wep, event) end
|
|
att.Hook_PostPlayEvent = function(wep, event) end
|
|
|
|
-- return to set mag capacity
|
|
att.Hook_GetCapacity = function(wep, cap) end
|
|
|
|
-- return false to suppress shoot sound
|
|
-- string sound = default sound
|
|
att.Hook_GetShootSound = function(wep, sound) end
|
|
att.Hook_GetShootDrySound = function(wep, sound) end
|
|
att.Hook_GetDistantShootSound = function(wep, sound) end
|
|
|
|
-- return a string to change the default attachment name and icon for that slot
|
|
-- int slot = slot of attachment to name/set icon
|
|
att.Hook_GetDefaultAttName = function(wep, slot) end
|
|
att.Hook_GetDefaultAttIcon = function(wep, slot) end
|
|
|
|
-- or just add more!
|
|
-- data has entries:
|
|
-- string sound
|
|
-- number volume
|
|
-- number pitch
|
|
att.Hook_AddShootSound = function(wep, data) end
|
|
-- att.Hook_AddShootSound = function(wep, data)
|
|
-- wep:MyEmitSound("weapons/pistol/pistol_fire2.wav", data.volume, data.pitch, 1, CHAN_WEAPON - 1)
|
|
-- end
|
|
|
|
-- allows you to modify the weapon's rate of fire
|
|
att.Hook_ModifyRPM = function(wep, delay) end
|
|
|
|
-- return a table containing Recoil, RecoilSide, VisualRecoilMult to multiply them
|
|
-- Alternatively, edit the values in rec without returning, which supports multiple hooks changing the value
|
|
att.Hook_ModifyRecoil = function(wep, rec) end
|
|
|
|
-- run in Think()
|
|
att.Hook_Think = function(wep) end
|
|
|
|
-- thinking hook for att
|
|
att.DrawFunc = function(wep, element, wm) end
|
|
|
|
-- after ADS starts or ends
|
|
att.Hook_SightToggle = function(wep, enter) end
|
|
|
|
att.Override_Trivia_Class = nil -- "Submachine Gun"
|
|
att.Override_Trivia_Desc = nil -- "Ubiquitous 9mm SMG. Created as a response to the need for a faster-firing and more reliable submachine gun than existing options at the time."
|
|
att.Override_Trivia_Manufacturer = nil -- "Auschen Waffenfabrik"
|
|
att.Override_Trivia_Calibre = nil -- "9x21mm Jager"
|
|
att.Override_Trivia_Mechanism = nil -- "Roller-Delayed Blowback"
|
|
att.Override_Trivia_Country = nil -- "Austria"
|
|
att.Override_Trivia_Year = nil -- 1968
|
|
|
|
att.Mult_Damage = 1
|
|
att.Mult_DamageMin = 1
|
|
att.Mult_DamageRand = 1
|
|
att.Mult_DamageNPC = 1 -- damage WHEN USED BY NPCS not when used against them
|
|
att.Mult_Range = 1
|
|
att.Mult_Penetration = 1
|
|
att.Override_DamageType = nil
|
|
att.Override_DamageTypeHandled = nil
|
|
att.Override_ShootEntity = nil
|
|
att.Mult_MuzzleVelocity = 1
|
|
|
|
att.Override_BodyDamageMults = nil
|
|
|
|
att.Override_ShotgunSpreadPattern = {}
|
|
att.Override_ShotgunSpreadPatternOverrun = {}
|
|
|
|
att.Override_NoRandSpread = false -- disable (random) spread modification after bullet table override
|
|
|
|
att.Mult_MeleeTime = 1
|
|
att.Mult_MeleeDamage = 1
|
|
att.Add_MeleeRange = 0
|
|
att.Mult_MeleeAttackTime = 1
|
|
att.Override_MeleeDamageType = nil
|
|
|
|
att.Override_Lunge = nil
|
|
att.Add_LungeLength = 0
|
|
att.Mult_LungeLength = 1
|
|
|
|
-- jam/heat related buffs
|
|
att.Override_Jamming = nil
|
|
att.Mult_HeatCapacity = 1
|
|
att.Mult_FixTime = 1
|
|
att.Mult_HeatDissipation = 1
|
|
att.Mult_HeatDelayTime = 1
|
|
att.Override_HeatFix = nil
|
|
att.Override_HeatLockout = nil
|
|
att.Hook_Overheat = function(wep, heat) end
|
|
att.Hook_PostOverheat = function(wep) end
|
|
-- Return true to not do animation/heat locking
|
|
att.Hook_OnOverheat = function(wep) end
|
|
att.HeatOverflow = nil
|
|
|
|
-- malfunction related buffs
|
|
att.Override_Malfunction = nil
|
|
att.Override_MalfunctionTakeRound = nil
|
|
att.Override_MalfunctionJam = nil
|
|
att.Mult_MalfunctionMean = 1
|
|
att.Mult_MalfunctionVariance = 1
|
|
att.Mult_MalfunctionFixTime = 1
|
|
|
|
-- Called every time malfunction is checked. return true to cause malfunction
|
|
att.Hook_Malfunction = function(wep, count) end
|
|
-- Called when a malfunction is about to happen. return true to stop malfunction
|
|
att.Hook_OnMalfunction = function(wep, count) end
|
|
-- Called after a malfunction has occurred.
|
|
att.Hook_PostMalfunction = function(wep) end
|
|
|
|
att.Override_Tracer = nil -- tracer effect name
|
|
att.Override_TracerNum = nil
|
|
-- att.Override_TracerCol = nil
|
|
-- att.Mult_TracerWidth = 1
|
|
att.TracerFinalMag = nil
|
|
|
|
att.Override_PhysTracerProfile = nil -- color for phys tracer.
|
|
-- there are 8 options:
|
|
-- 0 = normal
|
|
-- 1 = red
|
|
-- 2 = green
|
|
-- 3 = blue
|
|
-- 4 = yellow
|
|
-- 5 = violet
|
|
-- 6 = cyan
|
|
-- 7 = black/invisible
|
|
|
|
att.Override_CanBash = nil
|
|
|
|
att.Override_ShotgunReload = nil
|
|
att.Override_HybridReload = nil
|
|
|
|
att.Override_AutoReload = nil
|
|
|
|
att.Override_ManualAction = nil
|
|
|
|
att.Override_CanFireUnderwater = nil
|
|
|
|
att.Override_ChamberSize = nil
|
|
att.Add_ChamberSize = nil
|
|
|
|
att.Mult_Recoil = 1
|
|
att.Mult_RecoilSide = 1
|
|
att.Mult_VisualRecoilMult = 1
|
|
|
|
att.Mult_Sway = 1
|
|
|
|
att.Override_ShootWhileSprint = nil
|
|
|
|
att.Mult_RPM = 1
|
|
|
|
att.Add_Num = nil
|
|
att.Mult_Num = nil
|
|
att.Override_Num = nil
|
|
|
|
att.Mult_AccuracyMOA = 1
|
|
att.Mult_HipDispersion = 1
|
|
att.Mult_SightsDispersion = 1
|
|
|
|
att.Mult_ShootVol = 1
|
|
att.Mult_ShootPitch = 1
|
|
|
|
att.Mult_GlintMagnitude = 1
|
|
|
|
att.Override_MuzzleEffect = nil
|
|
att.Override_FastMuzzleEffect = nil
|
|
att.Override_GMMuzzleEffect = nil
|
|
|
|
att.Override_ShellEffect = nil
|
|
att.Override_ShellMaterial = nil
|
|
|
|
att.Override_MuzzleEffectAttachment = nil
|
|
att.Override_CaseEffectAttachment = nil
|
|
|
|
att.Mult_SpeedMult = 1
|
|
att.Mult_SightedSpeedMult = 1
|
|
att.Mult_ShootSpeedMult = 1
|
|
|
|
att.Override_HoldtypeHolstered = nil
|
|
att.Override_HoldtypeActive = nil
|
|
att.Override_HoldtypeSights = nil
|
|
|
|
att.Override_AnimShoot = nil
|
|
|
|
att.Override_HolsterPos = nil
|
|
att.Override_HolsterAng = nil
|
|
|
|
att.Add_BarrelLength = 0
|
|
|
|
att.Override_BarrelOffsetSighted = nil
|
|
att.Override_BarrelOffsetHip = nil
|
|
|
|
att.Mult_ReloadTime = 1
|
|
att.Mult_DrawTime = 1
|
|
att.Mult_SightTime = 1
|
|
att.Mult_CycleTime = 1
|
|
|
|
att.AttachSound = nil
|
|
att.DetachSound = nil
|
|
att.ToggleSound = nil
|
|
|
|
-- free aim related buffs
|
|
att.Override_FreeAimAngle = nil
|
|
att.Mult_FreeAimAngle = nil
|
|
att.Add_FreeAimAngle = nil
|
|
att.Override_NeverFreeAim = nil
|
|
att.Override_AlwaysFreeAim = nil
|
|
|
|
att.Hook_OnDeploy = function(wep) end
|
|
att.Hook_OnHolster = function(wep) end
|
|
att.Hook_OnHolsterEnd = function(wep) end
|
|
|
|
-- bool dodefault - set false to not do default throwing behavior
|
|
-- vector force
|
|
-- string shootentity
|
|
-- number/nil fusetime
|
|
att.Hook_Throw = function(wep, data) end |