SetWeaponTarget: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Added example and improved a bit some confusing stuff)
Line 85: Line 85:
This example creates a Uzi and a pedestrian in the center of the map when the resource which contains it starts and makes the weapon fire the new ped's head non-stop.
This example creates a Uzi and a pedestrian in the center of the map when the resource which contains it starts and makes the weapon fire the new ped's head non-stop.
<syntaxhighlight lang="lua">local function createWeaponFiringPedHead()
<syntaxhighlight lang="lua">local function createWeaponFiringPedHead()
     -- Create the weapon, set a flag and create the ped
     -- Create the weapon and set a flag of it
     local weapon = createWeapon("uzi", 0, 0, 10)
     local weapon = createWeapon("uzi", 0, 0, 10)
     setWeaponFlags(weapon, "instant_reload", true)
     setWeaponFlags(weapon, "instant_reload", true)
    local ped = createPed(8, 0, 0, 5)
     -- Set the weapon target to a ped and fire it forever
     -- Set the weapon target and fire it forever
     setWeaponTarget(weapon, createPed(8, 0, 0, 5), 8)
     setWeaponTarget(weapon, ped, 8)
     setWeaponState(weapon, "firing")
     setWeaponState(weapon, "firing")
end
end
addEventHandler("onClientResourceStart", resourceRoot, createWeaponFiringLocalPlayer)</syntaxhighlight>
addEventHandler("onClientResourceStart", resourceRoot, createWeaponFiringPedHead)</syntaxhighlight>


==Requirements==
==Requirements==

Revision as of 11:29, 6 August 2015

This function sets the target of a custom weapon. There are 3 different targeting modes, which are explained below.

[[{{{image}}}|link=|]] Note: Custom weapons fire targets with no recoil (so they never miss a shot). If you want a custom weapon to take into account recoil, you will have to script it by firing at fixed coordinates.


OOP Syntax Help! I don't understand this!

Note: Variable is read only.
Method: weapon:setTarget(...)
Variable: .target
Counterpart: getWeaponTarget


Syntax (target an element)

Fires the weapon at a physical element.

bool setWeaponTarget ( weapon theWeapon, element theTarget [, int theComponent = 255] )

Required arguments

Optional arguments

  • theComponent: The component of the target to shoot at. This argument is only relevant when used in the following element types:
    • Vehicles:
      • 0: front left tire.
      • 1: front right tire.
      • 2: rear left tire.
      • 3: rear right tire.
      • 255: center of the car (position returned by getElementPosition).
    • Peds (players not included; see getPedBonePosition to know where is located each bone):
      • 1: BONE_PELVIS1 position.
      • 2: BONE_PELVIS position.
      • 3: BONE_SPINE1 position.
      • 4: BONE_UPPERTORSO position.
      • 5: BONE_NECK position.
      • 6: BONE_HEAD2 position.
      • 7: BONE_HEAD1 position.
      • 8: BONE_HEAD position.
      • 21: BONE_RIGHTUPPERTORSO position.
      • 22: BONE_RIGHTSHOULDER position.
      • 23: BONE_RIGHTELBOW position.
      • 24: BONE_RIGHTWRIST position.
      • 25: BONE_RIGHTHAND position.
      • 26: BONE_RIGHTTHUMB position.
      • 31: BONE_LEFTUPPERTORSO position.
      • 32: BONE_LEFTSHOULDER position.
      • 33: BONE_LEFTELBOW position.
      • 34: BONE_LEFTWRIST position.
      • 35: BONE_LEFTHAND position.
      • 36: BONE_LEFTTHUMB position.
      • 41: BONE_LEFTHIP position.
      • 42: BONE_LEFTKNEE position.
      • 43: BONE_LEFTANKLE position.
      • 44: BONE_LEFTFOOT position.
      • 51: BONE_RIGHTHIP position.
      • 52: BONE_RIGHTKNEE position.
      • 53: BONE_RIGHTANKLE position.
      • 54: BONE_RIGHTFOOT position.
      • 255: center of the ped (position returned by getElementPosition).

Returns

Returns true on success, false otherwise.

Syntax (target a position)

Fires the weapon at the specified position.

bool setWeaponTarget ( weapon theWeapon, float targetX, float targetY, float targetZ )

Required arguments

  • theWeapon: The weapon to set the target of.
  • targetX: The target X.
  • targetY: The target Y.
  • targetZ: The target Z.

Returns

Returns true on success, false otherwise.

Syntax (rotational target)

Sets the weapon back to rotation based targeting. It will fire to its front.

bool setWeaponTarget ( weapon theWeapon, nil )

Required arguments

  • theWeapon: The weapon to clear the target of.

Returns

Returns true on success, false otherwise.

Example

This example creates a Uzi and a pedestrian in the center of the map when the resource which contains it starts and makes the weapon fire the new ped's head non-stop.

local function createWeaponFiringPedHead()
    -- Create the weapon and set a flag of it
    local weapon = createWeapon("uzi", 0, 0, 10)
    setWeaponFlags(weapon, "instant_reload", true)
    -- Set the weapon target to a ped and fire it forever
    setWeaponTarget(weapon, createPed(8, 0, 0, 5), 8)
    setWeaponState(weapon, "firing")
end
addEventHandler("onClientResourceStart", resourceRoot, createWeaponFiringPedHead)

Requirements

This template will be deleted.

See also