• DarkRP HUD - HELP!
    6 replies, posted
I've recently noticed that my servers current HUD creates the following error. This usually occurs only when there are multiple people on the server: [url]http://gyazo.com/54ddfdf3d74b39867fdd97b9ab242758[/url] Is there a way to fix this without getting an entirely different HUD? Here is the hud.lua [CODE]/*--------------------------------------------------------------------------- HUD ConVars ---------------------------------------------------------------------------*/ local ConVars = {} local HUDWidth local HUDHeight local Color = Color local cvars = cvars local draw = draw local GetConVar = GetConVar local Lerp = Lerp local localplayer local pairs = pairs local SortedPairs = SortedPairs local string = string local surface = surface local table = table local tostring = tostring CreateClientConVar("weaponhud", 0, true, false) local function ReloadConVars() ConVars = { background = {0,0,0,100}, Healthbackground = {0,0,0,200}, Healthforeground = {140,0,0,180}, HealthText = {255,255,255,200}, Job1 = {0,0,150,200}, Job2 = {0,0,0,255}, salary1 = {0,150,0,200}, salary2 = {0,0,0,255} } for name, Colour in pairs(ConVars) do ConVars[name] = {} for num, rgb in SortedPairs(Colour) do local CVar = GetConVar(name..num) or CreateClientConVar(name..num, rgb, true, false) table.insert(ConVars[name], CVar:GetInt()) if not cvars.GetConVarCallbacks(name..num, false) then cvars.AddChangeCallback(name..num, function() timer.Simple(0,ReloadConVars) end) end end ConVars[name] = Color(unpack(ConVars[name])) end HUDWidth = (GetConVar("HudW") or CreateClientConVar("HudW", 240, true, false)):GetInt() HUDHeight = (GetConVar("HudH") or CreateClientConVar("HudH", 115, true, false)):GetInt() if not cvars.GetConVarCallbacks("HudW", false) and not cvars.GetConVarCallbacks("HudH", false) then cvars.AddChangeCallback("HudW", function() timer.Simple(0,ReloadConVars) end) cvars.AddChangeCallback("HudH", function() timer.Simple(0,ReloadConVars) end) end end ReloadConVars() local function formatNumber(n) if not n then return "" end if n >= 1e14 then return tostring(n) end n = tostring(n) local sep = sep or "," local dp = string.find(n, "%.") or #n+1 for i=dp-4, 1, -3 do n = n:sub(1, i) .. sep .. n:sub(i+1) end return n end local Scrw, Scrh, RelativeX, RelativeY /*--------------------------------------------------------------------------- HUD Seperate Elements ---------------------------------------------------------------------------*/ local Health = 0 local function DrawHealth() Health = math.min(100, (Health == localplayer:Health() and Health) or Lerp(0.1, Health, localplayer:Health())) local DrawHealth = math.Min(Health / GAMEMODE.Config.startinghealth, 1) local Border = math.Min(6, math.pow(2, math.Round(3*DrawHealth))) draw.RoundedBox(Border, RelativeX + 4, RelativeY - 30, HUDWidth - 8, 20, ConVars.Healthbackground) draw.RoundedBox(Border, RelativeX + 5, RelativeY - 29, (HUDWidth - 9) * DrawHealth, 18, ConVars.Healthforeground) draw.DrawText(math.Max(0, math.Round(localplayer:Health())), "DarkRPHUD2", RelativeX + 4 + (HUDWidth - 8)/2, RelativeY - 32, ConVars.HealthText, 1) -- Armor local armor = localplayer:Armor() if armor ~= 0 then draw.RoundedBox(2, RelativeX + 4, RelativeY - 15, (HUDWidth - 8) * armor / 100, 5, Color(0, 0, 255, 255)) end end local function DrawInfo() local Salary = DarkRP.getPhrase("salary", GAMEMODE.Config.currency, (localplayer:getDarkRPVar("salary") or 0)) local JobWallet = { DarkRP.getPhrase("job", localplayer:getDarkRPVar("job") or ""), "\n", DarkRP.getPhrase("wallet", GAMEMODE.Config.currency, formatNumber(localplayer:getDarkRPVar("money") or 0)) } JobWallet = table.concat(JobWallet) local wep = localplayer:GetActiveWeapon() if IsValid(wep) and GAMEMODE.Config.weaponhud then local name = wep:GetPrintName(); draw.DrawText("Weapon: "..name, "UiBold", RelativeX + 5, RelativeY - HUDHeight - 18, Color(255, 255, 255, 255), 0) end draw.DrawText(Salary, "DarkRPHUD2", RelativeX + 5, RelativeY - HUDHeight + 6, ConVars.salary1, 0) draw.DrawText(Salary, "DarkRPHUD2", RelativeX + 4, RelativeY - HUDHeight + 5, ConVars.salary2, 0) surface.SetFont("DarkRPHUD2") local w, h = surface.GetTextSize(Salary) draw.DrawText(JobWallet, "DarkRPHUD2", RelativeX + 5, RelativeY - HUDHeight + h + 6, ConVars.Job1, 0) draw.DrawText(JobWallet, "DarkRPHUD2", RelativeX + 4, RelativeY - HUDHeight + h + 5, ConVars.Job2, 0) end local Page = Material("icon16/page_white_text.png") local function GunLicense() if localplayer:getDarkRPVar("HasGunlicense") then surface.SetMaterial(Page) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(RelativeX + HUDWidth, ScrH() - 34, 32, 32) end end local function Agenda() local DrawAgenda, AgendaManager = DarkRPAgendas[localplayer:Team()], localplayer:Team() if not DrawAgenda then for k,v in pairs(DarkRPAgendas) do if table.HasValue(v.Listeners or {}, localplayer:Team()) then DrawAgenda, AgendaManager = DarkRPAgendas[k], k break end end end if DrawAgenda then draw.RoundedBox(10, 10, 10, 460, 110, Color(0, 0, 0, 155)) draw.RoundedBox(10, 12, 12, 456, 106, Color(51, 58, 51,100)) draw.RoundedBox(10, 12, 12, 456, 20, Color(0, 0, 70, 100)) draw.DrawText(DrawAgenda.Title, "DarkRPHUD1", 30, 12, Color(255,0,0,255),0) local AgendaText = {} for k,v in pairs(team.GetPlayers(AgendaManager)) do if not v.DarkRPVars then continue end table.insert(AgendaText, v:getDarkRPVar("agenda")) end local text = table.concat(AgendaText, "\n") text = text:gsub("//", "\n"):gsub("\\n", "\n") text = GAMEMODE:TextWrap(text, "DarkRPHUD1", 440) draw.DrawText(text, "DarkRPHUD1", 30, 35, Color(255,255,255,255),0) end end local VoiceChatTexture = surface.GetTextureID("voice/icntlk_pl") local function DrawVoiceChat() if localplayer.DRPIsTalking then local chbxX, chboxY = chat.GetChatBoxPos() local Rotating = math.sin(CurTime()*3) local backwards = 0 if Rotating < 0 then Rotating = 1-(1+Rotating) backwards = 180 end surface.SetTexture(VoiceChatTexture) surface.SetDrawColor(ConVars.Healthforeground) surface.DrawTexturedRectRotated(ScrW() - 100, chboxY, Rotating*96, 96, backwards) end end local function LockDown() local chbxX, chboxY = chat.GetChatBoxPos() if util.tobool(GetConVarNumber("DarkRP_LockDown")) then local cin = (math.sin(CurTime()) + 1) / 2 local chatBoxSize = math.floor(ScrH() / 4) draw.DrawText(DarkRP.getPhrase("lockdown_started"), "ScoreboardSubtitle", chbxX, chboxY + chatBoxSize, Color(cin * 255, 0, 255 - (cin * 255), 255), TEXT_ALIGN_LEFT) end end local Arrested = function() end usermessage.Hook("GotArrested", function(msg) local StartArrested = CurTime() local ArrestedUntil = msg:ReadFloat() Arrested = function() if CurTime() - StartArrested <= ArrestedUntil and localplayer:getDarkRPVar("Arrested") then draw.DrawText(DarkRP.getPhrase("youre_arrested", math.ceil(ArrestedUntil - (CurTime() - StartArrested))), "DarkRPHUD1", ScrW()/2, ScrH() - ScrH()/12, Color(255,255,255,255), 1) elseif not localplayer:getDarkRPVar("Arrested") then Arrested = function() end end end end) local AdminTell = function() end usermessage.Hook("AdminTell", function(msg) local Message = msg:ReadString() AdminTell = function() draw.RoundedBox(4, 10, 10, ScrW() - 20, 100, Color(0, 0, 0, 200)) draw.DrawText(DarkRP.getPhrase("listen_up"), "GModToolName", ScrW() / 2 + 10, 10, Color(255, 255, 255, 255), 1) draw.DrawText(Message, "ChatFont", ScrW() / 2 + 10, 80, Color(200, 30, 30, 255), 1) end timer.Simple(10, function() AdminTell = function() end end) end) /*--------------------------------------------------------------------------- Drawing the HUD elements such as Health etc. ---------------------------------------------------------------------------*/ local function DrawHUD() localplayer = loca
Where is DarkRP.getPhrase defined?
This is an older hud, you just have to readjust where darkRP pulls the phrases from, if you wait a moment, I will re do it, with the values. [b]edit:[/b] Why would you want this, it's just an outdated default hud? Just take the new one out of the GitHub for darkRP. [url]https://github.com/FPtje/DarkRP/blob/master/gamemode/client/hud.lua[/url]
[QUOTE=Koolaidmini;42209226]This is an older hud, you just have to readjust where darkRP pulls the phrases from, if you wait a moment, I will re do it, with the values. [b]edit:[/b] Why would you want this, it's just an outdated default hud? Just take the new one out of the GitHub for darkRP. [url]https://github.com/FPtje/DarkRP/blob/master/gamemode/client/hud.lua[/url][/QUOTE] Sorry, forgot to mention the other part of this hud. This hud.lua is located in lua/autorun/client [CODE]local HealthMaterial = Material("icon16/heart.png") local ArmorMaterial = Material("icon16/shield.png") local MainColorsTbl = {Color(175,255,50,255), Color(105,180,255,255), Color(255,50,50,255), Color(255,50,255,255)} local ColorSelection = 1 local function DrawCustomHUD() draw.RoundedBox( 0, 10, ScrH()-100, 220, 90, Color(30,30,30,255)) draw.RoundedBox( 0, 10, ScrH()-100, 220, 20, MainColorsTbl[ColorSelection]) draw.RoundedBox( 0, 15, ScrH()-75, 60, 60, Color(50,50,50,255)) surface.SetDrawColor(MainColorsTbl[ColorSelection].r,MainColorsTbl[ColorSelection].g,MainColorsTbl[ColorSelection].b,MainColorsTbl[ColorSelection].a) surface.DrawOutlinedRect( 10, ScrH()-100, 220, 90) LocalPlayer().DarkRPVars = LocalPlayer().DarkRPVars or {} local name = LocalPlayer().DarkRPVars.rpname or "Unnamed" local job = LocalPlayer().DarkRPVars.job or "Unasigned" local money = LocalPlayer().DarkRPVars.money or "0" local salary = LocalPlayer().DarkRPVars.salary or "0" draw.SimpleTextOutlined( "Name: "..name, "DermaDefault", 82, ScrH()-62, MainColorsTbl[ColorSelection], TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0,0,0,255)) draw.SimpleTextOutlined( "Job: "..job, "DermaDefault", 82, ScrH()-47, MainColorsTbl[ColorSelection], TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0,0,0,255)) draw.SimpleTextOutlined( "Money: "..money.."$", "DermaDefault", 82, ScrH()-32, MainColorsTbl[ColorSelection], TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0,0,0,255)) draw.SimpleTextOutlined( "Salary: "..salary.."$", "DermaDefault", 82, ScrH()-17, MainColorsTbl[ColorSelection], TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0,0,0,255)) surface.SetDrawColor(255,255,255,2555) surface.SetMaterial(HealthMaterial) surface.DrawTexturedRect( 12, ScrH()-98, 16, 16) draw.SimpleTextOutlined( LocalPlayer():Health().."HP", "DermaDefault", 30, ScrH()-97, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_LEFT, 1, Color(0,0,0,255)) surface.SetMaterial(ArmorMaterial) surface.DrawTexturedRect( 72, ScrH()-98, 16, 16) draw.SimpleTextOutlined( LocalPlayer():Armor().."%", "DermaDefault", 90, ScrH()-97, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_LEFT, 1, Color(0,0,0,255)) if !DermaShown then PlayerIcon = vgui.Create("SpawnIcon") PlayerIcon:SetPos( 15, ScrH() - 75 ) PlayerIcon:SetSize(60, 60) PlayerIcon:SetToolTip("") PlayerIcon.OnMousePressed = function() return false end PlayerIcon.OnCursorEntered = function() return false end PlayerIcon:SetModel(LocalPlayer():GetModel()) ColorButton = vgui.Create("DButton") ColorButton:SetPos( 205, ScrH() - 33 ) ColorButton:SetSize(23, 20) ColorButton:SetImage("icon16/wrench.png") ColorButton.DoClick = function() if ColorSelection < #MainColorsTbl then ColorSelection = ColorSelection + 1 elseif ColorSelection == #MainColorsTbl then ColorSelection = 1 end end ColorButton.Paint = function() surface.SetDrawColor( 60, 60, 60, 0 ) surface.DrawRect( 0, 0, ColorButton:GetWide(), ColorButton:GetTall() ) end DermaShown = true end PlayerIcon:SetModel(LocalPlayer():GetModel() or "models/props_junk/watermelon01.mdl") end hook.Add("HUDPaint", "DrawCustomHUD", DrawCustomHUD)[/CODE] [B]Edit:[/B] Also, I still get the same error using the new hud from github. Thanks for the help so far btw :)
You can't put it in autorun since it will run before DarkRP is loaded.
You turd, all you do is replace them, eg. "hud.lua" into "gamemodes/darkrp/gamemode/client"
[QUOTE=Chessnut;42212675]You can't put it in autorun since it will run before DarkRP is loaded.[/QUOTE] Ah, I see the problem! Thank you :)
Sorry, you need to Log In to post a reply to this thread.