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.