OnPlayerWeaponSwitch: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m ("Cancel effect" before "Example")
(Fix example)
 
(2 intermediate revisions by one other user not shown)
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">
WeaponID = {
local weaponsToBlock = {
[31] = true,
[38] = true, -- minigun
[36] = true,
[38] = true,
}
}


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

Shared