Sign in to follow this  
Bruno R dos Santos

informações de quem te matou na tela de quem morreu, é possivel?

Recommended Posts

Olá.

Você deve obter os dados do jogador que matou e enviar para quem foi a vítima. Fiz um exemplo:

Spoiler

-- SERVER-SIDE
addEventHandler("onPlayerWasted", root, function(_, attacker)
    if attacker and attacker ~= source then
        if getElementType(attacker) == "player" then
            -- Obter o ID, nickname e vida de quem matou
            local attackerId = getElementData(attacker, "ID") or "?"
            local attackerName = getPlayerName(attacker)
            local attackerHealth = getElementHealth(attacker)

            -- Enviamos esses dados que pegamos acima para quem morreu
            triggerClientEvent(source, "showInfoWhenPlayerIsDead", resourceRoot, {attackerId, attackerName, attackerHealth})
        end
    end
end)

-- CLIENT-SIDE
local screenX, screenY = guiGetScreenSize()
local data, tick, alpha

function showInfo()
    local str = data.name .. "#ffffff[" .. data.id .. "] #ff8989matou você!\n#ffffffVida: #ff8989" .. data.health .. "#ffffff%"
    dxDrawText(str, 0, 0, screenX, screenY, tocolor(255, 255, 255, alpha), 1.20, "sans", "center", "center", false, false, false, true)

    if tick + (5000) <= getTickCount() then
        alpha = alpha - 5
        if alpha <= 0 then
            data = nil
            removeEventHandler("onClientRender", root, showInfo)
        end
    end
end

addEvent("showInfoWhenPlayerIsDead", true)
addEventHandler("showInfoWhenPlayerIsDead", resourceRoot, function(info)
    if data and type(data) == "table" then
        return false
    end

    -- Armazenamos em uma tabela qualquer, apenas de forma temporária, para mostrar as informações
    data = {}
    data.id = info[1]
    data.name = info[2]
    data.health = info[3]

    -- Renderizamos a mensagem na tela
    tick = getTickCount()
    alpha = 255
    addEventHandler("onClientRender", root, showInfo)
end)

 

 

Edited by andreisrww

Share this post


Link to post

no caso eu tenho que mudar o evento "showInfoWhenPlayerIsDead" para "setplayerFallen" pois dessa sua maneira, só mostraria o ID de quem te matou, quando você morresse e perdesse tudo, no caso eu quero que quando o jogador ficasse no chão por ter sofrido muito dano, aparecesse na tela quem causou isso, estou correto?

Share this post


Link to post

Negativo. Você não precisa mudar nada. O que eu fiz é apenas um exemplo. Use de base para fazer o que deseja, dei o código pronto apenas como exemplo. É você quem precisa estudar e criar por conta própria. го!

  • Like 1

Share this post


Link to post

é exatamente o que eu estou tentando fazer D:, mas não estou conseguindo, e nem informa o erro no debugscript 3.


Essa parte do meu code

function SetarCaidoComHS()
	player = source
	if attacker and attacker ~= source then
	if getElementType(attacker) == "player" then
		-- Obter o ID, nickname e vida de quem matou
		local attackerId = getElementData(attacker, "ID") or "?"
		local attackerName = getPlayerName(attacker)
		local attackerHealth = getElementHealth(attacker)
	if not getElementData(player, "playerFallen") then
		removePedFromVehicle(player)
		setPlayerFallen(player, true)
		setElementFrozen(player, true)
		setPedAnimation(player, "SWEET", "Sweet_injuredloop", 1, false, true, false)
		triggerClientEvent(player, "startDeadTime", player)
					-- Enviamos esses dados que pegamos acima para quem morreu
		triggerClientEvent(source, "showInfoWhenPlayerIsDead", resourceRoot, {attackerId, attackerName, attackerHealth})
		end
		outputDxBox(player, 'Digite "/192" e espere que um SAMU venha e o cure ou morrerá em 3 minutos.', "warning")
		setTimer(function()
			if getElementData(player, "playerFallen") then	
				setElementData(player, "playerFallen", false)
				setPlayerFallen(player, false)
				triggerClientEvent(player, "stopDeadTime", player)
				if isElement ( blip[player] ) then
					destroyElement(blip[player])
				end
				killPlayer(player)
				outputDxBox(player, "Você demorou para ser curado e acabou morrendo!", "info")
			end
		end, 180000, 1)
	else
		setPedAnimation(player, "SWEET", "Sweet_injuredloop", 1, false, true, false)
	end
	end
    end
setTimer(checkHealth, 1000, 0)
addEvent("OnHS", true)
addEventHandler("OnHS", getRootElement(), SetarCaidoComHS, root, (attacker))

foi o que eu adicionei as infos que você me passou, como na linha 1 ao 7, e na ultima linha adicionei no eventhandler! mas simplesmente parou de funcionar o HS no player (essa parte do script, se vc atirar na cabeça do jogador, ele cai e fica no chão até um "samu" vir e curar).

a minha intenção de primeiro era fazer funcionar conforme ficou o seu exemplo, e assim ir melhorando e aperfeiçoando, colocando a arma que o atingiu, se foi hs ou não, e por ai vai, mas eu não to conseguindo nem imaginar como fazer funcionar o seu EXEMPLO no meu SCRIPT pra começar.

Share this post


Link to post

Há diversos erros no seu código.

  • attacker não está definido em lugar nenhum;
  • algumas funções utilizam player e outras source (???);
  • a função setTimer, que está dentro da função SetarCaidoComHS, não possui funcionamento nenhum, uma vez que não é passado argumentos;
  • a função setTimer, que está fora da função, também não há função referente à ela;
  • evento na última linha adicionado de forma incorreta.

Sugiro aprender a desenvolver seus próprios códigos, com base em códigos que são bem feitos. O código que você está tentando editar é totalmente mal otimizado e possui vários erros. Consertá-los é irrelevante. Não perca tempo.

Você também pode aprender mais sobre a linguagem Lua neste link.

  • Like 1

Share this post


Link to post

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.