weapon_decoy
Class hierarchy |
---|
CDecoyGrenade |
weapon_decoy.cpp |
weapon_decoy
is a point entity available in Counter-Strike: Global Offensive and Counter-Strike 2.
Description
When landed and fully stopped, it imitates the sounds of the primary weapon that the thrower had equipped when throwing. If the thrower had no primary weapon, their secondary weapon (i.e. their pistol) is used. If they had no such weapon, weapon_glock for Terrorists or weapon_hkp2000 for CTs is used.
While playing sounds, there is an indicator on the thrower's team's radar where the decoy landed.
After about 15 seconds, it explodes, dealing approximately up to 10 damage to unarmored and up to 4 damage to armored players within a small exposion radius.
If the absolute value of the ConVar ff_damage_decoy_explosion
is smaller than 1, team damage by decoys is disabled. Its default value is 0, as the team damage had occasionally been abused in competitive matches to get teammates kicked.
KeyValues
CS:GO / CS2 Weapon:
- Is this weapon allowed to be picked up? (CanBePickedUp) <boolean> (in all games since )
- Determines if players are able to pick up the weapon.
Flags
Start Constrained : [1]
- Prevents the model from moving.
Deny Player Pickup : [2] !FGD
- Prevents player from being able to pick up the weapon.
Inputs
CS:GO / CS2 Weapon:
- SetAmmoAmount <integer> (in all games since )
- For guns, sets the number of bullets in the active magazine. Does nothing for grenades.
Every value behaves like its congruent value in the range 0-255 in modulus 256 (e.g. -255 and 257 behave like 1 etc.). When set to 0, the owner may start reloading automatically, if possible. Other values congruent to 0 (-256, 256, 512, ...) might cause undefined behavior. Values congruent to -1 (mod 256) make the ammo numbers disappear. If set to a value outside the weapon's clip size, reloading might deliver unexpected results.
Behaves like SetClipPrimary.
- SetReserveAmmoAmount <integer> (in all games since )
- For guns, sets the number of bullets in reserve for reloading, clamping at the weapon's maximum (e.g. 90 for the weapon_ak47).
For grenades, sets their count, clamping at the current maximum depending on the convars ammo_grenade_limit_*; When setting to 0 or below while holding the grenade, the player no longer owns any, but the viewmodel stays.
Negative values make a gun's ammo display disappear and reloading is impossible.
Negative values are clamped to 0 for guns.
- ToggleCanBePickedUp <boolean> (in all games since )
- Toggles whether the weapon can be picked up by players. Visually, nothing changes and there is no event if picking up fails. Hover texts like "[E] Swap for AK-47" remain in both cases.
- SetClipPrimary <integer> (only in )
- For guns, sets the number of bullets in the active magazine, clamping between 0 and its clip size; When setting to 0, the owner may start reloading automatically.
Does nothing for grenades.
- SetClipSecondary <integer> (only in )
- Bug:Does nothing. SetReserveAmmoAmount works. [todo tested in?]
Outputs
CS:GO / CS2 Weapon:
- OnPlayerUse
- Fires when a player +uses this weapon (!activator is the player.). Does not fire if the weapon is picked up successfully.
- OnPlayerPickup
- Fires when a player picks this weapon up (!activator is the player.).
- OnCacheInteraction (removed since ) !FGD
- When dropped, fires every tick on player touch (!activator is the player.).
Also fires on successful +use pickup. Does not fire ifCanBePickedUp
is false.
- OnNPCPickup (removed since ) !FGD
- Fires when an NPC picks up this weapon (!activator is the NPC). Bots are considered players, so this output has no functionality.