this is my code:
function CyberpunkUIShape( leftx, downy, fillcolor, linecolor, wid, hei, bendsize, offset, identifier )
local trapezoidbg = {
{ x = leftx+bendsize, y = downy-hei }, -- top left
{ x = leftx , y = downy }, -- down left
{ x = leftx+wid, y = downy }, -- down right
{ x = leftx+wid+bendsize, y = downy-hei } -- top right
}
-- print("hehe")
local function HUDPaint()
surface.SetDrawColor(fillcolor)
surface.DrawPoly( trapezoidbg )
surface.SetDrawColor(linecolor)
surface.DrawLine(leftx+bendsize+offset, downy-hei+offset, leftx+wid+bendsize-offset-2, downy-hei+offset) -- top
surface.DrawLine(leftx+offset+1, downy-offset-1, leftx+wid-offset, downy-offset-1) -- down
surface.DrawLine(leftx+bendsize+offset, downy-hei+offset, leftx+offset+1, downy-offset) -- left
surface.DrawLine(leftx+wid+bendsize-offset-2, downy-hei+offset, leftx+wid-offset-1, downy-offset)
end
hook.Add("HUDPaint", "identifier" , HUDPaint)
end
CyberpunkUIShape(25, h-75, BGColor, AccentColor, 229, 30, 8, 2, armor)
-- CyberpunkUIShape(665, h-75, BGColor, AccentColor, 229, 30, 8, 2, health)
i can't call two "CyberpunkUIShape" Functions at same time, this is current code output: image
but when i uncomment the second function call, this is output: image
there should be 2 shapes at same time, but only second shape works and first one disappears. so, i realized if a hook.Add repeats with same identifier, the last call will work and others will get ignored, so i added an argument to seperate their identifiers. one for health, with "health" identifier, and one for armor, with "armor" identifier.
so, i tried to edit the hook.Add to this: hook.Add("HUDPaint", identifier , HUDPaint)
and these errors:
[cyberpunk_hud] bad argument #2 to 'Add' (string expected, got nil)
1. Add - lua/includes/modules/hook.lua:34
2. CyberpunkUIShape - addons/cyberpunk_hud/lua/autorun/cyberpunk_hud.lua:502
3. v - addons/cyberpunk_hud/lua/autorun/cyberpunk_hud.lua:504
4. unknown - lua/includes/modules/hook.lua:96
[cyberpunk_hud] bad argument #2 to 'Add' (string expected, got nil)
1. Add - lua/includes/modules/hook.lua:34
2. CyberpunkUIShape - addons/cyberpunk_hud/lua/autorun/cyberpunk_hud.lua:502
3. v - addons/cyberpunk_hud/lua/autorun/cyberpunk_hud.lua:505
4. unknown - lua/includes/modules/hook.lua:96
i just want that hook.Add use a function argument. please help. thx
When you write "identifier" it means the string saying the word 'identifier'. When you write identifier it means the variable called 'identifier'.
I wrote CyberpunkUIShape(25, h-75, BGColor, AccentColor, 229, 30, 8, 2, "armor")
and fixed. thx (added " s around the armor)