score={}
multi=1
admins={}
screen=Vector2(guiGetScreenSize())
if screen.x<1050 then
multi=1.6
end
score.font=dxCreateFont("czcionka.ttf",((15/1920)*screen.x)*multi) or "default-bold"
score.font2=dxCreateFont("czcionka.ttf",((25/1920)*screen.x)*multi) or "default-bold"
score.font3=dxCreateFont("czcionka.ttf",((12/1920)*screen.x)*multi) or "default-bold"
score.infoplayers={0,0}
score.offset=0
to_down=0
score.offset2=0
score.open=false
--325, 452, 1270, 415
rendertarget=dxCreateRenderTarget((1270/1920)*screen.x, (405/1080)*screen.y,true)
local zoom = 1
local fh = 1920
if screen.x < fh then
zoom = math.min(2,fh/screen.x)
end
skaluj=function(x,y,w,h)
return {(x/1920)*screen.x,(y/1080)*screen.y,(w/1920)*screen.x,(h/1080)*screen.y}
end
function isEventHandlerAdded( sEventName, pElementAttachedTo, func )
if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then
local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
for i, v in ipairs( aAttachedFunctions ) do
if v == func then
return true
end
end
end
end
return false
end
pos={
["rec"]=skaluj(306, 209, 1308, 662),
["img"]={(306/1920)*screen.x, (203/1080)*screen.y, 170/zoom, 167/zoom},
["line"]={(304/1920)*screen.x, (209/1080)*screen.y, (1615/1920)*screen.x, (209/1080)*screen.y},
["line2"]={(306/1920)*screen.x, (208/1080)*screen.y, (306/1920)*screen.x, (870/1080)*screen.y},
["line3"]={(304/1920)*screen.x, (870/1080)*screen.y, (1616/1920)*screen.x, (870/1080)*screen.y},
["line4"]={(1614/1920)*screen.x, (208/1080)*screen.y, (1614/1920)*screen.x, (870/1080)*screen.y},
["dx"]=skaluj(1381, 231, 1579, 283),
["dxx"]=skaluj(1381, 331, 1579, 283),
["dx2"]=skaluj(1056, 318, 1363, 309),
["line5"]={(325/1920)*screen.x, (450/1080)*screen.y, (1595/1920)*screen.x, (450/1080)*screen.y},
["dx3"]=skaluj(324, 409, 450, 449),
["dx4"]=skaluj(450, 409, 576, 449),
["dx5"]=skaluj(576, 409, 828, 449),
["dx6"]=skaluj(828, 409, 1021, 449),
["dx7"]=skaluj(1021, 409, 1368, 449),
["dx8"]=skaluj(1368, 409, 1594, 449),
["rec2"]=skaluj(585, 460, 235, 27),
["rec3"]=skaluj(835, 460, 177, 27),
["rec4"]=skaluj(1031, 460, 328, 27),
["rec5"]=skaluj(1378, 460, 211, 27),
["rec6"]=skaluj(458, 460, 113, 27),
["rec7"]=skaluj(331, 460, 113, 27),
["rec8"]=skaluj(309, 212, 163, 174)
}
score.render=function()
if not score.open then return end
exports['server-dx']:dxWindow(pos["rec"][1],pos["rec"][2],pos["rec"][3],pos["rec"][4])
-- exports['server-dx']:dxWindow(pos["rec8"][1],pos["rec8"][2],pos["rec8"][3],pos["rec8"][4])
dxDrawImage(pos["img"][1],pos["img"][2],pos["img"][3],pos["img"][4], "logo.png", 0, 0, 0, tocolor(255, 255, 255, 255), true)
-- dxDrawLine(pos["line"][1],pos["line"][2],pos["line"][3],pos["line"][4], tocolor(225, 183, 28, 255), 5, true)
-- dxDrawLine(pos["line2"][1],pos["line2"][2],pos["line2"][3],pos["line2"][4], tocolor(225, 183, 28, 255), 5, true)
-- dxDrawLine(pos["line3"][1],pos["line3"][2],pos["line3"][3],pos["line3"][4], tocolor(225, 183, 28, 255), 5, true)
-- dxDrawLine(pos["line4"][1],pos["line4"][2],pos["line4"][3],pos["line4"][4], tocolor(225, 183, 28, 255), 5, true)
-- dxDrawLine((306/1920)*screen.x, (385/1080)*screen.y, (475/1920)*screen.x, (385/1080)*screen.y, tocolor(225, 183, 28, 255), 5, true)
dxDrawText("Gracze : "..score.infoplayers[1].."/"..score.infoplayers[2], pos["dx"][1],pos["dx"][2],pos["dx"][3],pos["dx"][4], tocolor(255, 255, 255, 255), 1.00, score.font, "right", "center", false, true, true, false, false)
dxDrawText("TwĂłj ping : "..getPlayerPing(localPlayer).."ms", pos["dxx"][1],pos["dxx"][2],pos["dxx"][3],pos["dxx"][4], tocolor(255, 255, 255, 255), 1.00, score.font, "right", "center", false, true, true, false, false)
-- dxDrawText("Scoreboard\nCaseRPG", pos["dx2"][1],pos["dx2"][2],pos["dx2"][3],pos["dx2"][4], tocolor(255, 255, 255, 255), 1.00, score.font2, "center", "center", false, false, true, false, false)
-- dxDrawLine(pos["line5"][1],pos["line5"][2],pos["line5"][3],pos["line5"][4], tocolor(225, 183, 28, 255), 3, true)
dxDrawText("SID", pos["dx3"][1],pos["dx3"][2],pos["dx3"][3],pos["dx3"][4], tocolor(255, 255, 255, 150), 1.00, score.font, "center", "center", false, false, true, false, false)
dxDrawText("ID", pos["dx4"][1],pos["dx4"][2],pos["dx4"][3],pos["dx4"][4], tocolor(255, 255, 255, 150), 1.00, score.font, "center", "center", false, false, true, false, false)
dxDrawText("Nick", pos["dx5"][1],pos["dx5"][2],pos["dx5"][3],pos["dx5"][4], tocolor(255, 255, 255, 150), 1.00, score.font, "center", "center", false, false, true, false, false)
dxDrawText("Reputacja", pos["dx6"][1],pos["dx6"][2],pos["dx6"][3],pos["dx6"][4], tocolor(255, 255, 255, 150), 1.00, score.font, "center", "center", false, false, true, false, false)
dxDrawText("Organizacja", pos["dx7"][1],pos["dx7"][2],pos["dx7"][3],pos["dx7"][4], tocolor(255, 255, 255, 150), 1.00, score.font, "center", "center", false, false, true, false, false)
dxDrawText("S?‚uĹĽba", pos["dx8"][1],pos["dx8"][2],pos["dx8"][3],pos["dx8"][4], tocolor(255, 255, 255, 150), 1.00, score.font, "center", "center", false, false, true, false, false)
dxDrawLine((577/1920)*screen.x, (452/1080)*screen.y, (577/1920)*screen.x, (855/1080)*screen.y, tocolor(0, 0, 0, 100), 2, true)
dxDrawLine((451/1920)*screen.x, (452/1080)*screen.y, (451/1920)*screen.x, (855/1080)*screen.y, tocolor(0, 0, 0, 100), 2, true)
dxDrawLine((828/1920)*screen.x, (452/1080)*screen.y, (828/1920)*screen.x, (855/1080)*screen.y, tocolor(0, 0, 0, 100), 2, true)
dxDrawLine((1021/1920)*screen.x, (452/1080)*screen.y, (1021/1920)*screen.x, (855/1080)*screen.y, tocolor(0, 0, 0, 100), 2, true)
dxDrawLine((1368/1920)*screen.x, (452/1080)*screen.y, (1368/1920)*screen.x, (855/1080)*screen.y, tocolor(0, 0, 0, 100), 2, true)
dxDrawImage((325/1920)*screen.x, (452/1080)*screen.y, 1270/zoom, 405/zoom,rendertarget,0,0,0,tocolor(255,255,255,255),true)
score.offset=0
dxSetRenderTarget(rendertarget,true)
dxSetBlendMode("modulate_add")
if not getElementData(localPlayer,"id") then
pid=0
else
pid=getElementData(localPlayer,"id")
end
if getElementData(localPlayer,"player:faction") then
fac=getElementData(localPlayer,"player:faction")
else
fac="--"
end
if getElementData(localPlayer,"player:sid") then
psid=getElementData(localPlayer,"player:sid")
else
psid="N/A"
end
if getElementData(localPlayer,"player:organization") then
organizacja=getElementData(localPlayer,"player:organization")
else
organizacja="--"
end
if getElementData(localPlayer,"player:srp") then
repu=getElementData(localPlayer,"player:srp")
else
repu="N/A"
end
--dxDrawRectangle((7/1920)*screen.x, ((0/1080)*screen.y)+score.offset2, (1255/1920)*screen.x, (44/1080)*screen.y, tocolor(), false)
dxDrawText(getPlayerName(localPlayer), (-70/1920)*screen.x, ((10/1080)*screen.y)+score.offset2, (827/1920)*screen.x, (495/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, true, false)
dxDrawText(pid, (-200/1920)*screen.x, ((10/1080)*screen.y)+score.offset2, (575/1920)*screen.x, (506/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(psid, (-325/1920)*screen.x, ((10/1080)*screen.y)+score.offset2, (450/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(repu, (180/1920)*screen.x, ((10/1080)*screen.y)+score.offset2, (1019/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(organizacja, (370/1920)*screen.x, ((10/1080)*screen.y)+score.offset2, (1366/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(fac, (725/1920)*screen.x, ((10/1080)*screen.y)+score.offset2, (1587/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawLine((7/1920)*screen.x, ((45/1080)*screen.y)+score.offset2, (1262/1920)*screen.x, ((45/1080)*screen.y)+score.offset2, tocolor(0, 0, 0, 100), 3, false)
-- dxDrawLine((474/1920)*screen.x, (210/1080)*screen.y, (474/1920)*screen.x, (387/1080)*screen.y, tocolor(), 5, true)
owner,root,adm,mod=0,0,0,0
ownertab={}
roottab={}
admtab={}
modtab={}
txtowner=""
txtroot=""
txtadm=""
txtmod=""
for k,v in ipairs(admins)do
if admins[k].level==5 then
owner=owner+1
table.insert(ownertab,admins[k].nazwa)
elseif admins[k].level==4 then
root=root+1
table.insert(roottab,admins[k].nazwa)
elseif admins[k].level==3 then
adm=adm+1
table.insert(admtab,admins[k].nazwa)
elseif admins[k].level==2 then
mod=mod+1
table.insert(modtab,admins[k].nazwa)
end
end
if #ownertab>0 then
txtowner="("..table.concat(ownertab,",").."#ffffff)"
end
if #roottab>0 then
txtroot="("..table.concat(roottab,",").."#ffffff)"
end
if #admtab>0 then
txtadm="("..table.concat(admtab,",").."#ffffff)"
end
if #modtab>0 then
txtmod="("..table.concat(modtab,",").."#ffffff)"
end dxDrawText("Aktywna administracja(/admins) :\n\n#E47833W?‚a?›ciciel#ffffff : "..owner.." "..txtowner.."\n#cc00ccROOT #ffffff: "..root.." "..txtroot.."\n#ff0000Administrator #ffffff: "..adm.." "..txtadm.."\n#0099ffModerator #ffffff: "..mod.." "..txtmod.."", (488/1920)*screen.x, (221/1080)*screen.y, (847/1920)*screen.x, (380/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "left", "center", false, false, true, true, false)
for k,v in ipairs(spis)do
score.offset=score.offset+(45/1080)*screen.y
--exports['server-dx']:dxWindow((7/1920)*screen.x, ((0/1080)*screen.y)+score.offset+score.offset2, (1255/1920)*screen.x, (44/1080)*screen.y)
dxDrawText(spis[k].nazwa, (-70/1920)*screen.x, ((10/1080)*screen.y)+score.offset+score.offset2, (827/1920)*screen.x, (495/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, true, false)
dxDrawText(spis[k].id, (-200/1920)*screen.x, ((10/1080)*screen.y)+score.offset+score.offset2, (575/1920)*screen.x, (506/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(spis[k].sid, (-325/1920)*screen.x, ((10/1080)*screen.y)+score.offset+score.offset2, (450/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(spis[k].reputacja, (180/1920)*screen.x, ((10/1080)*screen.y)+score.offset+score.offset2, (1019/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(spis[k].org, (370/1920)*screen.x, ((10/1080)*screen.y)+score.offset+score.offset2, (1366/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawText(spis[k].sluzba, (725/1920)*screen.x, ((10/1080)*screen.y)+score.offset+score.offset2, (1587/1920)*screen.x, (493/1080)*screen.y, tocolor(255, 255, 255, 255), 1.00, score.font3, "center", "top", false, false, false, false, false)
dxDrawLine((7/1920)*screen.x, (((45/1080)*screen.y)+score.offset)+score.offset2, ((1262/1920)*screen.x), (((45/1080)*screen.y)+score.offset)+score.offset2, tocolor(), 3, false)
end
dxSetBlendMode("blend")
dxSetRenderTarget(false)
end
addEventHandler("onClientRender",root,score.render)
addEventHandler("onClientKey",root,function(key,state)
if key=="tab" then
if state then
--if not isEventHandlerAdded("onClientRender",root,score.render) then
if not score.open then
triggerServerEvent("scoreboard:aktualizuj",localPlayer)
spis={}
admins={}
for _,v in ipairs(getElementsByType("player"))do
if getPlayerName(v)~=getPlayerName(localPlayer) then
if not getElementData(v,"id") then
pid=0
else
pid=getElementData(v,"id")
end
if getElementData(v,"player:faction") then
fac=getElementData(v,"player:faction")
else
fac="--"
end
if getElementData(v,"player:sid") then
psid=getElementData(v,"player:sid")
else
psid="N/A"
end
if getElementData(v,"player:organization") then
organizacja=getElementData(v,"player:organization")
else
organizacja="--"
end
if getElementData(v,"player:srp") then
repu=getElementData(v,"player:srp")
else
repu="N/A"
end
table.insert(spis,{nazwa=getPlayerName(v),id=pid,sid=psid,sluzba=fac,org=organizacja,reputacja=repu})
end
if getElementData(v,"player:level")==4 then
table.insert(admins,{level=4,nazwa=getPlayerName(v)})
elseif getElementData(v,"player:level")==3 then
table.insert(admins,{level=3,nazwa=getPlayerName(v)})
elseif getElementData(v,"player:level")==2 then
table.insert(admins,{level=2,nazwa=getPlayerName(v)})
elseif getElementData(v,"player:level")==1 then
table.insert(admins,{level=1,nazwa=getPlayerName(v)})
end
end
table.sort(spis, function(a, b) return a.id < b.id end )
end
else
--removeEventHandler("onClientRender",root,score.render)
score.open=false
unbindKey("mouse_wheel_up","down",scroolUp)
unbindKey("mouse_wheel_down","down",scroolDown)
--blurBoxElement = not exports.blur_box:destroyBlurBox( blurBoxElement )
setElementData(localPlayer,"player:hud",true)
end
end
end)
function scroolDown()
if #getElementsByType("player")>9 then
max=#getElementsByType("player")-9
if to_down>=max then return end
score.offset2=score.offset2-(50/1080)*screen.y
to_down=to_down+1
end
end
function scroolUp()
if to_down>0 then
score.offset2=score.offset2+(50/1080)*screen.y
to_down=to_down-1
end
end
addEvent("scoreboard:aktualizuj",true)
addEventHandler("scoreboard:aktualizuj",root,function(aktualnie,max)
if localPlayer==source then
score.infoplayers={aktualnie,max}
--addEventHandler("onClientRender",root,score.render)
score.open=true
bindKey("mouse_wheel_up","down",scroolUp)
bindKey("mouse_wheel_down","down",scroolDown)
--blurBoxElement = exports.blur_box:createBlurBox( pos["rec"][1],pos["rec"][2],pos["rec"][3],pos["rec"][4], 255, 255, 255, 255, false )
--exports.blur_box:setBlurIntensity(2.0)
setElementData(localPlayer,"player:hud",false)
end
end)