AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [ANY] Trails Chroma (Player Trails) [2021 Update] (https://forums.alliedmods.net/showthread.php?t=303515)

PC Gamer 12-27-2017 22:13

Re: [ANY] Trails Chroma (Player Trails)
 
This plugin requires you to manually add the trail every time you spawn. As Nanochip mentioned, cookies would be very helpful for this plugin. Cookie tutorial: https://forums.alliedmods.net/showthread.php?t=228244

I tried to make this open to all players by editing the sourcecode, but it didn't work. Instead, I used Nanochip's advice and used sm_trails_override, which did work.

I was trying to change the source to allow anyone to use it. Out of curiosity, can someone tell me why it doesn't work if I change the original:
gCV_AdminsOnly = CreateConVar("sm_trails_adminsonly", "1", "Enable trails for admins only.", 0, true, 0.0, true, 1.0);

to this:
gCV_AdminsOnly = CreateConVar("sm_trails_adminsonly", "0", "Enable trails for admins only.", 0, true, 0.0, true, 1.0);

I'm just trying to learn...

____ 12-28-2017 06:32

Re: [ANY] Trails Chroma (Player Trails)
 
PHP Code:

////////////////////////////////
// Change this to your needs and recompile.
// Added Cookie v.v

// Chat prefix:
#define CHAT_PREFIX "{bluegrey}[TC]{default}"

// Trail opacity:
#define TRAIL_OPACITY 128

////////////////////////////////

#include <sourcemod>
#include <sdktools>
#include <multicolors>
#include <clientprefs>

#pragma newdecls required
#pragma semicolon 1

/* CVars */

ConVar gCV_PluginEnabled null;
ConVar gCV_AdminsOnly null;
ConVar gCV_BeamLife null;
ConVar gCV_BeamWidth null;

/* Cached CVars */

bool gB_PluginEnabled true;
bool gB_AdminsOnly true;
float gF_BeamLife 1.5;
float gF_BeamWidth 1.5;

/* Global variables */

int gI_BeamSprite;
int gI_SelectedColor[MAXPLAYERS 1];

int gI_CycleColor[MAXPLAYERS 1][4];
bool gB_RedToYellow[MAXPLAYERS 1];
bool gB_YellowToGreen[MAXPLAYERS 1];
bool gB_GreenToCyan[MAXPLAYERS 1];
bool gB_CyanToBlue[MAXPLAYERS 1];
bool gB_BlueToMagenta[MAXPLAYERS 1];
bool gB_MagentaToRed[MAXPLAYERS 1];

bool gB_TouchingTrigger[MAXPLAYERS 1];
float gF_LastPosition[MAXPLAYERS 1][3];


/* Cookie */

Handle selection;

public 
Plugin myinfo 
{
    
name "Trails Chroma",
    
author "Nickelony",
    
description "Adds colorful player trails with special effects.",
    
version "1.1",
    
url "http://steamcommunity.com/id/nickelony/"
}

public 
void OnPluginStart()
{
    
HookEvent("player_spawn"PlayerSpawnEvent);
    
    
HookEntityOutput("trigger_teleport""OnStartTouch"StartTouchTrigger);
    
HookEntityOutput("trigger_teleport""OnEndTouch"EndTouchTrigger);
    
    
RegConsoleCmd("sm_trail"Command_Trail"Opens the 'Trail Color Selection' menu.");
    
RegConsoleCmd("sm_trails"Command_Trail"Opens the 'Trail Color Selection' menu.");
    
    
gCV_PluginEnabled CreateConVar("sm_trails_enable""1""Enable or Disable all features of the plugin."0true0.0true1.0);
    
gCV_AdminsOnly CreateConVar("sm_trails_adminsonly""1""Enable trails for admins only."0true0.0true1.0);
    
gCV_BeamLife CreateConVar("sm_trails_life""1.5""Time duration of the trails."FCVAR_NOTIFYtrue0.0);
    
gCV_BeamWidth CreateConVar("sm_trails_width""1.5""Width of the trail beams."FCVAR_NOTIFYtrue0.0);
    
    
gCV_PluginEnabled.AddChangeHook(OnConVarChanged);
    
gCV_AdminsOnly.AddChangeHook(OnConVarChanged);
    
gCV_BeamLife.AddChangeHook(OnConVarChanged);
    
gCV_BeamWidth.AddChangeHook(OnConVarChanged);

    
selection RegClientCookie("trail_selection""Trail selection"CookieAccess_Protected);

    
AutoExecConfig();
}

public 
void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue)
{
    
gB_PluginEnabled gCV_PluginEnabled.BoolValue;
    
gB_AdminsOnly gCV_AdminsOnly.BoolValue;
    
gF_BeamLife gCV_BeamLife.FloatValue;
    
gF_BeamWidth gCV_BeamWidth.FloatValue;
}

public 
void OnMapStart()
{
    if(!
gB_PluginEnabled)
    {
        return;
    }
    
    
HookEntityOutput("trigger_teleport""OnStartTouch"StartTouchTrigger);
    
HookEntityOutput("trigger_teleport""OnEndTouch"EndTouchTrigger);
    
    
gI_BeamSprite PrecacheModel("materials/trails/beam_01.vmt"true);
    
    
AddFileToDownloadsTable("materials/trails/beam_01.vmt");
    
AddFileToDownloadsTable("materials/trails/beam_01.vtf");
}

public 
void PlayerSpawnEvent(Event event, const char[] namebool dontBroadcast)
{
    if(!
gB_PluginEnabled)
    {
        return;
    }
    
    
int client GetClientOfUserId(event.GetInt("userid"));
    
gB_TouchingTrigger[client] = false;
}

public 
void OnClientCookiesCached(int client)
{
    
char trailCookie[32];

    
GetClientCookie(clientselectiontrailCookiesizeof(trailCookie));
    
gI_SelectedColor[client] = StringToInt(trailCookie);

}


public 
Action Command_Trail(int clientint args)
{
    if(!
gB_PluginEnabled || IsFakeClient(client))
    {
        return 
Plugin_Handled;
    }
    
    if(!
IsPlayerAlive(client))
    {
        
CPrintToChat(client"%s You must be alive to choose a trail!"CHAT_PREFIX);
        return 
Plugin_Handled;
    }
    
    if(
gB_AdminsOnly && !CheckCommandAccess(client"sm_trails_override"ADMFLAG_RESERVATION))
    {
        
CPrintToChat(client"%s Only admins may use this command."CHAT_PREFIX);
        return 
Plugin_Handled;
    }
    
    
Menu menu = new Menu(Menu_Handler);
    
menu.SetTitle("Choose Trail Color:");
    
    
menu.AddItem("0""NONE", (gI_SelectedColor[client] == 0)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("1""Red", (gI_SelectedColor[client] == 1)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("2""Orange", (gI_SelectedColor[client] == 2)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("3""Yellow", (gI_SelectedColor[client] == 3)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("4""Lime", (gI_SelectedColor[client] == 4)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("5""Green", (gI_SelectedColor[client] == 5)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("6""Emerald", (gI_SelectedColor[client] == 6)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("7""Cyan", (gI_SelectedColor[client] == 7)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("8""Light Blue", (gI_SelectedColor[client] == 8)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("9""Blue", (gI_SelectedColor[client] == 9)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("10""Purple", (gI_SelectedColor[client] == 10)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("11""Magenta", (gI_SelectedColor[client] == 11)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("12""Pink", (gI_SelectedColor[client] == 12)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("13""White", (gI_SelectedColor[client] == 13)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
    
menu.AddItem("x"""ITEMDRAW_SPACER);
    
menu.AddItem("14""Velocity", (gI_SelectedColor[client] == 14)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("15""Spectrum", (gI_SelectedColor[client] == 15)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
menu.AddItem("16""Wave", (gI_SelectedColor[client] == 16)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
    
    
menu.ExitButton true;
    
menu.Display(client20);
    
    return 
Plugin_Handled;
}

public 
int Menu_Handler(Menu menuMenuAction actionint param1int param2)
{
    if(
action == MenuAction_Select)
    {
        
char[] info = new char[16];
        
menu.GetItem(param2info16);
        
        
MenuSelection(param1info);
        
SetClientCookie(param1selectioninfo);
    }
    
    else if(
action == MenuAction_End)
    {
        
delete menu;
    }
    
    return 
0;
}

void MenuSelection(int clientchar[] info)
{
    
int choice;
    
char[] color = new char[32];
    
    if(
StrEqual(info"1"))
    {
        
choice 1;
        
FormatEx(color32"{darkred}RED{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"2"))
    {
        
choice 2;
        
FormatEx(color32"{orange}ORANGE{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"3"))
    {
        
choice 3;
        
FormatEx(color32"{yellow}YELLOW{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"4"))
    {
        
choice 4;
        
FormatEx(color32"{lime}LIME{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"5"))
    {
        
choice 5;
        
FormatEx(color32"{green}GREEN{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"6"))
    {
        
choice 6;
        
FormatEx(color32"{olive}EMERALD{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"7"))
    {
        
choice 7;
        
FormatEx(color32"{blue}CYAN{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"8"))
    {
        
choice 8;
        
FormatEx(color32"{lightblue}LIGHT BLUE{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"9"))
    {
        
choice 9;
        
FormatEx(color32"{darkblue}BLUE{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"10"))
    {
        
choice 10;
        
FormatEx(color32"{purple}PURPLE{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"11"))
    {
        
choice 11;
        
FormatEx(color32"{orchid}MAGENTA{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"12"))
    {
        
choice 12;
        
FormatEx(color32"{lightred}PINK{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"13"))
    {
        
choice 13;
        
FormatEx(color32"{grey2}WHITE{default}");
        
PrintTrailMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"14"))
    {
        
choice 14;
        
FormatEx(color32"{darkred}Velocity {green}Trail");
        
PrintSpecialMessage(clientchoicecolor);
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"15"))
    {
        
choice 15;
        
FormatEx(color32"{darkred}Spectrum {green}Cycle");
        
PrintSpecialMessage(clientchoicecolor);
        
        
gB_RedToYellow[client] = true;
        
gI_SelectedColor[client] = choice;
    }
    
    else if(
StrEqual(info"16"))
    {
        
choice 16;
        
FormatEx(color32"{darkred}Wave {green}Trail");
        
PrintSpecialMessage(clientchoicecolor);
        
        
gB_RedToYellow[client] = true;
        
gI_SelectedColor[client] = choice;
    }
    
    else
    {
        if(
gI_SelectedColor[client] != 0)
        {
            
CPrintToChat(client"%s Your trail is now {darkred}DISABLED{default}."CHAT_PREFIX);
        }
        
        
gI_SelectedColor[client] = 0;
    }
}

void PrintTrailMessage(int clientint choicechar[] color)
{
    if(
gI_SelectedColor[client] == 0)
    {
        
CPrintToChat(client"%s Your trail is now {green}ENABLED{default}."CHAT_PREFIX);
        
CPrintToChat(client"{default}Your beam color is %s."color);
    }
    
    if(
gI_SelectedColor[client] != && gI_SelectedColor[client] != choice)
    {
        
CPrintToChat(client"%s Your trail color is now %s."CHAT_PREFIXcolor);
    }
}

void PrintSpecialMessage(int clientint choicechar[] color)
{
    if(
gI_SelectedColor[client] == 0)
    {
        
CPrintToChat(client"%s Your trail is now {green}ENABLED{default}."CHAT_PREFIX);
        
CPrintToChat(client"%s {darkblue}ENABLED{default}."color);
    }
    
    if(
gI_SelectedColor[client] != && gI_SelectedColor[client] != choice)
    {
        
CPrintToChat(client"%s %s {darkblue}ENABLED{default}."CHAT_PREFIXcolor);
    }
}

public 
Action OnPlayerRunCmd(int client)
{
    
float origin[3];
    
GetClientAbsOrigin(clientorigin);
    
    
CreatePlayerTrail(clientorigin);
    
gF_LastPosition[client] = origin;
}

void CreatePlayerTrail(int clientfloat origin[3])
{
    if(!
gB_PluginEnabled || !IsPlayerAlive(client) || gB_TouchingTrigger[client])
    {
        return;
    }
    
    if(
gB_AdminsOnly && !CheckCommandAccess(client"sm_trails_override"ADMFLAG_RESERVATION))
    {
        return;
    }
    
    
float pos1[3];
    
pos1[0] = origin[0];
    
pos1[1] = origin[1];
    
pos1[2] = origin[2] + 5.0;
    
    
float pos2[3];
    
pos2[0] = gF_LastPosition[client][0];
    
pos2[1] = gF_LastPosition[client][1];
    
pos2[2] = gF_LastPosition[client][2] + 5.0;
    
    
int rgba[4];
    
rgba[3] = TRAIL_OPACITY;
    
    
int stepsize;
    
    switch(
gI_SelectedColor[client])
    {
        case 
1// Red trail
        
{
            
rgba[0] = 255rgba[1] = 0rgba[2] = 0;
        }
        
        case 
2// Orange trail
        
{
            
rgba[0] = 255rgba[1] = 128rgba[2] = 0;
        }
        
        case 
3// Yellow trail
        
{
            
rgba[0] = 255rgba[1] = 255rgba[2] = 0;
        }
        
        case 
4// Lime trail
        
{
            
rgba[0] = 128rgba[1] = 255rgba[2] = 0;
        }
        
        case 
5// Green trail
        
{
            
rgba[0] = 0rgba[1] = 255rgba[2] = 0;
        }
        
        case 
6// Emerald trail
        
{
            
rgba[0] = 0rgba[1] = 255rgba[2] = 128;
        }
        
        case 
7// Cyan trail
        
{
            
rgba[0] = 0rgba[1] = 255rgba[2] = 255;
        }
        
        case 
8// Light blue trail
        
{
            
rgba[0] = 0rgba[1] = 128rgba[2] = 255;
        }
        
        case 
9// Blue trail
        
{
            
rgba[0] = 0rgba[1] = 0rgba[2] = 255;
        }
        
        case 
10// Purple trail
        
{
            
rgba[0] = 128rgba[1] = 0rgba[2] = 255;
        }
        
        case 
11// Magenta trail
        
{
            
rgba[0] = 255rgba[1] = 0rgba[2] = 255;
        }
        
        case 
12// Pink trail
        
{
            
rgba[0] = 255rgba[1] = 64rgba[2] = 128;
        }
        
        case 
13// White trail
        
{
            
rgba[0] = 255rgba[1] = 255rgba[2] = 255;
        }
        
        case 
14// Velocity trail
        
{
            
float fAbsVelocity[3];
            
GetEntPropVector(clientProp_Data"m_vecAbsVelocity"fAbsVelocity);
            
float fCurrentSpeed SquareRoot(Pow(fAbsVelocity[0], 2.0) + Pow(fAbsVelocity[1], 2.0));
            
            
DrawVelocityTrail(clientfCurrentSpeed);
            
            
rgba[0] = gI_CycleColor[client][0]; rgba[1] = gI_CycleColor[client][1]; rgba[2] = gI_CycleColor[client][2];
        }
        
        case 
15// Spectrum trail
        
{
            
stepsize 1;
            
DrawSpectrumTrail(clientstepsize);
            
            
rgba[0] = gI_CycleColor[client][0]; rgba[1] = gI_CycleColor[client][1]; rgba[2] = gI_CycleColor[client][2];
        }
        
        case 
16// Wave trail
        
{
            
stepsize 15;
            
DrawSpectrumTrail(clientstepsize);
            
            
rgba[0] = gI_CycleColor[client][0]; rgba[1] = gI_CycleColor[client][1]; rgba[2] = gI_CycleColor[client][2];
        }
        
        default: 
// None
        
{
            return;
        }
    }
    
    
TE_SetupBeamPoints(pos1pos2gI_BeamSprite000gF_BeamLifegF_BeamWidthgF_BeamWidth100.0rgba0);
    
TE_SendToAll(0.0);
}

void DrawSpectrumTrail(int clientint stepsize)
{
    if(
gB_RedToYellow[client])
    {
        
gB_MagentaToRed[client] = false;
        
gI_CycleColor[client][0] = 255gI_CycleColor[client][1] += stepsizegI_CycleColor[client][2] = 0;
        
        if(
gI_CycleColor[client][0] >= 255 && gI_CycleColor[client][1] >= 255 && gI_CycleColor[client][2] <= 0)
            
gB_YellowToGreen[client] = true;
    }
    
    if(
gB_YellowToGreen[client])
    {
        
gB_RedToYellow[client] = false;
        
gI_CycleColor[client][0] -= stepsizegI_CycleColor[client][1] = 255gI_CycleColor[client][2] = 0;
        
        if(
gI_CycleColor[client][0] <= && gI_CycleColor[client][1] >= 255 && gI_CycleColor[client][2] <= 0)
            
gB_GreenToCyan[client] = true;
    }
    
    if(
gB_GreenToCyan[client])
    {
        
gB_YellowToGreen[client] = false;
        
gI_CycleColor[client][0] = 0gI_CycleColor[client][1] = 255gI_CycleColor[client][2] += stepsize;
        
        if(
gI_CycleColor[client][0] <= && gI_CycleColor[client][1] >= 255 && gI_CycleColor[client][2] >= 255)
            
gB_CyanToBlue[client] = true;
    }
    
    if(
gB_CyanToBlue[client])
    {
        
gB_GreenToCyan[client] = false;
        
gI_CycleColor[client][0] = 0gI_CycleColor[client][1] -= stepsizegI_CycleColor[client][2] = 255;
        
        if(
gI_CycleColor[client][0] <= && gI_CycleColor[client][1] <= && gI_CycleColor[client][2] >= 255)
            
gB_BlueToMagenta[client] = true;
    }
    
    if(
gB_BlueToMagenta[client])
    {
        
gB_CyanToBlue[client] = false;
        
gI_CycleColor[client][0] += stepsizegI_CycleColor[client][1] = 0gI_CycleColor[client][2] = 255;
        
        if(
gI_CycleColor[client][0] >= 255 && gI_CycleColor[client][1] <= && gI_CycleColor[client][2] >= 255)
            
gB_MagentaToRed[client] = true;
    }
    
    if(
gB_MagentaToRed[client])
    {
        
gB_BlueToMagenta[client] = false;
        
        
gI_CycleColor[client][0] = 255gI_CycleColor[client][1] = 0gI_CycleColor[client][2] -= stepsize;
        
        if(
gI_CycleColor[client][0] >= 255 && gI_CycleColor[client][1] <= && gI_CycleColor[client][2] <= 0)
            
gB_RedToYellow[client] = true;
    }
}

void DrawVelocityTrail(int clientfloat fCurrentSpeed)
{
    
int stepsize;
    
    if(
fCurrentSpeed <= 255.0)
    {
        
gI_CycleColor[client][0] = 0gI_CycleColor[client][1] = 0gI_CycleColor[client][2] = 255;
    }
    
    else if(
fCurrentSpeed 255.0 && fCurrentSpeed <= 510.0)
    {
        
stepsize RoundToFloor(fCurrentSpeed) - 255;
        
gI_CycleColor[client][0] = 0gI_CycleColor[client][1] = stepsizegI_CycleColor[client][2] = 255;
    }
    
    else if(
fCurrentSpeed 510.0 && fCurrentSpeed <= 765.0)
    {
        
stepsize RoundToFloor(-fCurrentSpeed) + 510;
        
gI_CycleColor[client][0] = 0gI_CycleColor[client][1] = 255gI_CycleColor[client][2] = stepsize;
    }
    
    else if(
fCurrentSpeed 765.0 && fCurrentSpeed <= 1020.0)
    {
        
stepsize RoundToFloor(fCurrentSpeed) - 765;
        
gI_CycleColor[client][0] = stepsizegI_CycleColor[client][1] = 255gI_CycleColor[client][2] = 0;
    }
    
    else if(
fCurrentSpeed 1020.0 && fCurrentSpeed <= 1275.0)
    {
        
stepsize RoundToFloor(-fCurrentSpeed) + 1020;
        
gI_CycleColor[client][0] = 255gI_CycleColor[client][1] = stepsizegI_CycleColor[client][2] = 0;
    }
    
    else if(
fCurrentSpeed 1275.0 && fCurrentSpeed <= 1530.0)
    {
        
stepsize RoundToFloor(fCurrentSpeed) - 1275;
        
gI_CycleColor[client][0] = 255gI_CycleColor[client][1] = 0gI_CycleColor[client][2] = stepsize;
    }
    
    else if(
fCurrentSpeed 1530.0 && fCurrentSpeed <= 1660.0)
    {
        
stepsize RoundToFloor(-fCurrentSpeed) + 1530;
        
gI_CycleColor[client][0] = stepsizegI_CycleColor[client][1] = 0gI_CycleColor[client][2] = 255;
    }
    
    else
    {
        
gI_CycleColor[client][0] = 125gI_CycleColor[client][1] = 0gI_CycleColor[client][2] = 255;
    }
}

/* Don't draw the trail after touching trigger_teleport */

public int StartTouchTrigger(const char[] outputint entityint clientfloat delay)
{
    if(
client || client MaxClients)
    {
        return;
    }
    
    if(!
IsClientInGame(client) || !IsPlayerAlive(client))
    {
        return;
    }
    
    
gB_TouchingTrigger[client] = true;
}

public 
int EndTouchTrigger(const char[] outputint entityint clientfloat delay)
{
    if(
client || client MaxClients)
    {
        return;
    }
    
    if(!
IsClientInGame(client) || !IsPlayerAlive(client))
    {
        return;
    }
    
    
CreateTimer(0.1BlockOffTriggerclientTIMER_FLAG_NO_MAPCHANGE);
}

public 
Action BlockOffTrigger(Handle timerany client)
{
    
gB_TouchingTrigger[client] = false;
    return 
Plugin_Stop;



PC Gamer 12-28-2017 14:48

Re: [ANY] Trails Chroma (Player Trails)
 
Thanks for the cookie addition!

Pros: It keeps the trail enabled when you spawn or change class.
Con: It does not enable trail on map change. It does remember your setting, it just doesn't enable the trails. To enable after map change you have to use the command !trail, change your trail from whatever you had last map to a new trail, and then it works.

Overall your cookie change is a huge improvement, because now I only have to change it on new map. That's much better than applying it every time I die/spawn/change class. Thanks!

cheating_anime 12-28-2017 22:32

Re: [ANY] Trails Chroma (Player Trails)
 
~fixed it, thanks it looks amazing

Krysol 01-13-2018 07:52

Re: [ANY] Trails Chroma (Player Trails)
 
Can anybody of you guys upload the fixed version with cookies?

I can't compile it due to error "can't load the multicolors"

:sadpirate:

CrazyGhostRider 01-14-2018 18:49

Re: [ANY] Trails Chroma (Player Trails)
 
Quote:

Originally Posted by Krysol (Post 2571637)
Can anybody of you guys upload the fixed version with cookies?

I can't compile it due to error "can't load the multicolors"

:sadpirate:

Download the archive on the first page. There is include "multicolors".




Did not fix the bugs in the plugin:
At the first spawn of the player, a trail is drawn from the center of the world.
From the place of death of the player to the spawn a trail is drawn.
Between the teleports of the engineer is also drawn a trail.
An invisible spy draws a trail

Nickelony 01-23-2018 08:53

Re: [ANY] Trails Chroma (Player Trails)
 
UPDATE 2.0 IS OUT NOW!

First, I want to apologise for not updating this plugin for so long. I just couldn't find time for a complete redesing of this plugin, which is what I did with this update.

The changelog is so big, I don't even know where to start x)

Main changes:
* Added new CVars, such as "sm_trails_cheap" and "sm_trails_respawn".
* Added KeyValues which allow to modify the trails using a .cfg file.
* Added cookies. (finally)
* Removed multicolors support (which means no more .inc files).
* Optimised the whole code.

Quote:

Originally Posted by CrazyGhostRider (Post 2572023)
Did not fix the bugs in the plugin:
At the first spawn of the player, a trail is drawn from the center of the world. Fixed.
From the place of death of the player to the spawn a trail is drawn. Fixed.
Between the teleports of the engineer is also drawn a trail. I have no idea how the teleporter works in TF2. If it's not trigger_teleport, then I have no idea how to fix it.
An invisible spy draws a trail Can't be fixed... I think.

If you have any issues with this plugin, please post it here

_GamerX 01-23-2018 15:12

Re: [ANY] Trails Chroma (Player Trails) [23-01-2018]
 
For check if player teleported you do not must hooking teleport ents
my EZ method:

if(GetVectorDistance(origin, g_fLastPosition[client], false) > 50.0) return;

'50.0' is a reserve for high speed players

This method fixing all three bugs
At the first spawn of the player, a trail is drawn from the center of the world. Fixed.
From the place of death of the player to the spawn a trail is drawn. Fixed.
Between the teleports of the engineer is also drawn a trail. I have no idea how the teleporter works in TF2. If it's not trigger_teleport, then I have no idea how to fix it.

nikita1811 01-24-2018 12:44

Re: [ANY] Trails Chroma (Player Trails) [23-01-2018]
 
You can add !hide that players could hide display of trails?

sime0282 01-30-2018 16:52

Re: [ANY] Trails Chroma (Player Trails) [23-01-2018]
 
How do i do so i give acces to all players or only vip?


All times are GMT -4. The time now is 15:28.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.