Advertisement
CheezPuff

Chat Tag [ Flags Admins ]

Feb 16th, 2017
488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.52 KB | None | 0 0
  1. /*=========================================
  2.             [Owner] Nick : Red/Blue/White (Team Chat)
  3.             [s.ADMIN] Nick : Green
  4.             [ADMIN] Nick : Green
  5.             [VIP] Nick : Green        
  6.             [Privileges System]            
  7.               [CHAT]                  
  8. =========================================*/
  9.  
  10. #include <amxmodx>
  11. #include <amxmisc>
  12.  
  13. #define VERSION    "2.0"
  14.  
  15. #define MAX_PREFIXES 10
  16.  
  17. // Owner Prefix
  18. #define FLAGOWNER ADMIN_IMMUNITY
  19. #define PREFIXOWNER "Owner"
  20.  
  21. // S.Admin Prefix
  22. #define FLAGSADMIN ADMIN_RESERVATION
  23. #define PREFIXSADMIN "S.ADMIN"
  24.  
  25. // Admin Prefix
  26. #define FLAGADMIN ADMIN_BAN
  27. #define PREFIXADMIN "ADMIN"
  28.  
  29. // VIP Prefix
  30. #define FLAGVIP ADMIN_KICK
  31. #define PREFIXVIP "VIP"
  32.  
  33. new Owner, SAdmin, Admin,Vip;
  34. new SzMaxPlayers, SzSayText;
  35.  
  36. new SzGTeam[3][] = {
  37.     "Spectator",
  38.     "Terrorist",
  39.     "Counter-Terrorist"
  40. }
  41.  
  42. public plugin_init()
  43. {
  44.     register_plugin("Privileges Flags System", VERSION, "AM | Edit By CheezPuff");
  45.    
  46.     // Cvars Plugins
  47.     Owner  = register_cvar("Owner", "1");
  48.     SAdmin = register_cvar("Sadmin", "1");
  49.     Admin  = register_cvar("Admin", "1");
  50.     Vip    = register_cvar("Vip", "1");
  51.    
  52.     register_cvar("admin_prefix_version",    VERSION, FCVAR_SERVER|FCVAR_SPONLY);
  53.     set_cvar_string("admin_prefix_version",    VERSION);
  54.     register_clcmd("say", "hook_say");
  55.     register_clcmd("say_team", "hook_say_team");
  56.    
  57.     SzSayText = get_user_msgid ("SayText");
  58.     SzMaxPlayers = get_maxplayers();
  59.    
  60.     register_message(SzSayText, "MsgDuplicate");
  61. }
  62.  
  63. public MsgDuplicate(id){ return PLUGIN_HANDLED; }
  64.  
  65. public hook_say(id)
  66. {
  67.     new SzMessages[192], SzName[32];
  68.     new SzAlive = is_user_alive(id);
  69.     new SzGetFlag = get_user_flags(id);
  70.    
  71.     read_args(SzMessages, 191);
  72.     remove_quotes(SzMessages);
  73.     get_user_name(id, SzName, 31);
  74.    
  75.     if(!is_valid_msg(SzMessages))
  76.         return PLUGIN_CONTINUE;
  77.    
  78.     if(get_pcvar_num(Owner) && SzGetFlag & FLAGOWNER)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^3%s", PREFIXOWNER, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^3%s", PREFIXOWNER, SzName, SzMessages));
  79.     else if(get_pcvar_num(SAdmin) && SzGetFlag & FLAGSADMIN)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s: ^4%s", PREFIXSADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXSADMIN, SzName, SzMessages));
  80.     else if(get_pcvar_num(Admin) && SzGetFlag & FLAGADMIN)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s: ^4%s", PREFIXADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMIN, SzName, SzMessages));
  81.     else if(get_pcvar_num(Vip) && SzGetFlag & FLAGVIP)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s: ^4%s", PREFIXVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXVIP, SzName, SzMessages));
  82.     else if(get_pcvar_num(Owner) && !(SzGetFlag & FLAGOWNER))(SzAlive ? format(SzMessages, 191, "^3%s: ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
  83.     else if(get_pcvar_num(SAdmin) && !(SzGetFlag & FLAGSADMIN))(SzAlive ? format(SzMessages, 191, "^3%s: ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
  84.     else if(get_pcvar_num(Admin) && !(SzGetFlag & FLAGADMIN))(SzAlive ? format(SzMessages, 191, "^3%s: ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
  85.     else if(get_pcvar_num(Vip) && !(SzGetFlag & FLAGVIP))(SzAlive ? format(SzMessages, 191, "^3%s: ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
  86.  
  87.     for(new i = 1; i <= SzMaxPlayers; i++)
  88.         {
  89.             if(!is_user_connected(i))
  90.                 continue;
  91.        
  92.             if(SzAlive && is_user_alive(i) || !SzAlive && !is_user_alive(i))
  93.                 {
  94.                     message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
  95.                     write_byte(id);
  96.                     write_string(SzMessages);
  97.                     message_end();
  98.                 }
  99.         }
  100.  
  101.     return PLUGIN_CONTINUE;
  102. }
  103.  
  104. public hook_say_team(id){
  105.     new SzMessages[192], SzName[32];
  106.     new SzAlive = is_user_alive(id);
  107.     new SzGetFlag = get_user_flags(id);
  108.     new SzGetTeam = get_user_team(id);
  109.  
  110.     read_args(SzMessages, 191);
  111.     remove_quotes(SzMessages);
  112.     get_user_name(id, SzName, 31);
  113.    
  114.     if(!is_valid_msg(SzMessages))
  115.         return PLUGIN_CONTINUE;
  116.    
  117.     if(get_pcvar_num(Owner) && SzGetFlag & FLAGOWNER)(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s: ^3%s", SzGTeam[SzGetTeam], PREFIXOWNER, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^3%s", SzGTeam[SzGetTeam], PREFIXOWNER, SzName, SzMessages));
  118.     else if(get_pcvar_num(SAdmin) && SzGetFlag & FLAGSADMIN)(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s: ^4%s", SzGTeam[SzGetTeam], PREFIXSADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXSADMIN, SzName, SzMessages));
  119.     else if(get_pcvar_num(Admin) && SzGetFlag & FLAGADMIN)(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s: ^4%s", SzGTeam[SzGetTeam], PREFIXADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXADMIN, SzName, SzMessages));
  120.     else if(get_pcvar_num(Vip) && SzGetFlag & FLAGVIP)(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s: ^4%s", SzGTeam[SzGetTeam], PREFIXVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXVIP, SzName, SzMessages));
  121.     else if(get_pcvar_num(Owner) && !(SzGetFlag & FLAGOWNER))(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s: ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));
  122.     else if(get_pcvar_num(SAdmin) && !(SzGetFlag & FLAGSADMIN))(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s: ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));    
  123.     else if(get_pcvar_num(Admin) && !(SzGetFlag & FLAGADMIN))(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s: ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));    
  124.     else if(get_pcvar_num(Vip) && !(SzGetFlag & FLAGVIP))(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s: ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));    
  125.    
  126.     for(new i = 1; i <= SzMaxPlayers; i++)
  127.         {
  128.             if(!is_user_connected(i))
  129.                 continue;
  130.            
  131.             if(get_user_team(i) != SzGetTeam)
  132.                 continue;
  133.            
  134.             if(SzAlive && is_user_alive(i) || !SzAlive && !is_user_alive(i))
  135.                 {
  136.                     message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
  137.                     write_byte(id);
  138.                     write_string(SzMessages);
  139.                     message_end();
  140.                 }
  141.         }
  142.  
  143.     return PLUGIN_CONTINUE;
  144. }
  145.  
  146.  
  147. bool:is_valid_msg(const SzMessages[]){
  148.     if( SzMessages[0] == '@'
  149.     || !strlen(SzMessages)){ return false; }
  150.     return true;
  151. }  
  152. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  153. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1031\\ f0\\ fs16 \n\\ par }
  154. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement