OnPlayerWeaponSwitch: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Fix example)
 
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
{{Server event}}
{{Server event}}
This event is triggered whenever a player's equipped weapon '''slot''' changes. This means giveWeapon and takeWeapon will trigger this function if the equipped slot is forced to change.  
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==  
==Parameters==  
Line 13: Line 13:
==Source==
==Source==
The [[event system#Event source|source]] of this event is the [[player]] that switched his weapon.
The [[event system#Event source|source]] of this event is the [[player]] that switched his weapon.
==Cancel effect==
If this event is [[Event system#Canceling|canceled]], then the player's weapon won't be switched.


==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