Hello!
I have a problem with the damage script.
I can't kill other players just if they got headshot.. but I don't know why.
local playerInjuries = {} -- create a table to save the injuries
function copy( t )
local r = {}
if type(t) == 'table' then
for k, v in pairs( t ) do
r[k] = v
end
end
return r
end
function isMelee( weapon )
return weapon and weapon <= 15
end
function killknockedout(source)
setElementHealth(source, 0)
end
function stabilize()
if playerInjuries[source] and not isPedHeadless(source) then
if playerInjuries[source]['knockout'] then
exports['global']:changeProtectedElementDataEx(source, "injuriedanimation")
if isTimer(playerInjuries[source]['knockout']) then
killTimer(playerInjuries[source]['knockout'])
playerInjuries[source]['knockout'] = nil
fadeCamera(source, true, 2)
setPedAnimation(source)
exports.ls_core:removeAnimation(source)
toggleControl(source, 'forwards', true)
toggleControl(source, 'left', true)
toggleControl(source, 'right', true)
toggleControl(source, 'backwards', true)
toggleControl(source, 'enter_passenger', true)
setElementHealth(source, math.max( 20, getElementHealth(source) ) )
end
end
if playerInjuries[source][7] and playerInjuries[source][8] then
toggleControl(source, 'forwards', true)
toggleControl(source, 'left', true)
toggleControl(source, 'right', true)
toggleControl(source, 'backwards', true)
toggleControl(source, 'enter_passenger', true)
end
end
end
addEvent( "onPlayerStabilize", false )
addEventHandler( "onPlayerStabilize", getRootElement(), stabilize )
addEvent "onPlayerHeadshot"
addEventHandler("onPlayerDamage", getRootElement(),
function (attacker, weapon, bodypart, loss)
if bodypart == 9 then
if not getElementData(attacker, "sokkolokezeben") == true then
local result = triggerEvent("onPlayerHeadshot", source, attacker, weapon, loss)
if result == true then
killPed(source, attacker, weapon, bodypart)
setPedHeadless(source, true)
end
end
end
end
)
function healInjuries(healed)
if playerInjuries[source] and not isPedHeadless(source) then
if playerInjuries[source]['knockout'] then
exports['global']:changeProtectedElementDataEx(source, "injuriedanimation")
if isTimer(playerInjuries[source]['knockout']) then
killTimer(playerInjuries[source]['knockout'])
playerInjuries[source]['knockout'] = nil
if healed then
fadeCamera(source, true, 2)
setPedAnimation(source)
exports.global:removeAnimation(source)
end
end
toggleAllControls(source, true, true, false)
else
if playerInjuries[source][7] and playerInjuries[source][8] then
toggleControl(source, 'forwards', true)
toggleControl(source, 'left', true)
toggleControl(source, 'right', true)
toggleControl(source, 'backwards', true)
toggleControl(source, 'enter_passenger', true)
toggleControl(source, 'enter_exit', true)
end
if playerInjuries[source][7] or playerInjuries[source][8] then
toggleControl(source, 'sprint', true)
toggleControl(source, 'jump', true)
end
if playerInjuries[source][5] and playerInjuries[source][6] then
toggleControl(source, 'fire', true)
end
if playerInjuries[source][5] or playerInjuries[source][6] then
toggleControl(source, 'aim_weapon', true)
toggleControl(source, 'jump', true)
end
end
playerInjuries[source] = nil
end
end
addEvent( "onPlayerHeal", false )
addEventHandler( "onPlayerHeal", getRootElement(), healInjuries)
function restoreInjuries( )
if playerInjuries[source] and not isPedHeadless(source) then
if playerInjuries[source][7] and playerInjuries[source][8] then
toggleControl(source, 'forwards', false)
toggleControl(source, 'left', false)
toggleControl(source, 'right', false)
toggleControl(source, 'backwards', false)
toggleControl(source, 'enter_passenger', false)
toggleControl(source, 'enter_exit', false)
end
if playerInjuries[source][7] or playerInjuries[source][8] then
toggleControl(source, 'sprint', false)
toggleControl(source, 'jump', false)
end
if playerInjuries[source][5] and playerInjuries[source][6] then
toggleControl(source, 'fire', false)
end
if playerInjuries[source][5] or playerInjuries[source][6] then
toggleControl(source, 'aim_weapon', false)
toggleControl(source, 'jump', false)
end
end
end
addEventHandler( "onPlayerStopAnimation", getRootElement(), restoreInjuries )
function resetInjuries()
setPedHeadless(source, false)
if playerInjuries[source] then
healInjuries()
end
end
addEventHandler( "onPlayerSpawn", getRootElement(), resetInjuries)
addEventHandler( "onPlayerQuit", getRootElement(), resetInjuries)