Guest User

Untitled

a guest
Jan 4th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.74 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. new ids[33][33], menu[33], mpl;
  5.  
  6. public plugin_init()
  7. {
  8.     register_plugin("Screen Menu", "1.0", "Sho0ter");
  9.     register_concmd("amx_screen", "cmd_screen", ADMIN_BAN);
  10.     register_menucmd(register_menuid("screen menu"), 1023, "screen_menu")
  11.     mpl = get_maxplayers();
  12.     return PLUGIN_CONTINUE;
  13. }
  14.  
  15. public cmd_screen(id, level, cid)
  16. {
  17.     if(!cmd_access(id, level, cid, 0))
  18.     {
  19.         return PLUGIN_HANDLED;
  20.     }
  21.     return show_screen_menu(id, menu[id] = 0);
  22. }
  23.  
  24. public show_screen_menu(id, pos)
  25. {
  26.     if(pos < 0)
  27.     {
  28.         return PLUGIN_HANDLED;
  29.     }
  30.     new body[1024], name[32], keys = MENU_KEY_0, len, num, pid, key;
  31.     for(new p; p < mpl; p++)
  32.     {
  33.         if(!is_user_connected(p) || is_user_bot(p) || is_user_hltv(p))
  34.         {
  35.             continue;
  36.         }
  37.         ids[id][num++] = p;
  38.     }
  39.     new start = pos * 8;
  40.     if(start > num)
  41.     {
  42.         return show_screen_menu(id, pos - 1);
  43.     }
  44.     new end = start + 8;
  45.     if(end > num)
  46.     {
  47.         end = num;
  48.     }
  49.     len = format(body, 1023, "\yКому будем делать скриншот?^n^n");
  50.     for(new i = start; i < end; i++)
  51.     {
  52.         pid = ids[id][i];
  53.         get_user_name(pid, name, 31);
  54.         if(get_user_flags(pid) & ADMIN_IMMUNITY)
  55.         {
  56.             len += format(body[len], 1023 - len, "\d%d. %s^n", ++key, name);
  57.         }
  58.         else
  59.         {
  60.             keys |= (1<<key);
  61.             len += format(body[len], 1023 - len, "\r%d. \w%s^n", ++key, name);
  62.         }
  63.     }
  64.     len += format(body[len], 1023 - len, "^n\%s9. \%sДальше^n\r0. \w%s", (end >= num) ? "d" : "r", (end >= num) ? "d" : "w", pos ? "Назад" : "Выход");
  65.     show_menu(id, keys, body, -1, "screen_menu");
  66.     return PLUGIN_HANDLED;
  67. }
  68.  
  69. public screen_menu(id, key)
  70. {
  71.     switch(key)
  72.     {
  73.         case 8: return show_screen_menu(id, ++menu[id]);
  74.         case 9: return show_screen_menu(id, --menu[id]);
  75.         default:
  76.         {
  77.             new pid = ids[id][menu[id] * 8 + key];
  78.             if(!is_user_connected(pid))
  79.             {
  80.                 client_print(id, print_chat, "Этот игрок покинул сервер...");
  81.                 return show_screen_menu(id, menu[id]);
  82.             }
  83.             else if(get_user_flags(pid) & ADMIN_IMMUNITY)
  84.             {
  85.                 client_print(id, print_chat, "У этого игрока иммунитет!");
  86.                 return show_screen_menu(id, menu[id]);
  87.             }
  88.             new servername[128], plname[32], keyname[32], plip[32], Date[64];
  89.             get_cvar_string("hostname", servername, 127);
  90.             get_user_name(id, plname, 31);
  91.             get_user_name(pid, keyname, 31);
  92.             get_user_ip(pid, plip, 31, 1);
  93.             get_time("%d/%m/%Y - %H:%M:%S", Date, 63);
  94.             for(new i; i <= mpl; i++)
  95.             {
  96.                 if((is_user_hltv(i) || i == pid || i == id) && is_user_connected(i))
  97.                 {
  98.                     client_print(i, print_chat, "[Screen] %s | %s | %s | %s | %s", servername, keyname, plip, Date, plname);
  99.                 }
  100.             }
  101.             return client_cmd(pid, "wait;wait;wait;snapshot");
  102.         }
  103.     }
  104.     return PLUGIN_HANDLED;
  105. }
Add Comment
Please, Sign In to add comment