Jump to content

Como deixo o nome do player colorido?


Recommended Posts

Panel = {}
local screenWidth, screenHeight
local renderTarget
local headerColor = tocolor(0, 0, 0, 227)
local headerColor2 = tocolor(0, 0, 0, 240)
local itemColor = tocolor(42, 40, 41)
local highlightedColor = tocolor(255, 255, 255)

colorButtonsList = {
    { name = "purple" },
    { name = "blue" },
    { name = "red" },
    { name = "orange" },
    { name = "green" },
    { name = "black" },
    { name = "pink" },
    { name = "blue2"},
    { name = "grey"},
    { name = "yellow"},
}

local panelWidth = 797
local panelHeight
local headerHeight = 60
local itemHeight = 25
local itemsCount = 8
local headerFont
local itemFont

local columns = {
    { name = "Matou:",     size = 0.1,     data = "kills"},
    { name = "Morreu:",     size = 0.1,     data = "deaths"},
  { name = "Desativado:",     size = 0.1,     data = " "},
    { name = "Nick:",     size = 0.4,     data = "name"},
    { name = "Equipe:",         size = 0.1,     data = "team"},    
    { name = "Fps:", size = 0.1, data = "FPS"},
    { name = "Ping:",         size = 0.1,     data = "ping"},    
}

setTimer(
function()
    if getPlayerTeam(localPlayer) then
        setElementData(localPlayer, "team", getTeamName(getPlayerTeam(localPlayer)))
    end
end, 1000, 0)

local playersList = {}
local playersOnlineCount = 0
local playersOnlineString = "Jogadores online"
local scrollOffset = 0

function dxDrawRoundedRectangle(x, y, rx, ry, cor, raio)
rx = rx - raio * 2
ry = ry - raio * 2
x = x + raio
y = y + raio

if (rx >= 0) e (ry >= 0) then
dxDrawRectangle(x, y, rx, ry, cor)
dxDrawRectangle(x, y - raio, rx, raio, cor)
dxDrawRectangle(x, y + ry, rx, raio, cor)
dxDrawRectangle(x - raio, y, raio, ry, cor)
dxDrawRectangle(x + rx, y, raio, ry, cor)

terminar
fim

local function draw()
if renderTarget then
dxSetRenderTarget(renderTarget)
end
local w, h = 500, 50
local y = screenHeight / 2 - panelHeight / 2
local panelX = screenWidth / 2 - panelWidth / 2
dxDrawRoundedRectangle(panelX, y, panelWidth, headerHeight * 2 + itemsCount * itemHeight, headerColor,1)
dxDrawRoundedRectangle(panelX, y, panelWidth, headerHeight * 4.07 - itemsCount * itemHeight, headerColor2,1)
local x = panelX
para i, coluna em ipairs(colunas) do
local width = panelWidth * column.size
dxDrawText(exports.dpLang:getString(column.name), x, y, x + width, y + headerHeight, tocolor(255, 255, 255), 1, headerFont, "center", "center")
x = x + width
end
y = y + headerHeight
local itemY = y
for i = scrollOffset + 1, math.min(itemsCount + scrollOffset, #playersList) do
local item = playersList
local color = itemColor
if item.isGroup then
color = item.color
end
if item.isLocalPlayer then
color = highlightedColor
end
x = panelX
if item.isGroup then
dxDrawText(item.text, x, y, x + panelWidth, y + headerHeight * 0.8, tocolor(255, 255, 255), 1, itemFont, "center", "center", true)
else
for j, column in ipairs(columns) do
local text = item[column.data]
local width = panelWidth * column.size
dxDrawText(tostring(text), x, y, x + width, y + headerHeight * 0.8, tocolor(255, 255, 255), 1, itemFont, "center", "center", true)
x = x + width
end
end
y = y + itemHeight
end
x = panelX
y = itemY + itemsCount * itemHeight
dxDrawText(playersOnlineString .. ": " .. tostring(playersOnlineCount), x, y, x + panelWidth, y + headerHeight, tocolor(255, 255, 255), 1, headerFont, "center", "center")
if renderTarget then
dxSetRenderTarget()
end
end

local function mouseDown()
    if #playersList <= itemsCount then
        return
    end
    scrollOffset = scrollOffset + 1
    if scrollOffset > #playersList - itemsCount then
        scrollOffset = #playersList - itemsCount + 1
    end
end

local function mouseUp()
    if #playersList <= itemsCount then
        return
    end
    scrollOffset = scrollOffset - 1
    if scrollOffset < 0 then
        scrollOffset = 0
    end
end

function Panel.start()
renderTarget = exports.dpUI:getRenderTarget()
screenWidth, screenHeight = exports.dpUI:getScreenSize()
addEventHandler("onClientRender", root, draw)
headerFont = exports.dpAssets:createFont("Roboto-Regular.ttf", 12)
itemFont = exports.dpAssets:createFont("Roboto-Regular.ttf", 12)
for i, colorButton in ipairs(colorButtonsList) do
local lol = exports.dpUI:getThemeName( colorButton.name)
if tostring(colorButtonsList.name) == tostring(lol) then
logoNumber = i
end
end
panelHeight = 10 + headerHeight * 2 + itemsCount * itemHeight
highlightedColor = tocolor(exports.dpUI:getThemeColor())

lista de jogadores = {}

local function addPlayerToList(player, isLocalPlayer)
if type(player) == "table" then
table.insert(playersList, player)
return
end
local nameString
if player:getData("nome de usuário") then
nameString = exports.dpUtils:removeHexFromString(player:getData("nome de usuário"))
else
nameString = getPlayerName(player).." (carregando...)"
end
table.insert(playersList, {
isLocalPlayer = isLocalPlayer,
id = player:getData("serverId") or 0,
name = player.name:gsub("#%x%x%x%x%x%x%x",""),
ping = tostring(player:getPing() or '?'),
FPS = player:getData('FPS') or '-',
team = tostring(player:getData("team") or "Player"),
kills = tostring(player:getData("kills") or 0),
mortes = tostring(player:getData("mortes") ou 0),
})
end

local players = getElementsByType("player")
table.sort(players, function (player1, player2)
local id1 = player1:getData("serverId") ou 999
local id2 = player2:getData("serverId") ou 999
return id1 < id2
end)
playersOnlineCount = #players

    local function getPlayersWithData(dataName)
        local t = {}
        for i = #players, 1, -1 do
            if players:getData(dataName) then
                table.insert(t, table.remove(players, i))
            end
        end
        return t
    end

    addPlayerToList(localPlayer, true)

    if #players > 0 then
        addPlayerToList({ text = exports.dpLang:getString("tab_panel_group_players"), color = headerColor, isGroup = true} )
        for i, player in ipairs(players) do
            if player ~= localPlayer then
                addPlayerToList(player)
            end
        end
    end

bindKey("mouse_wheel_up", "para baixo", mouseUp)
bindKey("mouse_wheel_down", "para baixo", mouseDown)
localPlayer:setData("activeUI", "tabPanel")

playersOnlineString = exports.dpLang:getString("tab_panel_players_online")
se não playersOnlineString então
playersOnlineString = "Jogadores online"
end
end

function Panel.stop()
    removeEventHandler("onClientRender", root, draw)
    destroyElement(headerFont)
    destroyElement(itemFont)

unbindKey("mouse_wheel_up", "para baixo", mouseUp)
unbindKey("mouse_wheel_down", "para baixo", mouseDown)

    localPlayer:setData("activeUI", false)
end

local iFPS = 0
local FPS = 0

setTimer(function()
    localPlayer:setData('FPS', FPS, true)
end,5000,0)

addEventHandler('onClientRender',root,function()
iFPS = iFPS+1
fim)

setTimer(function()
FPS = iFPS
iFPS = 0
final,1000,0)

 

Edited by Lord Henry
Código convertido de texto para Lua.
Link to comment
On 28/02/2025 at 16:25, Nakka Lindo said:
Panel = {}
local screenWidth, screenHeight
local renderTarget
local headerColor = tocolor(0, 0, 0, 227)
local headerColor2 = tocolor(0, 0, 0, 240)
local itemColor = tocolor(42, 40, 41)
local highlightedColor = tocolor(255, 255, 255)

colorButtonsList = {
    { name = "purple" },
    { name = "blue" },
    { name = "red" },
    { name = "orange" },
    { name = "green" },
    { name = "black" },
    { name = "pink" },
    { name = "blue2"},
    { name = "grey"},
    { name = "yellow"},
}

local panelWidth = 797
local panelHeight
local headerHeight = 60
local itemHeight = 25
local itemsCount = 8
local headerFont
local itemFont

local columns = {
    { name = "Matou:",     size = 0.1,     data = "kills"},
    { name = "Morreu:",     size = 0.1,     data = "deaths"},
  { name = "Desativado:",     size = 0.1,     data = " "},
    { name = "Nick:",     size = 0.4,     data = "name"},
    { name = "Equipe:",         size = 0.1,     data = "team"},    
    { name = "Fps:", size = 0.1, data = "FPS"},
    { name = "Ping:",         size = 0.1,     data = "ping"},    
}

setTimer(
function()
    if getPlayerTeam(localPlayer) then
        setElementData(localPlayer, "team", getTeamName(getPlayerTeam(localPlayer)))
    end
end, 1000, 0)

local playersList = {}
local playersOnlineCount = 0
local playersOnlineString = "Jogadores online"
local scrollOffset = 0

function dxDrawRoundedRectangle(x, y, rx, ry, cor, raio)
rx = rx - raio * 2
ry = ry - raio * 2
x = x + raio
y = y + raio

if (rx >= 0) e (ry >= 0) then
dxDrawRectangle(x, y, rx, ry, cor)
dxDrawRectangle(x, y - raio, rx, raio, cor)
dxDrawRectangle(x, y + ry, rx, raio, cor)
dxDrawRectangle(x - raio, y, raio, ry, cor)
dxDrawRectangle(x + rx, y, raio, ry, cor)

terminar
fim

local function draw()
if renderTarget then
dxSetRenderTarget(renderTarget)
end
local w, h = 500, 50
local y = screenHeight / 2 - panelHeight / 2
local panelX = screenWidth / 2 - panelWidth / 2
dxDrawRoundedRectangle(panelX, y, panelWidth, headerHeight * 2 + itemsCount * itemHeight, headerColor,1)
dxDrawRoundedRectangle(panelX, y, panelWidth, headerHeight * 4.07 - itemsCount * itemHeight, headerColor2,1)
local x = panelX
para i, coluna em ipairs(colunas) do
local width = panelWidth * column.size
dxDrawText(exports.dpLang:getString(column.name), x, y, x + width, y + headerHeight, tocolor(255, 255, 255), 1, headerFont, "center", "center")
x = x + width
end
y = y + headerHeight
local itemY = y
for i = scrollOffset + 1, math.min(itemsCount + scrollOffset, #playersList) do
local item = playersList
local color = itemColor
if item.isGroup then
color = item.color
end
if item.isLocalPlayer then
color = highlightedColor
end
x = panelX
if item.isGroup then
dxDrawText(item.text, x, y, x + panelWidth, y + headerHeight * 0.8, tocolor(255, 255, 255), 1, itemFont, "center", "center", true)
else
for j, column in ipairs(columns) do
local text = item[column.data]
local width = panelWidth * column.size
dxDrawText(tostring(text), x, y, x + width, y + headerHeight * 0.8, tocolor(255, 255, 255), 1, itemFont, "center", "center", true)
x = x + width
end
end
y = y + itemHeight
end
x = panelX
y = itemY + itemsCount * itemHeight
dxDrawText(playersOnlineString .. ": " .. tostring(playersOnlineCount), x, y, x + panelWidth, y + headerHeight, tocolor(255, 255, 255), 1, headerFont, "center", "center")
if renderTarget then
dxSetRenderTarget()
end
end

local function mouseDown()
    if #playersList <= itemsCount then
        return
    end
    scrollOffset = scrollOffset + 1
    if scrollOffset > #playersList - itemsCount then
        scrollOffset = #playersList - itemsCount + 1
    end
end

local function mouseUp()
    if #playersList <= itemsCount then
        return
    end
    scrollOffset = scrollOffset - 1
    if scrollOffset < 0 then
        scrollOffset = 0
    end
end

function Panel.start()
renderTarget = exports.dpUI:getRenderTarget()
screenWidth, screenHeight = exports.dpUI:getScreenSize()
addEventHandler("onClientRender", root, draw)
headerFont = exports.dpAssets:createFont("Roboto-Regular.ttf", 12)
itemFont = exports.dpAssets:createFont("Roboto-Regular.ttf", 12)
for i, colorButton in ipairs(colorButtonsList) do
local lol = exports.dpUI:getThemeName( colorButton.name)
if tostring(colorButtonsList.name) == tostring(lol) then
logoNumber = i
end
end
panelHeight = 10 + headerHeight * 2 + itemsCount * itemHeight
highlightedColor = tocolor(exports.dpUI:getThemeColor())

lista de jogadores = {}

local function addPlayerToList(player, isLocalPlayer)
if type(player) == "table" then
table.insert(playersList, player)
return
end
local nameString
if player:getData("nome de usuário") then
nameString = exports.dpUtils:removeHexFromString(player:getData("nome de usuário"))
else
nameString = getPlayerName(player).." (carregando...)"
end
table.insert(playersList, {
isLocalPlayer = isLocalPlayer,
id = player:getData("serverId") or 0,
name = player.name:gsub("#%x%x%x%x%x%x%x",""),
ping = tostring(player:getPing() or '?'),
FPS = player:getData('FPS') or '-',
team = tostring(player:getData("team") or "Player"),
kills = tostring(player:getData("kills") or 0),
mortes = tostring(player:getData("mortes") ou 0),
})
end

local players = getElementsByType("player")
table.sort(players, function (player1, player2)
local id1 = player1:getData("serverId") ou 999
local id2 = player2:getData("serverId") ou 999
return id1 < id2
end)
playersOnlineCount = #players

    local function getPlayersWithData(dataName)
        local t = {}
        for i = #players, 1, -1 do
            if players:getData(dataName) then
                table.insert(t, table.remove(players, i))
            end
        end
        return t
    end

    addPlayerToList(localPlayer, true)

    if #players > 0 then
        addPlayerToList({ text = exports.dpLang:getString("tab_panel_group_players"), color = headerColor, isGroup = true} )
        for i, player in ipairs(players) do
            if player ~= localPlayer then
                addPlayerToList(player)
            end
        end
    end

bindKey("mouse_wheel_up", "para baixo", mouseUp)
bindKey("mouse_wheel_down", "para baixo", mouseDown)
localPlayer:setData("activeUI", "tabPanel")

playersOnlineString = exports.dpLang:getString("tab_panel_players_online")
se não playersOnlineString então
playersOnlineString = "Jogadores online"
end
end

function Panel.stop()
    removeEventHandler("onClientRender", root, draw)
    destroyElement(headerFont)
    destroyElement(itemFont)

unbindKey("mouse_wheel_up", "para baixo", mouseUp)
unbindKey("mouse_wheel_down", "para baixo", mouseDown)

    localPlayer:setData("activeUI", false)
end

local iFPS = 0
local FPS = 0

setTimer(function()
    localPlayer:setData('FPS', FPS, true)
end,5000,0)

addEventHandler('onClientRender',root,function()
iFPS = iFPS+1
fim)

setTimer(function()
FPS = iFPS
iFPS = 0
final,1000,0)

 

Não entendi, onde quer deixar colorido? porque você ta misturando oop com o codigo no oop?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...