Jump to content

Me ajudem neste Checkbox de JetPack


Recommended Posts

Posted

Olá pessoal, boa noite. Pessoal eu estava querendo criar um Checkbox que quando eu marcasse eu ganhava um JetPack e quando eu desmarcar-se ele removia meu JetPack, mas quando eu clico na Checkbox não acontece nada!!

Client:

... 
jetpack = guiCreateCheckBox(25, 70, 73, 23, "Jetpack", false, false, MaligNosWindow) 
... 
  
function JetPack() 
  if guiCheckBoxGetSelected(jetpack) == true then 
    triggerServerEvent("jetpack", resourceRoot, localPlayer) 
  else 
    triggerServerEvent("jetpack1", resourceRoot, localPlayer) 
  end 
end 
  
addEventHandler("onClientGUIClick", velocidade, JetPack, false) 

Server:

function jetpackk(source) 
     if not ( doesPedHaveJetPack (source)) then 
     givePedJetPack (source) 
  end 
end 
addEvent("jetpack", true) 
addEventHandler("jetpack", resourceRoot, jetpackk) 
  
function jetpackk1(source) 
    if ( doesPedHaveJetPack (source)) then 
    removePedJetPack (source)   
  end 
end 
addEvent("jetpack1", true) 
addEventHandler("jetpack1", resourceRoot, jetpackk1) 

Posted (edited)

Client:

  
... 
jetpack = guiCreateCheckBox(25, 70, 73, 23, "Jetpack", false, false, MaligNosWindow) 
... 
  
function JetPack() 
    local selected = guiCheckBoxGetSelected(jetpack) 
    if selected then 
        -- Enviará o valor selected para o evento do lado server 
        -- selected retornará um valor booleano, ou seja: true ou false. 
        triggerServerEvent("jetpack", localPlayer, selected) -- Dar o jetpack 
    elseif ( not selected ) then 
        local selected = not selected -- selected será false 
        triggerServerEvent("jetpack", localPlayer, selected) -- Tirar o jetpack 
    end 
end 
addEventHandler("onClientGUIClick", velocidade, JetPack, false) 

Server:

  
function jetpackk(selected) 
    if ( selected and (not doesPedHaveJetPack(source)) ) then 
        givePedJetPack(source) 
    elseif ( (not selected) and doesPedHaveJetPack(source) ) then 
        removePedJetPack(source) 
    end 
end 
addEvent("jetpack", true) 
addEventHandler("jetpack", root, jetpackk) -- root é uma variável pré-definida de getRootElement() 

Leia os comentários no código.

Esquece sobre o resourceRoot substituir pelo getRootElement() não foi isso que eu quis dizer. Use apenas no evento onResourceStart/onClientResourceStart (Menos se você quiser por exemplo, ver qual resource foi iniciado).

Obs: resourceRoot é uma variável pré-definida de getResourceRootElement( getThisResource() )

Para mais informações sobre variáveis pré-definidas veja isso: https://forum.multitheftauto.com/viewtopic.php?f=91&t=39678

Edited by Guest
Posted

Aew pegou !!, cara você é foda...

Queria pedir a ajuda de vocês de novo :lol: , mas para eu não ficar floodando tópicos novos, vou pedir por este, É o seguinte eu estou querendo criar uma outra Checkbox tambêm, mais eu queria que quando o jogador marcar-se a Checkbox a velocidade do jogo dele passa-se para 3x, mas quando eu faço isso a velocidade do server inteiro muda, e eu só queria que mudasse a velocidade do player que marcar-se

Client:

velocidade = guiCreateCheckBox(25, 55, 73, 23, "Velocidade 3x", false, false, MaligNosWindow) 
  
function velo() 
  local selected = guiCheckBoxGetSelected(velocidade) 
  if selected then 
    triggerServerEvent("velo", localPlayer, selected) 
    elseif ( not selected ) then 
   local selected = not selected 
    triggerServerEvent("velo", localPlayer, selected) 
    end 
end 
addEventHandler("onClientGUIClick", velocidade, velo, false) 

Server:

function velocidade(selected) 
    if ( selected and (not setGameSpeed(tonumber(3)) )) then 
    setGameSpeed(tonumber(3)) 
    elseif ( (not selected) and setGameSpeed(tonumber(3)) ) then 
    setGameSpeed(tonumber(1)) 
  end 
end 
addEvent("velo", true) 
addEventHandler("velo", root, velocidade) 

Posted
Use setGameSpeed do lado client.

Eu passei ele pro lado Client e continua a mesma coisa, você não poderia estar me explicando melhor ?. Tem que adicionar mais alguma coisa além do que estava do lado server ?

 

Posted

Não é possível que a velocidade do jogo seja definida para todos no lado client (no Freeroam define apenas para o jogador local).

  
velocidade = guiCreateCheckBox(25, 55, 73, 23, "Velocidade 3x", false, false, MaligNosWindow) 
  
function velo() 
local selected = guiCheckBoxGetSelected(velocidade) 
    if selected then 
        setGameSpeed(3) 
    elseif ( not selected ) then 
        setGameSpeed(1) 
    end 
end 
addEventHandler("onClientGUIClick", velocidade, velo, false) 

Posted
:lol: tava certo mesmo, é porque na hora que eu clicava na Checkbox e aumentava a velocidade, e eu entrava no Painel de Admin, e ia ver na aba Server o Game Speed, e lá mostrava 3, mas na verdade só mudava para mim !
Posted

Sim, no client é apenas para o jogador local.

Eu fiz um script há um tempo, que o jogo fica em slow para o jogador que leva um headshot. No lado client fica apenas para o jogador local.

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