OnPlayerWeaponSwitch: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(Fix example)
 
(10 intermediate revisions by 6 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 8: Line 8:
</syntaxhighlight>  
</syntaxhighlight>  


*'''previousWeaponID''': An [[int|integer]] representing the [[weapons|weapon]] that was switched from
*'''previousWeaponID''': An [[int|integer]] representing the [[weapons|weapon]] that was switched from.
*'''currentWeaponID''': An [[int|integer]] representing the [[weapons|weapon]] that was switched to
*'''currentWeaponID''': An [[int|integer]] representing the [[weapons|weapon]] that was switched to.


==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">
function weaponSwitchDisableMinigun ( previousWeaponID, currentWeaponID ) --when a player switches his weapon
local weaponsToBlock = {
    if currentWeaponID == 38 then --if the weapon ID is minigun
[38] = true, -- minigun
          toggleControl ( source, "fire", false ) --disable the fire button
}
    else --otherwise
 
          toggleControl ( source, "fire", true ) --enable it
function onPlayerWeaponSwitch(previousWeaponID, currentWeaponID)
    end
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
end
--add an event handler for onPlayerWeaponSwitch
addEventHandler("onPlayerWeaponSwitch", root, onPlayerWeaponSwitch)
addEventHandler ( "onPlayerWeaponSwitch", getRootElement(), weaponSwitchDisableMinigun )
</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