SCOREBOARD, better text function
This commit is contained in:
parent
32d7bee0ec
commit
79d9b040f3
|
@ -29,6 +29,9 @@ end
|
||||||
|
|
||||||
|
|
||||||
function hCol( r, g, b, a )
|
function hCol( r, g, b, a )
|
||||||
|
if IsColor(r) and g then
|
||||||
|
return surface.SetDrawColor( ColorAlpha( r, g ) )
|
||||||
|
end
|
||||||
return surface.SetDrawColor( r, g, b, a )
|
return surface.SetDrawColor( r, g, b, a )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -100,6 +103,21 @@ function qt( text, font, x, y, col, xalign, yalign, col2 )
|
||||||
draw.SimpleText( text, font, x, y, col, xalign, yalign )
|
draw.SimpleText( text, font, x, y, col, xalign, yalign )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function hText( text, font, x, y, col, xalign, yalign )
|
||||||
|
local x, y = hXY( x, y )
|
||||||
|
draw.SimpleText( text, font, x, y, col, xalign, yalign )
|
||||||
|
end
|
||||||
|
|
||||||
|
function hTextQ( text, font, x, y, col, xalign, yalign, col2 )
|
||||||
|
local x, y = hXY( x, y )
|
||||||
|
qt( text, font, x, y, col, xalign, yalign, col2 )
|
||||||
|
end
|
||||||
|
|
||||||
|
function hTextS( text, font, x, y, col, xalign, yalign, col2 )
|
||||||
|
local x, y = hXY( x, y )
|
||||||
|
draw.SimpleText( text, font, x+1, y+1, col2, xalign, yalign )
|
||||||
|
draw.SimpleText( text, font, x, y, col, xalign, yalign )
|
||||||
|
end
|
||||||
|
|
||||||
local sizes = {
|
local sizes = {
|
||||||
8, 10, 16, 24, 36, 48
|
8, 10, 16, 24, 36, 48
|
||||||
|
@ -227,17 +245,11 @@ local function QuickDrawBar( BARWIDE, BARTALL, RealTeamID, TeamID, way )
|
||||||
end
|
end
|
||||||
|
|
||||||
if way then
|
if way then
|
||||||
local x, y = hXY( BARWIDE - 5, 0 )
|
hTextQ( faction_info.CHARNAME, "HUD_36", BARWIDE - 5, 0, faction_info.COLOR_DARK, TEXT_ALIGN_RIGHT, nil, faction_info.COLOR_MAIN )
|
||||||
qt( faction_info.CHARNAME, "HUD_36", x, y, faction_info.COLOR_DARK, TEXT_ALIGN_RIGHT, nil, faction_info.COLOR_MAIN )
|
hTextQ( Score_Current .. " / " .. Score_ToWin, "HUD_24", BARWIDE, BARTALL, faction_info.COLOR_MAIN, TEXT_ALIGN_RIGHT, nil, faction_info.COLOR_DARK )
|
||||||
|
|
||||||
local x, y = hXY( BARWIDE, BARTALL )
|
|
||||||
qt( Score_Current .. " / " .. Score_ToWin, "HUD_24", x, y, faction_info.COLOR_MAIN, TEXT_ALIGN_RIGHT, nil, faction_info.COLOR_DARK )
|
|
||||||
else
|
else
|
||||||
local x, y = hXY( 5, 0 )
|
hTextQ( faction_info.CHARNAME, "HUD_36", 5, 0, faction_info.COLOR_DARK, nil, nil, faction_info.COLOR_MAIN )
|
||||||
qt( faction_info.CHARNAME, "HUD_36", x, y, faction_info.COLOR_DARK, nil, nil, faction_info.COLOR_MAIN )
|
hTextQ( Score_Current .. " / " .. Score_ToWin, "HUD_24", 0, BARTALL, faction_info.COLOR_MAIN, nil, nil, faction_info.COLOR_DARK )
|
||||||
|
|
||||||
local x, y = hXY( 0, BARTALL )
|
|
||||||
qt( Score_Current .. " / " .. Score_ToWin, "HUD_24", x, y, faction_info.COLOR_MAIN, nil, nil, faction_info.COLOR_DARK )
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Players alive
|
-- Players alive
|
||||||
|
@ -285,8 +297,7 @@ function GM:HUDPaint()
|
||||||
hCol( COLOR_DARK )
|
hCol( COLOR_DARK )
|
||||||
hRect( 0, 0, 328, 65 )
|
hRect( 0, 0, 328, 65 )
|
||||||
|
|
||||||
local x, y = hXY( 10, 4 )
|
hTextQ( CHARNAME, "HUD_48", 10, 4, COLOR_DARK, nil, nil, COLOR_MAIN )
|
||||||
qt( CHARNAME, "HUD_48", x, y, COLOR_DARK, nil, nil, COLOR_MAIN )
|
|
||||||
|
|
||||||
local HEALTHPER = p:GetHealth_Blood()/1000
|
local HEALTHPER = p:GetHealth_Blood()/1000
|
||||||
--HEALTHPER = 11/100
|
--HEALTHPER = 11/100
|
||||||
|
@ -299,8 +310,7 @@ function GM:HUDPaint()
|
||||||
|
|
||||||
hCol( COLOR_MAIN )
|
hCol( COLOR_MAIN )
|
||||||
hScis( 8, 8, (320-4-4) * HEALTHPER, 41-4-4 )
|
hScis( 8, 8, (320-4-4) * HEALTHPER, 41-4-4 )
|
||||||
local x, y = hXY( 10, 4 )
|
hText( CHARNAME, "HUD_48", 10, 4, COLOR_DARK )
|
||||||
draw.SimpleText( CHARNAME, "HUD_48", x, y, COLOR_DARK )
|
|
||||||
hScisoff()
|
hScisoff()
|
||||||
|
|
||||||
local slen = (320-4-4-4-4-4)
|
local slen = (320-4-4-4-4-4)
|
||||||
|
@ -349,51 +359,36 @@ function GM:HUDPaint()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local x, y = hXY( 0, -14 )
|
hTextQ( p:GetLevel_XP() .. " / 15000", "HUD_16", 0, -14, COLOR_MAIN, nil, nil, COLOR_DARK )
|
||||||
qt( p:GetLevel_XP() .. " / 15000", "HUD_16", x, y, COLOR_MAIN, nil, nil, COLOR_DARK )
|
|
||||||
--qt( "", "HUD_24", x+328, y, COLOR_MAIN, TEXT_ALIGN_RIGHT, nil, COLOR_DARK )
|
|
||||||
|
|
||||||
S_Pop()
|
S_Pop()
|
||||||
end
|
end
|
||||||
S_Pop()
|
S_Pop()
|
||||||
|
|
||||||
if handler then
|
if handler then
|
||||||
-- Inventory
|
-- Inventory
|
||||||
S_Push( 20, 20 )
|
local Pw, Ph, Pg = 110, 30, 10
|
||||||
local x, y = hXY( 5, 65+16*0 )
|
local thespace = 0
|
||||||
draw.SimpleText( "SelectedNumber: " .. (p.SelectedNumber or 0), "HUD_16", x, y, COLOR_MAIN )
|
for i, v in ipairs( p:GetInventory():GetWeighted() ) do
|
||||||
local x, y = hXY( 5, 65+16*1 )
|
thespace = thespace + Pw + Pg
|
||||||
draw.SimpleText( "DesireR: " .. tostring(handler:GetDesireR()), "HUD_16", x, y, COLOR_MAIN )
|
end
|
||||||
local x, y = hXY( 5, 65+16*2 )
|
thespace = thespace - Pg
|
||||||
draw.SimpleText( "ActiveR: " .. tostring(handler:GetActiveR()), "HUD_16", x, y, COLOR_MAIN )
|
thespace = thespace/2
|
||||||
local x, y = hXY( 5, 65+16*3 )
|
|
||||||
draw.SimpleText( "DesireL: " .. tostring(handler:GetDesireL()), "HUD_16", x, y, COLOR_MAIN )
|
|
||||||
local x, y = hXY( 5, 65+16*4 )
|
|
||||||
draw.SimpleText( "ActiveL: " .. tostring(handler:GetActiveL()), "HUD_16", x, y, COLOR_MAIN )
|
|
||||||
|
|
||||||
|
S_Push( ScrW()/2 - thespace, ScrH() - 20 - Ph )
|
||||||
for i, v in ipairs( p:GetInventory():GetWeighted() ) do
|
for i, v in ipairs( p:GetInventory():GetWeighted() ) do
|
||||||
hCol( v == handler:GetActiveR() and COLOR_BRIGHT or COLOR_DARK )
|
hCol( v == handler:GetDesireR() and COLOR_BRIGHT or COLOR_DARK )
|
||||||
hRect( (i-1)*(120+10), 0, 120, 60 )
|
hRect( (i-1)*(Pw+Pg), 0, Pw, Ph )
|
||||||
local x, y = hXY( (i-1)*(120+10), 0 )
|
if v == handler:GetActiveR() then
|
||||||
draw.SimpleText( l8( v.Class.PrintName ), "HUD_24", x + 120/2, y + 60/2 - (10), COLOR_MAIN, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
|
hCol( COLOR_MAIN )
|
||||||
if v.GetClip2 then
|
hORect( (i-1)*(Pw+Pg)+1, 1, Pw-2, Ph-2, 1 )
|
||||||
draw.SimpleText( v:GetClip2() .. "/" .. v.Class.ClipSize2, "HUD_16", x + 10, y + 60/2 + (4), COLOR_MAIN, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if v.GetClip then
|
|
||||||
local drawer = ""
|
|
||||||
|
|
||||||
drawer = drawer .. v:GetClip()
|
|
||||||
drawer = drawer .. "/"
|
|
||||||
drawer = drawer .. v.Class.ClipSize
|
|
||||||
draw.SimpleText( drawer, "HUD_16", x + 10, y + 60/2 + (16), COLOR_MAIN, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
|
|
||||||
draw.SimpleText( v:GetFiremode(), "HUD_16", x + 120 - 10, y + 60/2 + (16), COLOR_MAIN, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER )
|
|
||||||
end
|
end
|
||||||
|
local x, y = (i-1)*(Pw+Pg), 0
|
||||||
|
hText( l8( v.Class.PrintName ), "HUD_24", x + Pw/2, y + 5, COLOR_MAIN, TEXT_ALIGN_CENTER )
|
||||||
|
hText( i, "HUD_16", x + 4, y + 2, COLOR_MAIN )
|
||||||
end
|
end
|
||||||
S_Pop()
|
S_Pop()
|
||||||
|
|
||||||
local wep = handler:GetActiveR()
|
local wep = handler:GetDesireR()
|
||||||
if wep and wep.GetClip then
|
if wep and wep.GetClip then
|
||||||
local Bw, Bh = 8+(8+2)*30-2+8, 160
|
local Bw, Bh = 8+(8+2)*30-2+8, 160
|
||||||
S_Push( w - 20 - Bw, h - 20 - Bh )
|
S_Push( w - 20 - Bw, h - 20 - Bh )
|
||||||
|
@ -405,23 +400,37 @@ function GM:HUDPaint()
|
||||||
local leng = Bw-8-8
|
local leng = Bw-8-8
|
||||||
hRect( 8, 8, leng-70, 26 )
|
hRect( 8, 8, leng-70, 26 )
|
||||||
hRect( 8 + leng - 70 + 4, 8, leng-(leng-70)-4, 26 )
|
hRect( 8 + leng - 70 + 4, 8, leng-(leng-70)-4, 26 )
|
||||||
local x, y = hXY( 12, 6 )
|
hText( l8( wep.Class.PrintName ), "HUD_36", 12, 6, COLOR_DARK )
|
||||||
draw.SimpleText( l8( wep.Class.PrintName ), "HUD_36", x, y, COLOR_DARK )
|
|
||||||
local x, y = hXY( 10 + (leng - 70) + 70/2, 11 )
|
|
||||||
local bc = wep.Class.BurstCount
|
local bc = wep.Class.BurstCount
|
||||||
draw.SimpleText( fmlookup[bc] or bc .. "RND", "HUD_24", x, y, COLOR_DARK, TEXT_ALIGN_CENTER )
|
hText( fmlookup[bc] or bc .. "RND", "HUD_24", 10 + (leng - 70) + 70/2, 11, COLOR_DARK, TEXT_ALIGN_CENTER )
|
||||||
S_Pop()
|
S_Pop()
|
||||||
|
|
||||||
S_Push( Bw - 8 - 8, Bh - 18 - 8 )
|
local Tw, Th = 6, 18
|
||||||
|
|
||||||
|
if wep.Class.ClipSize>45 then
|
||||||
|
Tw = 3
|
||||||
|
Th = 13
|
||||||
|
elseif wep.Class.ClipSize<14 then
|
||||||
|
Tw = 8
|
||||||
|
Th = 22
|
||||||
|
end
|
||||||
|
|
||||||
|
S_Push( Bw - Tw - 8, Bh - Th - 8 )
|
||||||
|
for i=0, wep.Class.ClipSize-1 do
|
||||||
|
if i>29 then
|
||||||
|
hCol( COLOR_DARK )
|
||||||
|
hRect( (0 - Tw - 2)*i-4, -4, Tw+2, Th+8 )
|
||||||
|
end
|
||||||
|
end
|
||||||
for i=0, wep.Class.ClipSize-1 do
|
for i=0, wep.Class.ClipSize-1 do
|
||||||
if wep:GetClip() >= (i+1) then
|
if wep:GetClip() >= (i+1) then
|
||||||
hCol( COLOR_MAIN )
|
hCol( COLOR_MAIN )
|
||||||
hRect( (0 - 8 - 2)*i, 0, 8, 18 )
|
hRect( (0 - Tw - 2)*i, 0, Tw, Th )
|
||||||
hCol( COLOR_DARK )
|
hCol( COLOR_DARK )
|
||||||
hRect( (0 - 8 - 2)*i, 14, 8, 2 )
|
hRect( (0 - Tw - 2)*i, Th-4, Tw, 2 )
|
||||||
else
|
else
|
||||||
hCol( COLOR_BRIGHT )
|
hCol( COLOR_BRIGHT )
|
||||||
hORect( (0 - 8 - 2)*i, 0, 8, 18 )
|
hORect( (0 - Tw - 2)*i, 0, Tw, Th )
|
||||||
--hORect( (0 - 8 - 2)*i+1, 1, 8-2, 18-2 )
|
--hORect( (0 - 8 - 2)*i+1, 1, 8-2, 18-2 )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -472,12 +481,10 @@ function GM:HUDPaint()
|
||||||
if BennyGame:GetState() != BG_STATE_WAITINGFORPLAYERS then
|
if BennyGame:GetState() != BG_STATE_WAITINGFORPLAYERS then
|
||||||
local d1, d2
|
local d1, d2
|
||||||
local tt = string.FormattedTime( math.max( stupidtime, 0 ) )
|
local tt = string.FormattedTime( math.max( stupidtime, 0 ) )
|
||||||
if tt.m > 0 then
|
if tt.h > 0 then
|
||||||
|
d1 = string.format( "%01i:%02i:%02i", tt.h, tt.m, tt.s )
|
||||||
|
elseif tt.m > 0 then
|
||||||
d1 = string.format( "%01i:%02i", tt.m, tt.s )
|
d1 = string.format( "%01i:%02i", tt.m, tt.s )
|
||||||
d2 = false--tt.s
|
|
||||||
if tt.h > 0 then
|
|
||||||
d1 = tt.h .. ":" .. d1
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
d1 = string.format( "%02i", tt.s )
|
d1 = string.format( "%02i", tt.s )
|
||||||
d2 = string.format( ".%02i", tt.ms )
|
d2 = string.format( ".%02i", tt.ms )
|
||||||
|
@ -490,16 +497,13 @@ function GM:HUDPaint()
|
||||||
twid = twid + surface.GetTextSize(".00")
|
twid = twid + surface.GetTextSize(".00")
|
||||||
end
|
end
|
||||||
|
|
||||||
local x, y = hXY( DISPLAYWIDE/2 + 0 - twid/2, 4 )
|
hText( d1, "HUD_48", DISPLAYWIDE/2 + 0 - twid/2, 4, COLOR_MAIN )
|
||||||
draw.SimpleText( d1, "HUD_48", x, y, COLOR_MAIN )
|
|
||||||
local twid2 = surface.GetTextSize(d1)
|
local twid2 = surface.GetTextSize(d1)
|
||||||
if d2 then
|
if d2 then
|
||||||
local x, y = hXY( DISPLAYWIDE/2 + twid2 - twid/2, 11 )
|
hText( d2, "HUD_36", DISPLAYWIDE/2 + twid2 - twid/2, 11, COLOR_MAIN )
|
||||||
draw.SimpleText( d2, "HUD_36", x, y, COLOR_MAIN )
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local x, y = hXY( DISPLAYWIDE/2, -16 )
|
|
||||||
local TITLE
|
local TITLE
|
||||||
if BennyGame:GetState() == BG_STATE_PRE then
|
if BennyGame:GetState() == BG_STATE_PRE then
|
||||||
TITLE = "PREGAME"
|
TITLE = "PREGAME"
|
||||||
|
@ -509,7 +513,7 @@ function GM:HUDPaint()
|
||||||
TITLE = "WAITING FOR PLAYERS"
|
TITLE = "WAITING FOR PLAYERS"
|
||||||
end
|
end
|
||||||
if TITLE then
|
if TITLE then
|
||||||
qt( TITLE, "HUD_16", x, y, COLOR_MAIN, TEXT_ALIGN_CENTER, nil, COLOR_DARK )
|
hTextS( TITLE, "HUD_24", DISPLAYWIDE/2, -18, COLOR_MAIN, TEXT_ALIGN_CENTER, nil, COLOR_DARK )
|
||||||
end
|
end
|
||||||
|
|
||||||
if false then
|
if false then
|
||||||
|
@ -582,8 +586,7 @@ function GM:HUDPaint()
|
||||||
hORect( 1, 1, 48-2, 48-2, math.floor(23 * capturepercent) )
|
hORect( 1, 1, 48-2, 48-2, math.floor(23 * capturepercent) )
|
||||||
end
|
end
|
||||||
|
|
||||||
local x, y = hXY( 48/2, 9 )
|
hTextQ( alphabet[i] or i, "HUD_36", 48/2, 9, faction_info.COLOR_MAIN, TEXT_ALIGN_CENTER, nil, faction_info.COLOR_DARK )
|
||||||
qt( alphabet[i] or i, "HUD_36", x, y, faction_info.COLOR_MAIN, TEXT_ALIGN_CENTER, nil, faction_info.COLOR_DARK )
|
|
||||||
S_Pop()
|
S_Pop()
|
||||||
end
|
end
|
||||||
S_Pop()
|
S_Pop()
|
||||||
|
@ -637,12 +640,9 @@ function GM:HUDPaint()
|
||||||
hORect( -100+1, 35+1, 200-2, 76-2 )
|
hORect( -100+1, 35+1, 200-2, 76-2 )
|
||||||
hCol( BARCOLOR_MAIN )
|
hCol( BARCOLOR_MAIN )
|
||||||
hORect( -80+1, 1, 160-2, 38-2, 1 )
|
hORect( -80+1, 1, 160-2, 38-2, 1 )
|
||||||
local x, y = hXY( 0, 4 )
|
|
||||||
qt( "POINT " .. (alphabet[ AllFlagFlip[obj] ] or AllFlagFlip[obj]), "HUD_36", x, y, BARCOLOR_MAIN, TEXT_ALIGN_CENTER, nil, BARCOLOR_DARK )
|
|
||||||
|
|
||||||
|
hTextQ( "POINT " .. (alphabet[ AllFlagFlip[obj] ] or AllFlagFlip[obj]), "HUD_36", 0, 4, BARCOLOR_MAIN, TEXT_ALIGN_CENTER, nil, BARCOLOR_DARK )
|
||||||
local x, y = hXY( 0, TITLE=="SECURE" and 62 or 40 )
|
hTextQ( TITLE, "HUD_24", 0, TITLE=="SECURE" and 62 or 40, obj:GetContested() and CONTOLER_MAIN or COLOR_MAIN, TEXT_ALIGN_CENTER, nil, COLOR_DARK )
|
||||||
qt( TITLE, "HUD_24", x, y, obj:GetContested() and CONTOLER_MAIN or COLOR_MAIN, TEXT_ALIGN_CENTER, nil, COLOR_DARK )
|
|
||||||
|
|
||||||
if TITLE!="SECURE" then
|
if TITLE!="SECURE" then
|
||||||
S_Push( -BWIDE/2, 62 )
|
S_Push( -BWIDE/2, 62 )
|
||||||
|
@ -653,8 +653,7 @@ function GM:HUDPaint()
|
||||||
hCol( TAKCOLOR_MAIN )
|
hCol( TAKCOLOR_MAIN )
|
||||||
hRect( 3, 3, math.floor((BWIDE-6) * PERCENT), BTALL-6 )
|
hRect( 3, 3, math.floor((BWIDE-6) * PERCENT), BTALL-6 )
|
||||||
S_Pop()
|
S_Pop()
|
||||||
local x, y = hXY( 0, 78 )
|
hTextQ( math.floor(PERCENT*100) .. "%", "HUD_36", 0, 78, obj:GetContested() and CONTOLER_MAIN or COLOR_MAIN, TEXT_ALIGN_CENTER, nil, obj:GetContested() and CONTOLER_DARK or COLOR_DARK )
|
||||||
qt( math.floor(PERCENT*100) .. "%", "HUD_36", x, y, obj:GetContested() and CONTOLER_MAIN or COLOR_MAIN, TEXT_ALIGN_CENTER, nil, obj:GetContested() and CONTOLER_DARK or COLOR_DARK )
|
|
||||||
end
|
end
|
||||||
S_Pop()
|
S_Pop()
|
||||||
end
|
end
|
||||||
|
@ -683,19 +682,11 @@ function GM:HUDPaint()
|
||||||
-- table.insert( hints, { "[E]", "PICK UP" } )
|
-- table.insert( hints, { "[E]", "PICK UP" } )
|
||||||
end
|
end
|
||||||
|
|
||||||
local x, y = hXY( 0, 0 )
|
|
||||||
for i, v in ipairs( hints ) do
|
for i, v in ipairs( hints ) do
|
||||||
draw.SimpleText( v[1], "HUD_24", x - 150 + 1, y + (24*(i-1)) + 1, COLOR_DARK, TEXT_ALIGN_CENTER )
|
hTextS( v[1], "HUD_24", -150, (24*(i-1)), COLOR_MAIN, TEXT_ALIGN_CENTER, nil, COLOR_DARK )
|
||||||
draw.SimpleText( v[2], "HUD_24", x + 1, y + (24*(i-1)) + 1, COLOR_DARK, TEXT_ALIGN_RIGHT )
|
hTextS( v[2], "HUD_24", 0, (24*(i-1)), COLOR_MAIN, TEXT_ALIGN_RIGHT, nil, COLOR_DARK )
|
||||||
if v[3] then
|
if v[3] then
|
||||||
draw.SimpleText( v[3], "HUD_16", x - 150 + 1, y+3 + (24*(i-1)) + 1, COLOR_DARK, TEXT_ALIGN_CENTER )
|
hTextS( v[3], "HUD_16", -150, 3 + (24*(i-1)), COLOR_MAIN, TEXT_ALIGN_CENTER, nil, COLOR_DARK )
|
||||||
end
|
|
||||||
end
|
|
||||||
for i, v in ipairs( hints ) do
|
|
||||||
draw.SimpleText( v[1], "HUD_24", x - 150, y + (24*(i-1)), COLOR_MAIN, TEXT_ALIGN_CENTER )
|
|
||||||
draw.SimpleText( v[2], "HUD_24", x, y + (24*(i-1)), COLOR_MAIN, TEXT_ALIGN_RIGHT )
|
|
||||||
if v[3] then
|
|
||||||
draw.SimpleText( v[3], "HUD_16", x - 150, y+3 + (24*(i-1)), COLOR_MAIN, TEXT_ALIGN_CENTER )
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -778,4 +769,165 @@ function GM:HUDShouldDraw( name )
|
||||||
else
|
else
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--local players = {
|
||||||
|
-- { name = "Jim", Team = "mp_arng" },
|
||||||
|
-- { name = "Sas", Team = "mp_arng" },
|
||||||
|
-- { name = "Greg", Team = "mp_arng" },
|
||||||
|
-- { name = "Nate", Team = "mp_arng" },
|
||||||
|
--
|
||||||
|
-- { name = "Ion", Team = "mp_plasof" },
|
||||||
|
-- { name = "Beo", Team = "mp_plasof" },
|
||||||
|
-- { name = "Poe", Team = "mp_plasof" },
|
||||||
|
-- { name = "Zio", Team = "mp_plasof" },
|
||||||
|
--}
|
||||||
|
|
||||||
|
local things = {
|
||||||
|
{ name = "Score", size = 100,
|
||||||
|
get = function( ply )
|
||||||
|
return 0
|
||||||
|
end,},
|
||||||
|
{ name = "Kills", size = 50,
|
||||||
|
get = function( ply )
|
||||||
|
return ply:Frags()
|
||||||
|
end,},
|
||||||
|
{ name = "Deaths", size = 50,
|
||||||
|
get = function( ply )
|
||||||
|
return ply:Deaths()
|
||||||
|
end,},
|
||||||
|
{ name = "Time", size = 50,
|
||||||
|
get = function( ply )
|
||||||
|
return ":00"
|
||||||
|
end,},
|
||||||
|
{ name = "Ping", size = 50,
|
||||||
|
get = function( ply )
|
||||||
|
return ply:Ping()
|
||||||
|
end,} -- Ping
|
||||||
|
}
|
||||||
|
|
||||||
|
local function QuickDrawStat( wide, data, first )
|
||||||
|
local gap = 0
|
||||||
|
local teamd = TEAMS[data.id]
|
||||||
|
local faction = FACTIONS[teamd.factionid]
|
||||||
|
|
||||||
|
local TeamName = l8( teamd.name )
|
||||||
|
hTextQ( TeamName, "HUD_36", 0, 0, faction.COLOR_MAIN, nil, nil, faction.COLOR_DARK )
|
||||||
|
gap = gap + 30
|
||||||
|
|
||||||
|
hCol( faction.COLOR_DARK )
|
||||||
|
hRect( -5+1, gap+1, wide+10, 2 )
|
||||||
|
hCol( faction.COLOR_MAIN )
|
||||||
|
hRect( -5, gap, wide+10, 2 )
|
||||||
|
gap = gap + 6
|
||||||
|
|
||||||
|
local blep = wide
|
||||||
|
for i, v in ipairs(things) do blep = blep - v.size end
|
||||||
|
|
||||||
|
if first then
|
||||||
|
local bloop = 0
|
||||||
|
for i, v in ipairs(things) do
|
||||||
|
hCol( 127, 127, 127, 80 )
|
||||||
|
local x, y = blep+bloop, 12
|
||||||
|
if v.name then
|
||||||
|
hTextS( v.name, "HUD_16", x+(v.size/2), y, color_white, TEXT_ALIGN_CENTER, nil, color_black )
|
||||||
|
end
|
||||||
|
bloop = bloop + v.size
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for i, ply in ipairs( data.players ) do
|
||||||
|
local bloop = 0
|
||||||
|
hCol( faction.COLOR_MAIN, 30 )
|
||||||
|
hRect( 0, gap, wide, 30 )
|
||||||
|
hCol( faction.COLOR_DARK )
|
||||||
|
hORect( 3, gap+3, wide-4, 30-4, 1 )
|
||||||
|
hCol( faction.COLOR_MAIN )
|
||||||
|
hORect( 2, gap+2, wide-4, 30-4, 1 )
|
||||||
|
|
||||||
|
hTextQ( ply:GetLevel(), "HUD_16", 18, gap+8, Color( 255, 255, 0 ), TEXT_ALIGN_CENTER, nil, color_black )
|
||||||
|
hTextQ( ply:Nick(), "HUD_24", 32, gap+5, color_white, nil, nil, color_black )
|
||||||
|
|
||||||
|
local bloop = 0
|
||||||
|
for i, v in ipairs(things) do
|
||||||
|
hCol( 255, 0, 0 )
|
||||||
|
local x, y = blep+bloop, gap+8
|
||||||
|
hTextS( v.get( ply ), "HUD_16", x+(v.size/2), y, color_white, TEXT_ALIGN_CENTER, nil, color_black )
|
||||||
|
bloop = bloop + v.size
|
||||||
|
end
|
||||||
|
|
||||||
|
gap = gap + 32
|
||||||
|
end
|
||||||
|
|
||||||
|
return gap
|
||||||
|
end
|
||||||
|
|
||||||
|
local ScoreWide = 600
|
||||||
|
function GM:ScoreboardShow()
|
||||||
|
drawscoreboard = true
|
||||||
|
end
|
||||||
|
function GM:ScoreboardHide()
|
||||||
|
drawscoreboard = false
|
||||||
|
end
|
||||||
|
function GM:HUDDrawScoreBoard()
|
||||||
|
if !drawscoreboard then return end
|
||||||
|
local p = LocalPlayer()
|
||||||
|
local w, h = ScrW(), ScrH()
|
||||||
|
local handler = p:HandlerCheck()
|
||||||
|
stack = util.Stack()
|
||||||
|
|
||||||
|
local myteam = p:Team()
|
||||||
|
local CURRCHAR
|
||||||
|
if BennyGame:GetType() == BG_GTYPE_CAMPAIGN then
|
||||||
|
CURRCHAR = "benny"
|
||||||
|
else
|
||||||
|
CURRCHAR = TEAMS[myteam].factionid
|
||||||
|
end
|
||||||
|
local COLOR_MAIN = FACTIONS[CURRCHAR].COLOR_MAIN
|
||||||
|
local COLOR_DARK = FACTIONS[CURRCHAR].COLOR_DARK
|
||||||
|
local CHARNAME = FACTIONS[CURRCHAR].CHARNAME
|
||||||
|
|
||||||
|
local MP = BennyGame:GetType() == BG_GTYPE_MP
|
||||||
|
|
||||||
|
if MP then
|
||||||
|
S_Push( w/2 - ScoreWide/2, h/2 - 400/2 )
|
||||||
|
local OrganizedTeams = {}
|
||||||
|
local IDtoOrg = {}
|
||||||
|
|
||||||
|
local MyCreation = { id = myteam, players = {} }
|
||||||
|
table.insert( OrganizedTeams, MyCreation )
|
||||||
|
IDtoOrg[myteam] = MyCreation
|
||||||
|
|
||||||
|
for TeamID, RealTeamID in ipairs( BennyGame.TeamsInPlay ) do
|
||||||
|
if RealTeamID == myteam then continue end
|
||||||
|
|
||||||
|
local MyCreation = { id = RealTeamID, players = {} }
|
||||||
|
table.insert( OrganizedTeams, MyCreation )
|
||||||
|
IDtoOrg[RealTeamID] = MyCreation
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, ply in player.Iterator() do
|
||||||
|
local thisteam = ply:Team()
|
||||||
|
if !IDtoOrg[thisteam] then
|
||||||
|
local MyCreation = { id = thisteam, players = {} }
|
||||||
|
table.insert( OrganizedTeams, MyCreation )
|
||||||
|
IDtoOrg[thisteam] = MyCreation
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert( IDtoOrg[thisteam].players, ply )
|
||||||
|
end
|
||||||
|
|
||||||
|
local gap = 0
|
||||||
|
for index, data in ipairs( OrganizedTeams ) do
|
||||||
|
S_Push( 0, 0 + gap )
|
||||||
|
gap = gap + QuickDrawStat( ScoreWide, data, index==1 )
|
||||||
|
S_Pop()
|
||||||
|
end
|
||||||
|
S_Pop()
|
||||||
|
else
|
||||||
|
-- Timer, player & team score
|
||||||
|
end
|
||||||
|
|
||||||
|
if stack:Size() != 0 then print("Stack unfinished.") end
|
||||||
|
return
|
||||||
end
|
end
|
Loading…
Reference in New Issue