• Help with EXPPlus
    9 replies, posted
Alright well iv been getting this error [lua]Warning: vgui.Create failed to create the VGUI component (DFrame) [autorun\client\exp_hud.lua:77] attempt to index local 'frame' (a nil value) [lua] From this: [lua]function TargetScreen() local frame = vgui.Create( "DFrame" ) frame:SetPos(50,50) frame:SetSize(125,130) frame:ShowCloseButton(false) frame:SetTitle("Leveling System") frame.Paint = function() draw.RoundedBox(0,0,0,frame:GetWide(),frame:GetTall(),Color(0,0,0,200)) if tar:EntIndex() == 0 then return end if tar:IsPlayer() then draw.DrawText(tar:Name(),"ScoreboardText",frame:GetWide()/2,1,color_white,1) else draw.DrawText(tar:GetClass(),"ScoreboardText",frame:GetWide()/2,1,color_white,1) end end hook.Add("Think","FrameVisible",function() if !tar or !frame then return end if frame and tar:EntIndex() == 0 then frame:SetVisible(false) end if frame and tar:EntIndex() != 0 then frame:SetVisible(true) end end) local mdl = vgui.Create("DModelPanel",frame) mdl:SetPos(5,10) mdl:SetSize(frame:GetWide()-10,frame:GetTall()-15) mdl:SetAnimSpeed(1) local function ModelSet(mdlname) mdl:SetModel(mdlname) local prop = ents.Create("prop_physics") prop:SetModel(mdlname) if tar:IsPlayer() or tar:IsNPC() then function mdl:LayoutEntity(Entity) self:RunAnimation() Entity:SetAngles( Angle( 0, math.fmod(CurTime(),360)*50, 0) ) end else function mdl:LayoutEntity(Entity) Entity:SetAngles( Angle( 0, math.fmod(CurTime(),360)*50, 0) ) end end mdl:SetCamPos(prop:OBBCenter()-Vector(prop:BoundingRadius()*2,0,-prop:BoundingRadius()/13)) mdl:SetLookAt(prop:OBBCenter()-Vector(0,0,-prop:BoundingRadius()/13)) prop:Remove() end local changed = false mdl.Think = function() if tar then if tar:EntIndex() != 0 and changed == false then ModelSet(tar:GetModel()) changed = true elseif tar:EntIndex() == 0 or tar:GetModel() != mdl:GetEntity():GetModel() then changed = false end end end concommand.Add("debug",function() if frame then frame:Close() end end) end [/lua] On line 77. I from my perspective dont see a problem with it. If someone can help me out that would be great.
Where is line 77?
The code you gave us doesn't have a line 77 or create a DPanel... ? Edit: Ninja'd
[QUOTE=.\\Shadow};36907908]The code you gave us doesn't have a line 77 or create a DPanel... ? Edit: Ninja'd[/QUOTE] sorry XD its in line 1 and 2 and its DFrame XD forgot to edit the post
Unless you modified the DFrame in some way (as in recreating "DFrame", not changing the title and etc), it shouldn't give you an error when trying to create it. Edit: Actually, I assume the function is called right when the file is loaded? Put it in an initialize hook, it seems vgui doesn't want to create if you load it too early on the client.
i did and it didnt work -__- is it me or the server?
Try InitPostEntity.
change this: [lua]function TargetScreen() local frame = vgui.Create( "DFrame" )[/lua] to [lua]local frame function TargetScreen() frame = vgui.Create( "DFrame" ) [/lua]
[QUOTE=G4MB!T;36916306]change this: [lua]function TargetScreen() local frame = vgui.Create( "DFrame" )[/lua] to [lua]local frame function TargetScreen() frame = vgui.Create( "DFrame" ) [/lua][/QUOTE] I tried that but got this [code][autorun\client\exp_hud.lua:78] attempt to index upvalue 'frame' (a nil value)[/code]
ok Heres the code so that everyone can see what i am [lua]include("server/exp_settings.lua") include("server/exp_powerups.lua") local x,y,w,h local exp2 = LocalPlayer():GetNWInt("Exp") local a = 255 local b = 255 local skkw,skkh = 570,70 if barpos == 0 then x,y,w,h = 10,40,ScrW()-20,20 elseif barpos == 1 then x,y,w,h = 35,ScrH()-120,200,20 end local keys = {} if not file.Exists("exp_prefs.txt") then keys = { {38,1}, {39,2}, {40,3}, {41,4}, {42,5}, {43,6}, {44,7}, {45,8}, {46,9}, } file.Write("exp_prefs.txt",glon.encode(keys)) else keys = glon.decode(file.Read("exp_prefs.txt")) end local function DrawSkillsBar(skw,skh,sky) surface.SetDrawColor(0,0,0,255) surface.DrawRect(ScrW()/2-skw/2,sky,skw,skh) for k,v in ipairs(skills) do surface.SetDrawColor(255,255,255,255) surface.SetTexture(surface.GetTextureID("vgui/swepicon")) if k <= 8 then surface.DrawTexturedRect(ScrW()/2-skw/2+(k-1)*72+5,sky+5,55,skh-20) draw.DrawText(v.Name.." ("..k..")","Default",ScrW()/2-skw/2+(k-1)*72+30,sky+skh-15,Color(255,255,255,255),1) end end end local CircleMat = Material( "SGM/playercircle" ); tar = LocalPlayer() usermessage.Hook("exp_target",function(um) //if tar then tar:SetColor(255,255,255,255) end tar = um:ReadEntity() // tar:SetColor(255,0,0,255) end) /* hook.Add("HUDPaint","DrawTarget",function() if tar and tar:EntIndex() != 0 then LocalPlayer():ChatPrint(tostring(tar:GetPos())) //if (tar:IsPlayer() and !tar:Alive()) then return end local trace = {} trace.start = tar:GetPos() + Vector(0,0,50) trace.endpos = trace.start + Vector(0,0,-300) trace.filter = tar local tr = util.TraceLine( trace ) if not tr.HitWorld then tr.HitPos = tar:GetPos() end local color = Color(255,0,0,40) render.SetMaterial( CircleMat ) render.DrawQuadEasy( tr.HitPos + tr.HitNormal, tr.HitNormal, 24, 24, color ) end end) */ // TARGETING SCREEN local function TargetScreen() local frame = vgui.Create("DFrame") frame:SetPos(0,0) frame:SetSize(125,130) frame:ShowCloseButton(false) frame:SetTitle("") frame.Paint = function() draw.RoundedBox(0,0,0,frame:GetWide(),frame:GetTall(),Color(0,0,0,200)) if tar:EntIndex() == 0 then return end if tar:IsPlayer() then draw.DrawText(tar:Name(),"ScoreboardText",frame:GetWide()/2,1,color_white,1) else draw.DrawText(tar:GetClass(),"ScoreboardText",frame:GetWide()/2,1,color_white,1) end end hook.Add("Think","FrameVisible",function() if !tar or !frame then return end if frame and tar:EntIndex() == 0 then frame:SetVisible(false) end if frame and tar:EntIndex() != 0 then frame:SetVisible(true) end end) local mdl = vgui.Create("DModelPanel",frame) mdl:SetPos(5,10) mdl:SetSize(frame:GetWide()-10,frame:GetTall()-15) mdl:SetAnimSpeed(1) local function ModelSet(mdlname) mdl:SetModel(mdlname) local prop = ents.Create("prop_physics") prop:SetModel(mdlname) if tar:IsPlayer() or tar:IsNPC() then function mdl:LayoutEntity(Entity) self:RunAnimation() Entity:SetAngles( Angle( 0, math.fmod(CurTime(),360)*50, 0) ) end else function mdl:LayoutEntity(Entity) Entity:SetAngles( Angle( 0, math.fmod(CurTime(),360)*50, 0) ) end end mdl:SetCamPos(prop:OBBCenter()-Vector(prop:BoundingRadius()*2,0,-prop:BoundingRadius()/13)) mdl:SetLookAt(prop:OBBCenter()-Vector(0,0,-prop:BoundingRadius()/13)) prop:Remove() end local changed = false mdl.Think = function() if tar then if tar:EntIndex() != 0 and changed == false then ModelSet(tar:GetModel()) changed = true elseif tar:EntIndex() == 0 or tar:GetModel() != mdl:GetEntity():GetModel() then changed = false end end end concommand.Add("debug",function() if frame then frame:Close() end end) end TargetScreen() hook.Add("HUDPaint", "ExpHud", function() local exp = LocalPlayer():GetNWInt("Exp") local cur = LocalPlayer():GetNWInt("CurLevel") local new = LocalPlayer():GetNWInt("NextLevel") local lvl = LocalPlayer():GetNWInt("LevelNum") if LocalPlayer():Alive() then // Draw the Experience bar surface.SetTexture(surface.GetTextureID("vgui/alpha-back")) surface.SetDrawColor(0,0,0,a) surface.DrawOutlinedRect(x,y,w,h) surface.SetDrawColor(200,0,0,a) surface.DrawRect(x+1.2,y+1.2,w*((exp-cur)/(new-cur))-2,h-2) draw.DrawText("Level "..lvl,"ScoreboardText",x+w/2,y-20,Color(255,255,255,a),1) draw.DrawText(exp.."/"..new,"ScoreboardText",x+w/2,y+1,Color(0,0,0,a),1) // Make it fade if exp2 != exp then a,b = 255,fadetime+CurTime() end if b < CurTime() and fadeon == 1 then a = math.Clamp(a - 150*FrameTime(),0,255) end // Draw the skills bar //DrawSkillsBar(skkw,skkh,25) end exp2 = LocalPlayer():GetNWInt("Exp") end) local blind,freeze,choke,curtime = false,false,false,SysTime() usermessage.Hook("exp_blind",function(u) blind= u:ReadBool() curtime = SysTime() end ) usermessage.Hook("exp_freeze",function(u) freeze = u:ReadBool() curtime = SysTime() end) usermessage.Hook("exp_choke",function(u) choke = u:ReadBool() curtime = SysTime() end) hook.Add( "HUDPaint", "exp_blindpaint", function() if blind then draw.RoundedBox(0,0,0,ScrW(),ScrH(),Color(0,0,0,255)) draw.DrawText("You were blinded for 10 seconds!","ScoreboardText",ScrW()/2,ScrH()/2,Color(255,255,255,255),1) draw.RoundedBox(0,ScrW()/2-200,ScrH()/2+20,400,25,color_white) draw.RoundedBox(0,ScrW()/2-198,ScrH()/2+22,396,21,color_black) draw.RoundedBox(0,ScrW()/2-198,ScrH()/2+22,396*((SysTime()-curtime)/10),21,Color(255,0,0)) elseif freeze then draw.RoundedBox(0,0,0,ScrW(),ScrH(),Color(0,0,200,100)) elseif choke then draw.RoundedBox(0,0,0,ScrW(),ScrH(),Color(200,0,0,100)) end end ) local function GetSkillName(str) local ret = "" for k,v in ipairs(string.Explode("_",str)) do if k != table.Count(string.Explode("_",str)) then ret = ret ..string.upper(string.Left(v,1))..string.Right(v,string.len(v)-1).. " " else ret = ret ..string.upper(string.Left(v,1))..string.Right(v,string.len(v)-1) end end return ret end local function ExpMenu() local framex,framey = 600,600 local frame = vgui.Create("DFrame") frame:SetSize(framex,framey) frame:Center() frame:MakePopup() frame:SetTitle("") frame.Paint = function() draw.RoundedBox(3,0,0,frame:GetWide(),frame:GetTall(),Color(0,0,0,200)) draw.DrawText("ExpPlus Menu","ScoreboardText",frame:GetWide()/2,5,color_white,1) end local sheet = vgui.Create("DPropertySheet",frame) sheet:SetPos(10,30) sheet:SetSize(framex-20,framey-40) local invpanel = vgui.Create("DPanel",sheet) invpanel:SetPos(5,5) invpanel:SetSize(sheet:GetWide()-10,sheet:GetTall()-10) invpanel.Paint = function() surface.SetDrawColor(50,50,50,255) surface.DrawRect(0,0,invpanel:GetWide(),invpanel:GetTall()) end local invlist = vgui.Create("DPanelList",invpanel) invlist:SetPos(5,5) invlist:SetSize(invpanel:GetWide()-10,invpanel:GetTall()-100) invlist:EnableHorizontal(true) invlist:EnableVerticalScrollbar(true) invlist:SetSpacing(5) invlist:SetPadding(5) local invbar = vgui.Create("DPanelList",invpanel) invbar:SetPos(5,invpanel:GetTall()-(invpanel:GetTall()-invlist:GetTall())) invbar:SetSize(invpanel:GetWide()-10,invpanel:GetTall()-invlist:GetTall()-5) invbar:SetSpacing(5) invbar:SetPadding(15) invbar:EnableHorizontal(true) local function GetXY(panel,x) local a,b = panel:GetPos() if x == true then return a else return b end end local selected = nil local function SkillPanel(sk) local skpanel = vgui.Create("DPanel",invlist) local img = vgui.Create("DImage",skpanel) if sk.Tex and sk.Tex != "" then img:SetImage(sk.Tex) else img:SetImage("vgui/swepicon") end skpanel:SetSize(invlist:GetWide()/3-10,80) img:SetPos(10,10) img:SetSize(60,60) function skpanel:Paint() draw.DrawText(GetSkillName(sk.Name),"ScoreboardText",(skpanel:GetWide()-img:GetWide()-10)/2+img:GetWide()+10,20,Color(255,2
Sorry, you need to Log In to post a reply to this thread.