Raised This Month: $32 Target: $400
 8% 

[INC] More Colors (1.9.1)


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Dr. McKay
Sir Dr. SourceMod Plugin Approver Esq. Ltd. M.D. PhD
Join Date: Aug 2011
Location: Atlantis
Old 05-11-2012 , 23:22   [INC] More Colors (1.9.1)
Reply With Quote #1

(More) Colors
More functions for easy chat color management

About:
Adds a whole bunch of colors (thanks asherkin!) for plugins to use in chat. Fully (I think) backwards-compatible with the original colors.inc. You can use multiple team colors in the same message!

Only works in Source 2009 games, which include:
  • Team Fortress 2
  • Counter-Strike: Source
  • Half-Life 2: Deathmatch
  • Day of Defeat: Source

Important! In order for your plugins to load properly on older versions of SourceMod, you need to include this in your plugin:

PHP Code:
public APLRes:AskPluginLoad2(Handle:myselfbool:lateString:error[], err_max) {
    
MarkNativeAsOptional("GetUserMessageType");
    return 
APLRes_Success;

Functions:
PHP Code:
/**
 * Prints a message to a specific client in the chat area.
 * Supports color tags.
 * 
 * @param client        Client index.
 * @param message        Message (formatting rules).
 * @noreturn
 * 
 * On error/Errors:        If the client is not connected an error will be thrown.
 */
stock CPrintToChat(client, const String:message[], any:...)


/**
 * Prints a message to all clients in the chat area.
 * Supports color tags.
 * 
 * @param client        Client index.
 * @param message        Message (formatting rules).
 * @noreturn
 */
stock CPrintToChatAll(const String:message[], any:...)


/**
 * Prints a message to a specific client in the chat area.
 * Supports color tags and teamcolor tag.
 * 
 * @param client        Client index.
 * @param author        Author index whose color will be used for teamcolor tag.
 * @param message        Message (formatting rules).
 * @noreturn
 * 
 * On error/Errors:        If the client or author are not connected an error will be thrown
 */
stock CPrintToChatEx(clientauthor, const String:message[], any:...)


/**
 * Prints a message to all clients in the chat area.
 * Supports color tags and teamcolor tag.
 *
 * @param author      Author index whos color will be used for teamcolor tag.
 * @param message   Message (formatting rules).
 * @noreturn
 * 
 * On error/Errors:   If the author is not connected an error will be thrown.
 */
stock CPrintToChatAllEx(author, const String:message[], any:...)


/**
 * This function should only be used right in front of
 * CPrintToChatAll or CPrintToChatAllEx. It causes those functions
 * to skip the specified client when printing the message.
 * After printing the message, the client will no longer be skipped.
 * 
 * @param client   Client index
 * @noreturn
 */
stock CSkipNextClient(client)


/**
 * Adds a color to the colors trie
 *
 * @param name            Color name, without braces
 * @param color            Hexadecimal representation of the color (0xRRGGBB)
 * @return                True if color was added successfully, false if a color already exists with that name
 */
stock bool:CAddColor(const String:name[], color)


/**
 * Removes color tags from a message
 * 
 * @param message        Message to remove tags from
 * @param maxlen        Maximum buffer length
 * @noreturn
 */
stock CRemoveTags(String:message[], maxlen)

/**
 * Replies to a command with colors
 * 
 * @param client        Client to reply to
 * @param message        Message (formatting rules)
 * @noreturn
 */
stock CReplyToCommand(client, const String:message[], any:...)

/**
 * Replies to a command with colors
 * 
 * @param client        Client to reply to
 * @param author        Client to use for {teamcolor}
 * @param message        Message (formatting rules)
 * @noreturn
 */
stock CReplyToCommandEx(clientauthor, const String:message[], any:...)

/**
 * Shows admin activity with colors
 * 
 * @param client        Client performing an action
 * @param message        Message (formatting rules)
 * @noreturn
 */
stock CShowActivity(client, const String:message[], any:...)

/**
 * Shows admin activity with colors
 * 
 * @param client        Client performing an action
 * @param tag            Tag to prepend to the message (color tags supported)
 * @param message        Message (formatting rules)
 * @noreturn
 */
stock CShowActivityEx(client, const String:tag[], const String:message[], any:...)

/**
 * Shows admin activity with colors
 * 
 * @param client        Client performing an action
 * @param tag            Tag to prepend to the message (color tags supported)
 * @param message        Message (formatting rules)
 * @noreturn
 */
stock CShowActivity2(client, const String:tag[], const String:message[], any:...)

/**
 * Determines whether a color name exists
 * 
 * @param color            The color name to check
 * @return                True if the color exists, false otherwise
 */
stock bool:CColorExists(const String:color[])

/**
 * Returns the hexadecimal representation of a client's team color (will NOT initialize the trie, so if you use only this function from this include file, your plugin's memory usage will not increase)
 *
 * @param client        Client to get the team color for
 * @return                Client's team color in hexadecimal, or green if unknown
 * On error/Errors:        If the client index passed is invalid or not in game.
 */
stock CGetTeamColor(client
Colors:
Just put the color name in curly braces (i.e. {cyan})
PHP Code:
    SetTrieValue(hTrie"aliceblue"0xF0F8FF);
    
SetTrieValue(hTrie"allies"0x4D7942); // same as Allies team in DoD:S
    
SetTrieValue(hTrie"ancient"0xEB4B4B); // same as Ancient item rarity in Dota 2
    
SetTrieValue(hTrie"antiquewhite"0xFAEBD7);
    
SetTrieValue(hTrie"aqua"0x00FFFF);
    
SetTrieValue(hTrie"aquamarine"0x7FFFD4);
    
SetTrieValue(hTrie"arcana"0xADE55C); // same as Arcana item rarity in Dota 2
    
SetTrieValue(hTrie"axis"0xFF4040); // same as Axis team in DoD:S
    
SetTrieValue(hTrie"azure"0x007FFF);
    
SetTrieValue(hTrie"beige"0xF5F5DC);
    
SetTrieValue(hTrie"bisque"0xFFE4C4);
    
SetTrieValue(hTrie"black"0x000000);
    
SetTrieValue(hTrie"blanchedalmond"0xFFEBCD);
    
SetTrieValue(hTrie"blue"0x99CCFF); // same as BLU/Counter-Terrorist team color
    
SetTrieValue(hTrie"blueviolet"0x8A2BE2);
    
SetTrieValue(hTrie"brown"0xA52A2A);
    
SetTrieValue(hTrie"burlywood"0xDEB887);
    
SetTrieValue(hTrie"cadetblue"0x5F9EA0);
    
SetTrieValue(hTrie"chartreuse"0x7FFF00);
    
SetTrieValue(hTrie"chocolate"0xD2691E);
    
SetTrieValue(hTrie"collectors"0xAA0000); // same as Collector's item quality in TF2
    
SetTrieValue(hTrie"common"0xB0C3D9); // same as Common item rarity in Dota 2
    
SetTrieValue(hTrie"community"0x70B04A); // same as Community item quality in TF2
    
SetTrieValue(hTrie"coral"0xFF7F50);
    
SetTrieValue(hTrie"cornflowerblue"0x6495ED);
    
SetTrieValue(hTrie"cornsilk"0xFFF8DC);
    
SetTrieValue(hTrie"corrupted"0xA32C2E); // same as Corrupted item quality in Dota 2
    
SetTrieValue(hTrie"crimson"0xDC143C);
    
SetTrieValue(hTrie"cyan"0x00FFFF);
    
SetTrieValue(hTrie"darkblue"0x00008B);
    
SetTrieValue(hTrie"darkcyan"0x008B8B);
    
SetTrieValue(hTrie"darkgoldenrod"0xB8860B);
    
SetTrieValue(hTrie"darkgray"0xA9A9A9);
    
SetTrieValue(hTrie"darkgrey"0xA9A9A9);
    
SetTrieValue(hTrie"darkgreen"0x006400);
    
SetTrieValue(hTrie"darkkhaki"0xBDB76B);
    
SetTrieValue(hTrie"darkmagenta"0x8B008B);
    
SetTrieValue(hTrie"darkolivegreen"0x556B2F);
    
SetTrieValue(hTrie"darkorange"0xFF8C00);
    
SetTrieValue(hTrie"darkorchid"0x9932CC);
    
SetTrieValue(hTrie"darkred"0x8B0000);
    
SetTrieValue(hTrie"darksalmon"0xE9967A);
    
SetTrieValue(hTrie"darkseagreen"0x8FBC8F);
    
SetTrieValue(hTrie"darkslateblue"0x483D8B);
    
SetTrieValue(hTrie"darkslategray"0x2F4F4F);
    
SetTrieValue(hTrie"darkslategrey"0x2F4F4F);
    
SetTrieValue(hTrie"darkturquoise"0x00CED1);
    
SetTrieValue(hTrie"darkviolet"0x9400D3);
    
SetTrieValue(hTrie"deeppink"0xFF1493);
    
SetTrieValue(hTrie"deepskyblue"0x00BFFF);
    
SetTrieValue(hTrie"dimgray"0x696969);
    
SetTrieValue(hTrie"dimgrey"0x696969);
    
SetTrieValue(hTrie"dodgerblue"0x1E90FF);
    
SetTrieValue(hTrie"exalted"0xCCCCCD); // same as Exalted item quality in Dota 2
    
SetTrieValue(hTrie"firebrick"0xB22222);
    
SetTrieValue(hTrie"floralwhite"0xFFFAF0);
    
SetTrieValue(hTrie"forestgreen"0x228B22);
    
SetTrieValue(hTrie"frozen"0x4983B3); // same as Frozen item quality in Dota 2
    
SetTrieValue(hTrie"fuchsia"0xFF00FF);
    
SetTrieValue(hTrie"fullblue"0x0000FF);
    
SetTrieValue(hTrie"fullred"0xFF0000);
    
SetTrieValue(hTrie"gainsboro"0xDCDCDC);
    
SetTrieValue(hTrie"genuine"0x4D7455); // same as Genuine item quality in TF2
    
SetTrieValue(hTrie"ghostwhite"0xF8F8FF);
    
SetTrieValue(hTrie"gold"0xFFD700);
    
SetTrieValue(hTrie"goldenrod"0xDAA520);
    
SetTrieValue(hTrie"gray"0xCCCCCC); // same as spectator team color
    
SetTrieValue(hTrie"grey"0xCCCCCC);
    
SetTrieValue(hTrie"green"0x3EFF3E);
    
SetTrieValue(hTrie"greenyellow"0xADFF2F);
    
SetTrieValue(hTrie"haunted"0x38F3AB); // same as Haunted item quality in TF2
    
SetTrieValue(hTrie"honeydew"0xF0FFF0);
    
SetTrieValue(hTrie"hotpink"0xFF69B4);
    
SetTrieValue(hTrie"immortal"0xE4AE33); // same as Immortal item rarity in Dota 2
    
SetTrieValue(hTrie"indianred"0xCD5C5C);
    
SetTrieValue(hTrie"indigo"0x4B0082);
    
SetTrieValue(hTrie"ivory"0xFFFFF0);
    
SetTrieValue(hTrie"khaki"0xF0E68C);
    
SetTrieValue(hTrie"lavender"0xE6E6FA);
    
SetTrieValue(hTrie"lavenderblush"0xFFF0F5);
    
SetTrieValue(hTrie"lawngreen"0x7CFC00);
    
SetTrieValue(hTrie"legendary"0xD32CE6); // same as Legendary item rarity in Dota 2
    
SetTrieValue(hTrie"lemonchiffon"0xFFFACD);
    
SetTrieValue(hTrie"lightblue"0xADD8E6);
    
SetTrieValue(hTrie"lightcoral"0xF08080);
    
SetTrieValue(hTrie"lightcyan"0xE0FFFF);
    
SetTrieValue(hTrie"lightgoldenrodyellow"0xFAFAD2);
    
SetTrieValue(hTrie"lightgray"0xD3D3D3);
    
SetTrieValue(hTrie"lightgrey"0xD3D3D3);
    
SetTrieValue(hTrie"lightgreen"0x99FF99);
    
SetTrieValue(hTrie"lightpink"0xFFB6C1);
    
SetTrieValue(hTrie"lightsalmon"0xFFA07A);
    
SetTrieValue(hTrie"lightseagreen"0x20B2AA);
    
SetTrieValue(hTrie"lightskyblue"0x87CEFA);
    
SetTrieValue(hTrie"lightslategray"0x778899);
    
SetTrieValue(hTrie"lightslategrey"0x778899);
    
SetTrieValue(hTrie"lightsteelblue"0xB0C4DE);
    
SetTrieValue(hTrie"lightyellow"0xFFFFE0);
    
SetTrieValue(hTrie"lime"0x00FF00);
    
SetTrieValue(hTrie"limegreen"0x32CD32);
    
SetTrieValue(hTrie"linen"0xFAF0E6);
    
SetTrieValue(hTrie"magenta"0xFF00FF);
    
SetTrieValue(hTrie"maroon"0x800000);
    
SetTrieValue(hTrie"mediumaquamarine"0x66CDAA);
    
SetTrieValue(hTrie"mediumblue"0x0000CD);
    
SetTrieValue(hTrie"mediumorchid"0xBA55D3);
    
SetTrieValue(hTrie"mediumpurple"0x9370D8);
    
SetTrieValue(hTrie"mediumseagreen"0x3CB371);
    
SetTrieValue(hTrie"mediumslateblue"0x7B68EE);
    
SetTrieValue(hTrie"mediumspringgreen"0x00FA9A);
    
SetTrieValue(hTrie"mediumturquoise"0x48D1CC);
    
SetTrieValue(hTrie"mediumvioletred"0xC71585);
    
SetTrieValue(hTrie"midnightblue"0x191970);
    
SetTrieValue(hTrie"mintcream"0xF5FFFA);
    
SetTrieValue(hTrie"mistyrose"0xFFE4E1);
    
SetTrieValue(hTrie"moccasin"0xFFE4B5);
    
SetTrieValue(hTrie"mythical"0x8847FF); // same as Mythical item rarity in Dota 2
    
SetTrieValue(hTrie"navajowhite"0xFFDEAD);
    
SetTrieValue(hTrie"navy"0x000080);
    
SetTrieValue(hTrie"normal"0xB2B2B2); // same as Normal item quality in TF2
    
SetTrieValue(hTrie"oldlace"0xFDF5E6);
    
SetTrieValue(hTrie"olive"0x9EC34F);
    
SetTrieValue(hTrie"olivedrab"0x6B8E23);
    
SetTrieValue(hTrie"orange"0xFFA500);
    
SetTrieValue(hTrie"orangered"0xFF4500);
    
SetTrieValue(hTrie"orchid"0xDA70D6);
    
SetTrieValue(hTrie"palegoldenrod"0xEEE8AA);
    
SetTrieValue(hTrie"palegreen"0x98FB98);
    
SetTrieValue(hTrie"paleturquoise"0xAFEEEE);
    
SetTrieValue(hTrie"palevioletred"0xD87093);
    
SetTrieValue(hTrie"papayawhip"0xFFEFD5);
    
SetTrieValue(hTrie"peachpuff"0xFFDAB9);
    
SetTrieValue(hTrie"peru"0xCD853F);
    
SetTrieValue(hTrie"pink"0xFFC0CB);
    
SetTrieValue(hTrie"plum"0xDDA0DD);
    
SetTrieValue(hTrie"powderblue"0xB0E0E6);
    
SetTrieValue(hTrie"purple"0x800080);
    
SetTrieValue(hTrie"rare"0x4B69FF); // same as Rare item rarity in Dota 2
    
SetTrieValue(hTrie"red"0xFF4040); // same as RED/Terrorist team color
    
SetTrieValue(hTrie"rosybrown"0xBC8F8F);
    
SetTrieValue(hTrie"royalblue"0x4169E1);
    
SetTrieValue(hTrie"saddlebrown"0x8B4513);
    
SetTrieValue(hTrie"salmon"0xFA8072);
    
SetTrieValue(hTrie"sandybrown"0xF4A460);
    
SetTrieValue(hTrie"seagreen"0x2E8B57);
    
SetTrieValue(hTrie"seashell"0xFFF5EE);
    
SetTrieValue(hTrie"selfmade"0x70B04A); // same as Self-Made item quality in TF2
    
SetTrieValue(hTrie"sienna"0xA0522D);
    
SetTrieValue(hTrie"silver"0xC0C0C0);
    
SetTrieValue(hTrie"skyblue"0x87CEEB);
    
SetTrieValue(hTrie"slateblue"0x6A5ACD);
    
SetTrieValue(hTrie"slategray"0x708090);
    
SetTrieValue(hTrie"slategrey"0x708090);
    
SetTrieValue(hTrie"snow"0xFFFAFA);
    
SetTrieValue(hTrie"springgreen"0x00FF7F);
    
SetTrieValue(hTrie"steelblue"0x4682B4);
    
SetTrieValue(hTrie"strange"0xCF6A32); // same as Strange item quality in TF2
    
SetTrieValue(hTrie"tan"0xD2B48C);
    
SetTrieValue(hTrie"teal"0x008080);
    
SetTrieValue(hTrie"thistle"0xD8BFD8);
    
SetTrieValue(hTrie"tomato"0xFF6347);
    
SetTrieValue(hTrie"turquoise"0x40E0D0);
    
SetTrieValue(hTrie"uncommon"0xB0C3D9); // same as Uncommon item rarity in Dota 2
    
SetTrieValue(hTrie"unique"0xFFD700); // same as Unique item quality in TF2
    
SetTrieValue(hTrie"unusual"0x8650AC); // same as Unusual item quality in TF2
    
SetTrieValue(hTrie"valve"0xA50F79); // same as Valve item quality in TF2
    
SetTrieValue(hTrie"vintage"0x476291); // same as Vintage item quality in TF2
    
SetTrieValue(hTrie"violet"0xEE82EE);
    
SetTrieValue(hTrie"wheat"0xF5DEB3);
    
SetTrieValue(hTrie"white"0xFFFFFF);
    
SetTrieValue(hTrie"whitesmoke"0xF5F5F5);
    
SetTrieValue(hTrie"yellow"0xFFFF00);
    
SetTrieValue(hTrie"yellowgreen"0x9ACD32); 
There are also 2 special color codes: {default} and {teamcolor}. {default} resets the chat to its default color and {teamcolor} is replaced with the color code for the client's team in PrintToChatEx and PrintToChatAllEx.

You can see all the colors in action here. Plugin authors: feel free to link to this page in your plugin threads to show users what colors are available.

Changelog:
  • v1.9.0 (1/2/14)
    • VoiDeD is bad (also added a few more colors)
  • v1.8.0 (5/13/13)
    • Added CShowActivity, CShowActivityEx, and CShowActivity2
  • v1.7.0 (2/7/13)
    • Improved team color handing on non-SayText2 games (currently only DoD:S is supported)
    • Added support for protobuf usermessages for if/when Source 2009 games are updated in the future
  • v1.6.0 (1/7/13)
    • Changed the way {teamcolor} is handled so it relies on the game's built-in team colors instead of predefined values
    • Messages will now be printed to clients' consoles
  • v1.5.0 (12/31/12)
    • Added CColorExists
    • Added axis, allies, normal, unique, vintage, genuine, strange, strange, unusual, haunted, community, selfmade, and valve colors
  • v1.4.0 (10/3/12)
    • Added CReplyToCommand
    • Added CReplyToCommandEx (1.4.1)
  • v1.3.0 (9/12/12)
    • Fixed tag mismatch warning
    • Fixed issue with CPrintToChatAllEx
  • v1.2.0 (9/9/12)
    • Updated to use a SayText2 usermessage instead of PrintToChat
  • v1.1.0BETA (5/28/12)
    • Fixed bug in CPrintToChatAllEx
    • Added StrToLower documentation
    • Added CRemoveTags
    • Added CGetTeamColor stock, which returns the hexadecimal representation of a client's team color (without initializing the trie)
  • v1.0.0BETA (5/11/12)
    • Initial release

Download morecolors.inc

.
__________________

Last edited by Dr. McKay; 07-14-2020 at 05:48.
Dr. McKay is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:42.


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