ZeyadGTX Posted September 14, 2014 Share Posted September 14, 2014 I use this Headshot but i want to make when player gets headshot his head removes untill respawn because his head returns again before spawn Client : 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 ) Server : function MakePlayerHeadshot( attacker, weapon, bodypart, loss ) if getElementType ( attacker ) == "ped" then if bodypart == 9 then triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) setPedHeadless ( source, true ) killPed( source, attacker, weapon, bodypart ) setTimer( BackUp, 900, 1, source ) end end end function MakeHeadshot( source, attacker, weapon, loss ) triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) killPed( source, attacker, weapon, 9 ) setPedHeadless ( source, true ) setTimer( BackUp, 900, 1, source ) end function BackUp( source ) if getElementType ( source ) == "player" then setPedHeadless ( source, false ) end end function outputHeadshotIcon (killer, weapon, bodypart) if bodypart == 9 then cancelEvent() local r2,g2,b2 = getTeamColor ( getPlayerTeam( killer ) ) local r1,g1,b1 = getTeamColor ( getPlayerTeam( source ) ) exports.killmessages:outputMessage ( {getPlayerName(killer),{"padding",width=3},{"icon",id=weapon},{"padding",width=3},{"icon",id=256},{"padding",width=3},{"color",r=r1,g=g1,b=b1},getPlayerName(source) }, getRootElement(),r2,g2,b2) end end addEvent ( "onServerHeadshot", true ) addEventHandler( "onPlayerDamage", getRootElement(), MakePlayerHeadshot ) addEventHandler( "onPlayerKillMessage", getRootElement(), outputHeadshotIcon ) addEventHandler( "onServerHeadshot", getRootElement(), MakeHeadshot ) Link to comment
darhal Posted September 14, 2014 Share Posted September 14, 2014 In backUp function edit this setPedHeadless(source, true) MOD NOTE: Editing in Ab-47's comment from 2019 for knownledgebase, but to get rid of a bump Ab-47 said; You don't need a client side to trigger server side, all you need to do is keep the server side and do the following: Your backup timer I assume was incase the headless was changed by something else whilst being killed, so that shouldn't be false otherwise in 900 ms the ped/player would have it's head back. I added onPlayerSpawn to give the person their head back. This is really all you need and it works fine, I tested it myself. function MakePlayerHeadshot( attacker, weapon, bodypart, loss ) if (not attacker or attacker == source) then return end if bodypart == 9 then triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) setPedHeadless ( source, true ) killPed( source, attacker, weapon, bodypart ) setTimer( BackUp, 900, 1, source ) end end addEventHandler( "onPlayerDamage", getRootElement(), MakePlayerHeadshot ) function BackUp( source ) if getElementType ( source ) == "player" then setPedHeadless ( source, true ) end end function spawnPlayer() if (isPedHeadless(source)) then setPedHeadless(source, false) end end addEventHandler("onPlayerSpawn", root, spawnPlayer) function outputHeadshotIcon (killer, weapon, bodypart) if bodypart == 9 then cancelEvent() local r2,g2,b2 = getTeamColor ( getPlayerTeam( killer ) ) local r1,g1,b1 = getTeamColor ( getPlayerTeam( source ) ) exports.killmessages:outputMessage ( {getPlayerName(killer),{"padding",width=3},{"icon",id=weapon},{"padding",width=3},{"icon",id=256},{"padding",width=3},{"color",r=r1,g=g1,b=b1},getPlayerName(source) }, getRootElement(),r2,g2,b2) end end addEventHandler( "onPlayerKillMessage", getRootElement(), outputHeadshotIcon ) Link to comment
-.Paradox.- Posted September 14, 2014 Share Posted September 14, 2014 Or just change the timer value Link to comment
ZeyadGTX Posted September 14, 2014 Author Share Posted September 14, 2014 I tried That But The head doesn't return if spawned the player is headLess function MakePlayerHeadshot( attacker, weapon, bodypart, loss ) if getElementType ( attacker ) == "ped" then if bodypart == 9 then triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) setPedHeadless ( source, true ) killPed( source, attacker, weapon, bodypart ) setTimer( BackUp, 900, 1, source ) end end end function MakeHeadshot( source, attacker, weapon, loss ) triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) killPed( source, attacker, weapon, 9 ) setPedHeadless ( source, true ) setTimer( BackUp, 900, 1, source ) end function BackUp( source ) if getElementType ( source ) == "player" then setPedHeadless ( source, true ) end end function outputHeadshotIcon (killer, weapon, bodypart) if bodypart == 9 then cancelEvent() local r2,g2,b2 = getTeamColor ( getPlayerTeam( killer ) ) local r1,g1,b1 = getTeamColor ( getPlayerTeam( source ) ) exports.killmessages:outputMessage ( {getPlayerName(killer),{"padding",width=3},{"icon",id=weapon},{"padding",width=3},{"icon",id=256},{"padding",width=3},{"color",r=r1,g=g1,b=b1},getPlayerName(source) }, getRootElement(),r2,g2,b2) end end addEvent ( "onServerHeadshot", true ) addEventHandler( "onPlayerDamage", getRootElement(), MakePlayerHeadshot ) addEventHandler( "onPlayerKillMessage", getRootElement(), outputHeadshotIcon ) addEventHandler( "onServerHeadshot", getRootElement(), MakeHeadshot ) Link to comment
ZeyadGTX Posted September 14, 2014 Author Share Posted September 14, 2014 Or just change the timer value You mean backUp timer ? The Back up in line 7 ? Link to comment
lcd1232 Posted September 14, 2014 Share Posted September 14, 2014 maybe u must change resource spawn? Link to comment
Anubhav Posted September 14, 2014 Share Posted September 14, 2014 function sendHeadshot ( attacker, weapon, bodypart, loss ) if attacker ~= source 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
-.Paradox.- Posted September 14, 2014 Share Posted September 14, 2014 function sendHeadshot ( attacker, weapon, bodypart, loss ) if attacker ~= source 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 ) Really smart... Just use in the backup timer the value(time in milliseconds) that the player takes to respawn Link to comment
Recommended Posts