• Cause of my errors?
    6 replies, posted
Is this first line the root cause of the subsequent errors? Or are they all needing to be fixed separate? [code]addons/spas/lua/weapons/weapon_real_spas/shared.lua:417: Tried to use a NULL entity! 1. SetAnimation - [C]:-1 2. CSShootBullet - addons/spas/lua/weapons/weapon_real_spas/shared.lua:417 3. RecoilPower - addons/spas/lua/weapons/weapon_real_spas/shared.lua:387 4. unknown - addons/spas/lua/weapons/weapon_real_spas/shared.lua:180[/code] swep [code] local h3 = {} h3["channel"] = CHAN_WEAPON h3["level"] = SNDLVL_GUNFIRE h3["sound"] = "weapons/spas/spas12-1.wav" h3["name"] = "Weapon_H3.Single" h3["script"] = "scripts/sounds/hl2_game_sounds_weapons.txt" local h31 = {} h31["channel"] = CHAN_ITEM h31["level"] = SNDLVL_NORM h31["sound"] = "weapons/spas/m3_insertshell.wav" h31["name"] = "Spas12.Insert" h31["script"] = "scripts/sounds/hl2_game_sounds_weapons.txt" h31["pitch"] = "95,105" sound.Add(h31) local h36 = {} h36["channel"] = CHAN_ITEM h36["level"] = SNDLVL_NORM h36["sound"] = "weapons/spas/m3_pump.wav" h36["name"] = "Spas12.Pump" h36["script"] = "scripts/sounds/hl2_game_sounds_weapons.txt" h36["pitch"] = "95,105" sound.Add(h36) sound.Add(h3) -- CAN THE SHOTGUN DESTROY DOORS WITH THE BUCKSHOT ROUNDS? 1 = YES, 0 = NO SWEP.DestroyDoor = 1 -------------------------------------------------------------------------- -- Read the weapon_real_base if you really want to know what each action does /*---------------------------------------------------------*/ local HitImpact = function(attacker, tr, dmginfo) local hit = EffectData() hit:SetOrigin(tr.HitPos) hit:SetNormal(tr.HitNormal) hit:SetScale(20) util.Effect("effect_hit", hit) return true end /*---------------------------------------------------------*/ if (SERVER) then AddCSLuaFile("shared.lua") end if (CLIENT) then SWEP.PrintName = "SPAS-12" SWEP.Author = "Buu342" SWEP.Slot = 3 SWEP.SlotPos = 1 SWEP.IconLetter = "k" SWEP.Purpose = "shooting things" killicon.AddFont("weapon_spas_12", "CSKillIcons", SWEP.IconLetter, Color( 255, 80, 0, 255 )) end /*--------------------------------------------------------- Muzzle Effect + Shell Effect ---------------------------------------------------------*/ SWEP.MuzzleEffect = "rg_muzzle_grenade" -- This is an extra muzzleflash effect -- Available muzzle effects: rg_muzzle_grenade, rg_muzzle_highcal, rg_muzzle_hmg, rg_muzzle_pistol, rg_muzzle_rifle, rg_muzzle_silenced, none SWEP.ShellEffect = "rg_shelleject_shotgun" -- This is a shell ejection effect -- Available shell eject effects: rg_shelleject, rg_shelleject_rifle, rg_shelleject_shotgun, none SWEP.MuzzleAttachment = "1" -- Should be "1" for CSS models or "muzzle" for hl2 models SWEP.ShellEjectAttachment = "2" -- Should be "2" for CSS models or "1" for hl2 models SWEP.EjectDelay = 0.53 /*-------------------------------------------------------*/ local DoorSound = Sound("physics/wood/wood_box_impact_hard3.wav") local ShotgunReloading ShotgunReloading = false SWEP.Instructions = "Buckshot Damage (Per buckshot lead): 9% \nSlug Damage (Per slug): 88% \nRecoil: 50% \nBuckshot Precision: 55% \nSlug Precision: 85% \nType: Pump-Action \n\nChange Mode: E + Right Click" SWEP.Category = "SPAS12" -- For HAXORS: feel free to change this if you want this swep in a different category SWEP.Base = "weapon_real_base_pistol" SWEP.HoldType = "shotgun" SWEP.Spawnable = true SWEP.AdminSpawnable = false SWEP.ViewModel = "models/weapons/v_spas12_shotgun.mdl" SWEP.WorldModel = "models/weapons/w_spas12_shotgun.mdl" SWEP.Primary.Sound = Sound("Weapon_H3.Single") SWEP.Primary.Recoil = 10 SWEP.Primary.Damage = 120 SWEP.Primary.NumShots = 8 SWEP.Primary.Cone = 0.045 SWEP.Primary.ClipSize = 1 SWEP.Primary.Delay = 0.95 SWEP.Primary.DefaultClip = 24 SWEP.Primary.Automatic = false SWEP.Primary.Ammo = "buckshot" SWEP.Primary.Force = 2000 SWEP.Secondary.ClipSize = -1 SWEP.Secondary.DefaultClip = -1 SWEP.Secondary.Automatic = false SWEP.Secondary.Ammo = "none" SWEP.IronSightsPos = Vector (2.8603, -1.2217, 0.8227) SWEP.IronSightsAng = Vector (1.3197, 0.0305, -0.0001) SWEP.RunArmOffset = Vector (3.8652, -2.8154, -0.3196) SWEP.RunArmAngle = Vector (-13.4962, 29.1912, -4.9571) SWEP.data = {} SWEP.mode = "burst" -- Start with the buckshot rounds SWEP.data.burst = {} -- Buckshot Rounds SWEP.data.burst.Cone = 0.045 -- Cone of the buckshot rounds SWEP.data.burst.NumShots = 8 -- 12 little leads SWEP.data.burst.Damage = 120 -- Damage of a lead SWEP.data.semi = {} -- Slug Rounds SWEP.data.semi.Cone = 0.015 -- Cone of the slug rounds SWEP.data.semi.NumShots = 8 -- 1 big lead SWEP.data.semi.Damage = 120 -- Damage of the big lead function SWEP:Initialize() automode = false end /*--------------------------------------------------------- PrimaryAttack ---------------------------------------------------------*/ function SWEP:PrimaryAttack() if self.Owner:KeyDown(IN_USE) then if automode == false then automode = true self.Owner:PrintMessage( HUD_PRINTCENTER, "Automatic Mode" ) self.Weapon:SetNextSecondaryFire(CurTime() + 1) self.Weapon:SetNextPrimaryFire(CurTime() + 1) self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_START) timer.Simple(0.3, function() self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_FINISH) end) self.Primary.Delay = 0.4 self.Primary.Cone = 1 else automode = false self.Owner:PrintMessage( HUD_PRINTCENTER, "Pump Mode" ) self.Weapon:SetNextSecondaryFire(CurTime() + 1) self.Weapon:SetNextPrimaryFire(CurTime() + 1) self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_START) timer.Simple(0.3, function() self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_FINISH) end) self.Primary.Delay = 0.95 self.Primary.Cone = 0.045 end elseif SERVER then end if !self.Owner:KeyDown(IN_USE) then if not self:CanPrimaryAttack() or self.Owner:WaterLevel() > 2 then return end -- If your gun have a problem or if you are under water, you'll not be able to fire self.Reloadaftershoot = CurTime() + self.Primary.Delay -- Set the reload after shoot to be not able to reload when firering self.Weapon:SetNextSecondaryFire(CurTime() + self.Primary.Delay) -- Set next secondary fire after your fire delay self.Weapon:SetNextPrimaryFire(CurTime() + self.Primary.Delay) -- Set next primary fire after your fire delay self.Weapon:EmitSound(self.Primary.Sound) -- Emit the gun sound when you fire self:RecoilPower() self:TakePrimaryAmmo(1) -- Take 1 ammo in you clip if ((game.SinglePlayer() and SERVER) or CLIENT) then self.Weapon:SetNetworkedFloat("LastShootTime", CurTime()) end end end /*--------------------------------------------------------- SecondaryAttack ---------------------------------------------------------*/ function SWEP:SecondaryAttack() if self.Owner:KeyDown(IN_USE) then if self.mode == "semi" then self.mode = "burst" self.Owner:PrintMessage( HUD_PRINTCENTER, "Buckshot Rounds" ) self.Weapon:SetNextSecondaryFire(CurTime() + 1) self.Weapon:SetNextPrimaryFire(CurTime() + 1) self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_START) timer.Simple(0.3, function() self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_FINISH) end) else self.mode = "semi" self.Owner:PrintMessage( HUD_PRINTCENTER, "Slug Rounds" ) self.Weapon:SetNextSecondaryFire(CurTime() + 1) self.Weapon:SetNextPrimaryFire(CurTime() + 1) self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_START) timer.Simple(0.3, function() self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_FINISH) end) end self.data[self.mode].Init(self) elseif SERVER then end end /*--------------------------------------------------------- Deploy ---------------------------------------------------------*/ function SWEP:Deploy() self.Weapon:SendWeaponAnim( ACT_VM_DRAW ) -- Set the deploy animation when deploying self:SetIronsights( false ) -- Set the ironsight mod to false self.Weapon:SetNextPrimaryFire(CurTime() + 1) -- Set the next primary fire to 1 second after deploying ShotgunReloading = false self.We
I have this issue all the time too randomly with SWEPs. I've tried to fix it in the past, but to no avail. It doesn't cause any issues.
You are trying to use a non existed entity or physobj in one of your timers. Add IsValid checks.
Hmm. Those errors seemed to not effect my game. But this error shows up for everyone as "something is creating errors" [code]Lua Error: [ERROR] addons/spas/lua/weapons/weapon_real_spas/shared.lua:433: Tried to use a NULL entity! 1. __index - [C]:-1 2. unknown - addons/spas/lua/weapons/weapon_real_spas/shared.lua:433[/code] Here is line 433, how do I add a isvalid check to that? This the swep in my OP. [code]fx:SetNormal(self.Owner:GetAimVector())[/code]
Check if the AimVector is valid with something like [code]if IsValid(self.Owner:GetAimVector()) then fx:SetNormal(self.Owner:GetAimVector()) else return end[/code]
Thanks for that. That fixed that error, but now this is showing up... [code][ERROR] addons/spas/lua/weapons/weapon_real_spas/shared.lua:267: attempt to index field 'Weapon' (a nil value) 1. unknown - addons/spas/lua/weapons/weapon_real_spas/shared.lua:267 Timer Failed! [Simple][@addons/spas/lua/weapons/weapon_real_spas/shared.lua (line 265)] C[/code] Here are lines 265-267, I'm about ready to give up on this swep.. =/ [code] timer.Simple(0.3, function() ShotgunReloading = false self.Weapon:SetNetworkedBool("reloading", true)[/code]
[QUOTE=code_gs;45050246]Check if the AimVector is valid with something like [code]if IsValid(self.Owner:GetAimVector()) then fx:SetNormal(self.Owner:GerAimVector()) else return end[/code][/QUOTE] fx:SetNormal(self.Owner:[B]Get[/B]AimVector()) [editline]10th June 2014[/editline] [QUOTE=MrTHC;45062375]Thanks for that. That fixed that error, but now this is showing up... [code][ERROR] addons/spas/lua/weapons/weapon_real_spas/shared.lua:267: attempt to index field 'Weapon' (a nil value) 1. unknown - addons/spas/lua/weapons/weapon_real_spas/shared.lua:267 Timer Failed! [Simple][@addons/spas/lua/weapons/weapon_real_spas/shared.lua (line 265)] C[/code] Here are lines 265-267, I'm about ready to give up on this swep.. =/ [code] timer.Simple(0.3, function() ShotgunReloading = false self.Weapon:SetNetworkedBool("reloading", true)[/code][/QUOTE] You don't have to use self.Weapon, you can just use self, and be sure to use IsValid(self) inside the timer in case the weapon gets removed before the timer ends.
Sorry, you need to Log In to post a reply to this thread.