139 lines
3.2 KiB
Lua
Raw Normal View History

2019-05-28 09:16:53 +02:00
include( "vgui/vgui_scoreboard.lua" )
function GM:GetScoreboard()
if ( IsValid( g_ScoreBoard ) ) then
g_ScoreBoard:Remove()
end
g_ScoreBoard = vgui.Create( "FrettaScoreboard" )
self:CreateScoreboard( g_ScoreBoard )
return g_ScoreBoard
end
function GM:ScoreboardShow()
GAMEMODE:GetScoreboard():SetVisible( true )
GAMEMODE:PositionScoreboard( GAMEMODE:GetScoreboard() )
end
function GM:ScoreboardHide()
GAMEMODE:GetScoreboard():SetVisible( false )
end
function GM:AddScoreboardAvatar( ScoreBoard )
local f = function( ply )
local av = vgui.Create( "AvatarImage", ScoreBoard )
av:SetSize( 32, 32 )
av:SetPlayer( ply )
av.Click = function()
print( "LOL" )
end
return av
end
ScoreBoard:AddColumn( "", 32, f, 360 ) // Avatar
end
function GM:AddScoreboardSpacer( ScoreBoard, iSize )
ScoreBoard:AddColumn( "", 16 )
end
function GM:AddScoreboardName( ScoreBoard )
local f = function( ply ) return ply:Name() end
ScoreBoard:AddColumn( "Name", nil, f, 10, nil, 4, 4 )
end
function GM:AddScoreboardKills( ScoreBoard )
local f = function( ply ) return ply:Frags() end
ScoreBoard:AddColumn( "Kills", 40, f, 0.5, nil, 6, 6 )
end
function GM:AddScoreboardDeaths( ScoreBoard )
local f = function( ply ) return ply:Deaths() end
ScoreBoard:AddColumn( "Deaths", 60, f, 0.5, nil, 6, 6 )
end
function GM:AddScoreboardPing( ScoreBoard )
local f = function( ply ) return ply:ScoreboardPing() end
ScoreBoard:AddColumn( "Ping", 40, f, 0.1, nil, 6, 6 )
end
// THESE SHOULD BE THE ONLY FUNCTION YOU NEED TO OVERRIDE
function GM:PositionScoreboard( ScoreBoard )
if ( GAMEMODE.TeamBased ) then
ScoreBoard:SetSize( ScrW()/1.2, ScrH() - 50 )
ScoreBoard:SetPos( (ScrW() - ScoreBoard:GetWide()) * 0.5, 25 )
else
ScoreBoard:SetSize( 420, ScrH() - 64 )
ScoreBoard:SetPos( (ScrW() - ScoreBoard:GetWide()) / 2, 32 )
end
end
function GM:AddScoreboardWantsChange( ScoreBoard )
local f = function( ply )
if ( ply:GetNWBool( "WantsVote", false ) ) then
local lbl = vgui.Create( "DLabel" )
lbl:SetFont( "Marlett" )
lbl:SetText( "a" )
lbl:SetTextColor( Color( 100, 255, 0 ) )
lbl:SetContentAlignment( 5 )
return lbl
end
end
ScoreBoard:AddColumn( "", 16, f, 2, nil, 6, 6 )
end
function GM:CreateScoreboard( ScoreBoard )
// This makes it so that it's behind chat & hides when you're in the menu
// Disable this if you want to be able to click on stuff on your scoreboard
ScoreBoard:ParentToHUD()
ScoreBoard:SetRowHeight( 32 )
ScoreBoard:SetAsBullshitTeam( TEAM_SPECTATOR )
ScoreBoard:SetAsBullshitTeam( TEAM_CONNECTING )
ScoreBoard:SetShowScoreboardHeaders( GAMEMODE.TeamBased )
if ( GAMEMODE.TeamBased ) then
ScoreBoard:SetAsBullshitTeam( TEAM_UNASSIGNED )
ScoreBoard:SetHorizontal( true )
end
ScoreBoard:SetSkin( GAMEMODE.HudSkin )
self:AddScoreboardAvatar( ScoreBoard ) // 1
self:AddScoreboardWantsChange( ScoreBoard ) // 2
self:AddScoreboardName( ScoreBoard ) // 3
self:AddScoreboardKills( ScoreBoard ) // 4
self:AddScoreboardDeaths( ScoreBoard ) // 5
self:AddScoreboardPing( ScoreBoard ) // 6
// Here we sort by these columns (and descending), in this order. You can define up to 4
ScoreBoard:SetSortColumns( { 4, true, 5, false, 3, false } )
end