SetPedAimTarget

From Multi Theft Auto: Wiki
Revision as of 14:24, 21 September 2023 by Dragon (talk | contribs) (→‎Example: Added an additional example)
Jump to navigation Jump to search

This function allows you to set a ped's aim target to a specific point. If a ped is within a certain range defined by getPedTargetStart and getPedTargetEnd he will be targeted and shot.

Note: If you wish to make a ped shoot you must use this in conjunction with an equipped weapon and setPedControlState.

Syntax

bool setPedAimTarget ( ped thePed, float x, float y, float z )

Required Arguments

  • thePed: The ped whose target you want to set. Only peds and remote players will work; this function has no effect on the local player.
  • x: The x coordinate of the aim target point.
  • y: The y coordinate of the aim target point.
  • z: The z coordinate of the aim target point.

Returns

Returns true if the function was successful, false otherwise.

Example

Example 1: This example creates a ped in the middle of the map and sets its aim target to be point north-east.

function createPedAndsetHisAimTarget ()
        local ped = createPed (0, 0, 0, 5 ) -- create a ped, who looks like cj, in the middle of the map
        setPedAimTarget ( ped, 10, 10, 5 ) -- set the ped's target to a point in North-East
end

Example 2: This example creates a ped at grove street that will shoot at anything that enters a certain marker.

local cj = createPed(0, 2498.5, -1684.0, 13.5, 20) -- create a ped at cjs house in grove street and give it an ak
givePedWeapon(cj, 30, 3000, true)

local marker = createMarker(2493.0, -1669.0, 13.5, "checkpoint", 3, 255, 0, 0, 128) -- create a marker and get its associated colshape for later use
local colshape = getElementColShape(marker)

function renderHandler()
	local intruder = getElementsWithinColShape(colshape)[2] -- get the second element found within the colshape, because the first one will normally be the marker itself
	if intruder then
		local x,y,z = getElementPosition(intruder) -- if an intruder exists, get its position and have the cj ped fire at it
		setPedAimTarget(cj, x, y, z)
		setPedControlState(cj, "fire", true)
	else
		setPedControlState(cj, "fire", false) -- otherwise stop shooting
	end
end
addEventHandler("onClientRender", getRootElement(), renderHandler) -- add an event handler to go through the target acquisition prodecure every frame

See Also