• Hud Help
    11 replies, posted
So im just startin off in the lua coding world. Im trying to create a simple hud using this tutorial. [url]http://wiki.garrysmod.com/?title=Creating_a_HUD[/url] And i cant seem to get it to work! I have my lua in the cl_init.lua file and i dont even get any errors! Heres the code im working with [CODE] good_hud = { }; local function clr( color ) return color.r, color.g, color.b, color.a; end function good_hud:PaintBar( x, y, w, h, colors, value ) self:PaintPanel( x, y, w, h, colors ); x = x + 1; y = y + 1; w = w - 2; h = h - 2; local width = w * math.Clamp( value, 0, 1 ); local shade = 4; surface.SetDrawColor( clr( colors.shade ) ); surface.DrawRect( x, y, width, shade ); surface.SetDrawColor( clr( colors.fill ) ); surface.DrawRect( x, y + shade, width, h - shade ); end function good_hud:PaintPanel( x, y, w, h, colors ) surface.SetDrawColor( clr( colors.border ) ); surface.DrawOutlinedRect( x, y, w, h ); x = x + 1; y = y + 1; w = w - 2; h = h - 2; surface.SetDrawColor( clr( colors.background ) ); surface.DrawRect( x, y, w, h ); end function good_hud:PaintText( x, y, text, font, colors ) surface.SetFont( font ); surface.SetTextPos( x + 1, y + 1 ); surface.SetTextColor( clr( colors.shadow ) ); surface.DrawText( text ); surface.SetTextPos( x, y ); surface.SetTextColor( clr( colors.text ) ); surface.DrawText( text ); end [/CODE] Plz help a noob lol
Nobody knows what my problem is??
Check your console for errors. Also you can do lua_openscript_cl <path to file> in the console, and it will run the file and you will see any errors immediately below it.
There are no errors, its wierd, i have no idea what is wrong, i even copied the script just like it was on the tutorial and its not working
Here: [lua] good_hud = { }; local function clr( color ) return color.r, color.g, color.b, color.a; end function good_hud:PaintBar( x, y, w, h, colors, value ) self:PaintPanel( x, y, w, h, colors ); x = x + 1; y = y + 1; w = w - 2; h = h - 2; local width = w * math.Clamp( value, 0, 1 ); local shade = 4; surface.SetDrawColor( clr( colors.shade ) ); surface.DrawRect( x, y, width, shade ); surface.SetDrawColor( clr( colors.fill ) ); surface.DrawRect( x, y + shade, width, h - shade ); end function good_hud:PaintPanel( x, y, w, h, colors ) surface.SetDrawColor( clr( colors.border ) ); surface.DrawOutlinedRect( x, y, w, h ); x = x + 1; y = y + 1; w = w - 2; h = h - 2; surface.SetDrawColor( clr( colors.background ) ); surface.DrawRect( x, y, w, h ); end function good_hud:PaintText( x, y, text, font, colors ) surface.SetFont( font ); surface.SetTextPos( x + 1, y + 1 ); surface.SetTextColor( clr( colors.shadow ) ); surface.DrawText( text ); surface.SetTextPos( x, y ); surface.SetTextColor( clr( colors.text ) ); surface.DrawText( text ); end function good_hud:TextSize( text, font ) surface.SetFont( font ); return surface.GetTextSize( text ); end local vars = { font = "TargetID", padding = 10, margin = 35, text_spacing = 2, bar_spacing = 5, bar_height = 16, width = 0.25 }; local colors = { background = { border = Color( 190, 255, 128, 255 ), background = Color( 120, 240, 0, 75 ) }, text = { shadow = Color( 0, 0, 0, 200 ), text = Color( 255, 255, 255, 255 ) }, health_bar = { border = Color( 255, 0, 0, 255 ), background = Color( 255, 0, 0, 75 ), shade = Color( 255, 104, 104, 255 ), fill = Color( 232, 0, 0, 255 ) }, suit_bar = { border = Color( 0, 0, 255, 255 ), background = Color( 0, 0, 255, 75 ), shade = Color( 136, 136, 255, 255 ), fill = Color( 0, 0, 219, 255 ) } }; local function HUDPaint( ) client = client or LocalPlayer( ); -- set a shortcut to the client if( !client:Alive( ) ) then return; end -- don't draw if the client is dead local _, th = good_hud:TextSize( "TEXT", vars.font ); -- get text size( height in this case ) local i = 2; -- shortcut to how many items( bars + text ) we have local width = vars.width * ScrW( ); -- calculate width local bar_width = width - ( vars.padding * i ); -- calculate bar width and element height local height = ( vars.padding * i ) + ( th * i ) + ( vars.text_spacing * i ) + ( vars.bar_height * i ) + vars.bar_spacing; local x = vars.margin; -- get x position of element local y = ScrH( ) - vars.margin - height; -- get y position of element local cx = x + vars.padding; -- get x and y of contents local cy = y + vars.padding; good_hud:PaintPanel( x, y, width, height, colors.background ); -- paint the background panel local by = th + vars.text_spacing; -- calc text position local text = string.format( "Health: %iHP", client:Health( ) ); -- get health text good_hud:PaintText( cx, cy, text, vars.font, colors.text ); -- paint health text and health bar good_hud:PaintBar( cx, cy + by, bar_width, vars.bar_height, colors.health_bar, client:Health( ) / 100 ); by = by + vars.bar_height + vars.bar_spacing; -- increment text position local text = string.format( "Suit: %iSP", client:Armor( ) ); -- get suit text good_hud:PaintText( cx, cy + by, text, vars.font, colors.text ); -- paint suit text and suit bar good_hud:PaintBar( cx, cy + by + th + vars.text_spacing, bar_width, vars.bar_height, colors.suit_bar, client:Armor( ) / 100 ); end hook.Add( "HUDPaint", "PaintOurHud", HUDPaint ); [/lua] [URL]http://wiki.garrysmod.com/?title=Creating_a_HUD[/URL] Good luck.
[QUOTE=WarJunky;19995244]So im just startin off in the lua coding world. Im trying to create a simple hud using this tutorial.[/QUOTE] You shouldnt start coding by doing a HUD. GUI programing is one the difficulest thing to do in gmod, especially when you start coding. You should start by doing SWeps and SEnts.
[QUOTE=bilbasio;20007048]You [b]shouldn't[/b] start coding by doing a HUD. GUI [b]programming[/b] is one [b]of[/b] the [b]more difficult[/b] [b]things[/b] to do in [b]Garrysmod[/b], especially when you start coding. You should start by doing SWeps and SEnts.[/QUOTE]
I disagree Bilbasio. The first script I ever made was a GUI, it's a lot easier to understand than SWeps and SEnts.
[QUOTE=CowThing;20009207]I disagree Bilbasio. The first script I ever made was a GUI, it's a lot easier to understand than SWeps and SEnts.[/QUOTE] I disagree with Bilbasio too. GUI's are pretty easy to make.
It is easy to create a GUI, It takes a little more effort to make it well.
Null, thanks for correcting me, and by meaning a GUI, I was meaning coding a HUD. Coding a HUD is for me one of the difficulest thing to do. As you said it takes more times, but it takes alot more knowledge.
thanks for all the help guys, if anyone has any tips for a starter lua let me know plz Thanks again
Sorry, you need to Log In to post a reply to this thread.