C and H tested.
PHP Code:
/*
Grenade Trail 1.1
Author: Jim
Cvars:
grenade_tr: default 2
0 - None
1 - Random Colors
2 - Nade Specific
3 - Team Specific
grenade_he "255000000" set the trail color of Hegrenade
grenade_fb "000000255" set the trail color of Flashbang
grenade_sg "000255000" set the trail color of Smokegrenade
*/
#include <amxmodx>
#include <amxmisc>
#include <csx>
#define PLUGIN "Grenade Trail"
#define VERSION "1.1"
#define AUTHOR "Jim"
#define TRAIL_LEVEL1 ADMIN_LEVEL_C
#define TRAIL_LEVEL2 ADMIN_LEVEL_H
#define MAX_PLAYERS 32
new bool:bIsAdmin[ MAX_PLAYERS + 1]
new g_cvar_tr
new g_cvar_he
new g_cvar_fb
new g_cvar_sg
new g_trail
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_cvar_tr = register_cvar("grenade_tr", "2")
g_cvar_he = register_cvar("grenade_he", "255000000")
g_cvar_fb = register_cvar("grenade_fb", "000000255")
g_cvar_sg = register_cvar("grenade_sg", "000255000")
if(!cstrike_running())
{
pause("c")
log_amx"Incompatible mod."
}
}
public client_infochanged(id)
{
if(is_user_connected(id))
{
bIsAdmin[id] = get_user_flags(id) & TRAIL_LEVEL1 | TRAIL_LEVEL2 ? true : false
}
}
public plugin_precache()
{
g_trail = precache_model("sprites/smoke.spr")
}
stock iRainbow()return random(256)
public grenade_throw(id, gid, wid)
{
static gtm; gtm = get_pcvar_num(g_cvar_tr)
if(!gtm) return
if(is_user_connected(id) && bIsAdmin[id])
{
static r, g, b
switch(gtm)
{
case 1:
{
r = iRainbow()
g = iRainbow()
b = iRainbow()
}
case 2:
{
static nade, color[10]
switch(wid)
{
case CSW_HEGRENADE: nade = g_cvar_he
case CSW_FLASHBANG: nade = g_cvar_fb
case CSW_SMOKEGRENADE: nade = g_cvar_sg
}
get_pcvar_string(nade, color, 9)
static c; c = str_to_num(color)
r = c / 1000000
c %= 1000000
g = c / 1000
b = c % 1000
}
case 3:
{
static iTeam;iTeam = get_user_team(id)
switch(iTeam)
{
case 1: r = 255
case 2: b = 255
}
}
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(gid)
write_short(g_trail)
write_byte(10)
write_byte(5)
write_byte(r)
write_byte(g)
write_byte(b)
write_byte(192)
message_end()
}
}