I have enhanced the Sidewinder extension to also allow rockets (soldier), grenades, arrows, flares, needles and syringes to be configured to be tracking projectiles, with convars for each one.
I also added native functions that can be called from plugins to enable or disable the various homing projectiles for individual players. There are also bits in the sidewinder flags to allow individual clients to be cloaked from the missiles, detected even if they are cloaked or designated as priority targets.
I have also attached a simple plugin that will reset everyone's sidewinder flags when they connect or disconnect.
6/8/2009 *Updated to change version number to 2.1.1
8/10/2009 *Changed sidewinder crit tracker to use bit flags in 1 convar instead of separate convars (to be consistent)
*Fixed sidewinder crit tracker available to all races bug
*Added forward to Sidewinder when a shot is fired to decide whether it should seek or not.
*Changed sidewinder to call OnSidewinderSweek() from the 1st Think Function when the tracking value is TrackCrits
*Added the critical flag to the OnSidewinderSeek() forward.
List of Convars:
sm_arrow_homingchance (0-100, default 100)
Percent chance that a sniper's arrow will home.
sm_flare_homingchance (0-100, default 100)
Percent chance that a pyro's flare will home
sm_pipe_homingchance (0-100, default 100)
Percent chance that a demo man's pipe bombs (grenades) will home.
sm_rocket_homingchance (0-100, default 100)
Percent chance that a soldier's rockets will home.
sm_syringe_homingchance (0-100, default 100)
Percent chance that a medic's syringe needles will home.
sm_sentryrocket_homingchance (0-100, default 100)
Percent chance that a sentry gun's rockets will home.
sm_sentryrocket_critchance (0-100, default 100)
Percent chance that a sentry gun's rockets will crit.
sm_sentryrocket_crit (1/0, default 1)
Enable/disable critical shots for sentry guns.
sm_sentryrocket_speedmul (Float, default 1.0)
Multiplier used to determine the speed that all projectiles turn at (from original plugin)
(resulting speed = value * 1100.0)
sm_sidewinder_enabled (flags)
Flags that enable/disable sidewinder for each weapon type
sm_sidewinder_crit_tracker (flags)
Flags that enable/disable crit tracking for each weapon type
The flags used by both
sm_sidewinder_enabled and
sm_sidewinder_crit_tracker are:
Code:
enum SidewinderEnableFlags (<<= 1)
{
SidewinderDisabled = 0, // Completly disable sidewinder
SidewinderSentry = 1, // Enable sidewinder sentry rockets
SidewinderRocket = 2, // Enable sidewinder soldier rockets
SidewinderArrow = 4, // Enable sidewinder huntsman arrows
SidewinderFlare = 8, // Enable sidewinder pyro flares
SidewinderPipe = 16, // Enable sidewinder demo pipe bombs
SidewinderSyringe = 32 // Enable sidewinder medic syringes
};