Untitled diff

Created Diff never expires
10 removals
Lines
Total106
Removed-9.4%10
Words
Total257
Removed-14.0%36
106 lines
7 additions
Lines
Total103
Added+6.8%7
Words
Total238
Added+7.1%17
103 lines
// SourceMod 1.7+
// SourceMod 1.7+
#include <sourcemod>
#include <sourcemod>
#include <clientprefs>
#include <clientprefs>
#include <scp>


#pragma semicolon 1
#pragma semicolon 1


#define PLUGIN_VERSION "1.1"
#define PLUGIN_VERSION "1.1"


Handle gH_Cookie = INVALID_HANDLE;
Handle gH_Cookie = INVALID_HANDLE;


public Plugin:myinfo =
public Plugin:myinfo =
{
{
name = "[CS:GO] Chat colors",
name = "Chat color menu",
author = "shavit",
author = "Philip",
description = "Provides a menu with the option to change your chat color.",
description = "Chat color menu in-game!",
version = PLUGIN_VERSION,
version = "0.1",
url = "http://forums.alliedmods.net/member.php?u=163134"
url = "http://steamcommunity.com/id/PhilipTheBoss321/"
}
}


public void OnPluginStart()
public void OnPluginStart()
{
{
gH_Cookie = RegClientCookie("sm_chatcolors_cookie", "Contains the used chat color", CookieAccess_Protected);
gH_Cookie = RegClientCookie("sm_chatcolors_cookie", "Contains the used chat color", CookieAccess_Protected);


CreateConVar("sm_csgochatcolors_version", PLUGIN_VERSION, "Plugin version", FCVAR_PLUGIN|FCVAR_DONTRECORD|FCVAR_NOTIFY);
CreateConVar("sm_csgochatcolors_version", PLUGIN_VERSION, "Plugin version", FCVAR_PLUGIN|FCVAR_DONTRECORD|FCVAR_NOTIFY);


RegAdminCmd("sm_colors", Command_Colors, ADMFLAG_GENERIC, "Pops up the colors menu");
RegAdminCmd("sm_colors", Command_Colors, ADMFLAG_GENERIC, "Pops up the colors menu");
}
}


public Action Command_Colors(int client, int args)
public Action Command_Colors(int client, int args)
{
{
Handle hMenu = CreateMenu(MenuHandler_Colors, MENU_ACTIONS_ALL);
Handle hMenu = CreateMenu(MenuHandler_Colors, MENU_ACTIONS_ALL);
SetMenuTitle(hMenu, "Select a chat color:");
SetMenuTitle(hMenu, "Select a chat color:");


AddMenuItem(hMenu, "none", "Default");
AddMenuItem(hMenu, "none", "Default");
AddMenuItem(hMenu, "\x02", "Strong Red");
AddMenuItem(hMenu, "\x02", "Strong Red");
AddMenuItem(hMenu, "\x03", "Team Color");
AddMenuItem(hMenu, "\x03", "Team Color");
AddMenuItem(hMenu, "\x04", "Green");
AddMenuItem(hMenu, "\x04", "Green");
AddMenuItem(hMenu, "\x05", "Turquoise");
AddMenuItem(hMenu, "\x05", "Turquoise");
AddMenuItem(hMenu, "\x06", "Yellow-Green");
AddMenuItem(hMenu, "\x06", "Yellow-Green");
AddMenuItem(hMenu, "\x07", "Light Red");
AddMenuItem(hMenu, "\x07", "Light Red");
AddMenuItem(hMenu, "\x08", "Gray");
AddMenuItem(hMenu, "\x08", "Gray");
AddMenuItem(hMenu, "\x09", "Light Yellow");
AddMenuItem(hMenu, "\x09", "Light Yellow");
AddMenuItem(hMenu, "\x0A", "Light Blue");
AddMenuItem(hMenu, "\x0A", "Light Blue");
AddMenuItem(hMenu, "\x0C", "Purple");
AddMenuItem(hMenu, "\x0C", "Purple");
AddMenuItem(hMenu, "\x0E", "Pink");
AddMenuItem(hMenu, "\x0E", "Pink");
AddMenuItem(hMenu, "\x10", "Orange");
AddMenuItem(hMenu, "\x10", "Orange");


SetMenuExitButton(hMenu, true);
SetMenuExitButton(hMenu, true);


DisplayMenu(hMenu, client, 20);
DisplayMenu(hMenu, client, 20);


return Plugin_Handled;
return Plugin_Handled;
}
}


public int MenuHandler_Colors(Handle hMenu, MenuAction maAction, int client, int choice)
public int MenuHandler_Colors(Handle hMenu, MenuAction maAction, int client, int choice)
{
{
if(maAction == MenuAction_Select)
if(maAction == MenuAction_Select)
{
{
char sChoice[8];
char sChoice[8];
GetMenuItem(hMenu, choice, sChoice, 8);
GetMenuItem(hMenu, choice, sChoice, 8);


SetClientCookie(client, gH_Cookie, sChoice);
SetClientCookie(client, gH_Cookie, sChoice);


if(StrEqual(sChoice, "none"))
if(StrEqual(sChoice, "none"))
{
{
FormatEx(sChoice, 8, "\x01");
FormatEx(sChoice, 8, "\x01");
}
}


if(StrEqual(sChoice, "\x03"))
if(StrEqual(sChoice, "\x03"))
{
{
PrintToChat(client, " \x04[Chat Colors]\x01 Your chat color will match your team color.");
PrintToChat(client, " \x08[\x01i\x07Colors\x08]\x0E You\x01'\x0Bll now have the team color.");
}
}


else
else
{
{
PrintToChat(client, " \x04[Chat Colors]\x01 You have selected %sthis color\x01.", sChoice);
PrintToChat(client, " \x08[\x01i\x07Colors\x08]\x0E You\x01'\x0Eve selected %sthis color\x01.", sChoice);
}
}
}
}


else if(maAction == MenuAction_End)
else if(maAction == MenuAction_End)
{
{
CloseHandle(hMenu);
CloseHandle(hMenu);
}
}
}
}


public Action OnChatMessage(int &client, Handle hRecipients, char[] sName, char[] sMessage)
public Action OnChatMessage(int &client, Handle hRecipients, char[] sName, char[] sMessage)
{
{
if(CheckCommandAccess(client, "sm_colors", ADMFLAG_GENERIC))
if(CheckCommandAccess(client, "sm_colors", ADMFLAG_GENERIC))
{
{
char sCookie[8];
char sCookie[8];
GetClientCookie(client, gH_Cookie, sCookie, 8);
GetClientCookie(client, gH_Cookie, sCookie, 8);


if(StrEqual(sCookie, "") || StrEqual(sCookie, "none"))
if(StrEqual(sCookie, "") || StrEqual(sCookie, "none"))
{
{
return Plugin_Continue;
return Plugin_Continue;
}
}


Format(sMessage, MAXLENGTH_MESSAGE, "%s%s", sCookie, sMessage);

return Plugin_Changed;
return Plugin_Changed;
}
}


return Plugin_Continue;
return Plugin_Continue;
}
}