Jump to content

Colocar tempo em script SAMU


Recommended Posts

Olá,

Recentemente tive a ideia de adicionar no meu servidor um script de SAMU, mas esse script que eu coloquei, na linha 2 ele possui uma variável que faz para você coloca o tempo, só que ela não funciona, desde então eu estava caçando codigo de tempo na internet e achei um feito pelo @DNL291 que é este:

local time
addEvent( "onServerCallAddSetTimer", true )
addEventHandler( "onServerCallAddSetTimer", root, function ()

    time = setTimer(function() time = nil removeEventHandler( "onClientRender", root, renderTime ) end, 180000, 1)
    addEventHandler( "onClientRender", root, renderTime )
end )

function renderTime()
    local gDetails = getTimerDetails(time)
    if not gDetails then return end
    local remainingTime = secondsToTimeDesc( gDetails / 1000 )
    
    dxDrawText( "Tempo de vida restante: "..tostring(remainingTime), left, top, right, bottom )
end

function secondsToTimeDesc( seconds )
    if seconds then
        local results = {}
        local sec = ( seconds %60 )
        local min = math.floor ( ( seconds % 3600 ) /60 )
        local hou = math.floor ( ( seconds % 86400 ) /3600 )
        local day = math.floor ( seconds /86400 )
        
        if day > 0 then table.insert( results, day .. ( day == 1 and " day" or " days" ) ) end
        if hou > 0 then table.insert( results, hou .. ( hou == 1 and " hour" or " hours" ) ) end
        if min > 0 then table.insert( results, min .. ( min == 1 and " minute" or " minutes" ) ) end
        if sec > 0 then table.insert( results, sec .. ( sec == 1 and " second" or " seconds" ) ) end
        
        return string.reverse ( table.concat ( results, ", " ):reverse():gsub(" ,", " dna ", 1 ) )
    end
    return ""
end


Mas ai começou os problemas, eu não sei um jeito de colocar este tempo criado por ele conectado com o da samu que é este:

 

hpMin = 15
Tempo = {}
ColMedic = {}

function getPlayerID(id)
    v = false
    for i, player in ipairs (getElementsByType("player")) do
        if getElementData(player, "ID") == id then
            v = player
            break
        end
    end
    return v
end
--====

function ChecarVida()
    for i, player in pairs (getElementsByType("player")) do
        if not getElementData(player, "PlayerCaido") then
            local conta = getAccountName(getPlayerAccount(player))
                if getElementHealth(player) >= 1 then
                    if getElementHealth(player) <= hpMin then 
                        removePedFromVehicle(player)
                        setElementData(player, "PlayerCaido", true)
                        setElementFrozen(player, true)
                        setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false)
                        setTimer(function()
                            if getElementData(player, "PlayerCaido") then    
                                killPed(player)
                            end
                        end, 240000, 1)
                end
            end
        else
            setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false)
        end
    end
end
setTimer(ChecarVida, 200, 0)

function ChecarVidaA()
    for i, player in pairs (getElementsByType("player")) do
        if  getElementData(player, "PlayerCaido") then
        local conta = getAccountName(getPlayerAccount(player))
            if getElementHealth(player) >= 31 then
                setElementData(player, "PlayerCaido", false)
                setPedAnimation(player, false)
                setElementFrozen(player, false )
            end
        end
    end
end
setTimer(ChecarVidaA, 200, 0)

function SetarCaidoComHS()
    player = source
    if not getElementData(player, "PlayerCaido") then
        removePedFromVehicle(player)
        setElementHealth(player, 20)
        setElementData(player, "PlayerCaido", true)
        setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false)
        setTimer(function()
            if getElementData(player, "PlayerCaido") then    
                killPed(player)
            end
        end, 240000, 1)
    end
end
addEvent("OnHS", true)
addEventHandler("OnHS", getRootElement(), SetarCaidoComHS)

function curar_jogador ( thePlayer, comando, id )
    if id then
        id = tonumber ( id )
        if id then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Bombeiros") ) then
                local player_a_ser_curado    =   getPlayerID(id)
                if not player_a_ser_curado then
                    return outputChatBox("#bebebeJogador não encontrado!",thePlayer,255,255,255,true)
                end
                local samux, samuy, samuz = getElementPosition ( thePlayer )
                local curadox, curadoy, curadoz = getElementPosition ( player_a_ser_curado )
                local dist = getDistanceBetweenPoints3D ( samux, samuy, samuz, curadox, curadoy, curadoz )
                if player_a_ser_curado == thePlayer then
                    outputChatBox("#bebebeVocê não pode se curar!",thePlayer,255,255,255,true)
                    return
                end
                if ( dist > 3 )  then
                    outputChatBox("#bebebeChegue mais perto do jogador!", thePlayer, 255, 255, 255, true)
                elseif ( dist < 3 )then
                    setPedAnimation( thePlayer, "MEDIC", "CPR", 4500, true, false, false, false)
                    setTimer ( function()
                        if not isElement(player_a_ser_curado) then return end
                        
                        setElementHealth ( player_a_ser_curado, 100 )
                        setPedAnimation(player_a_ser_curado, false)
                        setElementFrozen( player_a_ser_curado, false )
                        setElementData(player_a_ser_curado,"PlayerCaido",false)
                    end, 4500, 1 )
                end        
            end
        else
            outputChatBox("#bebebe["..comando.."]: id inválido", thePlayer, 255, 255, 255, true)
        end
    else
        outputChatBox("#bebebeSintaxe: /"..comando.." [id]", thePlayer, 255, 255, 255, true)
    end
end
addCommandHandler ( "curar", curar_jogador )

 

Se alguém pode me ajudar fico agradecido, e obrigado se viu este POST :D

Edited by Striker6225
Link to comment

Voce tem que botar a posição qe voce quer no dx nao está especificado na script


function renderTime()
    local gDetails = getTimerDetails(time)
    if not gDetails then return end
    local remainingTime = secondsToTimeDesc( gDetails / 1000 )
    
    dxDrawText( "Tempo de vida restante: "..tostring(remainingTime), left, top, right, bottom )  -- aqui se voce hotar 0,0,0,0 vai aparecer no canto superior esquerdo da tela por exemplo
end

 

Link to comment
5 minutes ago, Furzy said:

Voce tem que botar a posição qe voce quer no dx nao está especificado na script


function renderTime()
    local gDetails = getTimerDetails(time)
    if not gDetails then return end
    local remainingTime = secondsToTimeDesc( gDetails / 1000 )
    
    dxDrawText( "Tempo de vida restante: "..tostring(remainingTime), left, top, right, bottom )  -- aqui se voce hotar 0,0,0,0 vai aparecer no canto superior esquerdo da tela por exemplo
end

 

Funcionu http://prntscr.com/pb19oz, mas é o seguinte queria coloca no centro só que mais para baixo, colocar maior e tirar esses 3 digitos após a virgula.

Link to comment
20 minutes ago, Striker6225 said:

Foi, so que o problema que ta aparecendo no de todo mundo, e quando é finalizado ele n sai ou seja quando morre.

Tenta isso

local time
addEvent( "onServerCallAddSetTimer", true )
addEventHandler( "onServerCallAddSetTimer", localPlayer, function ()

    time = setTimer(function() time = nil removeEventHandler( "onClientRender", root, renderTime ) end, 180000, 1)
    addEventHandler( "onClientRender", root, renderTime )
end )

addEvent( "fechar", true )
addEventHandler( "fechar", localPlayer, function ()
removeEventHandler( "onClientRender", root, renderTime )
end)

foi mudado o root do event adicionado, para localPlayer

 

e criado um outro evento pra fechar q deve ser inserido no 

ChecarVidaA()

triggerClientEvent("fechar",player)

 

 

Edited by Furzy
Link to comment
6 minutes ago, Furzy said:

Tenta isso


local time
addEvent( "onServerCallAddSetTimer", true )
addEventHandler( "onServerCallAddSetTimer", localPlayer, function ()

    time = setTimer(function() time = nil removeEventHandler( "onClientRender", root, renderTime ) end, 180000, 1)
    addEventHandler( "onClientRender", root, renderTime )
end )

addEvent( "fechar", true )
addEventHandler( "fechar", localPlayer, function ()
removeEventHandler( "onClientRender", root, renderTime )
end)

Não foi

 

 

 

Link to comment
  • Moderators

Tenta adicionando root em localPlayer, em:

addEventHandler( "fechar", localPlayer, function ()

Quando testar use o comando /debugscript 3

Edit

O trigger deve ter o jogador especificado no primeiro parâmetro, senão será chamado para todos players.

triggerClientEvent("onServerCallAddSetTimer",player)

Deve ser:

triggerClientEvent(player,"onServerCallAddSetTimer",player)

 

Link to comment
On 28/09/2019 at 21:22, DNL291 said:

Tenta adicionando root em localPlayer, em:


addEventHandler( "fechar", localPlayer, function ()

Quando testar use o comando /debugscript 3

Edit

O trigger deve ter o jogador especificado no primeiro parâmetro, senão será chamado para todos players.


triggerClientEvent("onServerCallAddSetTimer",player)

Deve ser:


triggerClientEvent(player,"onServerCallAddSetTimer",player)

 

Ainda não ta funcionando, coloquei assim:
 

function ChecarVida()
	for i, player in pairs (getElementsByType("player")) do
		if not getElementData(player, "PlayerCaido") then
			local conta = getAccountName(getPlayerAccount(player))
				if getElementHealth(player) >= 1 then
					if getElementHealth(player) <= hpMin then
						triggerClientEvent(player, "onServerCallAddSetTimer", player) -- AQUI
						removePedFromVehicle(player)
						setElementData(player, "PlayerCaido", true)
						setElementFrozen(player, true)
						setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false)
						setTimer(function()
							if getElementData(player, "PlayerCaido") then	
								killPed(player)
							end
						end, 240000, 1)
				end
			end
		else
			setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false)
		end
	end
end
setTimer(ChecarVida, 200, 0)
function ChecarVidaA()
	for i, player in pairs (getElementsByType("player")) do
		if  getElementData(player, "PlayerCaido") then
		local conta = getAccountName(getPlayerAccount(player))
			if getElementHealth(player) >= 31 then
				triggerClientEvent("fechar",player) -- AQUI
				setElementData(player, "PlayerCaido", false)
				setPedAnimation(player, false)
				setElementFrozen(player, false )
			end
		end
	end
end
setTimer(ChecarVidaA, 200, 0)

 

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