Jump to content

Melhoria no script.


Recommended Posts

Posted
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!

 

  • Other Languages Moderators
Posted
  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.

Posted (edited)
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
  • Other Languages Moderators
Posted

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)

 

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