#include <amxmodx>
#include <fakemeta>
#define MAX_PLAYERS 32
#define OFFSET_SWOOPING 317
#define EXTRAOFFSET 5
#define TE_BEAMFOLLOW 22
#define TE_KILLBEAM 99
#define TRAIL_LIFE 6
#define TRAIL_SIZE 6
#define TRAIL_RED 32
#define TRAIL_GREEN 32
#define TRAIL_BLUE 32
#define TRAIL_BRIGHTNESS 96
new WasSwooping[MAX_PLAYERS + 1];
new SwoopTrailSprite;
public plugin_precache()
SwoopTrailSprite = precache_model("sprites/swooptrail.spr");
public plugin_init()
{
register_plugin("Swoop Trail", "1.0", "hleV");
register_forward(FM_CmdStart, "CmdStart");
}
public CmdStart(Client)
{
if (IsSwooping(Client) && !WasSwooping[Client])
{
WasSwooping[Client] = true;
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(Client);
write_short(SwoopTrailSprite);
write_byte(TRAIL_LIFE);
write_byte(TRAIL_SIZE);
write_byte(TRAIL_RED);
write_byte(TRAIL_GREEN);
write_byte(TRAIL_BLUE);
write_byte(TRAIL_BRIGHTNESS);
message_end();
}
else if (!IsSwooping(Client) && WasSwooping[Client])
{
WasSwooping[Client] = false;
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_KILLBEAM);
write_short(Client);
message_end();
}
}
stock IsSwooping(Client)
return get_pdata_int(Client, OFFSET_SWOOPING, EXTRAOFFSET);