local x,y,z = guiGetScreenSize()
local largura, altura = 300, 30
--local time = getRealTime()
function notificao()
local msg = "Você ficou inconsciente..."
local larguratexto = dxGetTextWidth(msg)
local alturatexto = dxGetFontHeight()
dxDrawRectangle(0, y/2-altura/2, largura, altura, tocolor(0,0,0,200))
dxDrawText(msg, largura/2-larguratexto/2, y/2-alturatexto/2, larguratexto, alturatexto, tocolor(255, 255, 255, 200))
end
function notificao2()
local msg = "Gravemente ferido"
local larguratexto = dxGetTextWidth(msg)
local alturatexto = dxGetFontHeight()
dxDrawRectangle(0, y/2-altura/2, largura, altura, tocolor(0,0,0,200))
dxDrawText(msg, largura/2-larguratexto/2, y/2-alturatexto/2, larguratexto, alturatexto, tocolor(255, 100,100,255))
end
function damaged(inimigo, inimigo_arma, corpo_parte, dano)
local thePlayer = source
local vidaPlayer = getElementHealth(thePlayer)
if getElementData(thePlayer, "Inconsciente") ~= "true" and vidaPlayer <= 15 or dano >= 50 then
cancelEvent()
setElementData(thePlayer, "Inconsciente", "true")
setElementFrozen(thePlayer, true)
setElementHealth(thePlayer, 10)
triggerServerEvent('animacao:Inconsciente', thePlayer)
addEventHandler("onClientRender", root, notificao)
playSoundFrontEnd (4)
fadeCamera(false, 0)
setTimer(function()
fadeCamera(true, 10)
removeEventHandler("onClientRender", root, notificao)
end, 10000, 1)
local random = math.random(0, 100)
if random >= 0 and random <= 50 then
setTimer(function()
addEventHandler("onClientRender", root, notificao2)
end, 15000, 1)
setTimer(function()
if getElementData(thePlayer, "Inconsciente") and getElementHealth(thePlayer) <= 15 then
setElementData(thePlayer, "Inconsciente", "false")
setElementHealth(thePlayer, 0)
removeEventHandler("onClientRender", root, notificao2)
end
end, 50000, 1)
else
setTimer(function()
removeEventHandler("onClientRender", root, notificao2)
triggerServerEvent('animacao:Levantar', thePlayer)
setElementData(thePlayer, "Inconsciente", "false")
setElementFrozen(thePlayer, false)
end, 15000, 1)
end
end
end
addEventHandler ("onClientPlayerDamage", getLocalPlayer(), damaged)
Meu código funciona, porém estou tendo problemas com um Bug. Trata-se de um sistema de inconsciência que quando o player toma um dano considerável, ele não morre, perde a consciência e há uma probabilidade dele ficar no chão até a morte ou se levantar. No entanto, às vezes o player simplesmente quebra o fluxo e acaba levantando e morrendo ao mesmo tempo, como se estivesse entrado no IF e ELSE ao mesmo tempo e a "notificao2" não desaparece da tela. Me refiro a linha 43 por diante. Quem puder ajudar, ficarei grato.