OnPlayerWeaponSwitch: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Fixed typo)
(Fix example)
 
Line 18: Line 18:


==Example==  
==Example==  
This example disables use of the minigun upon switch.  It should be noted that this can be done more efficiently clientside.
This example allows you to disable shoot ability for certain weapons, it should be noted that it will be more efficient if done on client-side.


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local weaponID = {
local weaponsToBlock = {
[31] = true,
[38] = true, -- minigun
[36] = true,
[38] = true,
}
}


--add an event handler for onPlayerWeaponSwitch
function onPlayerWeaponSwitch(previousWeaponID, currentWeaponID)
addEventHandler('onPlayerWeaponSwitch', root, function(prevWeapon, curWeapon)
local blockFire = (not weaponsToBlock[currentWeaponID]) -- reverse bool, true/worthy will give us false, and false/unworthy will give us true
if weaponID[curWeapon] then
 
toggleControl(source, 'fire', false) -- disable the fire button
toggleControl(source, "fire", blockFire) -- toggle player control to fire weapon
else
end
toggleControl(source, 'fire', true) -- enable it
addEventHandler("onPlayerWeaponSwitch", root, onPlayerWeaponSwitch)
end
end)
</syntaxhighlight>
</syntaxhighlight>


{{See also/Server event|Player events}}
{{See also/Server event|Player events}}

Latest revision as of 09:44, 16 November 2023

This event is triggered whenever a player's equipped weapon slot changes. This means giveWeapon and takeWeapon will trigger this event if the equipped slot is forced to change.

Parameters

int previousWeaponID, int currentWeaponID
  • previousWeaponID: An integer representing the weapon that was switched from.
  • currentWeaponID: An integer representing the weapon that was switched to.

Source

The source of this event is the player that switched his weapon.

Cancel effect

If this event is canceled, then the player's weapon won't be switched.

Example

This example allows you to disable shoot ability for certain weapons, it should be noted that it will be more efficient if done on client-side.

local weaponsToBlock = {
	[38] = true, -- minigun
}

function onPlayerWeaponSwitch(previousWeaponID, currentWeaponID)
	local blockFire = (not weaponsToBlock[currentWeaponID]) -- reverse bool, true/worthy will give us false, and false/unworthy will give us true

	toggleControl(source, "fire", blockFire) -- toggle player control to fire weapon
end
addEventHandler("onPlayerWeaponSwitch", root, onPlayerWeaponSwitch)

See Also

Player events


Event functions