• attempt to get length of field 'FireModes' (a nil value)
    6 replies, posted
Error: [code] [ERROR] addons/fas/lua/weapons/fas2_base/shared.lua:193: attempt to get length of field 'FireModes' (a nil value) 1. unknown - addons/fas/lua/weapons/fas2_base/shared.lua:193 [/code] Code: [code] if SERVER then AddCSLuaFile("shared.lua") AddCSLuaFile("cl_drawfuncs.lua") AddCSLuaFile("cl_model.lua") AddCSLuaFile("cl_umsgs.lua") AddCSLuaFile("cl_hud.lua") AddCSLuaFile("sh_bullet.lua") AddCSLuaFile("cl_calcview.lua") AddCSLuaFile("cl_muzzleflash.lua") AddCSLuaFile("cl_attachments.lua") include("sv_attachments.lua") umsg.PoolString("FAS2_SUPPRESSMODEL") umsg.PoolString("FAS2_UNSUPPRESSMODEL") end include("sh_bullet.lua") if CLIENT then include("cl_model.lua") include("cl_umsgs.lua") include("cl_hud.lua") include("cl_calcview.lua") include("cl_muzzleflash.lua") include("cl_drawfuncs.lua") include("cl_attachments.lua") SWEP.BounceWeaponIcon = false SWEP.PitchMod = 1 SWEP.YawMod = 1 SWEP.CrossAlpha = 255 SWEP.CheckTime = 0 SWEP.CrossAlpha = 255 SWEP.CrossAmount = 100 SWEP.CurFOVMod = 0 SWEP.AngleDelta = Angle(0, 0, 0) SWEP.OldDelta = Angle(0, 0, 0) SWEP.ProficientTextTime = 0 SWEP.ProficientAlpha = 0 SWEP.CockRemindTime = 0 SWEP.CockRemindAlpha = 0 SWEP.MouseSensMod = 1 SWEP.DeployAnimSpeed = 1 SWEP.CurAnim = "none" SWEP.BoltReminderText = "RELOAD KEY - BOLT WEAPON" SWEP.PrintName = "" SWEP.Slot = 3 SWEP.SlotPos = 3 SWEP.DrawAmmo = false SWEP.DrawCrosshair = false SWEP.MoveType = 1 SWEP.ReloadCycleTime = 0.9 SWEP.ShowStats = false SWEP.WMAng = Vector(0, 0, 0) SWEP.WMPos = Vector(0, 0, 0) SWEP.Text3DForward = -4 SWEP.Text3DRight = -2 SWEP.Text3DSize = 0.015 SWEP.WMScale = 1 SWEP.BlurAmount = 0 SWEP.HitMarkerAlpha = 0 SWEP.HitMarkerTime = 0 SWEP.MagText = "MAG " SWEP.FireModeSwitchTime = 0 SWEP.SwayInterpolation = "dynamic" surface.CreateFont("FAS2_HUD72", {font = "Default", size = 72, weight = 700, blursize = 0, antialias = true, shadow = false}) surface.CreateFont("FAS2_HUD48", {font = "Default", size = 48, weight = 700, blursize = 0, antialias = true, shadow = false}) surface.CreateFont("FAS2_HUD36", {font = "Default", size = 36, weight = 700, blursize = 0, antialias = true, shadow = false}) surface.CreateFont("FAS2_HUD28", {font = "Default", size = 28, weight = 700, blursize = 0, antialias = true, shadow = false}) surface.CreateFont("FAS2_HUD24", {font = "Default", size = 24, weight = 700, blursize = 0, antialias = true, shadow = false}) SWEP.CurSoundTable = nil SWEP.CurSoundEntry = nil SWEP.HideWorldModel = true SWEP.CustomizePos = Vector(5.657, -1.688, -2.027) SWEP.CustomizeAng = Vector(14.647, 30.319, 15.295) SWEP.BipodPos = Vector(0, 0, 0) SWEP.BipodAng = Vector(0, 0, 0) SWEP.PistolSafePos = Vector(0, 0, 1.203) SWEP.PistolSafeAng = Vector(-15.125, 0, 0) SWEP.RifleSafePos = Vector(0.324, 0.092, -0.621) SWEP.RifleSafeAng = Vector(-8.941, 7.231, -9.535) SWEP.BipodMoveTime = 0 SWEP.SafePosType = "rifle" end SWEP.AimSounds = {"weapons/weapon_sightlower.wav", "weapons/weapon_sightlower2.wav"} SWEP.BackToHipSounds = {"weapons/weapon_sightraise.wav", "weapons/weapon_sightraise2.wav"} SWEP.EmptySound = Sound("weapons/empty_submachineguns.wav") SWEP.RunHoldType = "passive" SWEP.ReloadState = 0 SWEP.BipodDelay = 0 SWEP.BurstFireDelayMod = 0.66 SWEP.ShotToDelayUntil = 0 SWEP.SpreadWait = 0 SWEP.AddSpread = 0 SWEP.AddSpreadSpeed = 1 SWEP.IsFAS2Weapon = true SWEP.Events = {} SWEP.SprintDelay = 0 SWEP.ReloadWait = 0 SWEP.MagCheckAlpha = 0 SWEP.ReloadProgress = 0 SWEP.Suppressed = false SWEP.PenMod = 1 SWEP.PenetrationEnabled = false SWEP.RicochetEnabled = false FAS_STAT_IDLE = 0 FAS_STAT_ADS = 1 FAS_STAT_SPRINT = 2 FAS_STAT_HOLSTER = 3 FAS_STAT_CUSTOMIZE = 4 FAS_STAT_HOLSTER_START = 5 FAS_STAT_HOLSTER_END = 6 FAS_STAT_QUICKGRENADE = 7 SWEP.Author = "Spy" SWEP.Instructions = "CONTEXT MENU KEY - Open customization menu\nUSE + RELOAD KEY - Change firemode\nUSE KEY + PRIMARY ATTACK KEY - Quick grenade" SWEP.Contact = "" SWEP.Purpose = "" SWEP.HoldType = "ar2" SWEP.FirstDeploy = true SWEP.ViewModelFOV = 55 SWEP.ViewModelFlip = false SWEP.Spawnable = false SWEP.AdminSpawnable = false SWEP.ViewModel = "models/Items/AR2_Grenade.mdl" SWEP.WorldModel = "" -- Primary Fire Attributes -- SWEP.Primary.ClipSize = -1 SWEP.Primary.DefaultClip = -1 SWEP.Primary.Automatic = false SWEP.Primary.Ammo = "none" -- Secondary Fire Attributes -- SWEP.Secondary.ClipSize = -1 SWEP.Secondary.DefaultClip = -1 SWEP.Secondary.Automatic = false SWEP.Secondary.Ammo = "none" SWEP.FireModeNames = {["auto"] = {display = "FULL-AUTO", auto = true, burstamt = 0}, ["semi"] = {display = "SEMI-AUTO", auto = false, burstamt = 0}, ["double"] = {display = "DOUBLE-ACTION", auto = false, burstamt = 0}, ["bolt"] = {display = "BOLT-ACTION", auto = false, burstamt = 0}, ["pump"] = {display = "PUMP-ACTION", auto = false, burstamt = 0}, ["break"] = {display = "BREAK-ACTION", auto = false, burstamt = 0}, ["2burst"] = {display = "2-ROUND BURST", auto = true, burstamt = 2}, ["3burst"] = {display = "3-ROUND BURST", auto = true, burstamt = 3}, ["safe"] = {display = "SAFE", auto = false, burstamt = 0}} local vm, t, a function SWEP:SetupDataTables() self:DTVar("Int", 0, "Status") self:DTVar("Int", 1, "Shots") self:DTVar("Bool", 0, "Suppressed") self:DTVar("Bool", 1, "Bipod") self:DTVar("Bool", 2, "Holstered") end function SWEP:CalculateEffectiveRange() self.EffectiveRange = self.CaseLength * 10 - self.BulletLength * 5 -- setup realistic base effective range self.EffectiveRange = self.EffectiveRange * 39.37 -- convert meters to units self.EffectiveRange = self.EffectiveRange / 2 self.DamageFallOff = (100 - (self.CaseLength - self.BulletLength)) / 200 self.PenStr = (self.BulletLength * 0.5 + self.CaseLength * 0.35) * (self.PenAdd and self.PenAdd or 1) end local SP = game.SinglePlayer() local reg = debug.getregistry() local GetVelocity = reg.Entity.GetVelocity local Length = reg.Vector.Length local GetAimVector = reg.Player.GetAimVector function SWEP:Initialize() self:SetWeaponHoldType(self.HoldType) self.CurCone = self.HipCone self.Class = self:GetClass() table.insert(self.FireModes, #self.FireModes + 1, "safe") t = self.FireModes[1] self.FireMode = t t = self.FireModeNames[t] self.Primary.Auto = t.auto self.BurstAmount = t.burstamt self.dt.Suppressed = self.Suppressed self:CalculateEffectiveRange() self.Damage_Orig = self.Damage self.FireDelay_Orig = self.FireDelay self.HipCone_Orig = math.Round(self.HipCone, 4) self.AimCone_Orig = math.Round(self.AimCone, 4) self.Recoil_Orig = math.Round(self.Recoil, 4) self.SpreadPerShot_Orig = self.SpreadPerShot self.MaxSpreadInc_Orig = self.MaxSpreadInc self.VelocitySensitivity_Orig = self.VelocitySensitivity self.AimPosName = "AimPos" self.AimAngName = "AimAng" if not self.Owner.FAS_FamiliarWeapons then self.Owner.FAS_FamiliarWeapons = {} end if CLIENT then self.BlendPos = Vector(0, 0, 0) self.BlendAng = Vector(0, 0, 0) self.NadeBlendPos = Vector(0, 0, 0) self.NadeBlendAng = Vector(0, 0, 0) self.FireModeDisplay = t.display self.AimPos_Orig = self.AimPos self.AimAng_Orig = self.AimAng self.AimFOV_Orig = self.AimFOV self.ViewModelFOV_Orig = self.ViewModelFOV self.TargetViewModelFOV_Orig = self.TargetViewModelFOV self.TargetViewModelFOV = self.TargetViewModelFOV or self.ViewModelFOV if not self.Wep then self.Wep = ClientsideModel(self.VM, RENDERGROUP_BOTH) self.Wep:SetNoDraw(true) end if not self.W_Wep and self.WM then self.W_Wep = ClientsideModel(self.WM, RENDERGROUP_BOTH) self.W_Wep:SetNoDraw(true) end if not self.Nade then self.Nade = ClientsideModel("models/weapons/v_m67.mdl", RENDERGROUP_BOTH) self.Nade:SetNoDraw(true) self.Nade.LifeTime = 0
That's because FireModes isn't initialized anywhere.
How would I fix it?
In SWEP:Initialize(), before you insert stuff into the table, put [code]if not self.FireModes then self.FireModes = {} end[/code]
Now getting this error: [code] [ERROR] addons/fas/lua/weapons/fas2_base/shared.lua:174: attempt to perform arithmetic on field 'CaseLength' (a nil value) 1. CalculateEffectiveRange - addons/fas/lua/weapons/fas2_base/shared.lua:174 2. unknown - addons/fas/lua/weapons/fas2_base/shared.lua:203 [/code]
That's also undefined, but I can't tell what it's for. I doubt all of this stuff would be left undefined; are you missing some other base file or variable setup?
I got it straight from the workshop, so I don't think so. [editline]6th September 2014[/editline] I checked and everything is there.
Sorry, you need to Log In to post a reply to this thread.