OnPlayerWasted: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(Killer element type)
 
(37 intermediate revisions by 28 users not shown)
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
This event is triggered when a player dies.
{{Server event}}
This event is triggered when a player is killed or dies.


==Syntax==  
==Parameters==
<syntaxhighlight lang="lua">
{{New feature/item|3|1.0||<syntaxhighlight lang="lua">
void onPlayerWasted ( int totalammo, player killer, int killerweapon, int bodypart )       
int totalAmmo, element killer, int killerWeapon, int bodypart, bool stealth
</syntaxhighlight>  
</syntaxhighlight>}}
 
{{Deprecated_feature|3|1.0|<syntaxhighlight lang="lua">
int totalAmmo, element killer, int killerWeapon, int bodypart
</syntaxhighlight>}}


==Variables==
*'''totalAmmo''': an [[int]] representing the total ammo the victim had when they died.
*'''totalammo''': An integer representing the total ammo the player had when he died
*'''killer''': an [[element]] representing the [[player]], [[ped]], [[vehicle]] or [[object]] who was the killer. Deaths resulting from fall damage provide the [[vehicle]] or [[object]] landed on as the killer. If there is no killer this is ''false''.
*'''killer''': A player element representing the player who was the killer. If there was no killer this returns false.
*'''killerWeapon''': an [[int]] representing the [[Weapons|killer weapon]] or the [[Damage Types|damage type]].
*'''killerweapon''': An integer representing the weapon the killer used to kill the player
*'''bodypart''': an [[int]] representing the bodypart ID the victim was hit on when they died.
*'''bodypart''': An integer representing the bodypart ID the player was hit on when he died.
{{BodyParts}}
{{BodyParts}}
*'''stealth''': a [[boolean]] value representing whether or not this was a stealth kill.
==Source==
The [[event system#Event source|source]] of this event is the [[player]] that died or got killed.


==Example==  
==Example==  
This example prints the killer and body part to the chat on the wasted/kill event.
This example prints the killer and bodypart to the chat when a player dies.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
addEventHandler ( "onPlayerWasted", getElementRoot(), "onPlayerWasted" )
-- register player_Wasted as a handler for onPlayerWasted
function onPlayerWasted ( ammo, attacker, weapon, bodypart )
function player_Wasted ( ammo, attacker, weapon, bodypart )
  if ( attacker ) then -- if we have an attacker
-- if there was an attacker
    if ( getElementType ( attacker ) == "player" ) then -- make sure the element that killed him was a player
if ( attacker ) then
      tempString = getClientName ( attacker ).." killed "..getClientName ( source ).." ("..getWeaponNameFromID ( weapon )..")"
-- we declare our variable outside the following checks
      if ( bodypart == 9 ) then -- if he was shot in the head
local tempString
        tempString = tempString.." (HEADSHOT!)"
-- if the element that killed him was a player,
      else
if ( getElementType ( attacker ) == "player" ) then
        tempString = tempString.." ("..getBodyPartName ( bodypart )..")"
-- put the attacker, victim and weapon info in the string
      end
tempString = getPlayerName ( attacker ).." killed "..getPlayerName ( source ).." ("..getWeaponNameFromID ( weapon )..")"
      chat ( tempString )
-- else, if it was a vehicle,
    else
elseif ( getElementType ( attacker ) == "vehicle" ) then
      chat ( getClientName ( source ).." died. ("..getWeaponNameFromID ( weapon )..") ("..getBodyPartName ( bodypart )..")" )
-- we'll get the name from the attacker vehicle's driver
    end
tempString = getPlayerName ( getVehicleController ( attacker ) ).." killed "..getPlayerName ( source ).." ("..getWeaponNameFromID ( weapon )..")"
  else
end
    chat ( getClientName ( source ).." died. ("..getWeaponNameFromID ( weapon )..") ("..getBodyPartName ( bodypart )..")" )
-- if the victim was shot in the head, append a special message
  end
if ( bodypart == 9 ) then
tempString = tempString.." (HEADSHOT!)"
-- else, just append the bodypart name
else
tempString = tempString.." ("..getBodyPartName ( bodypart )..")"
end
-- display the message
outputChatBox ( tempString )
-- if there was no attacker,
else
-- output a death message without attacker info
outputChatBox ( getPlayerName ( source ).." died. ("..getWeaponNameFromID ( weapon )..") ("..getBodyPartName ( bodypart )..")" )
end
end
end
addEventHandler ( "onPlayerWasted", root, player_Wasted )
</syntaxhighlight>
</syntaxhighlight>
And another example, this will spawn you in the middle of GTA SA world (x=0, y=0, z=3) after 2 seconds of your death
<syntaxhighlight lang="lua">
addEventHandler( "onPlayerWasted", root,
function()
setTimer( spawnPlayer, 2000, 1, source, 0, 0, 3 )
end
)
</syntaxhighlight>
{{See also/Server event|Player events}}
[[ru:onPlayerWasted]]

Latest revision as of 21:46, 14 November 2022

This event is triggered when a player is killed or dies.

Parameters

int totalAmmo, element killer, int killerWeapon, int bodypart, bool stealth
  • totalAmmo: an int representing the total ammo the victim had when they died.
  • killer: an element representing the player, ped, vehicle or object who was the killer. Deaths resulting from fall damage provide the vehicle or object landed on as the killer. If there is no killer this is false.
  • killerWeapon: an int representing the killer weapon or the damage type.
  • bodypart: an int representing the bodypart ID the victim was hit on when they died.
  • 3: Torso
  • 4: Ass
  • 5: Left Arm
  • 6: Right Arm
  • 7: Left Leg
  • 8: Right Leg
  • 9: Head
  • stealth: a boolean value representing whether or not this was a stealth kill.

Source

The source of this event is the player that died or got killed.

Example

This example prints the killer and bodypart to the chat when a player dies.

-- register player_Wasted as a handler for onPlayerWasted
function player_Wasted ( ammo, attacker, weapon, bodypart )
	-- if there was an attacker
	if ( attacker ) then
		-- we declare our variable outside the following checks
		local tempString
		-- if the element that killed him was a player,
		if ( getElementType ( attacker ) == "player" ) then
			-- put the attacker, victim and weapon info in the string
			tempString = getPlayerName ( attacker ).." killed "..getPlayerName ( source ).." ("..getWeaponNameFromID ( weapon )..")"
		-- else, if it was a vehicle,
		elseif ( getElementType ( attacker ) == "vehicle" ) then
			-- we'll get the name from the attacker vehicle's driver
			tempString = getPlayerName ( getVehicleController ( attacker ) ).." killed "..getPlayerName ( source ).." ("..getWeaponNameFromID ( weapon )..")"
		end
		-- if the victim was shot in the head, append a special message
		if ( bodypart == 9 ) then
			tempString = tempString.." (HEADSHOT!)"
		-- else, just append the bodypart name
		else
			tempString = tempString.." ("..getBodyPartName ( bodypart )..")"
		end
		-- display the message
		outputChatBox ( tempString )
	-- if there was no attacker,
	else
		-- output a death message without attacker info
		outputChatBox ( getPlayerName ( source ).." died. ("..getWeaponNameFromID ( weapon )..") ("..getBodyPartName ( bodypart )..")" )
	end
end
addEventHandler ( "onPlayerWasted", root, player_Wasted )


And another example, this will spawn you in the middle of GTA SA world (x=0, y=0, z=3) after 2 seconds of your death

addEventHandler( "onPlayerWasted", root,
	function()
		setTimer( spawnPlayer, 2000, 1, source, 0, 0, 3 )
	end
)

See Also

Player events


Event functions