• Scoreboard don't work
    8 replies, posted
Hi, I can not get the scoreboard to work, it works on sandbox gamemode, but not on custom gamemode. How do I fix this?
Uhhh, code? How are supposed to solve something if we can see what you did wrong?
[QUOTE=Robotboy655;42240902]Uhhh, code? How are supposed to solve something if we can see what you did wrong?[/QUOTE] If the code was wrong then it should not work on sandbox, but it work on sandbox but not on a custom gamemode.
[QUOTE=LeonCrop;42243147]If the code was wrong then it should not work on sandbox, but it work on sandbox but not on a custom gamemode.[/QUOTE] So we'll just guess stuff until it works? What if something in your custom gamemode is blocking something used in your scoreboard?
[QUOTE=Robotboy655;42240902]Uhhh, code? How are supposed to solve something if we can see what you did wrong?[/QUOTE] Anyway, here's the code: resource.AddFile( "materials/gui/scoreboard_header.vtf" ) resource.AddFile( "materials/gui/scoreboard_header.vmt" ) resource.AddFile( "materials/gui/scoreboard_middle.vtf" ) resource.AddFile( "materials/gui/scoreboard_middle.vmt" ) resource.AddFile( "materials/gui/scoreboard_bottom.vtf" ) resource.AddFile( "materials/gui/scoreboard_bottom.vmt" ) resource.AddFile( "materials/gui/scoreboard_ping.vtf" ) resource.AddFile( "materials/gui/scoreboard_ping.vmt" ) resource.AddFile( "materials/gui/scoreboard_frags.vtf" ) resource.AddFile( "materials/gui/scoreboard_frags.vmt" ) resource.AddFile( "materials/gui/scoreboard_skull.vtf" ) resource.AddFile( "materials/gui/scoreboard_skull.vmt" ) resource.AddFile( "materials/gui/scoreboard_playtime.vtf" ) resource.AddFile( "materials/gui/scoreboard_playtime.vmt" ) resource.AddFile( "materials/gui/scoreboard_propbrick.vtf" ) resource.AddFile( "materials/gui/scoreboard_propbrick.vmt" ) local PLUGIN = {} PLUGIN.Title = "Scoreboard" PLUGIN.Description = "Default custom scoreboard." PLUGIN.Author = "Overv" if ( CLIENT ) then PLUGIN.TexHeader = surface.GetTextureID( "gui/scoreboard_header" ) PLUGIN.TexMiddle = surface.GetTextureID( "gui/scoreboard_middle" ) PLUGIN.TexBottom = surface.GetTextureID( "gui/scoreboard_bottom" ) PLUGIN.TexPing = surface.GetTextureID( "gui/scoreboard_ping" ) PLUGIN.TexFrags = surface.GetTextureID( "gui/scoreboard_frags" ) PLUGIN.TexDeaths = surface.GetTextureID( "gui/scoreboard_skull" ) PLUGIN.TexPlaytime = surface.GetTextureID( "gui/scoreboard_playtime" ) PLUGIN.TexProps = surface.GetTextureID( "gui/scoreboard_propbrick" ) PLUGIN.Width = 687 surface.CreateFont("EvolveScoreboardHeader", { font = "coolvertica", size = 22, weight = 400, antialias = true, additive = false, }) surface.CreateFont( "ScoreboardText", { font = "coolvertica", size = 12, weight = 500, antialias = true, additive = false }) end if SERVER then timer.Simple(1, function() PLUGIN.GetCount = _R.Player.GetCount function _R.Player:GetCount(limit, minus) if limit == "props" then timer.Simple(.1, function() PLUGIN.GetCount(self, limit, 0) end) end return PLUGIN.GetCount(self, limit, minus) end end) end function PLUGIN:ScoreboardShow() if ( GAMEMODE.IsSandboxDerived and evolve.installed ) then self.DrawScoreboard = true return true end end function PLUGIN:ScoreboardHide() if ( self.DrawScoreboard ) then self.DrawScoreboard = false return true end end function PLUGIN:DrawTexturedRect( tex, x, y, w, h ) surface.SetDrawColor( 255, 255, 255, 255 ) surface.SetTexture( tex ) surface.DrawTexturedRect( x, y, w, h ) end function PLUGIN:QuickTextSize( font, text ) surface.SetFont( font ) return surface.GetTextSize( text ) end function PLUGIN:FormatTime( raw ) if ( raw < 60 ) then return math.floor( raw ) .. " secs" elseif ( raw < 3600 ) then if ( raw < 120 ) then return "1 min" else return math.floor( raw / 60 ) .. " mins" end elseif ( raw < 3600*24 ) then if ( raw < 7200 ) then return "1 hour" else return math.floor( raw / 3600 ) .. " hours" end else if ( raw < 3600*48 ) then return "1 day" else return math.floor( raw / 3600 / 24 ) .. " days" end end end function PLUGIN:DrawInfoBar() // Background surface.SetDrawColor( 192, 218, 160, 255 ) surface.DrawRect( self.X + 15, self.Y + 110, self.Width - 30, 28 ) surface.SetDrawColor( 168, 206, 116, 255 ) surface.DrawOutlinedRect( self.X + 15, self.Y + 110, self.Width - 30, 28 ) // Content local x = self.X + 24 local y = self.Y + 128 draw.SimpleText( "Currently playing ", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "Default", "Currently playing " ) draw.SimpleText( GAMEMODE.Name, "DefaultBold", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "DefaultBold", GAMEMODE.Name ) draw.SimpleText( " on the map ", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "Default", " on the map " ) draw.SimpleText( game.GetMap(), "DefaultBold", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "DefaultBold", game.GetMap() ) draw.SimpleText( ", with ", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "Default", ", with " ) draw.SimpleText( #player.GetAll(), "DefaultBold", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "DefaultBold", #player.GetAll() ) local s = "" if ( #player.GetAll() > 1 ) then s = "s" end draw.SimpleText( " player" .. s .. ".", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) end function PLUGIN:DrawUsergroup( playerinfo, usergroup, title, icon, y ) local playersFound = false for _, pl in ipairs( playerinfo ) do if ( pl.Usergroup == usergroup ) then playersFound = true break end end if ( !playersFound ) then return y end surface.SetDrawColor( 168, 206, 116, 255 ) surface.DrawRect( self.X + 0.5, y, self.Width - 2, 22 ) surface.SetMaterial( icon ) surface.SetDrawColor( 255, 255, 255, 255 ) surface.DrawTexturedRect( self.X + 15, y + 4, 14, 14 ) draw.SimpleText( title, "DefaultBold", self.X + 40, y + 16, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) self:DrawTexturedRect( self.TexPing, self.X + self.Width - 50, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexPlaytime, self.X + self.Width - 100, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexDeaths, self.X + self.Width - 150.5, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexFrags, self.X + self.Width - 190.5, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexProps, self.X + self.Width - 230.5, y + 4, 14, 14 ) y = y + 38 for _, pl in ipairs( playerinfo ) do if ( pl.Usergroup == usergroup ) then draw.SimpleText( pl.Nick, "ScoreboardText", self.X + 40, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Frags, "ScoreboardText", self.X + self.Width - 187, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Deaths, "ScoreboardText", self.X + self.Width - 147, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Ping, "ScoreboardText", self.X + self.Width - 50, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Propcount, "ScoreboardText", self.X + self.Width - 223, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP ) draw.SimpleText( self:FormatTime( pl.PlayTime ), "ScoreboardText", self.X + self.Width - 92, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP ) y = y + 20 end end return y end function PLUGIN:DrawPlayers() local playerInfo = {} for _, v in pairs( player.GetAll() ) do table.insert( playerInfo, { Nick = v:Nick(), Usergroup = v:EV_GetRank(), Frags = v:Frags(), Deaths = v:Deaths(), Ping = v:Ping(), PlayTime = evolve:Time() - v:GetNWInt( "EV_JoinTime" ) + v:GetNWInt( "EV_PlayTime" ) , Propcount = v:GetNetworkedInt("Count.props") or 0 } ) end table.SortByMember( playerInfo, "Frags" ) local y = self.Y + 155 local sortedRanks = {} for id, rank in pairs( evolve.ranks ) do table.insert( sortedRanks, { ID = id, Title = rank.Title, Immunity = rank.Immunity, Icon = rank.IconTexture } ) end table.SortByMember( sortedRanks, "Immunity" ) for _, rank in ipairs( sortedRanks ) do if( string.Right( rank.Title, 2 ) != "ed" ) then y = self:DrawUsergroup( playerInfo, rank.ID, rank.Title .. "s", rank.Icon, y ) else y = self:DrawUsergroup( playerInfo, rank.ID, rank.Title, rank.Icon, y ) end end return y end function PLUGIN:HUDDrawScoreBoard() if ( !self.DrawScoreboard ) then return end if ( !self.Height ) then s
[QUOTE=LeonCrop;42243164]Anyway, here's the code: Yeah maybe[/QUOTE] Please: [ CODE] code [ /CODE] remove the spaces.
Sorry little new on facepunch [CODE] resource.AddFile( "materials/gui/scoreboard_header.vtf" ) resource.AddFile( "materials/gui/scoreboard_header.vmt" ) resource.AddFile( "materials/gui/scoreboard_middle.vtf" ) resource.AddFile( "materials/gui/scoreboard_middle.vmt" ) resource.AddFile( "materials/gui/scoreboard_bottom.vtf" ) resource.AddFile( "materials/gui/scoreboard_bottom.vmt" ) resource.AddFile( "materials/gui/scoreboard_ping.vtf" ) resource.AddFile( "materials/gui/scoreboard_ping.vmt" ) resource.AddFile( "materials/gui/scoreboard_frags.vtf" ) resource.AddFile( "materials/gui/scoreboard_frags.vmt" ) resource.AddFile( "materials/gui/scoreboard_skull.vtf" ) resource.AddFile( "materials/gui/scoreboard_skull.vmt" ) resource.AddFile( "materials/gui/scoreboard_playtime.vtf" ) resource.AddFile( "materials/gui/scoreboard_playtime.vmt" ) resource.AddFile( "materials/gui/scoreboard_propbrick.vtf" ) resource.AddFile( "materials/gui/scoreboard_propbrick.vmt" ) local PLUGIN = {} PLUGIN.Title = "Scoreboard" PLUGIN.Description = "Default custom scoreboard." PLUGIN.Author = "Overv" if ( CLIENT ) then PLUGIN.TexHeader = surface.GetTextureID( "gui/scoreboard_header" ) PLUGIN.TexMiddle = surface.GetTextureID( "gui/scoreboard_middle" ) PLUGIN.TexBottom = surface.GetTextureID( "gui/scoreboard_bottom" ) PLUGIN.TexPing = surface.GetTextureID( "gui/scoreboard_ping" ) PLUGIN.TexFrags = surface.GetTextureID( "gui/scoreboard_frags" ) PLUGIN.TexDeaths = surface.GetTextureID( "gui/scoreboard_skull" ) PLUGIN.TexPlaytime = surface.GetTextureID( "gui/scoreboard_playtime" ) PLUGIN.TexProps = surface.GetTextureID( "gui/scoreboard_propbrick" ) PLUGIN.Width = 687 surface.CreateFont("EvolveScoreboardHeader", { font = "coolvertica", size = 22, weight = 400, antialias = true, additive = false, }) surface.CreateFont( "ScoreboardText", { font = "coolvertica", size = 12, weight = 500, antialias = true, additive = false }) end if SERVER then timer.Simple(1, function() PLUGIN.GetCount = _R.Player.GetCount function _R.Player:GetCount(limit, minus) if limit == "props" then timer.Simple(.1, function() PLUGIN.GetCount(self, limit, 0) end) end return PLUGIN.GetCount(self, limit, minus) end end) end function PLUGIN:ScoreboardShow() if ( GAMEMODE.IsSandboxDerived and evolve.installed ) then self.DrawScoreboard = true return true end end function PLUGIN:ScoreboardHide() if ( self.DrawScoreboard ) then self.DrawScoreboard = false return true end end function PLUGIN:DrawTexturedRect( tex, x, y, w, h ) surface.SetDrawColor( 255, 255, 255, 255 ) surface.SetTexture( tex ) surface.DrawTexturedRect( x, y, w, h ) end function PLUGIN:QuickTextSize( font, text ) surface.SetFont( font ) return surface.GetTextSize( text ) end function PLUGIN:FormatTime( raw ) if ( raw < 60 ) then return math.floor( raw ) .. " secs" elseif ( raw < 3600 ) then if ( raw < 120 ) then return "1 min" else return math.floor( raw / 60 ) .. " mins" end elseif ( raw < 3600*24 ) then if ( raw < 7200 ) then return "1 hour" else return math.floor( raw / 3600 ) .. " hours" end else if ( raw < 3600*48 ) then return "1 day" else return math.floor( raw / 3600 / 24 ) .. " days" end end end function PLUGIN:DrawInfoBar() // Background surface.SetDrawColor( 192, 218, 160, 255 ) surface.DrawRect( self.X + 15, self.Y + 110, self.Width - 30, 28 ) surface.SetDrawColor( 168, 206, 116, 255 ) surface.DrawOutlinedRect( self.X + 15, self.Y + 110, self.Width - 30, 28 ) // Content local x = self.X + 24 local y = self.Y + 128 draw.SimpleText( "Currently playing ", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "Default", "Currently playing " ) draw.SimpleText( GAMEMODE.Name, "DefaultBold", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "DefaultBold", GAMEMODE.Name ) draw.SimpleText( " on the map ", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "Default", " on the map " ) draw.SimpleText( game.GetMap(), "DefaultBold", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "DefaultBold", game.GetMap() ) draw.SimpleText( ", with ", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "Default", ", with " ) draw.SimpleText( #player.GetAll(), "DefaultBold", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) x = x + self:QuickTextSize( "DefaultBold", #player.GetAll() ) local s = "" if ( #player.GetAll() > 1 ) then s = "s" end draw.SimpleText( " player" .. s .. ".", "Default", x, y, Color( 0, 0, 0, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) end function PLUGIN:DrawUsergroup( playerinfo, usergroup, title, icon, y ) local playersFound = false for _, pl in ipairs( playerinfo ) do if ( pl.Usergroup == usergroup ) then playersFound = true break end end if ( !playersFound ) then return y end surface.SetDrawColor( 168, 206, 116, 255 ) surface.DrawRect( self.X + 0.5, y, self.Width - 2, 22 ) surface.SetMaterial( icon ) surface.SetDrawColor( 255, 255, 255, 255 ) surface.DrawTexturedRect( self.X + 15, y + 4, 14, 14 ) draw.SimpleText( title, "DefaultBold", self.X + 40, y + 16, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) self:DrawTexturedRect( self.TexPing, self.X + self.Width - 50, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexPlaytime, self.X + self.Width - 100, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexDeaths, self.X + self.Width - 150.5, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexFrags, self.X + self.Width - 190.5, y + 4, 14, 14 ) self:DrawTexturedRect( self.TexProps, self.X + self.Width - 230.5, y + 4, 14, 14 ) y = y + 38 for _, pl in ipairs( playerinfo ) do if ( pl.Usergroup == usergroup ) then draw.SimpleText( pl.Nick, "ScoreboardText", self.X + 40, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Frags, "ScoreboardText", self.X + self.Width - 187, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Deaths, "ScoreboardText", self.X + self.Width - 147, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Ping, "ScoreboardText", self.X + self.Width - 50, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP ) draw.SimpleText( pl.Propcount, "ScoreboardText", self.X + self.Width - 223, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP ) draw.SimpleText( self:FormatTime( pl.PlayTime ), "ScoreboardText", self.X + self.Width - 92, y, Color( 39, 39, 39, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP ) y = y + 20 end end return y end function PLUGIN:DrawPlayers() local playerInfo = {} for _, v in pairs( player.GetAll() ) do table.insert( playerInfo, { Nick = v:Nick(), Usergroup = v:EV_GetRank(), Frags = v:Frags(), Deaths = v:Deaths(), Ping = v:Ping(), PlayTime = evolve:Time() - v:GetNWInt( "EV_JoinTime" ) + v:GetNWInt( "EV_PlayTime" ) , Propcount = v:GetNetworkedInt("Count.props") or 0 } ) end table.SortByMember( playerInfo, "Frags" ) local y = self.Y + 155 local sortedRanks = {} for id, rank in pairs( evolve.ranks ) do table.insert( sortedRanks, { ID = id, Title = rank.Title, Immunity = rank.Immunity, Icon = rank.IconTexture } ) end table.SortByMember( sortedRanks, "Immunity" ) for _, rank in ipairs( sortedRanks ) do if( string.Right( rank.Title, 2 ) != "ed" ) then y = self:DrawUsergroup( playerInfo, rank.ID, rank.Title .. "s", rank.Icon, y ) else y = self:DrawUsergroup( playerInfo, rank.ID, rank.Title, rank.Icon, y ) end end return y end function PLUGIN:HUDDrawScoreBoard() if ( !self.DrawScoreboard ) then return end if ( !self.Height ) then self.Height = 139 end // Update position self.X = ScrW() / 2 - self.Width / 2 self.Y = ScrH() / 2 -
Do you have another scoreboard or something that draws when pressing tab as that may cause this to not work.
[QUOTE=IGRed;42243891]Do you have another scoreboard or something that draws when pressing tab as that may cause this to not work.[/QUOTE] Yes I got it to work, the problem was this code: [CODE] function PLUGIN:ScoreboardShow() if ( GAMEMODE.IsSandboxDerived and evolve.installed ) then self.DrawScoreboard = true return true end end [/CODE] [editline]19th September 2013[/editline] I removed this: if ( GAMEMODE.IsSandboxDerived and evolve.installed ) then so now its work, thanks everyone that helped me so far.
Sorry, you need to Log In to post a reply to this thread.