Veteran Member
Join Date: Jun 2010
Location: France
|
11-30-2011
, 10:45
iChat 2.3.3 - The most powerful chat manager
|
#1
|
iChat - v2.3.3 by Kidev
I know that some features won't be always used but my goal is to create the most powerfull chat manager ever created: if one person wants one specific thing on his chat, he must be able to do it with iChat
READ THE CONFIGURATION FILE BEFORE ASKING QUESTIONS
Description:
This plugin allows you to customize your GoldSrc's game chat.
Commands:
amx_reload_ichat : Reloads the configuration file (flag changeable via configuration file).
say !me <message> : Shows a status message (command changeable via configuration file).
say !chat : Enable / disable user chat (command changeable via configuration file).
Features:
- HOT Works on ALL GoldSrc games!
- Choose your color between <default>, <green>, <team>, <blue>, <red> and <grey>.
- Put datas on your chat! Datas are:
- %NAME% -> Replaced by User name
- %MESSAGE% -> Replaced by User message
- %STEAMID% -> Replaced by User Steam ID
- %LIFE% -> Replaced by User life
- %TEAM% -> Replaced by User Team (see iChat.txt. You can modify Team Names)
- %POS% -> Replaced by User Location, like 'Bombsite B'... (WORK ONLY ON CONDITION ZERO)
- %TEAMTAG% -> Replaced by User Team Tag (see 'Config' part, avaible for CT, T and SPEC, configurable for alive and dead players separately)
- #CUSTOMx# -> Replaced by User custom data number x. You have to enable CHAT_USE_CUSTOM_TAGS. This is for developers.
- Use !me before your message to show a status message, like "* Kid works on iChat". Command editable.
- Apply a sort of 'sv_alltalk' to chat.
- Spy all chat canals when activated.
- Remove empty message or messages which begins like a command (/top15).
- Change users default color (will ask if they want. If not, choose their punishment). With that, you can use pink color for exemple.
- Manage chat with radius.
- Edit acces flags like you want, easily.
- Enable and disable your chat with an ediatable command.
- Remove name change in chat.
- Send custom datas to iChat from your others plugins via a simple API (explained in the configuration file)!
- Set users VIP without flag via a simple API (explained in the configuration file)!
- HOT Change formats for certain players via a simple ini file (ONLY FOR STEAM USERS).
All of this features are fully explained in the configuration file. Please, ask only if you misunderstood something.
PHP Code:
///////////////////////////////////////////////////////// // iChat by Kid // // // // Put iChat.amxx on the last line of your plugins.ini // // Except if you want to use AllChat, more info below. // // Don't use any other chat related plugins! // // Or conflicts might appear! // // Version: 2.3.3 // /////////////////////////////////////////////////////////
//////////////////// // Format configs // ////////////////////
// You can use colors: // Colors: <default>, <green>, <team>, <blue>, <red> and <grey>. // WARNING: You can use only ONE 'Team specific' color on one format line! // 'Team specific' colors are <team>, <blue>, <red> and <grey>. // If you use more than one, the color will be the one of the first color used! // For exemple, FORMAT_DEF_ALIVE "<green>Kid <grey>is <default> happy<grey>!" will work, // But not FORMAT_DEF_ALIVE "<blue>Kid <red>is <grey> sad<grey>..."! Here, the color for all 'Team specific' colors will be blue (the first, as said before). // So FORMAT_DEF_ALIVE "<blue>Kid <red>is <grey> sad..." is the same as FORMAT_DEF_ALIVE "<blue>Kid <blue>is <blue> sad...". // If no colors specified, it will be <default> color. // You can also change the default color to whatever YOU WANT (pink, violet, black, white...)! // It will just ask to players if they want, and if they won't, you can choose their punishment (kick or not). // See below, on 'Config' part to configure that.
// Tags are the most cool feature on my plugin! You can put some data on your messages! // Tags: %NAME% -> Replaced by User name // %MESSAGE% -> Replaced by User message // %STEAMID% -> Replaced by User Steam ID // %LIFE% -> Replaced by User life // %TEAM% -> Replaced by User Team (see iChat.txt. You can modify Team Names) // %POS% -> Replaced by User Location, like 'Bombsite B'... (WORK ONLY ON CONDITION ZERO) // %TEAMTAG% -> Replaced by User Team Tag (see 'Config' part, avaible for CT, T and SPEC, alive and dead) // #CUSTOMx# -> Replaced by User custom data number x. You have to enable CHAT_USE_CUSTOM_TAGS below. This is for developers. As you can see, '%' have been replaced by '#', this isn't an error.
// And don't worry, a player who write '%POS%', or '%NAME%' on the chat will not be replaced by the data. // Same for names. If a player says "%NAME%" this will not be replaced by his name, for exemple. // // For exemple, if i want my chat looks like Minecraft's (really cool with CHAT_DEFAULT_COLOR "255255255" (white), or with <grey> tag): // FORMAT_DEF_ALIVE "<%NAME%> %MESSAGE%" or FORMAT_DEF_ALIVE "<grey><%NAME%> %MESSAGE%" // // Counter Strike Condition Zero's default is (%POS% can only be used on Condition Zero): // FORMAT_DEF_ALIVE "<team>%NAME%<default> : %MESSAGE%" // FORMAT_DEF_DEAD "<default>*DEAD* <team>%NAME%<default> : %MESSAGE%" // FORMAT_TEAM_DEF_ALIVE "<default>%TEAM% <team>%NAME%<default> @<green> %POS% <default>: %MESSAGE%" // FORMAT_TEAM_DEF_DEAD "<default>*DEAD* %TEAM% <team>%NAME%<default> : %MESSAGE%" // // You can also use specific formats for Admins, like: // FORMAT_ADMIN_ALIVE "<green>[ADMIN] <team>%NAME%<default> : <green>%MESSAGE%" // There is also a VIP support! Use: // FORMAT_VIP_ALIVE "<green>[VIP] <team>%NAME%<default> : <green>%MESSAGE%" // Flags are explained below.
// Default users (no flags) -> Default CS Chat (not CZ) // General Chat - Alive FORMAT_DEF_ALIVE "<team>%NAME%<default> : %MESSAGE%" // General Chat - Dead FORMAT_DEF_DEAD "<default>*DEAD* <team>%NAME%<default> : %MESSAGE%" // Team Chat - Alive FORMAT_TEAM_DEF_ALIVE "<default>%TEAM% <team>%NAME%<default> : %MESSAGE%" // Team Chat - Dead FORMAT_TEAM_DEF_DEAD "<default>*DEAD* %TEAM% <team>%NAME%<default> : %MESSAGE%"
// Admins (flag CHAT_FLAG_ADMIN, configurable below) -> Default CS Chat (not CZ) with [ADMIN] tag and message in green. // General Chat - Alive FORMAT_ADMIN_ALIVE "<green>[ADMIN] <team>%NAME%<default> : <green>%MESSAGE%" // General Chat - Dead FORMAT_ADMIN_DEAD "<green>[ADMIN] <default>*DEAD* <team>%NAME%<default> : <green>%MESSAGE%" // Team Chat - Alive FORMAT_TEAM_ADMIN_ALIVE "<green>[ADMIN] <default>%TEAM% <team>%NAME%<default> : <green>%MESSAGE%" // Team Chat - Dead FORMAT_TEAM_ADMIN_DEAD "<green>[ADMIN] <default>*DEAD* %TEAM% <team>%NAME%<default> : <green>%MESSAGE%"
// VIP's (flag CHAT_FLAG_VIP, configurable below) -> Default CS Chat (not CZ) with [VIP] tag. // General Chat - Alive FORMAT_VIP_ALIVE "<green>[VIP] <team>%NAME%<default> : %MESSAGE%" // General Chat - Dead FORMAT_VIP_DEAD "<green>[VIP] <default>*DEAD* <team>%NAME%<default> : %MESSAGE%" // Team Chat - Alive FORMAT_TEAM_VIP_ALIVE "<green>[VIP] <default>%TEAM% <team>%NAME%<default> : %MESSAGE%" // Team Chat - Dead FORMAT_TEAM_VIP_DEAD "<green>[VIP] <default>*DEAD* %TEAM% <team>%NAME%<default> : %MESSAGE%"
// Printed when a client put "!me" behind his message (configurable below). // So this line ( FORMAT_ME "* %NAME% %MESSAGE%" ) replace: // "say !me is cool" by "* Kid is cool" if ME_COMMAND is "!me" (default) // You can use colors and tags, of course. FORMAT_ME_MESSAGE "* %NAME% %MESSAGE%"
// To change the "!me" command. // If you're not using statsx, you can replace this by /me for exemple! FORMAT_ME_COMMAND "!me"
// Players can toogle on or off their chat with this command CHAT_CLCMD_CLEAR "!chat"
///////////////////// // General Configs // /////////////////////
// Prints a little thing, with my name in! This can motivate me to keep working! // But if you're not cool, set it to 0 to disable... CHAT_NOTIFY 1
// Allows iChat to stop itself. Change this is you are using map specific plugins, or other plugins files than plugins.ini. // In others cases than thoses listed above, check your logs before turning this to 0! // Note: if set to 0, some plugins may not recieve their chat commands (/shop...) CHAT_CAN_STOP_ITSELF 1
// Prints a messages to all Admins and logs a message if iChat is outdated. // * SOON * CHAT_CHECK_UPDATES 0
// Defines if wether or not the ADMIN rank overrides the VIP one. // For exemple, if set to 1, and if you're VIP and ADMIN, you will be considered as an ADMIN in the chat. // But if set to 0 and if you're VIP and ADMIN, you will be considered as a VIP in the chat. CHAT_ADMIN_OVERRIDES 1
// Change here the acces flags. Avaible flags are: "abcdefghijklmnopqrstu" (like in users.ini) // You can also use "ALL" for everyone. // You can use multiple flags. // Flag to reload the config file CHAT_FLAG_RELOAD "l" // Flag to see all messages (teams, radius...). CHAT_FLAG_SPY "m" // Flag to see chat CHAT_FLAG_SEE_CHAT "ALL" // Flag to use chat CHAT_FLAG_CHAT "ALL" // Flag to be Admin and be able to use "FORMAT_ADMIN_*" formats. CHAT_FLAG_ADMIN "n" // Flag to be VIP and be able to use "FORMAT_VIP_*" formats. // There is an other way to set users VIP (for developers): you can use functions: // iChatIsUserVip( index ), iChatSetUserVip( index ), iChatRemoveUserVip( index ). You have to include <ichat>. CHAT_FLAG_VIP "o"
// It's sv_alltalk for iChat (Deads players can see others dead messages, and alive players can see other alive players messages). // You can also use iChatManagement to manage this. More informations just below. CHAT_ALL_TALK 1
// Team Tags // Colors are allowed in Teams Tags! // Should be cool on a BaseBuilder, with: // CHAT_TEAM_TAG_1_A "<green>[ZOMBIE]<default>" // CHAT_TEAM_TAG_2_A "<green>[BUILDER]<default>" // And in default when dead // Team Tag for Alive Terrosits CHAT_TEAM_TAG_1_A "<green>[T]<default>" // Team Tag for Dead Terrosits (Ahmed!) CHAT_TEAM_TAG_1_D "<green>[<default>T<green>]<default>"
// Team Tag for Alive Counter-Terrorists CHAT_TEAM_TAG_2_A "<green>[CT]<default>" // Team Tag for Dead Counter-Terrorists CHAT_TEAM_TAG_2_D "<green>[<default>CT<green>]<default>"
// Team Tag for Spectators CHAT_TEAM_TAG_3 "<green>[SPEC]<default>"
// This is the '<default>' color. "-1" to use client's default color. // Else, "RRRGGGBBB". For exemple, black for the <default> color: // CHAT_DEFAULT_COLOR "000000000" // Or white: // CHAT_DEFAULT_COLOR "255255255" CHAT_DEFAULT_COLOR "-1"
// Punishment if client won't set his color to default color. // It's a menu. It's only displayed on first spawn. // 0 - Let him play! // 1 - Kick him as long as he deny. CHAT_PUNISHMENT 0
// Admins with CHAT_FLAG_SPY flag (configurable above) can see all messages (teams, radius...). CHAT_ADMIN_SPY 1
// Remove all chat message wich begins with '/', '!' and '@' (like /top15, /rank...). CHAT_CLCMD_REMOVE 1
// Remove notice when a player change his name. 0 to disable. CHAT_REMOVE_CHANGE_NAME 0
// This prints the message only to players on the sender's radius. 0.0 for dislable. // General Chat CHAT_RADIUS_ALL 0.0 // Team Chat CHAT_RADIUS_TEAM 0.0
// Force chat to be a simple print. Use this if your game doesn't support colors, // Or if you simply doesn't want colors in your chat. Change only if you know what you're doing. CHAT_NO_COLORS 0
// Allows you to use custom formats for the Steam IDs stored in 'ichat_custom_formats.ini' // You need Steam. This plugin doesn't support and won't ever support custom format by name or IP. CHAT_USE_CUSTOM_FORMATS 0
// Enable custom data. This is for developers, but it's easy to use. // This allows you to send custom data from your plugins to iChat, to put it in your chat. // This is how to send data: // First, include <ichat>. Then, you can use native iChatSendCustomData( iIndex, iTagNum, szData[ ] ); // iIndex is the player's index. // iTagNum is the index of the custom tag, the 'x' in #CUSTOMx#. // szData[ ] is the data. Must be a string, 16 chars max, changeable in iChat source code. // You can use 2 custom datas (0, 1) maximum, but you can change this value in iChat source code. // You have to use iChatSendCustomData( ) each time that your variable is changed (connect, disconnect...), because iChat won't reset it. // Finally, put #CUSTOMx# in your chat formats like others tags, where 'x' is cutom data id. // For exemple, to send iLevel[ id ] var to iChat, each time that iLevel[ id ] is changed, I'll do: // new szLevel[ 16 ]; formatex( szLevel, charsmax( szLevel ), "[%i]", iLevel[ id ] ); // iChatSendCustomData( id, 0, szLevel ); // And in ichat.cfg formats, since I used the id 0 for custom data ( iChatSendCustomData( id, 0, szLevel ) ), I'll put: #CUSTOM0# // If I want to send another data wich the id 1 for custom data ( iChatSendCustomData( id, 1, szData ) ), I'll put: #CUSTOM1# // This is actually very powerful, isn't it? CHAT_USE_CUSTOM_TAGS 0
// Congratulations, you have reached the end of this config file! You just have entirely modified the CS chat!
Examples and screenshots:
Minecraft with FORMAT_DEF_ALIVE "<%NAME%> %MESSAGE%" and CHAT_DEFAULT_COLOR "255255255"
Sexy chat with CHAT_DEFAULT_COLOR "255000255"
VIP with flag "o" and FORMAT_VIP_ALIVE "<green>[VIP] <team>%NAME%<default> : %MESSAGE%"
Admin with flag "n" and FORMAT_ADMIN_ALIVE "<green>[ADMIN] <team>%NAME%<default> : <green>%MESSAGE%"
Innovating chat with FORMAT_DEF_ALIVE "<team>%NAME%<default> says %MESSAGE%"
!me has released iChat
Installation:
Put 'iChat_2.3.3.amxx' on the last line of your plugins.ini with the original file name, or iChat will stop himself!
Put 'ichat.cfg' on amxmodx/configs/. Edit it with any text editor like Notepad++ for readability
Put 'ichat_custom_formats.ini' on amxmodx/configs/. Edit it with any text editor like Notepad++ for readability
Put 'iChat.txt' on amxmodx/data/lang
Note that 'ichat.inc' is NOT required to compile. It's only for developers.
Known bugs:
None Please, report all the bugs you find, because I just can't test everything myself!
Servers using this plugin
Multi-Lingual:
- EN: -Kid-
- FR: -Kid-
- RO: Americanu
Code:
[en]
ICHAT_TEAM0 = (Spectator)
ICHAT_TEAM1 = (Terrorist)
ICHAT_TEAM2 = (Counter-terrorist)
ICHAT_TEAM3 = (Spectator)
ICHAT_KICK_REASON = Kicked because you denied to change your cvar 'con_color'!
ICHAT_MENU_TITLE = \yYou have to change your cvar 'con_color' to \rcon_color %i %i %i^n\yDo you accept?
ICHAT_MENU_YES = Yes
ICHAT_MENU_NO = No
ICHAT_MENU_ACTION0 =
ICHAT_MENU_ACTION1 = \y(\rKick\y)\w
ICHAT_RELOAD_INFO = - Reloads iChat configuration file
ICHAT_RELOADED = iChat configuration file have been successfully reloaded.
ICHAT_CHAT_DISABLED = Your chat is now !tdisabled!d.
ICHAT_CHAT_ENABLED = Your chat is now !tenabled!d.
ICHAT_CHAT_DISABLED_NOC = Your chat is now disabled.
ICHAT_CHAT_ENABLED_NOC = Your chat is now enabled.
Credits:
Arkshine - For some help on French Forum
xPaw - For the old '%s' bug fix (now removed from the code)
ConnorMcLeod - For some help on French Forum, the HLSW bug fix and the get_user_team fix
Fr33m@n - For some optimizations
GordonFreeman (RU) - For helping me on the "say" bug
XLN's | [Lo]Phreak^n^c - For re-uploading the screenshots
dREAM - For some hard testing
Current version (stable): IF YOU USE LINUX, USE 2.3.0 BELOW, 2.3.3 IS BUGGY on LINUX !
Last edited by Kidev; 12-27-2014 at 08:20.
|
|