Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.49 KB | None | 0 0
  1. const
  2.     MAX_BOT_REQUEST = 3,            // Максимальное кол-во запросов для бота
  3.     MAX_BOT_REQUEST_LENGTH = 8;        // Максимальная длина запросов
  4.  
  5. new
  6.     ADMIN_BOT_SUPPORT[MAX_BOT_REQUEST][MAX_BOT_REQUEST_LENGTH] =        // Сами запросы
  7.     {  
  8.         "/mute",
  9.         "/prison",
  10.         "/jail"
  11.     },
  12.     ADMIN_BOT_TEXT[128]; // Массив с хранением полного запроса (причина/ник)  
  13.  
  14. CMD:admin(playerid, params[])
  15. {
  16.     if(/*проверка на администратора*/)
  17.     {
  18.         if(!(0 < strlen(params) < 90))
  19.             return SendClientMessage(playerid, -1, !"Используйте больше 1 символа и меньше 90");
  20.  
  21.         new
  22.             string[128];
  23.  
  24.         format(string, sizeof(string), "[A] %s [%d]: %s", /*Массив с ником админа*/, playerid, params);
  25.         SendAdminMessage(-1, string);
  26.  
  27.         for(new k = MAX_BOT_REQUEST-1; k != -1; k--)                         // Перебираем все существующие запросы
  28.         {
  29.             if(strfind(params, ADMIN_BOT_SUPPORT[k], true) != -1)                // Смотрим, присутствуют ли в тексте
  30.             {
  31.                 strdel(params, 0, strfind(params, ADMIN_BOT_SUPPORT[k], true)); // Если да, то удаляем всё, до найденного запроса
  32.                 format(ADMIN_BOT_TEXT, sizeof(ADMIN_BOT_TEXT), "%s // %s", params, /*Массив с ником админа*/);     // Сохраним запрос в массив
  33.                 format(string, sizeof(string), "%s запросил помощь о выдаче наказания. Одобрить Y, отказать N", /*Массив с ником админа*/);
  34.                 SendAdminMessage(-1 , string);                     // Отправим текст администраторам.
  35.                 break; // Обрываем цикл, после найденного запроса.
  36.             }
  37.         }
  38.     }
  39.     return 1;
  40. }
  41.  
  42. if(newkeys == KEY_YES) // Если нажали Y
  43. {
  44.     if(ADMIN_BOT_TEXT[0] != '\0')
  45.     {
  46.         if(/*Проверка на администратора*/)
  47.         {
  48.             PC_EmulateCommand(playerid, ADMIN_BOT_TEXT); // Отправим запрос
  49.             ADMIN_BOT_TEXT[0] = EOS; // Обнулим массив.
  50.         }
  51.     }    
  52. }
  53.  
  54. else if(newkeys == KEY_NO) // Если нажали N
  55. {
  56.     if(ADMIN_BOT_TEXT[0] != '\0')
  57.     {
  58.         if(/*Проверка на администратора*/)
  59.         {
  60.             new
  61.                 string[(48 + MAX_PLAYER_NAME + 1) - 2];
  62.  
  63.             format(string, sizeof(string), "[A] Администратор %s отказал в запросе о помощи", /*Массив с ником админа*/);
  64.             SendAdminMessage(-1, string);
  65.             ADMIN_BOT_TEXT[0] = EOS;
  66.         }
  67.     }
  68. }  
  69.  
  70. new
  71.     Iterator:Connect_Admin<MAX_PLAYERS>; // Итератор , где будем хранить всех администраторов  
  72.  
  73.  
  74. if(!Iter_Contains(Connect_Admin, /*админ*/)) Iter_Add(Connect_Admin, /*админ*/);
  75.  
  76.  
  77. if(Iter_Contains(Connect_Admin, /*админ*/)) Iter_Remove(Connect_Admin, /*админ*/);  
  78.  
  79. stock SendAdminMessage(color, const string[])
  80. {
  81.     foreach(new i : Connect_Admin)
  82.     {
  83.         SendClientMessage(i, color, string);
  84.     }
  85.     return 1;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement