Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

Требуется плагин, который запретит выбирать команду игрокам без флага

Статус пользователя biffick
сообщение 29.11.2017, 0:49
Сообщение #1
Стаж: 15 лет

Сообщений: 270
Благодарностей: 28
Полезность: < 0

Требуется плагин, который бы запретил выбирать команду игрокам, которые не имеют флага R.
Т.е. если есть у игрока флаг R, то он может выбрать команду, если флага R нет, то игроку выводится ошибка с определённым текстом (print_center).

Флаг желательно вывести в DEFINE.
Текст ошибки желательно вывести в DEFINE.

Кто напишет? Сколько стоить будет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Slavik
сообщение 29.11.2017, 2:56
Сообщение #2


Стаж: 12 лет

Сообщений: 185
Благодарностей: 13
Полезность: < 0

Код:
register_clcmd("chooseteam", "team")

public team(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_F))
{
client_print(id, print_chat, "only for vip")
return PLUGIN_HANDLED
}
}


Может так?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sorokin
сообщение 29.11.2017, 3:11
Сообщение #3
Стаж: 9 лет 5 месяцев

Сообщений: 427
Благодарности: выкл.

biffick, Код:
#include <amxmodx>

#define ACCESS_LEVEL ADMIN_LEVEL_C
#define ERROR_MESSAGE "Error: Bro! You != admin!"

public plugin_init()
{
register_plugin("Admin Choose Team", ".1a", "vk.com/posmeat");

register_message(get_user_msgid("ShowMenu"), "message_show_menu");
register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu");

register_clcmd("chooseteam", "lolkek");
register_clcmd("jointeam", "lolkek");
}

public lolkek(id)
{
#if defined ERROR_MESSAGE
if (!(get_user_flags(id) & ACCESS_LEVEL))
return client_print(id, print_center, ERROR_MESSAGE);
#endif

return PLUGIN_CONTINUE;
}

public message_show_menu(msgid, dest, id)
{
if (!(!get_user_team(id) && !(get_user_flags(id) & ACCESS_LEVEL)))
return PLUGIN_CONTINUE;

static team_select[] = "#Team_Select";
static menu_text_code[sizeof team_select];

get_msg_arg_string(4, menu_text_code, charsmax(menu_text_code));

if (!equal(menu_text_code, team_select))
return PLUGIN_CONTINUE;

return PLUGIN_HANDLED;
}

public message_vgui_menu(msgid, dest, id)
{
if (get_msg_arg_int(1) != 2 || !(!get_user_team(id) && !(get_user_flags(id) & ACCESS_LEVEL)))
return PLUGIN_CONTINUE;

return PLUGIN_HANDLED;
}


не тестировал, но должно работать

Отредактировал: Sorokin, - 29.11.2017, 3:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя biffick
сообщение 29.11.2017, 6:59
Сообщение #4
Стаж: 15 лет

Сообщений: 270
Благодарностей: 28
Полезность: < 0

Sorokin, спасибо за код.
Я немного его изменил (флаг и ошибку), больше ничего не менял, но даже имея флаг P, я не могу выбрать команду. Просто пропадает GUI выбора команды и всё. Что с флагом, что без флага.
И ещё блокируется просмотр карты в free look. Т.е. игрок из спектаторов не может "летать" по карте. Я думаю, что лучше сделать алгоритм подключения так: если нет флага #define ACCESS_LEVEL, то нужно не скрывать GUI выбора команды, а при выборе любой команды кидать в спектаторы.

Код
#include <amxmodx>

#define ACCESS_LEVEL    ADMIN_LEVEL_D
#define ERROR_MESSAGE    "Не зайдёшь!"

public plugin_init()
{
   register_plugin("Forbidden players", ".1a", "Sorokin");
    
   register_message(get_user_msgid("ShowMenu"), "message_show_menu");
   register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu");
    
   register_clcmd("chooseteam", "lolkek");
   register_clcmd("jointeam", "lolkek");
}

public lolkek(id)
{
   #if defined ERROR_MESSAGE
   if (!(get_user_flags(id) & ACCESS_LEVEL))
      return client_print(id, print_center, ERROR_MESSAGE);
   #endif
    
   return PLUGIN_CONTINUE;
}

public message_show_menu(msgid, dest, id)
{
   if (!(!get_user_team(id) && !(get_user_flags(id) & ACCESS_LEVEL)))
      return PLUGIN_CONTINUE;

   static team_select[] = "#Team_Select";
   static menu_text_code[sizeof team_select];
    
   get_msg_arg_string(4, menu_text_code, charsmax(menu_text_code));
    
   if (!equal(menu_text_code, team_select))
      return PLUGIN_CONTINUE;
    
   return PLUGIN_HANDLED;
}

public message_vgui_menu(msgid, dest, id)
{
   if (get_msg_arg_int(1) != 2 || !(!get_user_team(id) && !(get_user_flags(id) & ACCESS_LEVEL)))
      return PLUGIN_CONTINUE;

   return PLUGIN_HANDLED;
}


Отредактировал: biffick, - 29.11.2017, 7:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя biffick
сообщение 29.11.2017, 15:02
Сообщение #5
Стаж: 15 лет

Сообщений: 270
Благодарностей: 28
Полезность: < 0

Тему можно закрывать. Плагин написан. Спасибо!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: