int TempColorArray[] = {0, 0, 0, 0}; //temp array since you can't return arrays
public Plugin myinfo =
{
name = "Nade Tails",
author = "InternetBully, H3Bus",
version = "2.1",
description = "Adds tails to projectiles",
url = "https://forums.alliedmods.net/showthread.php?p=2321825#post2321825"
};
public void OnPluginStart()
{
RegConsoleCmd("sm_tails", Cmd_Tails, "Toggles grenade tails.");
RegAdminCmd("sm_tailsmenu", Cmd_tail_menu, ADMFLAG_KICK, "Admin menu to toggle Nade Tails on players");
//CVARs
g_Enabled = CreateConVar("sm_tails_enabled", "1", "Enables Nade Tails (0/1).");
g_AllowPlayers = CreateConVar("sm_tails_allowplayers", "1", "Allow players to use nade tails with !tails (0/1)");
g_DefaultAlpha = CreateConVar("sm_tails_defaultalpha", "255", "Default alpha for trails (0 is invisible, 255 is solid).");
g_DefaultOn = CreateConVar("sm_tails_defaulton", "1", "Tails on for all users, Set to 0 to require user to type !tails to use");
//Projectiles to put tails on
g_EnableHETails = CreateConVar("sm_tails_hegrenade", "1", "Enables Nade Tails on HE Grenades (0/1).");
g_EnableFlashTails = CreateConVar("sm_tails_flashbang", "1", "Enables Nade Tails on Flashbangs (0/1).");
g_EnableSmokeTails = CreateConVar("sm_tails_smoke", "1", "Enables Nade Tails on Smoke Grenades (0/1).");
g_EnableDecoyTails = CreateConVar("sm_tails_decoy", "1", "Enables Nade Tails on Decoy Grenades (0/1).");
g_EnableMolotovTails = CreateConVar("sm_tails_molotov", "1", "Enables Nade Tails on Molotovs (0/1).");
g_EnableIncTails = CreateConVar("sm_tails_incendiary", "1", "Enables Nade Tails on Incendiary Grenades (0/1).");
//TE_SetupBeamFollow CVARs -- Colors
g_HEColor = CreateConVar("sm_tails_hecolor", "red", "Tail color on HE Grenades. (use named colors like \"Aqua\" or \"Black\" or use RGBA like \"255 20 147 225\"");
g_FlashColor = CreateConVar("sm_tails_flashcolor", "white", "Tail color on Flashbangs. (use named colors like \"Aqua\" or \"Black\" or use RGBA like \"255 20 147 225\"");
g_SmokeColor = CreateConVar("sm_tails_smokecolor", "green", "Tail color on Smoke Grenades. (use named colors like \"Aqua\" or \"Black\" or use RGBA like \"255 20 147 225\"");
g_DecoyColor = CreateConVar("sm_tails_decoycolor", "Purple", "Tail color on Decoy Grenades. (use named colors like \"Aqua\" or \"Black\" or use RGBA like \"255 20,147 225\"");
g_MolotovColor = CreateConVar("sm_tails_molotovcolor", "orange", "Tail color on Molotovs. (use named colors like \"Aqua\" or \"Black\" or use RGBA like \"255 20 147 225\"");
g_IncColor = CreateConVar("sm_tails_inccolor", "orange", "Tail color on Incendiary Grenades. (use named colors like \"Aqua\" or \"Black\" or use RGBA like \"255 20 147 225\"");
//size and time
g_TailTime = CreateConVar("sm_tails_tailtime", "7.0", "Time the tail stays visible.");
g_TailFadeTime = CreateConVar("sm_tails_tailfadetime", "1", "Time for tail to fade over.");
g_TailWidth = CreateConVar("sm_tails_tailwidth", "4.0", "Width of the tail.");
}
public void OnClientPutInServer(int client)
{
Tails[client] = false;
}
public Action Cmd_tail_menu(int client, int args)
{
if (client == 0)
{
ReplyToCommand(client, "%t", "Command is in-game only");
return Plugin_Handled;
}
if(GetConVarBool(g_DefaultOn))
{
ReplyToCommand(client, "Nade Tails is already enabled for everyone, not launching menu");
return Plugin_Handled;
}
Cmd_TailMenu(client);
return Plugin_Handled;
}
for (int i = 1; i <= MaxClients; i++)
{
if (!IsClientConnected(i) || IsClientInKickQueue(i))
continue;
IntToString(GetClientUserId(i), user_id, sizeof(user_id));
GetClientName(i, name, sizeof(name));
Format(display, sizeof(display), "%s", name);
AddMenuItem(menu, user_id, display);
}
DisplayMenu(menu, client, MENU_TIME_FOREVER);
}
public int mh_TailMenu(Handle menu, MenuAction action, int param1, int param2)
{
switch (action)
{
case MenuAction_Select:
{
//param1 is client, param2 is item
public void OnEntityCreated(int entity, const char[] classname)
{
if(GetConVarBool(g_Enabled) && IsValidEntity(entity))
SDKHook(entity, SDKHook_SpawnPost, OnEntitySpawned); //don't draw tails if we disable the plugin while people have tails enabled
}
public void OnEntitySpawned(int entity)
{
if(!IsValidEdict(entity))
return;