Jellow,
I'm using this plugin to add chat tags and colours easier and better (
https://forums.alliedmods.net/showthread.php?t=286913).
However there are limitations concerning the length of the name of the client. Which at a max is 32...
To elaborate, this is what I did before (Very messy):
PHP Code:
public Action OnClientSayCommand(int client, const char[] command, const char[] args)
{
if(client == 0 || args[0] == '@' || args[0] == '/' || BaseComm_IsClientGagged(client) || warden_iswarden(client))
{
return Plugin_Continue;
}
if((g_bTagLoaded[client] && !g_bCustomTagDisabled[client]) || (IsClientAdmin(client) && !g_bAdminTagDisabled[client]))
{
char sChatString[256];
if(IsClientAdmin(client) && !g_bAdminTagDisabled[client])
{
char sGroup[32];
GetClientAdminGroup(client, sGroup, sizeof(sGroup));
if(strlen(sGroup) > 0)
{
FormatEx(sChatString, sizeof(sChatString), "{default}[{blue}%s{default}] ", sGroup);
}
}
if(g_bTagLoaded[client] && !g_bCustomTagDisabled[client])
{
FormatEx(sChatString, sizeof(sChatString), "%s{default}[%s{default}] ", sChatString, g_sTagFormatString[client]);
}
FormatEx(sChatString, sizeof(sChatString), "%s%s%N{default}: %s", sChatString, (g_bTagLoaded[client] && !g_bCustomTagDisabled[client]) ? g_sNameColourString[client] : g_sTeamColours[GetClientTeam(client) - 1], client, (g_bTagLoaded[client] && !g_bCustomTagDisabled[client]) ? g_sTextColourString[client] : g_sTeamColours[GetClientTeam(client) - 1]);
if(StrEqual(command, "say"))
{
switch(GetClientTeam(client))
{
case 1:
{
CPrintToChatAll("%s%s", sChatString, args);
}
case 2:
{
CPrintToChatAll("%s %s%s", !IsPlayerAlive(client) ? "{yellow}*DEAD*" : "", sChatString, args);
}
case 3:
{
CPrintToChatAll("%s %s%s", !IsPlayerAlive(client) ? "{bluegrey}*DEAD*" : "", sChatString, args);
}
}
}
else if(StrEqual(command, "say_team"))
{
for(int i = 1; i <= MaxClients; i++)
{
if(IsValidClient(i))
{
if(GetClientTeam(client) == GetClientTeam(i))
{
switch(GetClientTeam(client))
{
case 1:
{
CPrintToChat(i, "{default}(Spectator) %s%s", sChatString, args);
}
case 2:
{
CPrintToChat(i, "%s {yellow}(Terrorist) %s%s", !IsPlayerAlive(client) ? "{yellow}*DEAD*" : "", sChatString, args);
}
case 3:
{
CPrintToChat(i, "%s {bluegrey}(Counter-Terrorist) %s%s", !IsPlayerAlive(client) ? "{bluegrey}*DEAD*" : "", sChatString, args);
}
}
}
}
}
}
PrintToServer("%L: %s", client, args);
LogToGame("\"%L\" say \"%s\"", client, args);
return Plugin_Handled;
}
return Plugin_Continue;
}
And I tried this but it won't work with the limit:
PHP Code:
public Action OnChatMessage(int &iAuthor, ArrayList hRecipients, char[] sFlagString, char[] sName, char[] sMessage, bool &ProcessColours, bool &RemoveColours)
{
if(!IsValidClient(iAuthor) || sMessage[0] == '@' || sMessage[0] == '/' || BaseComm_IsClientGagged(iAuthor))
{
return Plugin_Continue;
}
if(IsClientAdmin(iAuthor) && g_iTagFlags[iAuthor] & TAG_SHOWADMIN)
{
char sGroup[32];
GetClientAdminGroup(iAuthor, sGroup, sizeof(sGroup));
if(strlen(sGroup) > 0)
{
FormatEx(sName, MAXLENGTH_NAME, "{default}[{blue}%s{default}] ", sGroup);
}
}
if(g_iTagFlags[iAuthor] & TAG_LOADED && g_iTagFlags[iAuthor] & TAG_SHOWCUSTOM)
{
FormatEx(sName, MAXLENGTH_NAME, "%s{default}[%s{default}] ", sName, g_sTagFormatString[iAuthor]);
}
FormatEx(sName, MAXLENGTH_NAME, "%s%N", sName, iAuthor);
return Plugin_Changed;
}
Any ideas? Or do I just do it the bad way.