miiguelz Posted February 9, 2021 Posted February 9, 2021 local screenW, screenH = guiGetScreenSize() local showPainel = false function renderStuff() dxDrawRectangle((screenW - 340) / 2, (screenH - 326) / 2, 340, 326, tocolor(0, 0, 0, 165), false) dxDrawRectangle((screenW - 283) / 2, (screenH - 118) / 2, 283, 118, tocolor(0, 0, 0, 150), false) dxDrawText("SKIN", 432, 354, 644, 433, tocolor(255, 255, 255, 255), 2.00, "bankgothic", "left", "top", false, false, false, false, false) end function painelControl(button, state) if showPainel == false then addEventHandler("onClientRender", root, renderStuff) showCursor(true) showPainel = true else removeEventHandler("onClientRender", root, renderStuff) showCursor(false) showPainel = false end end addCommandHandler("painel", painelControl) function clickControl(button, state) if button == "left" and state == "up" then if showPainel == true then if isMouseInPosition((screenW - 283) / 2, (screenH - 118) / 2, 283, 118) then triggerServerEvent ("addSkinPlayer", root, source) outputChatBox("Skin alterada com sucesso.") end end end end addEventHandler("onClientClick", root, clickControl) 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 Este é meu primeiro script, mas queria pela perspectiva de pessoas mais experientes, o que eu poderia melhorá-lo. Aceito críticas construtivas e afins!
Moderators Lord Henry Posted February 9, 2021 Moderators Posted February 9, 2021 Prefira indentar com 4 espaços em vez de 2 pois o tamanho padrão de uma tabulação é 4. É desnecessário deixar uma linha em branco entre a função e seu addEventHandler. No dxDrawText, depois do parâmetro "top" não é necessário declarar os falses pois eles já possuem estes valores por padrão. No triggerServerEvent, evite usar root se o evento está sendo ativado pelo mesmo resource. No seu caso, use localPlayer. E provavelmente o parâmetro source é desnecessário (teria que ver o lado server para saber). Espero ter ajudado. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
miiguelz Posted February 9, 2021 Author Posted February 9, 2021 (edited) 1 hour ago, Lord Henry said: Prefira indentar com 4 espaços em vez de 2 pois o tamanho padrão de uma tabulação é 4. É desnecessário deixar uma linha em branco entre a função e seu addEventHandler. No dxDrawText, depois do parâmetro "top" não é necessário declarar os falses pois eles já possuem estes valores por padrão. No triggerServerEvent, evite usar root se o evento está sendo ativado pelo mesmo resource. No seu caso, use localPlayer. E provavelmente o parâmetro source é desnecessário (teria que ver o lado server para saber). Espero ter ajudado. Valeu cara, vou ajustar o meu vsc (prefiro pra programar). Em relação a tabulação vou colocar 4, é porque eu me acostumei com 2. server-side Spoiler function setSkinPlayer(player) setElementModel(player, 130) end addEvent("addSkinPlayer", true) addEventHandler("addSkinPlayer", root, setSkinPlayer) Edited February 9, 2021 by miiguelz
Moderators Lord Henry Posted February 10, 2021 Moderators Posted February 10, 2021 client-side: triggerServerEvent ("addSkinPlayer", localPlayer) -- Por estar passando o localPlayer como source, não é necessário usá-lo como parâmetro de função. server-side: function setSkinPlayer () setElementModel (source, 130) -- source deste evento é o que foi definido no segundo parâmetro do triggerServerEvent. end addEvent ("addSkinPlayer", true) addEventHandler ("addSkinPlayer", root, setSkinPlayer) Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
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