Jump to content

HEAT SHOT


Recommended Posts

@DNL291

COMO QUE EU FAÇO PRA COLOCAR NESSA FUNÇÃO AQUI 

 

function tiro(wap,mag,ClipM,x,y,z,element)
			if getType(element) == "player" then
				dano, weapon = weaponDamage()
				triggerServerEvent("sincroniaSv", getLocalPlayer(), element, dano, weapon)
			end
	end
end
addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), tiro)


queria colocar ai pra identificar a onde foi pego, se foi no Torso ou Head

@DNL291

COMO QUE EU FAÇO PRA COLOCAR NESSA FUNÇÃO AQUI 

 

function tiro(wap,mag,ClipM,x,y,z,element)
			if getType(element) == "player" then
				dano, weapon = weaponDamage()
				triggerServerEvent("sincroniaSv", getLocalPlayer(), element, dano, weapon)
			end
	end
end
addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), tiro)


queria colocar ai pra identificar a onde foi pego, se foi no Torso ou Head

 

local x,y,z,xx,xy,xz,_,_,torso = processLineOfSight(startX, startY, startZ, hitX, hitY, hitZ,false,false,true)

Link to comment
function tiro(wap,mag,ClipM,hitX, hitY, hitZ,element,startX, startY, startZ)
    if element then
            if getType(element) == "player" then
                local x,y,z,xx,xy,xz,_,_,torso = processLineOfSight(hitX, hitY, hitZ,startX, startY, startZ,false,false,true)
                if torso == 9 then 
                    outputChatBox("OK!!!!")
                else
                    outputChatBox("NAO OK!!!!")
                end
            end
    end
end
addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), tiro)

 

Edited by Lord Henry
Corrigida formatação de texto para Lua.
Link to comment
2 hours ago, felipebaidoloko said:

function tiro(wap,mag,ClipM,hitX, hitY, hitZ,element,startX, startY, startZ)
    if element then
            if getType(element) == "player" then
                local x,y,z,xx,xy,xz,_,_,torso = processLineOfSight(hitX, hitY, hitZ,startX, startY, startZ,false,false,true)
                if torso == 9 then 
                    outputChatBox("OK!!!!")
                else
                    outputChatBox("NAO OK!!!!")
                end
            end
    end
end
addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), tiro)

 

Mano tem um codigo assim, n sei se já conseguiu resolver o problema 

function sendHeadshot ( attacker, weapon, bodypart, loss ) 
    if attacker == getLocalPlayer() then 
        if bodypart == 9 then 
            triggerServerEvent( "onServerHeadshot", getRootElement(), source, attacker, weapon, loss ) 
            setElementHealth ( source, 0 ) 
            setPedHeadless( source, true ) 
        end 
    end 
end 
addEventHandler ( "onClientPedDamage", getRootElement(), sendHeadshot ) 
addEventHandler ( "onClientPlayerDamage", getRootElement(), sendHeadshot ) 

 

Link to comment

podem me ajuda? preciso identificar o tiro na cabeça do jogador fiz certo ela?

mas nao da certo

 

function tiro(wap,mag,ClipM,hitX, hitY, hitZ,element,startX, startY, startZ)
	local x,y,z,xx,xy,xz,_,_,torso = processLineOfSight(startX, startY, startZ, hitX, hitY, hitZ,false,false,true)
	if torso == 9 then
	    -- COM HS
	else
	    -- SEM HS
   end
end
addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), tiro)


 

Edited by felipebaidoloko
Link to comment
  • Other Languages Moderators

Faltou a primeira variável retornada pelo processLineOfSight. O primeiro valor retornado é um booleano que indica se a linha colidiu em algo, o segundo valor dai sim é o X onde a linha colidiu.

Outra coisa: Você definiu pra ele não detectar construções, ou seja, atravessar por elas até encontrar um jogador. Isso significa que se um jogador mirar na cabeça de outro jogador e atirar através de uma parede, vai considerar como HeadShot.

local hit, x, y, z, hitElement, xx, yy, zz, _, _, piece = processLineOfSight (startX, startY, startZ, hitX, hitY, hitZ, true, false) -- Não precisa declarar a detecção de players como true, pois ela já é true por padrão. Só declare se for usar como false ou então se for usar algum parâmetro seguinte.
if (hit) then -- Se a linha colidiu em algo, então: (caso contrário, todas as demais variáveis serão nil)
	if (getElementType (hitElement) == "player") then -- Se o elemento em que a linha colidiu for um jogador, então:
		if (piece == 9) then -- Se a linha colidiu na cabeça desse jogador, então:
			-- Com HS.
		else
			-- Sem HS.
		end
	end
end

 

Edited by Lord Henry
  • Thanks 1
Link to comment
2 hours ago, Lord Henry said:

Faltou a primeira variável retornada pelo processLineOfSight. O primeiro valor retornado é um booleano que indica se a linha colidiu em algo, o segundo valor dai sim é o X onde a linha colidiu.

Outra coisa: Você definiu pra ele não detectar construções, ou seja, atravessar por elas até encontrar um jogador. Isso significa que se um jogador mirar na cabeça de outro jogador e atirar através de uma parede, vai considerar como HeadShot.


local hit, x, y, z, hitElement, xx, yy, zz, _, _, piece = processLineOfSight (startX, startY, startZ, hitX, hitY, hitZ, true, false) -- Não precisa declarar a detecção de players como true, pois ela já é true por padrão. Só declare se for usar como false ou então se for usar algum parâmetro seguinte.
if (hit) then -- Se a linha colidiu em algo, então: (caso contrário, todas as demais variáveis serão nil)
	if (getElementType (hitElement) == "player") then -- Se o elemento em que a linha colidiu for um jogador, então:
		if (piece == 9) then -- Se a linha colidiu na cabeça desse jogador, então:
			-- Com HS.
		else
			-- Sem HS.
		end
	end
end

 

Eu tinha conseguido, fui atras do forum como funcionava essa função, e foi igual o que vc sitou a cima

OBRIGADO :D

Link to comment

estou com um problema nela, nao ta funcionando 100% eu coloco o hitElement ele pega as vezes o tiro fiz ate um teste aqui 

mais quando uso o element da função ele funciona certinho

 

addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), function(wap,mag,ClipM,x,y,z,element,startX, startY, startZ)
	hitElement, x, y, z, elementHit, nx, ny, nz, mat, light, bodypart = processLineOfSight ( startX, startY, startZ, x, y, z, false, false, true)
	if (hitElement) then
		if (getElementType (element) == "player") then
			if bodypart == 9 then 
				outputChatBox("HEADSHOT")
			else
			    outputChatBox("Acerto")
			end
		end
	else
		outputChatBox("FORA DO HIT")
	end
end)

 

ELE APARECE A MENSAGEM "FORA DO HIT" e tipo quero que ele pega certeiro o HS e no peito sem que apareça o "FORA DO HIT" ele falha as vezes ele fica como nil 

  • Thanks 1
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...