Jump to content

Recommended Posts

Olá queria saber se alguem poderia me ajudar dando um exemplo de como eu poderia fazer uma skill bar (Quando a barra verde chega ao quadrado vermelho se a pessoa apertar E em cima na hora ela consegue passar e destrancar o carro.) so quero saber a parte de skill bar e nao de trancar o carro para ser muito mais simples
unknown.png

Link to comment
  • Other Languages Moderators

Olá.

Essa pergunta foi feita no Discord Oficial do MTA: SA. Irei responder da mesma maneira que lá, com o código de exemplo.

local greenLineWidth = math.random(100, 300)
local greenLineHeight = 30
local greenLineX = 5
local greenLineY = 300
local greenLineOffset = 0

local redLineWidth = math.random(10, 20)
local redLineHeight = greenLineHeight
local redLineX = greenLineX + math.random(greenLineWidth)
local redLineY = greenLineY

addEventHandler("onClientRender", root, function()
    -- Progresso
    greenLineOffset = math.min(greenLineOffset + 1, greenLineWidth)

    -- Linha verde
    dxDrawRectangle(greenLineX, greenLineY, greenLineWidth, greenLineHeight, tocolor(20, 21, 22, 255), false)
    dxDrawRectangle(greenLineX, greenLineY, greenLineOffset, greenLineHeight, tocolor(45, 255, 45, 220), false)

    -- Linha vermelha
    dxDrawRectangle(redLineX, redLineY, redLineWidth, redLineHeight, tocolor(255, 45, 45), false)

    -- Borda da linha vermelha
    dxDrawRectangle(redLineX, redLineY, 1, redLineHeight, tocolor(255, 255, 255, 220), false)
    dxDrawRectangle(redLineX + redLineWidth, redLineY, 1, redLineHeight, tocolor(255, 255, 255, 220), false)

    -- Checagem
    local greenLineEnd = greenLineX + greenLineOffset
    local redLineStart = redLineX
    local redLineEnd = redLineX + redLineWidth

    if greenLineEnd >= redLineStart and greenLineEnd <= redLineEnd then
        dxDrawText("APERTE O BOTÃO!", greenLineX, greenLineY, greenLineX + greenLineWidth, greenLineY + greenLineHeight, tocolor(255, 255, 255, 255), 1.2, "default-bold", "center", "center")
    end
end)

 

Link to comment
6 hours ago, andr0xy said:

Olá.

Essa pergunta foi feita no Discord Oficial do MTA: SA. Irei responder da mesma maneira que lá, com o código de exemplo.


local greenLineWidth = math.random(100, 300)
local greenLineHeight = 30
local greenLineX = 5
local greenLineY = 300
local greenLineOffset = 0

local redLineWidth = math.random(10, 20)
local redLineHeight = greenLineHeight
local redLineX = greenLineX + math.random(greenLineWidth)
local redLineY = greenLineY

addEventHandler("onClientRender", root, function()
    -- Progresso
    greenLineOffset = math.min(greenLineOffset + 1, greenLineWidth)

    -- Linha verde
    dxDrawRectangle(greenLineX, greenLineY, greenLineWidth, greenLineHeight, tocolor(20, 21, 22, 255), false)
    dxDrawRectangle(greenLineX, greenLineY, greenLineOffset, greenLineHeight, tocolor(45, 255, 45, 220), false)

    -- Linha vermelha
    dxDrawRectangle(redLineX, redLineY, redLineWidth, redLineHeight, tocolor(255, 45, 45), false)

    -- Borda da linha vermelha
    dxDrawRectangle(redLineX, redLineY, 1, redLineHeight, tocolor(255, 255, 255, 220), false)
    dxDrawRectangle(redLineX + redLineWidth, redLineY, 1, redLineHeight, tocolor(255, 255, 255, 220), false)

    -- Checagem
    local greenLineEnd = greenLineX + greenLineOffset
    local redLineStart = redLineX
    local redLineEnd = redLineX + redLineWidth

    if greenLineEnd >= redLineStart and greenLineEnd <= redLineEnd then
        dxDrawText("APERTE O BOTÃO!", greenLineX, greenLineY, greenLineX + greenLineWidth, greenLineY + greenLineHeight, tocolor(255, 255, 255, 255), 1.2, "default-bold", "center", "center")
    end
end)

 

Bom consegui entender esse codigo, porem estou tentando realizar a parte de apertar o botão e não estou conseguindo fazer, você poderia me dar um exemplo de como fazer ?

Link to comment
  • Other Languages Moderators

Como você está tentando fazer?

Pois você precisaria de uma variável de estado (true/false). Assim que entrar naquela condição, ela ficaria true, caso esteja fora da condição, false. Aí bastaria checar em alguma bindKey ou da maneira que você tá fazendo, se essa variável é true.

Link to comment
  • 2 weeks later...
On 19/05/2021 at 08:55, andr0xy said:

Como você está tentando fazer?

Pois você precisaria de uma variável de estado (true/false). Assim que entrar naquela condição, ela ficaria true, caso esteja fora da condição, false. Aí bastaria checar em alguma bindKey ou da maneira que você tá fazendo, se essa variável é true.

Bom esse e o problema não consegui ter uma para fazer essa bind key

Link to comment
On 19/05/2021 at 08:55, andr0xy said:

Como você está tentando fazer?

Pois você precisaria de uma variável de estado (true/false). Assim que entrar naquela condição, ela ficaria true, caso esteja fora da condição, false. Aí bastaria checar em alguma bindKey ou da maneira que você tá fazendo, se essa variável é true.

Tranquilo consegui fazer, estava com a mente um pouco trava ?

Link to comment
  • 2 months later...

me ajuda a fazer um desse? eu não entendi a explicação, tava tentando fazer mas a função quando aperta E dentro acontece muitas vezes era pra acontecer só uma

if greenLineEnd >= redLineStart and greenLineEnd <= redLineEnd then
        bindKey("e","down",function()
            outputChatBox("DENTRO", 255, 255, 255, true )
        end)
end

 

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