• Clip1 a nil value
    2 replies, posted
Hi, I am making a gamemode, and I'm having a slight problem with the HUD. When the player gets killed, the console gets spammed with script errors, due to not being able to find a weapon to get the clip information from. [ERROR] gamemodes/elimination/gamemode/hud.lua:11: attempt to call method 'Clip1' (a nil value) Here's the code for the HUD. It's very basic at the moment as I'm just using it as a place holder while I test a few things. [code] local HudsToHide = {"CHudHealth","CHudBattery","CHudAmmo"} function HUDHide(EliminationHud) if table.HasValue(HudsToHide, EliminationHud) then return false end end hook.Add("HUDShouldDraw", "HudHide", HUDHide) surface.CreateFont("CustomFont", {font="ScoreboardText", size=40, weight=250}) function GM:HUDPaint( ply ) local HP = LocalPlayer():Health() local Ammo_Primary = LocalPlayer():GetActiveWeapon():Clip1() surface.SetTextColor(255, 255, 255, 255) //RGB, Transparency surface.SetTextPos(20, 1025) surface.SetFont("CustomFont") surface.DrawText("HP: ") surface.DrawText(tostring(HP)) surface.SetTextColor(255, 255, 255, 255) //RGB, Transparency surface.SetTextPos(1700, 1025) surface.SetFont("CustomFont") surface.DrawText("Cash: ") surface.DrawText(tostring(LocalPlayer():GetMoney())) surface.SetTextColor(255, 255, 255, 255) //RGB, Transparency surface.SetTextPos(1700, 970) //Width x Height surface.SetFont("CustomFont") surface.DrawText("XP: 0/100") //surface.DrawText(tostring(localplayer():GetXP())) surface.SetTextColor(255, 255, 255, 255) //RGB, Transparency surface.SetTextPos(20, 970) //Width x Height surface.SetFont("CustomFont") surface.DrawText("Ammo: ") surface.DrawText(tostring(Ammo_Primary)) end [/code] Any help is appreciated.
Do an IsValid check on LocalPlayer():GetActiveWeapon().
I fixed it now. I just realized I forgot to define when player dies and it switches to camera, to return false. Here's the code if anyone else has this issue. [code] local client = LocalPlayer() if not client:Alive() then return end if (client:GetActiveWeapon() == NULL or client:GetActiveWeapon() == "Camera") then return end [/code]
Sorry, you need to Log In to post a reply to this thread.