139 lines
3.2 KiB
Lua
139 lines
3.2 KiB
Lua
|
|
||
|
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
|