Jump to content

Melhoria no script.


Recommended Posts

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!

 

Link to comment
  • Other Languages Moderators
  1. Prefira indentar com 4 espaços em vez de 2 pois o tamanho padrão de uma tabulação é 4.
  2. É desnecessário deixar uma linha em branco entre a função e seu addEventHandler.
  3. No dxDrawText, depois do parâmetro "top" não é necessário declarar os falses pois eles já possuem estes valores por padrão.
  4. 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.

Link to comment
1 hour ago, Lord Henry said:
  1. Prefira indentar com 4 espaços em vez de 2 pois o tamanho padrão de uma tabulação é 4.
  2. É desnecessário deixar uma linha em branco entre a função e seu addEventHandler.
  3. No dxDrawText, depois do parâmetro "top" não é necessário declarar os falses pois eles já possuem estes valores por padrão.
  4. 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 by miiguelz
Link to comment
  • Other Languages Moderators

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)

 

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...