Jump to content

[HELP] AJUDA, sistema SAMU


Recommended Posts

Olá, bom dia.

Preciso de ajuda em um código relacionado a um sistema de SAMU, o que acontece.. no meu sistema não quero que o jogador morra, ele deve ficar desanimado e ao acabar o tempo, ele morre. 

Porém há alguns problemas: 

1° quando muitos tiros são disparados rapidamente, o jogador recebe dano mais rápido do que o código do servidor pode reagir para torná-lo desanimado, ai quando dá muito tiro o cara não chega nem a ficar desanimado e morre na hora

2° tem algum jeito de ao jogador morrer, ele ficar desanimado? (exemplo setar vida 0 para ele ficar desanimado automaticamente) sem sequer morrer primeiro?

 

function getHealthPlayers()
    for i, player in ipairs(getElementsByType('player')) do
        if getElementHealth(player) >= 0 and getElementHealth(player) < 30 then
            if getElementData(player, 'Derrubado') == false then
                setElementFrozen(player, true)
                setElementData(player, "Derrubado", true)
                removePedFromVehicle(player)
                setPedAnimation(player, "SWEET", "Sweet_injuredloop", -1, false, false, false, true)
                triggerClientEvent(player, 'openPainel_Morte', root)
                Tempo_Reanimar = setTimer(function()
                    if getElementData(player, "Derrubado") == true then    
                        killPed(player)
                        setElementFrozen(player, false)
                        setElementData(player, "Derrubado", false)
                    end
                end, 60000, 1)
            end
        end
        if getElementHealth(player) > 30 and getElementData(player, "Derrubado") == true then
            setElementData(player, "Derrubado", false)
            setPedAnimation(player, false)
            setElementFrozen(player, false)
            triggerClientEvent(player, "closePainel_Morte", root)
        end
    end
end
setTimer(getHealthPlayers, 50, 0) 

 

Edited by Lord Henry
Código convertido de texto para Lua.
Link to comment
  • 3 weeks later...

Não recomendo que você faça com timer infinito, o desempenho não fica legal. Você pode usar a função onPlayerDamage e checar se o dano será fatal, se for, você cancela o dano, derruba o player e faz todo o resto...

 

function playerDamage ( attacker, weapon, bodypart, loss ) 
	if ((getElementHealth(source) - loss) <= 0) then
    	cancelEvent()
    	--Faz a animação etc...
    end
end
addEventHandler ( "onPlayerDamage", root, playerDamage )

 

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