Jump to content

Ativar colisão após o player parar de encostar no outro


Recommended Posts

eu fiz um sistema pra quando alguem morrer ficar  7 segundos com a colisão em false em relação aos outros players usando a função
setElementCollidableWith para que os players não fiquem presos uns nos outros no local aonde spawna após a morte
pórem eu queria modificar isso para o player morrer e então setar a colisão em false, e quando ele saisse de dentro do player setasse
em true novamente, no caso teria que ter algo verificando se existe algum player em colisão para setar em false a principio,
podem ajudar?

Link to comment
  • 1 month later...

desculpa a grande demora, esqueci desse tópico
eu fiz dessa forma, porém de vez enquando os players ficam incolidivéis uns pros outros mesmo ai sair do marker
não existe uma forma de verificar se o player se mantém no marker?
 

MarkerHP = createMarker(326.28860473633, -1514.2705078125, 36.0390625 - 1, "cylinder", 5, 255, 255, 255, 20)

function MorteColisaoDesabilitar()
    for i, players in ipairs(getElementsByType("player")) do
        if players ~= getLocalPlayer() then
            setElementCollidableWith(getLocalPlayer(), players, false)
        end
    end
end
addEventHandler("onClientMarkerHit", MarkerHP, MorteColisaoDesabilitar)

function MorteColisaoHabilitar()
    for i, players in ipairs(getElementsByType("player")) do
        if players ~= getLocalPlayer() then
            setElementCollidableWith(getLocalPlayer(), players, true)
        end
    end
end
addEventHandler("onClientMarkerLeave", MarkerHP, MorteColisaoHabilitar)

 

Edited by SciptNovato
Link to comment
  • Other Languages Moderators

Você precisa verificar se o player que entrou/saiu do marker é o localPlayer, senão quando um outro player aleatório entrar num marker, vai ativar neste client também e no client dos outros.

Também dá pra juntar as duas funções numa só, já que são quase iguais e só mudam 1 linha.

MarkerHP = createMarker(326.289, -1514.27, 36.039 - 1, "cylinder", 5, 255, 255, 255, 20) -- Não é necessário coordenadas com mais de 3 decimais.

function MorteColisaoDesabilitar(thePlayer)
    if thePlayer == localPlayer then -- Evita de ativar essa função quando outro jogador próximo entrar/sair do marker.
        for _, players in pairs(getElementsByType("player")) do -- Não é necessário o loop ser com ipairs, pois a ordem dos players não importa nem seu índice.
            if players ~= localPlayer then -- Evita de mexer na colisão de si mesmo contra si mesmo.
                if eventName == "onClientMarkerHit" then -- As funções dos dois eventos fazem quase a mesma coisa, então diferenciamos apenas aqui.
                    setElementCollidableWith(localPlayer, players, false)
                elseif eventName == "onClientMarkerLeave" then -- Aqui poderia ser apenas um else, mas deixei assim para facilitar o entendimento.
                    setElementCollidableWith(localPlayer, players, true)
                end
            end
        end
    end
end
addEventHandler("onClientMarkerHit", MarkerHP, MorteColisaoDesabilitar)
addEventHandler("onClientMarkerLeave", MarkerHP, MorteColisaoDesabilitar)

 

Edited by Lord Henry
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...