OnPlayerWeaponShot: Difference between revisions

From Onset Developer Wiki
No edit summary
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Info|Event|Server & Client|1.0}}
{{Info|Event|Server & Client|1.0}}


{{FuncDescription|Called when a player has shot their weapon and the hit was authorized by the server but not yet processed its impact. You can call return '''false'' in this event to prevent this hit from further processing. (Server only)}}
{{FuncDescription|Called when a player has shot their weapon and the hit was authorized by the server but not yet processed its impact. You can call return '''false''' in this event to prevent this hit from further processing. (Server only)}}


{{FuncSyntax|OnPlayerWeaponShot(player, weapon, hittype, hitid, hitX, hitY, hitZ, startX, startY, startZ, normalX, normalY, normalZ, BoneName)}}
{{FuncSyntax|OnPlayerWeaponShot(player, weapon, hittype, hitid, hitX, hitY, hitZ, startX, startY, startZ, normalX, normalY, normalZ, BoneName)}}
Line 7: Line 7:
{{FuncParameters}}
{{FuncParameters}}
{{FuncParam|player|The player that has shot the weapon.}}
{{FuncParam|player|The player that has shot the weapon.}}
{{FuncParam|player|Weapon model id.}}
{{FuncParam|weapon|Weapon model id.}}
{{FuncParam|hittype|The [[HitType|type of entity]] which was hit.}}
{{FuncParam|hittype|The [[HitType|type of entity]] which was hit.}}
{{FuncParam|hitid|The identifier of the entity which was hit.}}
{{FuncParam|hitid|The identifier of the entity which was hit.}}
Line 13: Line 13:
{{FuncParam|hitY|The Y coordinate of this hit.}}
{{FuncParam|hitY|The Y coordinate of this hit.}}
{{FuncParam|hitZ|The Z coordinate of this hit.}}
{{FuncParam|hitZ|The Z coordinate of this hit.}}
{{FuncParam|startX|The X coordinate of where this short started from.}}
{{FuncParam|startX|The X coordinate of where this shot started from.}}
{{FuncParam|startY|The Y coordinate of where this short started from.}}
{{FuncParam|startY|The Y coordinate of where this shot started from.}}
{{FuncParam|startY|The Z coordinate of where this short started from.}}
{{FuncParam|startZ|The Z coordinate of where this shot started from.}}
{{FuncParam|normalX|Impact normal X of the hit.}}
{{FuncParam|normalX|Impact normal X of the hit.}}
{{FuncParam|normalY|Impact normal Y of the hit.}}
{{FuncParam|normalY|Impact normal Y of the hit.}}
Line 46: Line 46:
The parameters on the client are slightly different. If you want to detect weapon shots on the client for other players you can use [[OnPlayWeaponHitEffects]].
The parameters on the client are slightly different. If you want to detect weapon shots on the client for other players you can use [[OnPlayWeaponHitEffects]].
<syntaxhighlight lang="Lua">
<syntaxhighlight lang="Lua">
function OnPlayerWeaponShot(hittype, hitid, hitX, hitY, hitZ, startX, startY, normalX, normalY, normalZ)
function OnPlayerWeaponShot(weaponid, hittype, hitid, hitX, hitY, hitZ, startX, startY, startZ, normalX, normalY, normalZ, BoneName)
     print(hitX, hitY, hitZ)
     print(hitX, hitY, hitZ)
end
end

Latest revision as of 12:14, 4 November 2020

OnPlayerWeaponShot

Type: Event
Context: Server & Client
Introduced: v1.0

Description

Called when a player has shot their weapon and the hit was authorized by the server but not yet processed its impact. You can call return false in this event to prevent this hit from further processing. (Server only)

Syntax

OnPlayerWeaponShot(player, weapon, hittype, hitid, hitX, hitY, hitZ, startX, startY, startZ, normalX, normalY, normalZ, BoneName)

Parameters

  • player
    The player that has shot the weapon.
  • weapon
    Weapon model id.
  • hittype
    The type of entity which was hit.
  • hitid
    The identifier of the entity which was hit.
  • hitX
    The X coordinate of this hit.
  • hitY
    The Y coordinate of this hit.
  • hitZ
    The Z coordinate of this hit.
  • startX
    The X coordinate of where this shot started from.
  • startY
    The Y coordinate of where this shot started from.
  • startZ
    The Z coordinate of where this shot started from.
  • normalX
    Impact normal X of the hit.
  • normalY
    Impact normal Y of the hit.
  • normalZ
    Impact normal Z of the hit.
  • BoneName
    Bone name of this hit. (For players)

Example Server

function OnPlayerWeaponShot(player, weapon, hittype, hitid, hitx, hity, hitz, startx, starty, startz, normalx, normaly, normalz, BoneName)
	local action = {
		"in the air",
		"at player",
		"at vehicle",
		"an NPC",
		"at object",
		"on ground",
		"in water"
	}
	
	print(GetPlayerName(player).."("..player..") shot "..action[hittype].." (ID "..hitid..") using weapon ("..weapon..")")
	
	if (hittype == HIT_NPC) then
		AddPlayerChat(player, "Hey you, don't shoot at NPCs!")
	end
end
AddEvent("OnPlayerWeaponShot", OnPlayerWeaponShot)

Example Client

The parameters on the client are slightly different. If you want to detect weapon shots on the client for other players you can use OnPlayWeaponHitEffects.

function OnPlayerWeaponShot(weaponid, hittype, hitid, hitX, hitY, hitZ, startX, startY, startZ, normalX, normalY, normalZ, BoneName)
    print(hitX, hitY, hitZ)
end
AddEvent("OnPlayerWeaponShot", OnPlayerWeaponShot)

See also