Jump to content

[DÚVIDA] Tornar Veiculo como blindado


Recommended Posts

Estou tentando criar um script, que torne um certo veiculo blindado... Verificando se o jogador está nesse veiculo em especifico, e também verificando se o veiculo já está blindado, para não tirar a blindagem do mesmo, caso ele já esteja blindado... Também quero tornar o jogador "imortal" enquanto estiver dentro do veiculo!! Alguém pode me ajudar?? Muito obrigado ❤️❤️ 

Este é o código: 

function blindar()
    local blindar = getPedOccupiedVehicle ( localPlayer )
    local verificar = isVehicleDamageProof( localPlayer )
    if (blindar) then
        if getElementModel(blindar) == 601 then
             if (verificar) then
                outputChatBox ( "Este Veiculo é blindado!", source, 255,255,255,true) 
    elseif (verificar) == false and (blindar) == 601 then
        setVehicleDamageProof(blindar, true) 
 
            end
        end
    end
end
addEventHandler("onPlayerVehicleEnter", getRootElement(), blindar)

function DanoBlindado ( attacker, weapon, bodypart )
    local blindadocar = getPedOccupiedVehicle ( localPlayer )
         if (blindadocar) then
          if getElementModel(blindadocar) == 601 then
        cancelEvent()
        setElementHealth(localPlayer, 100)
    end
    end
end
addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), DanoBlindado )

alguém me ajuda, onde estou errando... sou novo em programação!
Valeu ❤️

Edited by ythalo04
Link to comment
23 hours ago, Lord Henry said:

Utilize o botão <> do fórum para postar scripts. Não cole ele direto no texto.

OfSmewi.png

ah okay, sou novo, valeuu ❤️

function blindar()
    local blindar = getPedOccupiedVehicle ( localPlayer )
    local verificar = isVehicleDamageProof( localPlayer )
    if (blindar) then
        if getElementModel(blindar) == 601 then
             if (verificar) then
                outputChatBox ( "Este Veiculo é blindado!", source, 255,255,255,true) 
    elseif (verificar) == false and (blindar) == 601 then
        setVehicleDamageProof(blindar, true) 
 
            end
        end
    end
end
addEventHandler("onPlayerVehicleEnter", getRootElement(), blindar)

function DanoBlindado ( attacker, weapon, bodypart )
    local blindadocar = getPedOccupiedVehicle ( localPlayer )
         if (blindadocar) then
          if getElementModel(blindadocar) == 601 then
        cancelEvent()
        setElementHealth(localPlayer, 100)
    end
    end
end
addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), DanoBlindado )

 

Link to comment
On 25/06/2021 at 19:06, Jonas^ said:

Você esta usando eventos server-side em client-side ou ao contrário.

Então meu código está correto? Só a parte client, servidor que está errada?
Vou testar aqui agora... mas queria saber se o código da forma que fiz se está correta kkkkkkkk valeuuu ❤️

Link to comment
3 hours ago, Lord Henry said:

Veículos criados client-side servem apenas para visualização. Eles não podem ser usados por jogadores.

O evento onPlayerVehicleEnter é server-side, então não vai funcionar em scripts client-side.

Eu fui ver o arquivo meta e ele está em server-side...

Então no caso, eu terei que ter 2 arquivos, 1 client-side para a função DanoBlindado e outro server-side para o Blindar, seria isso? Me perdoem, eu estou realmente confuso kkk Muito obrigado pela atenção de vocês ❤️

Pois assim, eu testei diversas vezes e de várias formas, e estou realmente quebrando a cabeça para realizar este script...
Tinha vezes que o carro blindava, mas ai ao entrar novamente no veiculo ele desblindava... sabe?!

 

Edited by ythalo04
Link to comment
  • Other Languages Moderators

A blindagem do veículo faça server-side. A imortalidade do jogador dentro do veículo faça client-side.

-- SERVER-SIDE
function blindar(thePlayer)
    if (getElementModel(source) == 601) then -- (source = veículo que o jogador entrou) Se o modelo do veículo é o 601 (S.W.A.T.) então:
        if (isVehicleDamageProof(source)) then -- Se o veículo que o jogador entrou já estiver blindado, então:
            outputChatBox ("Este veículo já está blindado!", thePlayer, 255, 255, 255) 
        else -- Se o veículo que o jogador entrou não está blindado, então:
            setVehicleDamageProof (source, true) -- Blinda o veículo.
            outputChatBox ("Este veículo ficou blindado.", thePlayer, 255, 255, 255) 
        end
    end
end
addEventHandler("onVehicleEnter", root, blindar) -- Ativa a função blindar quando alguém entrar em algum veículo.
-- CLIENT-SIDE
function danoBlindado()
    local blindadocar = getPedOccupiedVehicle (localPlayer) -- blindadocar recebe o veículo que o jogador está dentro. (será false caso o jogador esteja a pé)
    if (blindadocar) then -- Se o jogador está em um veículo, então: (blindadocar não é false)
        if (getElementModel(blindadocar) == 601) then -- Se o modelo do veículo que o jogador está é o 601 (S.W.A.T.) então:
            cancelEvent() -- Cancela o dano no jogador.
        end
    end
end
addEventHandler("onClientPlayerDamage", localPlayer, danoBlindado) -- Ativa sempre que o localPlayer tomar dano.

 

Edited by Lord Henry
Códigos comentados.
  • Thanks 1
Link to comment
22 hours ago, Lord Henry said:

A blindagem do veículo faça server-side. A imortalidade do jogador dentro do veículo faça client-side.




-- SERVER-SIDE
function blindar(thePlayer)
    if (getElementModel(source) == 601) then -- (source = veículo que o jogador entrou) Se o modelo do veículo é o 601 (S.W.A.T.) então:
        if (isVehicleDamageProof(source)) then -- Se o veículo que o jogador entrou já estiver blindado, então:
            outputChatBox ("Este veículo já está blindado!", thePlayer, 255, 255, 255) 
        else -- Se o veículo que o jogador entrou não está blindado, então:
            setVehicleDamageProof (source, true) -- Blinda o veículo.
            outputChatBox ("Este veículo ficou blindado.", thePlayer, 255, 255, 255) 
        end
    end
end
addEventHandler("onVehicleEnter", root, blindar) -- Ativa a função blindar quando alguém entrar em algum veículo.



-- CLIENT-SIDE
function danoBlindado()
    local blindadocar = getPedOccupiedVehicle (localPlayer) -- blindadocar recebe o veículo que o jogador está dentro. (será false caso o jogador esteja a pé)
    if (blindadocar) then -- Se o jogador está em um veículo, então: (blindadocar não é false)
        if (getElementModel(blindadocar) == 601) then -- Se o modelo do veículo que o jogador está é o 601 (S.W.A.T.) então:
            cancelEvent() -- Cancela o dano no jogador.
        end
    end
end
addEventHandler("onClientPlayerDamage", localPlayer, danoBlindado) -- Ativa sempre que o localPlayer tomar dano.

 


Muito obrigado cara! Muito obrigado mesmo de coração, que Deus lhe abençoe ❤️ valeuuuuuuuuuu 

Acredito que isso irá ajudar muitas pessoas !!!!!!! 

Edited by ythalo04
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...