move the rank in scoreboard

I want to move my rank collumn in the scoreboard like this:

http://s1.directupload.net/images/140224/hqp2vlm3.png

can you help me?

Thank you^^

Is this an addon, if so, is it the one made by rejax? He has a config file for things like that, otherwise, look in sb_row.

I already did that.But I cant find it :confused:

Is it rejax’s addon, someone else’s addon or is it the sb_row and sb_main edit? If its the sb_row and main edit, just change the cols[6] to a bigger or lower number.

Can you post your code so we can properly help you?

SB-ROW:

SB-MAIN:

Can you please change your quote tags to code tags so it doesn’t take up the whole page?

sb_row:


---- Scoreboard player score row, based on sandbox version



include("sb_info.lua")





local GetTranslation = LANG.GetTranslation

local GetPTranslation = LANG.GetParamTranslation





SB_ROW_HEIGHT = 24 --16



local PANEL = {}



function PANEL:Init()

-- cannot create info card until player state is known

self.info = nil
self.open = false
self.cols = {}
self.cols[1] = vgui.Create("DLabel", self)
self.cols[1]:SetText('Ping')
self.cols[2] = vgui.Create("DLabel", self)
self.cols[2]:SetText('Tode')
self.cols[3] = vgui.Create("DLabel", self)
self.cols[3]:SetText('Punkte')
self.cols[5] = vgui.Create("DLabel", self)
self.cols[5]:SetText("Rang")

if KARMA.IsEnabled() then
self.cols[4] = vgui.Create("DLabel", self)
self.cols[4]:SetText('Karma')
end
for _, c in ipairs(self.cols) do
c:SetMouseInputEnabled(false)
end
self.tag = vgui.Create("DLabel", self)
self.tag:SetText("")
self.tag:SetMouseInputEnabled(false)
self.sresult = vgui.Create("DImage", self)
self.sresult:SetSize(16,16)
self.sresult:SetMouseInputEnabled(false)
self.avatar = vgui.Create( "AvatarImage", self )
self.avatar:SetSize(SB_ROW_HEIGHT, SB_ROW_HEIGHT)
self.avatar:SetMouseInputEnabled(false)
self.nick = vgui.Create("DLabel", self)
self.nick:SetMouseInputEnabled(false)
self.voice = vgui.Create("DImageButton", self)
self.voice:SetSize(16,16)
self:SetCursor( "hand" )
end





local namecolor = {

default = COLOR_WHITE,
owner = Color(0, 178, 238, 255),
admin = Color(255, 140, 0, 255),
moderator = Color(238, 201, 0, 255),
donator = Color(191, 62, 255, 255),
respected = Color(0, 205, 0, 255),


};



function GM:TTTScoreboardColorForPlayer(ply)

if not IsValid(ply) then return namecolor.default end

if ply:IsUserGroup("superadmin") then
return namecolor.owner
elseif ply:IsUserGroup("mod") then
return namecolor.moderator
elseif ply:IsUserGroup("vip") then
return namecolor.donator
elseif ply:IsUserGroup("regular") then
return namecolor.respected 
elseif ply:IsUserGroup("admin") then
return namecolor.admin
end

return namecolor.default

end



local function ColorForPlayer(ply)

if IsValid(ply) then

local c = hook.Call("TTTScoreboardColorForPlayer", GAMEMODE, ply)



-- verify that we got a proper color

if c and type(c) == "table" and c.r and c.b and c.g and c.a then

return c

else

ErrorNoHalt("TTTScoreboardColorForPlayer hook returned something that isn't a color!
")

end

end

return namecolor.default

end



function PANEL:Paint()

if not IsValid(self.Player) then return end



-- if ( self.Player:GetFriendStatus() == "friend" ) then

-- color = Color( 236, 181, 113, 255 )

-- end



local ply = self.Player



if ply:IsTraitor() then

surface.SetDrawColor(255, 0, 0, 30)

surface.DrawRect(0, 0, self:GetWide(), SB_ROW_HEIGHT)

elseif ply:IsDetective() then

surface.SetDrawColor(0, 0, 255, 30)

surface.DrawRect(0, 0, self:GetWide(), SB_ROW_HEIGHT)

end





if ply == LocalPlayer() then

surface.SetDrawColor( 200, 200, 200, math.Clamp(math.sin(RealTime() * 2) * 50, 0, 100))

surface.DrawRect(0, 0, self:GetWide(), SB_ROW_HEIGHT )

end



return true

end



function PANEL:SetPlayer(ply)

self.Player = ply

self.avatar:SetPlayer(ply)



if not self.info then

local g = ScoreGroup(ply)

if g == GROUP_TERROR and ply != LocalPlayer() then

self.info = vgui.Create("TTTScorePlayerInfoTags", self)

self.info:SetPlayer(ply)



self:InvalidateLayout()

elseif g == GROUP_FOUND or g == GROUP_NOTFOUND then

self.info = vgui.Create("TTTScorePlayerInfoSearch", self)

self.info:SetPlayer(ply)

self:InvalidateLayout()

end

else

self.info:SetPlayer(ply)



self:InvalidateLayout()

end



self.voice.DoClick = function()

if IsValid(ply) and ply != LocalPlayer() then

ply:SetMuted(not ply:IsMuted())

end

end



self:UpdatePlayerData()

end



function PANEL:GetPlayer() return self.Player end



function PANEL:UpdatePlayerData()

if not IsValid(self.Player) then return end



local ply = self.Player

self.cols[1]:SetText(ply:Ping())

self.cols[2]:SetText(ply:Deaths())

self.cols[3]:SetText(ply:Frags())



if self.cols[4] then

self.cols[4]:SetText(math.Round(ply:GetBaseKarma()))

end

if ply:IsUserGroup("user") then
self.cols[5]:SetText("Gast")
self.cols[5]:SetTextColor(namecolor.default)
elseif ply:IsUserGroup("superadmin") then
self.cols[5]:SetText("Owner")
self.cols[5]:SetTextColor(namecolor.owner)
elseif ply:IsUserGroup("admin") then
self.cols[5]:SetText("Admin")
elseif ply:IsUserGroup("adminvip") then
self.cols[5]:SetText("Admin(VIP)")
self.cols[5]:SetTextColor(namecolor.admin)
elseif ply:IsUserGroup("operator") then
self.cols[5]:SetText("Operator")
elseif ply:IsUserGroup("moderator") then
self.cols[5]:SetText("Moderator")
elseif ply:IsUserGroup("moderatorvip") then
self.cols[5]:SetText("Moderator(VIP)")
elseif ply:IsUserGroup("operatorvip") then
self.cols[5]:SetText("Operator(VIP)")
self.cols[5]:SetTextColor(namecolor.moderator)
elseif ply:IsUserGroup("member") then
self.cols[5]:SetText("Member")
elseif ply:IsUserGroup("membervip") then
self.cols[5]:SetText("Member(VIP)")
elseif ply:IsUserGroup("stamm") then
self.cols[5]:SetText("Stamm")
elseif ply:IsUserGroup("stammvip") then
self.cols[5]:SetText("Stamm(VIP)")

end



self.nick:SetText(ply:Nick())

self.nick:SizeToContents()

self.nick:SetTextColor(ColorForPlayer(ply))



local ptag = ply.sb_tag

if ScoreGroup(ply) != GROUP_TERROR then

ptag = nil

end



self.tag:SetText(ptag and GetTranslation(ptag.txt) or "")

self.tag:SetTextColor(ptag and ptag.color or COLOR_WHITE)



self.sresult:SetVisible(ply.search_result != nil)



-- more blue if a detective searched them

if ply.search_result and (LocalPlayer():IsDetective() or (not ply.search_result.show)) then

self.sresult:SetImageColor(Color(200, 200, 255))

end



-- cols are likely to need re-centering

self:LayoutColumns()



if self.info then

self.info:UpdatePlayerData()

end



if self.Player != LocalPlayer() then

local muted = self.Player:IsMuted()

self.voice:SetImage(muted and "icon16/sound_mute.png" or "icon16/sound.png")

else

self.voice:Hide()

end

end



function PANEL:ApplySchemeSettings()

for k,v in pairs(self.cols) do

v:SetFont("treb_small")

v:SetTextColor(COLOR_WHITE)

end



self.nick:SetFont("treb_small")

self.nick:SetTextColor(ColorForPlayer(self.Player) )



local ptag = self.Player and self.Player.sb_tag

self.tag:SetTextColor(ptag and ptag.color or COLOR_WHITE)

self.tag:SetFont("treb_small")



self.sresult:SetImage("icon16/magnifier.png")

self.sresult:SetImageColor(Color(170, 170, 170, 150))

end



function PANEL:LayoutColumns()

for k,v in ipairs(self.cols) do

v:SizeToContents()

v:SetPos(self:GetWide() - (50*k) - v:GetWide()/2, (SB_ROW_HEIGHT - v:GetTall()) / 2)

end



self.tag:SizeToContents()

self.tag:SetPos(self:GetWide() - (50 * 6) - self.tag:GetWide()/2, (SB_ROW_HEIGHT - self.tag:GetTall()) / 2)



self.sresult:SetPos(self:GetWide() - (50*6) - 8, (SB_ROW_HEIGHT - 16) / 2)

end



function PANEL:PerformLayout()

self.avatar:SetPos(0,0)

self.avatar:SetSize(SB_ROW_HEIGHT,SB_ROW_HEIGHT)



if not self.open then

self:SetSize(self:GetWide(), SB_ROW_HEIGHT)



if self.info then self.info:SetVisible(false) end

elseif self.info then

self:SetSize(self:GetWide(), 100 + SB_ROW_HEIGHT)



self.info:SetVisible(true)

self.info:SetPos(5, SB_ROW_HEIGHT + 5)

self.info:SetSize(self:GetWide(), 100)

self.info:PerformLayout()



self:SetSize(self:GetWide(), SB_ROW_HEIGHT + self.info:GetTall())

end



self.nick:SizeToContents()



self.nick:SetPos(SB_ROW_HEIGHT + 10, (SB_ROW_HEIGHT - self.nick:GetTall()) / 2)



self:LayoutColumns()



self.voice:SetVisible(not self.open)

self.voice:SetSize(16, 16)

self.voice:DockMargin(4, 4, 4, 4)

self.voice:Dock(RIGHT)

end



function PANEL:DoClick(x, y)

self:SetOpen(not self.open)

end



function PANEL:SetOpen(o)

if self.open then

surface.PlaySound("ui/buttonclickrelease.wav")

else

surface.PlaySound("ui/buttonclick.wav")

end



self.open = o



self:PerformLayout()

self:GetParent():PerformLayout()

sboard_panel:PerformLayout()

end



function PANEL:DoRightClick()



end



vgui.Register( "TTTScorePlayerRow", PANEL, "Button" )

sb_main:


---- VGUI panel version of the scoreboard, based on TEAM GARRY's sandbox mode
---- scoreboard.

local surface = surface
local draw = draw
local math = math
local string = string
local vgui = vgui

local GetTranslation = LANG.GetTranslation
local GetPTranslation = LANG.GetParamTranslation

include("sb_team.lua")

surface.CreateFont("cool_small", {font = "coolvetica",
size = 20,
weight = 400})
surface.CreateFont("cool_large", {font = "coolvetica",
size = 24,
weight = 400})
surface.CreateFont("treb_small", {font = "Trebuchet18",
size = 14,
weight = 700})

local logo = surface.GetTextureID("VGUI/ttt/score_logo")

local PANEL = {}

local max = math.max
local floor = math.floor
local function UntilMapChange()
local rounds_left = max(0, GetGlobalInt("ttt_rounds_left", 6))
local time_left = floor(max(0, ((GetGlobalInt("ttt_time_limit_minutes") or 60) * 60) - CurTime()))

local h = floor(time_left / 3600)
time_left = time_left - floor(h * 3600)
local m = floor(time_left / 60)
time_left = time_left - floor(m * 60)
local s = floor(time_left)

return rounds_left, string.format("%02i:%02i:%02i", h, m, s)
end


GROUP_TERROR = 1
GROUP_NOTFOUND = 2
GROUP_FOUND = 3
GROUP_SPEC = 4

GROUP_COUNT = 4

function ScoreGroup(p)
if not IsValid(p) then return -1 end -- will not match any group panel

if DetectiveMode() then
if p:IsSpec() and (not p:Alive()) then
if p:GetNWBool("body_found", false) then
return GROUP_FOUND
else
local client = LocalPlayer()
-- To terrorists, missing players show as alive
if client:IsSpec() or
client:IsActiveTraitor() or
((GAMEMODE.round_state != ROUND_ACTIVE) and client:IsTerror()) then
return GROUP_NOTFOUND
else
return GROUP_TERROR
end
end
end
end

return p:IsTerror() and GROUP_TERROR or GROUP_SPEC
end

function PANEL:Init()

self.hostdesc = vgui.Create("DLabel", self)
self.hostdesc:SetText(GetTranslation("sb_playing") )
self.hostdesc:SetContentAlignment(9)

self.hostname = vgui.Create( "DLabel", self )
self.hostname:SetText('[GER ONLY TTT] Die Drogenhöhle')
self.hostname:SetContentAlignment(6)

self.mapchange = vgui.Create("DLabel", self)
self.mapchange:SetText("Mapwechsel in 00 oder in 00:00:00")
self.mapchange:SetContentAlignment(9)

self.mapchange.Think = function (sf)
local r, t = UntilMapChange()

sf:SetText(GetPTranslation("sb_mapchange",
{num = r, time = t}))
sf:SizeToContents()
end


self.ply_frame = vgui.Create( "TTTPlayerFrame", self )

self.ply_groups = {}

local t = vgui.Create("TTTScoreGroup", self.ply_frame:GetCanvas())
t:SetGroupInfo(GetTranslation("terrorists"), Color(0,200,0,100), GROUP_TERROR)
self.ply_groups[GROUP_TERROR] = t

t = vgui.Create("TTTScoreGroup", self.ply_frame:GetCanvas())
t:SetGroupInfo(GetTranslation("spectators"), Color(200, 200, 0, 100), GROUP_SPEC)
self.ply_groups[GROUP_SPEC] = t

if DetectiveMode() then
t = vgui.Create("TTTScoreGroup", self.ply_frame:GetCanvas())
t:SetGroupInfo(GetTranslation("sb_mia"), Color(130, 190, 130, 100), GROUP_NOTFOUND)
self.ply_groups[GROUP_NOTFOUND] = t

t = vgui.Create("TTTScoreGroup", self.ply_frame:GetCanvas())
t:SetGroupInfo(GetTranslation("sb_confirmed"), Color(130, 170, 10, 100), GROUP_FOUND)
self.ply_groups[GROUP_FOUND] = t
end

-- the various score column headers
self.cols = {}
self.cols[1] = vgui.Create( "DLabel", self )
self.cols[1]:SetText( GetTranslation("sb_ping") )

self.cols[2] = vgui.Create( "DLabel", self )
self.cols[2]:SetText( GetTranslation("sb_deaths") )

self.cols[3] = vgui.Create( "DLabel", self )
self.cols[3]:SetText( GetTranslation("sb_score") ) self.cols[5] = vgui.Create( "DLabel", self ) self.cols[5]:SetText("Rang") 
if KARMA.IsEnabled() then
self.cols[4] = vgui.Create("DLabel", self)
self.cols[4]:SetText(GetTranslation("sb_karma"))
end

self:UpdateScoreboard()
self:StartUpdateTimer()
end

function PANEL:StartUpdateTimer()
if not timer.Exists("TTTScoreboardUpdater") then
timer.Create( "TTTScoreboardUpdater", 0.3, 0,
function()
local pnl = GAMEMODE:GetScoreboardPanel()
if IsValid(pnl) then
pnl:UpdateScoreboard()
end
end)
end
end

local colors = {
bg = Color(30,30,30, 235),
bar = Color(220,180,0,255)
};

local y_logo_off = 72

function PANEL:Paint()
-- Logo sticks out, so always offset bg
draw.RoundedBox( 8, 0, y_logo_off, self:GetWide(), self:GetTall() - y_logo_off, colors.bg)

-- Server name is outlined by orange/gold area
draw.RoundedBox( 8, 0, y_logo_off + 25, self:GetWide(), 32, colors.bar)

-- TTT Logo
surface.SetTexture( logo )
surface.SetDrawColor( 255, 255, 255, 255 )
surface.DrawTexturedRect( 5, 0, 256, 256 )

end

function PANEL:PerformLayout()
-- position groups and find their total size
local gy = 0
-- can't just use pairs (undefined ordering) or ipairs (group 2 and 3 might not exist)
for i=1, GROUP_COUNT do
local group = self.ply_groups*
if ValidPanel(group) then
if group:HasRows() then
group:SetVisible(true)
group:SetPos(0, gy)
group:SetSize(self.ply_frame:GetWide(), group:GetTall())
group:InvalidateLayout()
gy = gy + group:GetTall() + 5
else
group:SetVisible(false)
end
end
end

self.ply_frame:GetCanvas():SetSize(self.ply_frame: GetCanvas():GetWide(), gy)

local h = y_logo_off + 110 + self.ply_frame:GetCanvas():GetTall()

-- if we will have to clamp our height, enable the mouse so player can scroll
local scrolling = h > ScrH() * 0.95
-- gui.EnableScreenClicker(scrolling)
self.ply_frame:SetScroll(scrolling)

h = math.Clamp(h, 110 + y_logo_off, ScrH() * 0.95)

local w = math.max(ScrW() * 0.6, 640)

self:SetSize(w, h)
self:SetPos( (ScrW() - w) / 2, math.min(72, (ScrH() - h) / 4))

self.ply_frame:SetPos(8, y_logo_off + 109)
self.ply_frame:SetSize(self:GetWide() - 16, self:GetTall() - 109 - y_logo_off - 5)

-- server stuff
self.hostdesc:SizeToContents()
self.hostdesc:SetPos(w - self.hostdesc:GetWide() - 8, y_logo_off + 5)

local hw = w - 180 - 8
self.hostname:SetSize(hw, 32)
self.hostname:SetPos(w - self.hostname:GetWide() - 8, y_logo_off + 27)

surface.SetFont("cool_large")
local hname = self.hostname:GetValue()
local tw, _ = surface.GetTextSize(hname)
while tw > hw do
hname = string.sub(hname, 1, -6) .. "..."
tw, th = surface.GetTextSize(hname)
end

self.hostname:SetText(hname)

self.mapchange:SizeToContents()
self.mapchange:SetPos(w - self.mapchange:GetWide() - 8, y_logo_off + 60)

-- score columns
local cy = y_logo_off + 90
for k,v in ipairs(self.cols) do
v:SizeToContents()
v:SetPos( w - (50*k) - v:GetWide()/2 - 8, cy)
end
end

function PANEL:ApplySchemeSettings()
self.hostdesc:SetFont("cool_small")
self.hostname:SetFont("cool_large")
self.mapchange:SetFont("treb_small")

self.hostdesc:SetTextColor(COLOR_WHITE)
self.hostname:SetTextColor(COLOR_BLACK)
self.mapchange:SetTextColor(COLOR_WHITE)

for k,v in pairs(self.cols) do
v:SetFont("treb_small")
v:SetTextColor(COLOR_WHITE)
end
end

function PANEL:UpdateScoreboard( force )
if not force and not self:IsVisible() then return end

local layout = false

-- Put players where they belong. Groups will dump them as soon as they don't
-- anymore.
for k, p in pairs(player.GetAll()) do
if IsValid(p) then
local group = ScoreGroup(p)
if self.ply_groups[group] and not self.ply_groups[group]:HasPlayerRow(p) then
self.ply_groups[group]:AddPlayerRow(p)
layout = true
end
end
end

for k, group in pairs(self.ply_groups) do
if ValidPanel(group) then
group:SetVisible( group:HasRows() )
group:UpdatePlayerData()
end
end

if layout then
self:PerformLayout()
else
self:InvalidateLayout()
end
end

vgui.Register( "TTTScoreboard", PANEL, "Panel" )

---- PlayerFrame is defined in sandbox and is basically a little scrolling
---- hack. Just putting it here (slightly modified) because it's tiny.

local PANEL = {}
function PANEL:Init()
self.pnlCanvas = vgui.Create( "Panel", self )
self.YOffset = 0

self.scroll = vgui.Create("DVScrollBar", self)
end

function PANEL:GetCanvas() return self.pnlCanvas end

function PANEL:OnMouseWheeled( dlta )
self.scroll:AddScroll(dlta * -2)

self:InvalidateLayout()
end

function PANEL:SetScroll(st)
self.scroll:SetEnabled(st)
end

function PANEL:PerformLayout()
self.pnlCanvas:SetVisible(self:IsVisible())

-- scrollbar
self.scroll:SetPos(self:GetWide() - 16, 0)
self.scroll:SetSize(16, self:GetTall())

local was_on = self.scroll.Enabled
self.scroll:SetUp(self:GetTall(), self.pnlCanvas:GetTall())
self.scroll:SetEnabled(was_on) -- setup mangles enabled state

self.YOffset = self.scroll:GetOffset()

self.pnlCanvas:SetPos( 0, self.YOffset )
self.pnlCanvas:SetSize( self:GetWide() - (self.scroll.Enabled and 16 or 0), self.pnlCanvas:GetTall() )
end
vgui.Register( "TTTPlayerFrame", PANEL, "Panel" )

Can you delete the code from your other post?

[editline]24th February 2014[/editline]

Change the 5’s in


self.cols[5] ="keyword operator">="keyword operator">= vgui.Create("DLabel", self)
self.cols[5]:SetText("Rang")

To a higher value in your sb_row.

Is it meant to say “Rang” or is that just me?

It’s in German.

Rang is rank in German.

[editline]24th February 2014[/editline]

Ninja’d

changed the "cols[5]"s to "cols[6]"s…now it is showing this:

http://s1.directupload.net/images/140225/sbvlxpeg.png