Doongogar Posted February 24, 2023 Share Posted February 24, 2023 (edited) então na minha resolução fica normal, mas a resolução do meu amigo é diferente e ele disse que as letras saem para fora do painel poderiam me ajudar? local screenW, screenH = guiGetScreenSize() function DX_Entregas() dxDrawRectangle(screenW * 0.3794, screenH * 0.2467, screenW * 0.2288, screenH * 0.4833, tocolor(31, 31, 31, 255), false) dxDrawRectangle(screenW * 0.3794, screenH * 0.2356, screenW * 0.2288, screenH * 0.0111, tocolor(116, 0, 165, 255), false) dxDrawRoundedRectangle(screenW * 0.3956, screenH * 0.2711, screenW * 0.1969, screenH * 0.3333, 15, tocolor(82, 82, 82, 224), false) dxDrawRoundedRectangle(screenW * 0.4019, screenH * 0.6444, screenW * 0.0769, screenH * 0.0533, 15, tocolor(82, 82, 82, 224), false) dxDrawRoundedRectangle(screenW * 0.5094, screenH * 0.6444, screenW * 0.0769, screenH * 0.0533, 15, tocolor(82, 82, 82, 224), false) dxDrawText("SIM", screenW * 0.4200, screenH * 0.6489, screenW * 0.4788, screenH * 0.6778, tocolor(25, 232, 4, 255), 3.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("NÃO", screenW * 0.5240, screenH * 0.6489, screenW * 0.5837, screenH * 0.6778, tocolor(237, 0, 0, 255), 3.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Você Quer Trabalhar Entregando Drogas?", screenW * 0.4200, screenH * 0.2822, screenW * 0.6019, screenH * 0.3122, tocolor(255, 255, 255, 255), 1.1, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("--Receber uma Van no Local ao Lado", screenW * 0.4044, screenH * 0.3267, screenW * 0.5863, screenH * 0.3567, tocolor(255, 255, 255, 255), 1.1, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("--Entregar a Carga em um Local Secreto", screenW * 0.4044, screenH * 0.3567, screenW * 0.5863, screenH * 0.3867, tocolor(255, 255, 255, 255), 1.1, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("--Receber de R$8000 a R$9000 de Dinheiro Sujo", screenW * 0.4044, screenH * 0.4167, screenW * 0.5863, screenH * 0.4211, tocolor(255, 255, 255, 255), 1.1, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("--Caso Saia da Van Perderá a Carga", screenW * 0.4044, screenH * 0.4467, screenW * 0.5863, screenH * 0.4211, tocolor(255, 255, 255, 255), 1.1, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("--Caso a Van Quebre Perderá a Carga", screenW * 0.4044, screenH * 0.4767, screenW * 0.5863, screenH * 0.4211, tocolor(255, 255, 255, 255), 1.1, "default-bold", "left", "top", false, false, false, false, false) end 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 Textos não acompanham resolução da tela. Você terá que alterar a escala da fonte de acordo com o tamanho da tela do jogador. É por esse motivo que eu prefiro fazer com tamanho fixo, pois os textos não são responsivos. Além disso, dependendo da resolução do jogador, a proporção da tela também mudará. (por padrão é 16:9, mas algumas resoluções mais baixas podem chegar até a 4:3) Link to comment
Doongogar Posted February 25, 2023 Author Share Posted February 25, 2023 então para que isso não aconteça denovo eu teria que deixar tudo fixo ou apenas os textos? Link to comment
Other Languages Moderators Lord Henry Posted February 25, 2023 Other Languages Moderators Share Posted February 25, 2023 A resolução segura mais baixa do MTA é 640x480. Então eu prefiro fazer os painéis com no máximo esse tamanho e deixar fixo. Ou vc faz tamanho fixo ou você cria condições que verificam o tamanho da tela do jogador e seta uma escala diferente nas fontes. Você também pode criar uma tabela com todas as resoluções padrão do MTA e setar uma escala de fonte diferente em cada uma delas. Obviamente isso dará trabalho pois você precisará testar todas as opções de resolução no seu script. Link to comment
Doongogar Posted February 25, 2023 Author Share Posted February 25, 2023 pra isso eu teria que usar o "guiGetSreenSize"? em formato de "if then" e abrir os textos em baixo disso com outra fonte? como um exemplo na wiki: local x,y = guiGetScreenSize() if ( x <= 640 ) and ( y <= 480 ) then Link to comment
Other Languages Moderators Lord Henry Posted February 25, 2023 Other Languages Moderators Share Posted February 25, 2023 Outro problema é que em resoluções baixas demais, seu texto se tornará ilegível se usar escala menor. 640x480 1920x1080 Os botões de sim e não também bugarão pois são menores do que o raio dos cantos. Link to comment
Doongogar Posted February 25, 2023 Author Share Posted February 25, 2023 se eu transformar todo o painel em uma imagem unica, poderia resolver? Link to comment
Other Languages Moderators Lord Henry Posted February 25, 2023 Other Languages Moderators Share Posted February 25, 2023 Não, pois você ainda terá problemas com as áreas clicáveis dos botões que precisarão ser adaptadas também. Link to comment
Other Languages Moderators Lord Henry Posted February 26, 2023 Other Languages Moderators Share Posted February 26, 2023 Spoiler local screenW, screenH = guiGetScreenSize() local states = false function DX_Entregas() dxDrawRectangle((screenW/2) - 220, (screenH/2) - 220, 440, 460, tocolor(31, 31, 31, 255), true) dxDrawRectangle((screenW/2) - 220, (screenH/2) - 240, 440, 20, tocolor(116, 0, 165, 255), true) dxDrawRoundedRectangle((screenW/2) - 200, (screenH/2) - 220, 400, 360, 15, tocolor(82, 82, 82, 224), true) dxDrawRoundedRectangle((screenW/2) - 200, (screenH/2) + 160, 150, 60, 15, tocolor(82, 82, 82, 224), true) dxDrawRoundedRectangle((screenW/2) + 50, (screenH/2) + 160, 150, 60, 15, tocolor(82, 82, 82, 224), true) dxDrawText("SIM", (screenW/2) - 200, (screenH/2) + 160, (screenW/2) - 50, (screenH/2) + 220, tocolor(25, 232, 4, 255), 3, "default-bold", "center", "center", true, true, true) dxDrawText("NÃO", (screenW/2) + 50, (screenH/2) + 160, (screenW/2) + 200, (screenH/2) + 220, tocolor(237, 0, 0, 255), 3, "default-bold", "center", "center", true, true, true) dxDrawText("Você quer trabalhar entregando drogas?", (screenW/2) - 200, (screenH/2) - 240, (screenW/2) + 200, (screenH/2) - 220, tocolor(255, 255, 255, 255), 1, "default-bold", "center", "center", true, true, true) dxDrawText("-- Receber uma van no local ao lado\n\n-- Entregar a carga em um local secreto\n\n-- Receber de 10000 a 13000 de Dinheiro Sujo", (screenW/2) - 190, (screenH/2) - 210, (screenW/2) + 190, (screenH/2) + 130, tocolor(255, 255, 255, 255), 1, "default-bold", "left", "top", true, true, true) end addEvent("Open:Ilegal", true) addEventHandler("Open:Ilegal", root, function() if states then removeEventHandler("onClientRender", root, DX_Entregas) else addEventHandler("onClientRender", root, DX_Entregas) end states = not states showCursor(states) end) bindKey("backspace", "down", function(key, keyState) if states and isCursorShowing() then removeEventHandler("onClientRender", root, DX_Entregas) showCursor(false) states = not states end end) addEventHandler("onClientClick", root, function(button, state) if states then if (button == "left" and state == "down") then if isMouseInPosition((screenW/2) - 200, (screenH/2) + 160, 150, 60) then -- SIM if not getElementData(localPlayer, "EntregadorD") then setElementData(localPlayer, "EntregadorD", true) -- exports._infobox:addNotification("Você Agora Trabalha na Entrega Ilegal!", "info") print("Você Agora Trabalha na Entrega Ilegal!") removeEventHandler("onClientRender", root, DX_Entregas) showCursor(false) states = false end elseif isMouseInPosition((screenW/2) + 50, (screenH/2) + 160, 150, 60) then -- NÃO if getElementData(localPlayer, "EntregadorD") then -- exports._infobox:addNotification("Você Saiu do Emprego de Entregas Ilegais!", "info") print("Você Saiu do Emprego de Entregas Ilegais!") setElementData(localPlayer, "EntregadorD", false) end removeEventHandler("onClientRender", root, DX_Entregas) showCursor(false) states = false end end end end) function isMouseInPosition (x, y, width, height) if (not isCursorShowing()) then return false end local sx, sy = guiGetScreenSize() local cx, cy = getCursorPosition() local cx, cy = (cx * sx), (cy * sy) return ((cx >= x and cx <= x + width) and (cy >= y and cy <= y + height)) end function dxDrawRoundedRectangle(x, y, rx, ry, radius, color, postGUI) rx = rx - radius * 2 ry = ry - radius * 2 x = x + radius y = y + radius if (rx >= 0) and (ry >= 0) then dxDrawRectangle(x, y, rx, ry, color, postGUI) dxDrawRectangle(x, y - radius, rx, radius, color, postGUI) dxDrawRectangle(x, y + ry, rx, radius, color, postGUI) dxDrawRectangle(x - radius, y, radius, ry, color, postGUI) dxDrawRectangle(x + rx, y, radius, ry, color, postGUI) dxDrawCircle(x, y, radius, 180, 270, color, color, 7, 1, postGUI) dxDrawCircle(x + rx, y, radius, 270, 360, color, color, 7, 1, postGUI) dxDrawCircle(x + rx, y + ry, radius, 0, 90, color, color, 7, 1, postGUI) dxDrawCircle(x, y + ry, radius, 90, 180, color, color, 7, 1, postGUI) end end Fiz um painel fixo para você. Vai funcionar em todas as resoluções sem distorcer. A posição dele é responsiva no centro da tela, mas o tamanho é fixo. 640x480 Spoiler 1920x1080 Spoiler Link to comment
Doongogar Posted February 26, 2023 Author Share Posted February 26, 2023 uma pergunta off topic aqui perdão se for incomodo, mas esse modo development e permissão de desenvolvedor é alguma função que ajuda em modificar os mods ou é so pq você é moderador oficial mesm Link to comment
Other Languages Moderators Lord Henry Posted March 2, 2023 Other Languages Moderators Share Posted March 2, 2023 É uma função que ajuda no desenvolvimento, faz com que você habilite o modo desenvolvedor. Você consegue ativá-la usando setDevelopmentMode (true) só funciona client-side. Também dá pra você ativá-la no painel Admin, na aba Resources. Digite ali no campo de comando e clique em Client. Eu fiz meu painel de login ativar essa função automaticamente quando eu faço login. Para evitar o empenho de ir ali no painel Admin ativar o modo desenvolvedor toda vez q preciso dos comandos especiais. Depois que ela está ativada, você passa a ter acesso a esses 2 comandos especiais. /showcol - Mostra/oculta os colshapes só para você. (aqueles criados com createColCuboid, createColSphere, etc) /showsound - Mostra/para de mostrar os IDs dos sons do cenário no seu Debug Console. Precisa estar com /debugscript ativo para ver o Debug Console. Spoiler Showcol ativado. Showsound ativado. 1 Link to comment
Recommended Posts