Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #pragma semicolon 1
- enum Color {
- NORMAL = 1, // clients scr_concolor cvar color
- GREEN, // Green Color
- TEAM_COLOR, // Red, grey, blue
- GREY, // grey
- RED, // Red
- BLUE, // Blue
- };
- new TeamName[][] = {
- "",
- "TERRORIST",
- "CT",
- "SPECTATOR"
- };
- // - - - - - - - - - - -
- #define MAX_GROUPS 8
- new g_Rang[MAX_GROUPS][] = {
- "Fondator",
- "Admin",
- "Moderator",
- "VIP Eco",
- "VIP Av",
- "VIP Pro",
- "DeluxVIP",
- "SupremVIP"
- };
- new g_RangFlag[MAX_GROUPS][] = {
- "abcdefghijklmnopqrstu",
- "cdefghijmnopqrsu",
- "cdemnopqrsu",
- "bt",
- "beit",
- "bceijt",
- "abcdeijt",
- "abcdefijt"
- };
- // - - - - - - - - - - -
- new g_RangFlag_Value[MAX_GROUPS];
- new cvar_type;
- public plugin_init() {
- register_plugin("RangAdminChat", "0.6", "Ex3cuTioN");
- register_clcmd("say","hook_say");
- register_clcmd("say_team","hook_say2");
- for(new i=0; i<MAX_GROUPS; i++) {
- g_RangFlag_Value[i] = read_flags(g_Rang[i]);
- }
- cvar_type = register_cvar("amx_rang_chat","1");
- }
- public hook_say(id) {
- if(is_user_bot(id)) {
- return PLUGIN_CONTINUE;
- }
- new nick[32];
- get_user_name(id,nick,31);
- static chat[192];
- read_args(chat, sizeof(chat) - 1);
- remove_quotes(chat);
- if(equali(chat,"")) {
- return PLUGIN_CONTINUE;
- }
- if(is_user_admin(id)) {
- for(new i=0; i<MAX_GROUPS; i++) {
- if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
- switch(get_pcvar_num(cvar_type)) {
- case 1:
- {
- ColorChat(0,TEAM_COLOR,"^x04[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
- }
- case 2:
- {
- ColorChat(0,TEAM_COLOR,"%s^x01 [^x04%s^x01] : %s",nick,g_Rang[i],chat);
- }
- case 3:
- {
- ColorChat(0,GREEN,"[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
- }
- }
- return PLUGIN_HANDLED;
- }
- }
- }
- else {
- if(is_user_alive(id)) {
- ColorChat(0,TEAM_COLOR,"%s^x01 : %s",nick,chat);
- }
- else {
- ColorChat(0,TEAM_COLOR,"*Mort*%s^x01 : %s",nick,chat);
- }
- return PLUGIN_HANDLED;
- }
- return PLUGIN_CONTINUE;
- }
- public hook_say2(id) {
- if(is_user_bot(id)) {
- return PLUGIN_CONTINUE;
- }
- new nick[32];
- get_user_name(id,nick,31);
- static chat[192];
- read_args(chat, sizeof(chat) - 1);
- remove_quotes(chat);
- if(equali(chat,"")) {
- return PLUGIN_CONTINUE;
- }
- if(is_user_admin(id)) {
- for(new i=0; i<MAX_GROUPS; i++) {
- if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
- new players[32],num;
- get_players(players,num,"c");
- for(new x=0; x<num; x++) {
- if(get_user_team(id) == get_user_team(players[x])) {
- switch(get_user_team(id)) {
- case 1:
- {
- ColorChat(players[x],TEAM_COLOR,"(Terrorist)^x04[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
- }
- case 2:
- {
- ColorChat(players[x],TEAM_COLOR,"(Counter-Terrorist)^x04[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
- }
- case 3:
- {
- ColorChat(players[x],TEAM_COLOR,"(Spectator)^x04[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
- }
- }
- }
- return PLUGIN_HANDLED;
- }
- }
- }
- }
- else {
- new players[32],num;
- get_players(players,num,"c");
- for(new x=0; x<num; x++) {
- if(get_user_team(id) == get_user_team(players[x])) {
- switch(get_user_team(id)) {
- case 1:
- {
- ColorChat(players[x],TEAM_COLOR,"(Terrorist) %s^x01 : %s",nick,chat);
- }
- case 2:
- {
- ColorChat(players[x],TEAM_COLOR,"(Counter-Terrorist) %s^x01 : %s",nick,chat);
- }
- case 3:
- {
- ColorChat(players[x],TEAM_COLOR,"(Spectator) %s^x01 : %s",nick,chat);
- }
- }
- }
- return PLUGIN_HANDLED;
- }
- }
- return PLUGIN_CONTINUE;
- }
- ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...) {
- new message[256];
- switch(type) {
- case NORMAL: // clients scr_concolor cvar color
- {
- message[0] = 0x01;
- }
- case GREEN: // Green
- {
- message[0] = 0x04;
- }
- default: // White, Red, Blue
- {
- message[0] = 0x03;
- }
- }
- vformat(message[1], 251, msg, 4);
- // Make sure message is not longer than 192 character. Will crash the server.
- message[192] = '^0';
- new team, ColorChange, index, MSG_Type;
- if(id) {
- MSG_Type = MSG_ONE;
- index = id;
- } else {
- index = FindPlayer();
- MSG_Type = MSG_ALL;
- }
- team = get_user_team(index);
- ColorChange = ColorSelection(index, MSG_Type, type);
- ShowColorMessage(index, MSG_Type, message);
- if(ColorChange) {
- Team_Info(index, MSG_Type, TeamName[team]);
- }
- }
- ShowColorMessage(id, type, message[]) {
- static bool:saytext_used;
- static get_user_msgid_saytext;
- if(!saytext_used)
- {
- get_user_msgid_saytext = get_user_msgid("SayText");
- saytext_used = true;
- }
- message_begin(type, get_user_msgid_saytext, _, id);
- write_byte(id);
- write_string(message);
- message_end();
- }
- Team_Info(id, type, team[]) {
- static bool:teaminfo_used;
- static get_user_msgid_teaminfo;
- if(!teaminfo_used) {
- get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
- teaminfo_used = true;
- }
- message_begin(type, get_user_msgid_teaminfo, _, id);
- write_byte(id);
- write_string(team);
- message_end();
- return 1;
- }
- ColorSelection(index, type, Color:Type) {
- switch(Type) {
- case RED:
- {
- return Team_Info(index, type, TeamName[1]);
- }
- case BLUE:
- {
- return Team_Info(index, type, TeamName[2]);
- }
- case GREY:
- {
- return Team_Info(index, type, TeamName[0]);
- }
- }
- return 0;
- }
- FindPlayer() {
- new i = -1;
- while(i <= get_maxplayers()) {
- if(is_user_connected(++i))
- return i;
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement