FireWeapon: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(added another example that does more than fire a single shot)
(Remove obsolete Requirements section)
 
(4 intermediate revisions by one other user not shown)
Line 18: Line 18:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function createAndFire()
function createAndFire()
     local weapon = createWeapon("mp5", 0, 0, 3) -- Create a MP5 at the coordinates 0, 0, 3
     local weaponElement = createWeapon("mp5", 0, 0, 3) -- Create a MP5 at the coordinates 0, 0, 3
     fireWeapon(weapon) -- Fire the weapon we spawned
 
     fireWeapon(weaponElement) -- Fire the weapon we spawned
end
end
addEventHandler("onClientResourceStart", resourceRoot, createAndFire)
addEventHandler("onClientResourceStart", resourceRoot, createAndFire)
Line 29: Line 30:


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local wep
local weaponElement = nil
function resStart()
 
wep = createWeapon("m4",0,0,0) -- when the resource starts, create the M4 and attach it to the local player with an offset to place it above their head facing forwards
function onClientResourceStart()
attachElements(wep,getLocalPlayer(),0,0,1,0,0,90)
weaponElement = createWeapon("m4", 0, 0, 0) -- when the resource starts, create the M4 and attach it to the local player with an offset to place it above their head facing forwards
attachElements(weaponElement, localPlayer, 0, 0, 1, 0, 0, 90)
end
end
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()), resStart)
addEventHandler("onClientResourceStart", resourceRoot, onClientResourceStart)


function wepFire() -- fire the M4 every frame using the "onClientRender" event
function onClientRender() -- fire the M4 every frame using the "onClientRender" event
fireWeapon(wep)
fireWeapon(weaponElement)
end
end
addEventHandler("onClientRender",getRootElement(),wepFire)
addEventHandler("onClientRender", root, onClientRender)
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>
==Requirements==
{{Requirements|n/a|1.3.0-9.04555|}}


==See also==
==See also==
{{Client weapon creation functions}}
{{Client weapon creation functions}}

Latest revision as of 17:07, 7 November 2024

Fires one shot from a custom weapon.

Syntax

bool fireWeapon ( weapon theWeapon )

OOP Syntax Help! I don't understand this!

Method: weapon:fire(...)


Required Arguments

  • theWeapon: The weapon to be fired.

Returns

Returns true if the shot weapon is valid and therefore the shot was fired, false otherwise.

Example

Click to collapse [-]
Example 1

This function creates and fires a weapon.

function createAndFire()
    local weaponElement = createWeapon("mp5", 0, 0, 3) -- Create a MP5 at the coordinates 0, 0, 3

    fireWeapon(weaponElement) -- Fire the weapon we spawned
end
addEventHandler("onClientResourceStart", resourceRoot, createAndFire)
Click to collapse [-]
Example 2

This example will create an M4, attach it to the local player and fire it every frame. Be aware that neither the weapon nor the shots are synced between players and that normally weapons don't fire every frame.

local weaponElement = nil

function onClientResourceStart()
	weaponElement = createWeapon("m4", 0, 0, 0) -- when the resource starts, create the M4 and attach it to the local player with an offset to place it above their head facing forwards
	attachElements(weaponElement, localPlayer, 0, 0, 1, 0, 0, 90)
end
addEventHandler("onClientResourceStart", resourceRoot, onClientResourceStart)

function onClientRender() -- fire the M4 every frame using the "onClientRender" event
	fireWeapon(weaponElement)
end
addEventHandler("onClientRender", root, onClientRender)

See also