Doongogar Posted February 24, 2023 Share Posted February 24, 2023 (edited) então minha scoreboar é a base de banners, então aparece quem é fundador, staff, vip ou cidadão la eu queria que ficassem os fundadores em cima depois staff's, depois vip's, e depois os cidadãos como eu poderia fazer isso: function scoreBoardDX() exports[""..config.Blur]:dxDrawBluredRectangle(x*0, y*0, screenW, screenH, tocolor(255, 255, 255, 255), false) local Jogador = getPlayerName(localPlayer) local ID = getElementData(localPlayer, "ID") or "0" local Emprego = getElementData(localPlayer, "Emprego") or "Desempregado" local Element_X = 0 local Element_Y = 0 local ava_l = getElementData( localPlayer, "conta:avatar" ) or 0 players = getElementsByType( "player" ) dxDrawRoundedRectangle(x*510, y*132, x*346, y*503, tocolor(28, 28, 28, 243), 10) dxDrawRoundedRectangle(x*510, y*132, x*345, y*36, tocolor(41, 41, 41, 255), 10) dxDrawRectangle(x*754, y*139, x*96, y*24, tocolor(28, 28, 28, 231), false) dxDrawText(#players..'/'..config.Slot, x*754, y*140, x*850, y*163, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false) dxDrawRectangle(x*754, y*139, x*96*#players/100, y*24, tocolor(config.R, config.G, config.B, 255), false) dxDrawRectangle(x*520, y*261, x*326, y*4, tocolor(41, 41, 41, 255), false) dxDrawText("Jogadores | FPS:"..GetFPS(), x*536, y*134, x*723, y*170, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false) dxDrawImage(x*828, y*238, x*18, y*17, "images/settings.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*521, y*178, x*75, y*75, "avatars/"..ava_l..".png", 0, 0, 0, tocolor(255, 255, 255, 255), false) local level = getElementData( localPlayer, ""..config.Level.."" ) or 0 local name = getElementData( localPlayer, "conta:nome" ) or 'Desconhecido' local id = getElementData( localPlayer, ""..config.ID.."" ) or 'N/A' local din = getPlayerMoney(localPlayer) local DinheiroB = getElementData( localPlayer, ""..config.Banco.."" ) or 'N/A' local emrepgo = getElementData( localPlayer, "Emprego" ) or 'Desempregado' dxDrawText(""..getPlayerName(localPlayer).." | "..id.."", x*602, y*165, x*765, y*217, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "center", false, false, false, false, false) dxDrawText("Dinheiro:"..din.." Banco:"..DinheiroB, x*602, y*197, x*765, y*217, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "center", false, false, false, false, false) dxDrawText(emrepgo, x*602, y*209, x*765, y*238, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "center", false, false, false, false, false) dxDrawText("Level : "..level, x*603, y*233, x*699, y*251, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "center", false, false, true, false, false) for k, player in ipairs(getElementsByType("player")) do local Ping = getPlayerPing(player) local name = getPlayerName(player) if (k > PageInventory and Element_X < MaxInventory) and name ~= "" then dxDrawRoundedRectangle(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, tocolor(41, 41, 41, 255), 4) -- Borda de trás Player local avatar = getElementData( player, "conta:avatar" ) or 0 if getElementData(player, "Cargo") == "Fundador" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/fundador.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end dxDrawImage( 650*sx + Element_X * (sx*150), 383*sy + Element_Y * (sy*55), 40*sx, 40*sy, "avatars/"..avatar..".png", 0, 0, 0, tocolor( 255, 255, 255, 255 ), true ) if getElementData(player, "Cargo") == "Patrocinador" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/6.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end if getElementData(player, "Cargo") == "Booster" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/7.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end if getElementData(player, "Cargo") == "Youtuber" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/3.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end if getElementData(player, "Cargo") == "Admin" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/2.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end if getElementData(player, "Cargo") == "VIP" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/5.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end if getElementData(player, "Cargo") == "Membro" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/4.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end if getElementData(player, "Cargo") == "Policial" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/8.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end if getElementData(player, "Cargo") == "GANG" then dxDrawImage(643*sx + Element_X * (sx*150), 375*sy + Element_Y * (sy*55), 400*sx, 51*sy, "banners/9.png", 0, 0, 0, tocolor(255, 255, 255, 255)) end dxDrawText(name, 700*sx + Element_X * (sx*150), 387*sy + Element_Y * (sy*55), 797*sx, 373*sy, tocolor(255, 255, 255, 255), 1.50*sy, FontN, "left", "top", false, false, true, true, false) dxDrawText(Ping, 985*sx + Element_X * (sx*150), 390*sy + Element_Y * (sy*55), 1010*sx, 364*sy, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, true, true, false) -- Ping Element_X = Element_X + 1 if Element_X == 1 then Element_Y = Element_Y + 1 Element_X = 0 end if Element_Y == 9 then Element_Y = 1000 end end players = getElementsByType("player") local progress = #players if progress == 500 then progress = progress-138 end if progress == 400 then progress = progress-140 end if progress == 300 then progress = progress-140 end if progress == 200 then progress = progress-140 end if progress == 100 then progress = progress-60 end local cX, cY = interpolateBetween(0, 0, 0, progress, 0, 0, progress, "Linear") players = getElementsByType( "player" ) end perdão o codigo grande, não sei oque é importante, fiquei perdido nesse codigo Edited February 25, 2023 by Lord Henry Link to comment
Other Languages Moderators Lord Henry Posted February 25, 2023 Other Languages Moderators Share Posted February 25, 2023 (edited) Primeiro você pega todos os jogadores. Depois você pega o nome e cargo de cada um deles. Com o nome e cargo, você coloca um número antes do nome de acordo com o cargo. Ex: "JoaoGaymer" tem o cargo de Fundador, então o nome dele vai ficar " 00JoaoGaymer". (sim, com espaço na frente) "PedroBilau" tem o cargo de VIP, então o nome dele vai ficar " 03PedroBilau". E assim por diante. Depois de colocar os números antes do nome dos jogadores (você não vai renomear os jogadores, apenas mexer na variável que tem os nomes deles no script), você então pode reordenar a tabela de nomes dos jogadores. Os que começam com " 00" vão aparecer antes dos que começam com " 01", depois os que começam com " 02" e assim por diante. Só depois de ordenada a tabela, você passa um loop por ela removendo os números e o espaço de cada nome. Vou inventar de cabeça aqui um exemplo. local nomes = {} -- Tabela vazia onde vão ficar os nomes de todos os jogadores conectados no server. local cargos = { -- Aqui você coloca todos os Cargos em ordem. Nesse caso irei indexar como string pois o 0 é obrigatório até o 9. [" 01"] = "Fundador", [" 02"] = "Patrocinador", [" 03"] = "Booster", [" 04"] = "Youtuber", [" 05"] = "Admin", [" 06"] = "VIP", [" 07"] = "Membro", [" 08"] = "Policial", [" 09"] = "Gang", [" 10"] = "", -- O último cargo da tabela precisa ser vazia. Será onde os jogadores sem cargo ficarão classificados. } -- O espaço antes do número serve para garantir que nenhum espertinho mude seu próprio nick pra ficar na frente. O MTA não permite espaço no nome. -- Caso contrário, um jogador cujo nick começa com "#" ficaria na frente do Fundador. for _,player in pairs (getElementsByType("player")) do -- Para cada jogador conectado no server, faça: local nome = getPlayerName (player) local cargo = getElementData(player, "Cargo") or "" -- Se o player não tiver essa elementData, será string vazia. Evita o erro de comparar string com boolean. for i,item in pairs (cargos) do -- Para cada cargo da tabela cargos, faça: if cargo == item then -- Se o jogador tem esse cargo, então: nome = i..nome -- Adiciona o número desse cargo na frente do nome do jogador. Se o jogador tem o cargo Admin, a variável nome passa a ser " 05NomeDoPlayer" por exemplo, inclusive com o espaço. Se o jogador não tiver cargo nenhum, ele ficará como " 10NomeDoPlayer" table.insert(nomes, nome) -- Adiciona o nome modificado deste jogador na tabela nomes. break -- Sai deste loop. Não precisa verificar os demais cargos, pois já encontrou o cargo correto. end end end table.sort(nomes) -- Ordena todos os nomes da tabela nomes. for i,nome in ipairs (nomes) do -- Para cada nome da tabela nomes, faça: if string.find(nome, " ") then -- Se o nome tem espaço (foi alterado), então: nomes[i] = string.sub(nome, 4) -- Remove a alteração do nome, mas mantém na mesma posição ordenada. end print(nomes[i]) end -- A tabela nomes agora tem todos os nomes originais em ordem. Edited March 2, 2023 by Lord Henry Link to comment
Doongogar Posted February 25, 2023 Author Share Posted February 25, 2023 ta dando esse erro aqui: nessa linha: for i,nome in ipairs (nomes) do if string.find(nome, " ") then nomes[i] = string.sub(v, 4)) -- aqui end print(nomes[i]) end Link to comment
Other Languages Moderators Lord Henry Posted February 25, 2023 Other Languages Moderators Share Posted February 25, 2023 (edited) Remova o último ), deve ter sido erro de digitação minha. Editei meu código acima também. Edited February 25, 2023 by Lord Henry Link to comment
Doongogar Posted March 1, 2023 Author Share Posted March 1, 2023 (edited) ta dando esse erro, eu não entendo nada de "string." então nem tenho ideia do que seja isso Edited March 1, 2023 by SciptNovato Link to comment
Other Languages Moderators Lord Henry Posted March 2, 2023 Other Languages Moderators Share Posted March 2, 2023 Troque o v por nome. Editei novamente o código. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now