Advertisement
INDIO91

ultimate_who

Apr 14th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.25 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #define PLUGIN         "ULTIMATE WHO"
  5. #define VERSION         "1.1"
  6. #define AUTHOR         "P.Of.Pw"
  7.  
  8. #define CharsMax(%1)      sizeof %1 - 1
  9. #define time_shower      1.0
  10.  
  11. #define GROUPS_NAME      14
  12. #define GROUPS_ACCESS      14
  13.  
  14. #define RRR         255
  15. #define GGG         255
  16. #define BBB         255
  17. #define time_hud      12.0
  18.  
  19. #define motd_msg      "Admin's Online"
  20.  
  21. #define who_meniu_ad_group_msg   "y-=[Admin's]=- r-=[Online]=-^n"
  22. #define who_meniu_admin_msg   "y-=[Admin's]=- w-=[Online]=-^n^n"
  23.  
  24. #define who_meniu_ad_group_msg_bottom   "^nwPt a esi apasati y0 w sau y5"
  25. #define who_meniu_admin_msg_bottom   "^nwPt a esi apasati r0 w sau r5"
  26.  
  27. #define   who_console_top      "=========== Admini Online ==========="
  28. #define   who_console_bottom    "================================"
  29.  
  30. new GroupNames[GROUPS_NAME][] = {
  31.    "Detinator",
  32.    "Fondator",
  33.    "Owner",
  34.    "Co-Owner",
  35.    "Maresal",
  36.    "Maresal + VIP",
  37.    "General",
  38.    "General + VIP",
  39.    "Colonel",
  40.    "Colonel + VIP",
  41.    "Maior",
  42.    "Maior + VIP",
  43.    "Slot",
  44.    "Slot + VIP"
  45. }
  46.  
  47. new GroupFlags[GROUPS_ACCESS][] = {
  48.        "abcdefghijklmnopqrstu",
  49.        "abcdefghijklmnopqrst",
  50.        "abcdefijmnopqrs",
  51.        "abcdefijmnopqr",
  52.        "bcdefijmnopq",
  53.        "bcdefijmnopqr",
  54.        "bcdefijmnop",
  55.        "bcdefijmnopr",
  56.        "bcdefijmno",
  57.        "bcdefijmnor",
  58.        "bcdefijm",
  59.        "bcdefijmr",
  60.        "b",
  61.        "br"
  62. }
  63.  
  64. new GroupFlagsValue[GROUPS_NAME]
  65.  
  66. new who_type, who_typemeniu, who_typtable
  67.  
  68. public plugin_init()
  69. {
  70.    
  71.    register_plugin(PLUGIN, VERSION, AUTHOR)
  72.    
  73.    for(new p_of_pw = 0 ; p_of_pw < GROUPS_NAME ; p_of_pw++)
  74.       GroupFlagsValue[p_of_pw] = read_flags(GroupFlags[p_of_pw])
  75.    
  76.    register_clcmd("say", "cmdSay")
  77.    register_clcmd("say_team", "cmdSay")
  78.    
  79.    who_type   = register_cvar("cmd_who","2")
  80.    who_typemeniu   = register_cvar("who_typemeniu","1")
  81.    who_typtable   = register_cvar("who_typetable","2")
  82. }
  83.  
  84. public cmdSay(id)
  85. {
  86.    new say[192]
  87.    read_args(say,192)
  88.    if(( containi(say, "who") != -1 || containi(say, "admin") != -1 || containi(say, "admins") != -1  || contain(say, "/who") != -1 || contain(say, "/admin") != -1 || contain(say, "/admins") != -1))
  89.       set_task(time_shower,"cmdULTMWho",id)
  90.    return PLUGIN_CONTINUE
  91. }
  92.  
  93. public cmdULTMWho(id)
  94. {
  95.    switch(get_pcvar_num(who_type))
  96.    {
  97.       case 1: who_meniu(id)
  98.      
  99.       case 2: who_motd(id)
  100.      
  101.       case 3: who_table(id)
  102.      
  103.       case 4: who_hud(id)
  104.      
  105.       case 5: who_console(id)
  106.      
  107.    }
  108.    return 0
  109. }
  110.  
  111. who_meniu(id)
  112. {
  113.    switch(get_pcvar_num(who_typemeniu))
  114.    {
  115.       case 1: who_meniu_admin_groups(id)
  116.      
  117.       case 2: who_meniu_admin(id)
  118.    }
  119.    return 0
  120. }
  121. who_meniu_admin_groups(id)
  122. {
  123.    new sPlayers[32], iNum, iPlayer
  124.    new sName[32]
  125.    new szMenu[256], nLen, keys
  126.    
  127.    nLen = format(szMenu[nLen], 255, who_meniu_ad_group_msg)
  128.    get_players(sPlayers, iNum, "ch")
  129.    
  130.    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
  131.    {  
  132.       nLen += format(szMenu[nLen], 255-nLen,"r%s^n", GroupNames[p_of_pw])
  133.      
  134.       for(new a = 0; a < iNum ; a++)
  135.       {  
  136.          iPlayer = sPlayers[a]
  137.          
  138.          if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
  139.          {
  140.             get_user_name(iPlayer, sName, sizeof sName - 1)
  141.             nLen += format(szMenu[nLen], 255-nLen,"w%s^n", sName)
  142.          }  
  143.       }
  144.    }
  145.    nLen += format(szMenu[nLen], 255-nLen, who_meniu_ad_group_msg_bottom)
  146.    keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9)
  147.    show_menu(id,keys,szMenu,-1)
  148.    return 0
  149. }
  150.  
  151. who_meniu_admin(id)
  152. {
  153.    new sPlayers[32], iNum, iPlayer
  154.    new sName[32]
  155.    new szMenu[256], nLen, keys
  156.    
  157.    nLen = format(szMenu[nLen], 255, who_meniu_admin_msg)
  158.  
  159.    get_players(sPlayers, iNum, "ch")
  160.    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
  161.    {
  162.       for(new a = 0; a < iNum ; a++)
  163.       {  
  164.          iPlayer = sPlayers[a]
  165.          
  166.          if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
  167.          {
  168.             get_user_name(iPlayer, sName, sizeof sName - 1)
  169.             nLen += format(szMenu[nLen], 255-nLen,"r%s^n", sName)
  170.          }  
  171.       }
  172.    }
  173.    nLen += format(szMenu[nLen], 255-nLen, who_meniu_admin_msg_bottom)
  174.    keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9)
  175.    show_menu(id,keys,szMenu,-1)
  176.    return 0
  177. }
  178.  
  179. who_motd(id)
  180. {
  181.    new sPlayers[32], iNum, iPlayer
  182.    new sName[32], sBuffer[1024]
  183.    new iLen
  184.    
  185.    iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
  186.    iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"yellow^"><font size=^"4^">STAFF RESPAWN.ROYAL-GAMES.RO^n</font><br /></font></center>")
  187.    get_players(sPlayers, iNum, "ch")
  188.    
  189.    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
  190.    {  
  191.       iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"lime^">%s</font></center>", GroupNames[p_of_pw]) // Grupurile
  192.      
  193.       for(new a = 0; a < iNum ; a++)
  194.       {  
  195.          iPlayer = sPlayers[a]
  196.          
  197.          if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
  198.          {
  199.             get_user_name(iPlayer, sName, sizeof sName - 1)
  200.             iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"white^">%s^n</font></center>", sName) // Accesele
  201.          }
  202.       }      
  203.    }
  204.    show_motd(id, sBuffer, motd_msg)
  205.    return 0
  206.  
  207. }
  208.  
  209. who_table(id)
  210. {
  211.    switch(get_pcvar_num(who_typtable))
  212.    {
  213.       case 1: table_style_one(id)
  214.      
  215.       case 2: table_style_two(id)
  216.    }
  217.    return 0
  218. }
  219. table_style_one(id)
  220. {
  221.    new sPlayers[32], iNum, iPlayer
  222.    new sName[32], sBuffer[1024]
  223.    new iLen
  224.    
  225.    iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
  226.    iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h3><b><font color=^"red^">NUME         -   ACCES</font></h3></b></center>")
  227.    
  228.    get_players(sPlayers, iNum, "ch")
  229.    
  230.    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
  231.    {
  232.       for(new a = 0; a < iNum ; a++)
  233.       {  
  234.          iPlayer = sPlayers[a]
  235.      
  236.          if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
  237.          {
  238.             get_user_name(iPlayer, sName, sizeof sName - 1)
  239.             iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h4><font color=^"white^">%s      %s^n</font></h4></center>", sName, GroupNames[p_of_pw])
  240.          }
  241.       }      
  242.    }
  243.    show_motd(id, sBuffer, motd_msg)
  244.    return 0
  245. }
  246. table_style_two(id)
  247. {
  248.    new sPlayers[32], iNum, iPlayer
  249.    new sName[32], sBuffer[1024]
  250.    new iLen
  251.    
  252.    iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
  253.    
  254.    iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<html><head><title>a</title></head>")
  255.    iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<br><br><center><body><table border>")
  256.    iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<tr><td><h3><b><font color=^"red^">NUME</td><td></h3></b> <h3><b><font color=^"red^">ACCES</td></h3></font></b></center>")
  257.    
  258.    get_players(sPlayers, iNum, "ch")
  259.    
  260.    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
  261.    {
  262.       for(new a = 0; a < iNum ; a++)
  263.       {  
  264.          iPlayer = sPlayers[a]
  265.      
  266.          if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
  267.          {
  268.             get_user_name(iPlayer, sName, sizeof sName - 1)
  269.             iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><tr><td><h4><b><font color=^"white^">%s<td></b></h4> <h4><b><font color=^"white^">%s </td></h4></font></b></center>", sName, GroupNames[p_of_pw])
  270.          }
  271.       }      
  272.    }
  273.    iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "</table></body></html>")
  274.    show_motd(id, sBuffer, motd_msg)
  275.    return 0
  276. }
  277.  
  278. who_hud(id)
  279. {
  280.    new sPlayers[32], iNum, iPlayer
  281.    new sName[32], sBuffer[1024]
  282.    new iLen
  283.    
  284.    get_players(sPlayers, iNum, "ch")
  285.    
  286.    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
  287.    {  
  288.       iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "=== %s ===^n", GroupNames[p_of_pw])
  289.      
  290.       for(new a = 0; a < iNum ; a++)
  291.       {  
  292.          iPlayer = sPlayers[a]
  293.          
  294.          if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
  295.          {
  296.             get_user_name(iPlayer, sName, sizeof sName - 1)
  297.             iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "%s^n", sName)
  298.          }
  299.       }      
  300.    }
  301.    set_hudmessage(RRR, GGG, BBB, 0.02, 0.24, 0, 6.0, time_hud)
  302.    show_hudmessage(id, sBuffer)
  303.    return 0
  304. }
  305.  
  306. who_console(id)
  307. {
  308.    new sPlayers[32], iNum, iPlayer
  309.    new sName[32]
  310.  
  311.    get_players(sPlayers, iNum)
  312.    console_print(id, who_console_top)
  313.    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME; p_of_pw++)
  314.    {
  315.       for(new a = 0; a < iNum ; a++)
  316.       {
  317.          
  318.          iPlayer = sPlayers[a]
  319.          get_user_name(iPlayer, sName, sizeof sName - 1)
  320.          if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
  321.             console_print(id, "= %d = %s : %s", p_of_pw+1, GroupNames[p_of_pw], sName)
  322.          
  323.          
  324.       }
  325.    }
  326.    console_print(id, who_console_bottom)
  327.    return 0
  328. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement