Custom Scoreboard For Darkrp?

How do you make a custom scoreboard for darkrp? An example for help?

**[Gamemode.ScoreboardHide

http://wiki.garrysmod.com/favicon.ico](wiki.garrysmod.com/?title=Gamemode.ScoreboardHide)**
**[Gamemode.ScoreboardShow

http://wiki.garrysmod.com/favicon.ico](wiki.garrysmod.com/?title=Gamemode.ScoreboardShow)**
for an example take a look at how garry did it in base gamemode

[lua]
/---------------------------------------------------------
Name: gamemode:ScoreboardShow( )
Desc: Sets the scoreboard to visible
---------------------------------------------------------
/
function GM:ScoreboardShow()
GAMEMODE.ShowScoreboard = true
end

/---------------------------------------------------------
Name: gamemode:ScoreboardHide( )
Desc: Hides the scoreboard
---------------------------------------------------------
/
function GM:ScoreboardHide()
GAMEMODE.ShowScoreboard = false
end

// TODO: CLEAN THIS CODE

function GM:GetTeamScoreInfo()

local TeamInfo = {}

for id,pl in pairs( player.GetAll() ) do

	local _team = pl:Team()
	local _frags = pl:Frags()
	local _deaths = pl:Deaths()
	local _ping = pl:Ping()
	
	if (not TeamInfo[_team]) then
		TeamInfo[_team] = {}
		TeamInfo[_team].TeamName = team.GetName( _team )
		TeamInfo[_team].Color = team.GetColor( _team )
		TeamInfo[_team].Players = {}
	end		
	
	local PlayerInfo = {}
	PlayerInfo.Frags = _frags
	PlayerInfo.Deaths = _deaths
	PlayerInfo.Score = _frags - _deaths
	PlayerInfo.Ping = _ping
	PlayerInfo.Name = pl:Nick()
	PlayerInfo.PlayerObj = pl
	
	local insertPos = #TeamInfo[_team].Players + 1
	for idx,info in pairs(TeamInfo[_team].Players) do
		if (PlayerInfo.Frags > info.Frags) then
			insertPos = idx
			break
		elseif (PlayerInfo.Frags == info.Frags) then
			if (PlayerInfo.Deaths < info.Deaths) then
				insertPos = idx
				break
			elseif (PlayerInfo.Deaths == info.Deaths) then
				if (PlayerInfo.Name < info.Name) then
					insertPos = idx
					break
				end
			end
		end
	end
	
	table.insert(TeamInfo[_team].Players, insertPos, PlayerInfo)
end

return TeamInfo

end

function GM:HUDDrawScoreBoard()

if (!GAMEMODE.ShowScoreboard) then return end

if (GAMEMODE.ScoreDesign == nil) then

	GAMEMODE.ScoreDesign = {}
	GAMEMODE.ScoreDesign.HeaderY = 0
	GAMEMODE.ScoreDesign.Height = ScrH() / 2

end

local alpha = 255

local ScoreboardInfo = self:GetTeamScoreInfo()

local xOffset = ScrW() / 10
local yOffset = 32
local scrWidth = ScrW()
local scrHeight = ScrH() - 64
local boardWidth = scrWidth - (2* xOffset)
local boardHeight = scrHeight
local colWidth = 75

boardWidth = math.Clamp( boardWidth, 400, 600 )
boardHeight = GAMEMODE.ScoreDesign.Height

xOffset = (ScrW() - boardWidth) / 2.0
yOffset = (ScrH() - boardHeight) / 2.0
yOffset = yOffset - ScrH() / 4.0
yOffset = math.Clamp( yOffset, 32, ScrH() )

// Background
surface.SetDrawColor( 100, 150, 250, 200 )
surface.DrawRect( xOffset, yOffset, boardWidth, GAMEMODE.ScoreDesign.HeaderY)

surface.SetDrawColor( 150, 150, 150, 200 )
surface.DrawRect( xOffset, yOffset+GAMEMODE.ScoreDesign.HeaderY, boardWidth, boardHeight-GAMEMODE.ScoreDesign.HeaderY)

// Outline
surface.SetDrawColor( 0, 0, 0, 150 )
surface.DrawOutlinedRect( xOffset, yOffset, boardWidth, boardHeight )
surface.SetDrawColor( 0, 0, 0, 50 )
surface.DrawOutlinedRect( xOffset-1, yOffset-1, boardWidth+2, boardHeight+2 )

local hostname = GetHostName()
local gamemodeName = GAMEMODE.Name .. " - " .. GAMEMODE.Author

surface.SetTextColor( 255, 255, 255, 255 )

if ( string.len(hostname) > 32 ) then
	surface.SetFont( "ScoreboardSub" )
else
	surface.SetFont( "ScoreboardHead" )
end

local txWidth, txHeight = surface.GetTextSize( hostname )
local y = yOffset + 15
surface.SetTextPos(xOffset + (boardWidth / 2) - (txWidth/2), y)
surface.DrawText( hostname )

y = y + txHeight + 2

surface.SetTextColor( 255, 255, 255, 255 )
surface.SetFont( "ScoreboardSub" )
local txWidth, txHeight = surface.GetTextSize( gamemodeName )
surface.SetTextPos(xOffset + (boardWidth / 2) - (txWidth/2), y)
surface.DrawText( gamemodeName )

y = y + txHeight + 4
GAMEMODE.ScoreDesign.HeaderY = y - yOffset

surface.SetDrawColor( 0, 0, 0, 100 )
surface.DrawRect( xOffset, y-1, boardWidth, 1)

surface.SetDrawColor( 255, 255, 255, 20 )
surface.DrawRect( xOffset + boardWidth - (colWidth*1), y, colWidth, boardHeight-y+yOffset )

surface.SetDrawColor( 255, 255, 255, 20 )
surface.DrawRect( xOffset + boardWidth - (colWidth*3), y, colWidth, boardHeight-y+yOffset )


surface.SetFont( "ScoreboardText" )
local txWidth, txHeight = surface.GetTextSize( "W" )

surface.SetDrawColor( 0, 0, 0, 100 )
surface.DrawRect( xOffset, y, boardWidth, txHeight + 6 )

y = y + 2

surface.SetTextPos( xOffset + 16,								y)	surface.DrawText("#Name")
surface.SetTextPos( xOffset + boardWidth - (colWidth*3) + 8,	y)	surface.DrawText("#Score")
surface.SetTextPos( xOffset + boardWidth - (colWidth*2) + 8,	y)	surface.DrawText("#Deaths")
surface.SetTextPos( xOffset + boardWidth - (colWidth*1) + 8,	y)	surface.DrawText("#Ping")

y = y + txHeight + 4

local yPosition = y
for team,info in pairs(ScoreboardInfo) do
	
	local teamText = info.TeamName .. "  (" .. #info.Players .. " Players)"
	
	surface.SetFont( "ScoreboardText" )
	surface.SetTextColor( 0, 0, 0, 255 )
	
	txWidth, txHeight = surface.GetTextSize( teamText )
	surface.SetDrawColor( info.Color.r, info.Color.g, info.Color.b, 255 )
	surface.DrawRect( xOffset+1, yPosition, boardWidth-2, txHeight + 4)
	yPosition = yPosition + 2
	surface.SetTextPos( xOffset + boardWidth/2 - txWidth/2, yPosition )
	surface.DrawText( teamText )
	yPosition = yPosition + 2
					

	
	yPosition = yPosition + txHeight + 2
	
	for index,plinfo in pairs(info.Players) do
	
		surface.SetFont( "ScoreboardText" )
		surface.SetTextColor( info.Color.r, info.Color.g, info.Color.b, 200 )
		surface.SetTextPos( xOffset + 16, yPosition )
		txWidth, txHeight = surface.GetTextSize( plinfo.Name )
		
		if (plinfo.PlayerObj == LocalPlayer()) then
			surface.SetDrawColor( info.Color.r, info.Color.g, info.Color.b, 50 )
			surface.DrawRect( xOffset+1, yPosition, boardWidth - 2, txHeight + 2)
			surface.SetTextColor( info.Color.r, info.Color.g, info.Color.b, 255 )
		end
		
		
		local px, py = xOffset + 16, yPosition
		local textcolor = Color( info.Color.r, info.Color.g, info.Color.b, alpha )
		local shadowcolor = Color( 0, 0, 0, alpha * 0.8 )
		
		draw.SimpleText( plinfo.Name, "ScoreboardText", px+1, py+1, shadowcolor )
		draw.SimpleText( plinfo.Name, "ScoreboardText", px, py, textcolor )
		
		px = xOffset + boardWidth - (colWidth*3) + 8			
		draw.SimpleText( plinfo.Frags, "ScoreboardText", px+1, py+1, shadowcolor )
		draw.SimpleText( plinfo.Frags, "ScoreboardText", px, py, textcolor )
		
		px = xOffset + boardWidth - (colWidth*2) + 8			
		draw.SimpleText( plinfo.Deaths, "ScoreboardText", px+1, py+1, shadowcolor )
		draw.SimpleText( plinfo.Deaths, "ScoreboardText", px, py, textcolor )
		
		px = xOffset + boardWidth - (colWidth*1) + 8			
		draw.SimpleText( plinfo.Ping, "ScoreboardText", px+1, py+1, shadowcolor )
		draw.SimpleText( plinfo.Ping, "ScoreboardText", px, py, textcolor )
		
		//surface.DrawText( plinfo.Name )
		//surface.SetTextPos( xOffset + 16 + 2, yPosition + 2 )
		//surface.SetTextColor( 0, 0, 0, 200 )
		//surface.DrawText( plinfo.Name )

		//surface.SetTextPos( xOffset + boardWidth - (colWidth*3) + 8, yPosition )
		//surface.DrawText( plinfo.Frags )

		//surface.SetTextPos( xOffset + boardWidth - (colWidth*2) + 8, yPosition )
		//surface.DrawText( plinfo.Deaths )

		//surface.SetTextPos( xOffset + boardWidth - (colWidth*1) + 8, yPosition )
		//surface.DrawText( plinfo.Ping )

		yPosition = yPosition + txHeight + 3
	end
end

yPosition = yPosition + 8

GAMEMODE.ScoreDesign.Height = (GAMEMODE.ScoreDesign.Height * 2) + (yPosition-yOffset)
GAMEMODE.ScoreDesign.Height = GAMEMODE.ScoreDesign.Height / 3

end

[/lua]

what is the code for the color of the text? like its like 0,0,0,0. like how would I make the color plain blue?

Color is set up in this order:

Red, Green, Blue, Alpha

So you would want:

0, 0, 255, 255

Thanks Heavy your always helping me out.

Glad to be of help Slick :smiley:

Also, just in case you, or someone else who reads this does not know what “Alpha” means, it is the transparancy.

255 = No Transparancy
0 = Invisible

http://www.colorpicker.com/

Go there and find any color you want just copy down the R G and B numbers.


(User was banned for this post ("Bumping a 4 year old thread" - Swebonny))

Why did you bump a 4 year old thread that was resolved? ( Just wondering? )