Пункты меню по разным флагам
BarD
Дата: Понедельник, 02.06.2014, 11:44:53 | Сообщение # 16
Сообщений: 943
Репутация: 137 [ +/- ]
Попробуй проставить PrintToChatAll("Этап"); между строчками, чтобы понять, на чем он стопарится)
Tokami
Дата: Понедельник, 02.06.2014, 12:28:46 | Сообщение # 17
Сообщений: 238
Репутация: 19 [ +/- ]
Jon4ik, скинь ты свой код я сделаю)
Jon4ik
Дата: Понедельник, 02.06.2014, 13:45:38 | Сообщение # 18
Сообщений: 278
Репутация: 7 [ +/- ]
Цитата Tokami (
)
скинь ты свой код я сделаю)
#include <sourcemod> public OnPluginStart() { RegConsoleCmd("test",Command); RegConsoleCmd("sm_test",Command); } public Action:Command(client,argc) { decl String:player[64],String:command[32]; GetCmdArg(1,command,sizeof(command)); GetCmdArg(2,player,sizeof(player)); { OpenMenu(client); } } OpenMenu(client) { new flags = GetUserFlagBits(client); new Handle:menu = CreatePanel(); SetMenuTitle(menu, "Menu"); AddMenuItem(menu, "", "votemute"); AddMenuItem(menu, "", "votekick"); AddMenuItem(menu, "", "voteban"); if (flags & ADMFLAG_RESERVATION) { AddMenuItem(menu, "", "Для админов"); } else AddMenuItem(menu, "", "test"); DisplayMenu(menu, client, 0); } public AccesMenu_handle(Handle:menu,MenuAction:action,client,slot) { if(action==MenuAction_Select) { switch(slot) { case 0: { PrintToChat(client, "\x02 Вы простой смертный"); OpenMenu(client); } case 1: { PrintToChat(client, "\x07e6e6fa Вы находитесь в наблюдении"); OpenMenu(client); } case 2: { PrintToChat(client, "\x07ff0033 Вы Имеете доступ (\x08adff2f60Reserved slots Флаг а\x07ff0033)"); OpenMenu(client); } case 3: { PrintToChat(client, "\x0700ffff Вы Имеете (\x08adff2f60Root\x0700ffff) доступ"); OpenMenu(client); } } } if (action == MenuAction_End) { CloseHandle(menu); return; } }
BarD
Дата: Понедельник, 02.06.2014, 14:22:30 | Сообщение # 19
Сообщений: 943
Репутация: 137 [ +/- ]
Код
new flags = GetUserFlagBits(client); new Handle:menu = CreatePanel(); - Откуда тут вообще панель, когда ты меню делаешь?) SetMenuTitle(menu, "Menu"); AddMenuItem(menu, "", "votemute"); AddMenuItem(menu, "", "votekick"); AddMenuItem(menu, "", "voteban"); if (flags & ADMFLAG_RESERVATION) { AddMenuItem(menu, "", "Для админов"); } else AddMenuItem(menu, "", "test"); DisplayMenu(menu, client, 0);
Вот так правильно: Код
new flags = GetUserFlagBits(client); new Handle:menu = CreateMenu(AccesMenu_handle); SetMenuTitle(menu, "Menu"); AddMenuItem(menu, "", "votemute"); AddMenuItem(menu, "", "votekick"); AddMenuItem(menu, "", "voteban"); if (flags & ADMFLAG_RESERVATION) { AddMenuItem(menu, "", "Для админов"); } else AddMenuItem(menu, "", "test"); DisplayMenu(menu, client, 0);
Добавь это в ской код и будет все хорошо!)
Jon4ik
Дата: Понедельник, 02.06.2014, 14:53:08 | Сообщение # 20
Сообщений: 278
Репутация: 7 [ +/- ]
BarD, А как теперь сделать, чтобы когда игрок жал Тест ему в чат писало тестовый пункт?А то щяс я жму тест и выполнятеся команда для админов
BarD
Дата: Понедельник, 02.06.2014, 15:16:33 | Сообщение # 21
Сообщений: 943
Репутация: 137 [ +/- ]
Можно сделать так: Код
new flags = GetUserFlagBits(client); new Handle:menu = CreateMenu(AccesMenu_handle); SetMenuTitle(menu, "Menu"); AddMenuItem(menu, "", "votemute"); AddMenuItem(menu, "", "votekick"); AddMenuItem(menu, "", "voteban"); if (flags & ADMFLAG_RESERVATION) { AddMenuItem(menu, "1", "Для админов"); } else AddMenuItem(menu, "2", "test"); DisplayMenu(menu, client, 0); и потом, где меню: if (option == 3) { new String:buffer[12]; GetMenuItem(menu, option, buffer, sizeof(buffer)); if (StrEqual(buffer, "1")) { //Тут если для админов } else if (StrEqual(buffer, "2")) { //Тут для игроков (Тест) } }
Может сработать)
Tokami
Дата: Понедельник, 02.06.2014, 15:18:41 | Сообщение # 22
Сообщений: 238
Репутация: 19 [ +/- ]
Jon4ik, а не легче сделать просто надпись тест белым цветом чтоб он знал что функция еще не доступна?) Код
AddMenuItem(menu, "", "test"), ITEMDRAW_DISABLED);
Помойму так я с меню не работаю ибо ненавижу его I Love Panel))
Сообщение отредактировал Tokami - Понедельник, 02.06.2014, 15:22:35
Jon4ik
Дата: Понедельник, 02.06.2014, 15:43:09 | Сообщение # 23
Сообщений: 278
Репутация: 7 [ +/- ]
Tokami, Нафиг мне её делать если она выключена ? BarD,
#include <sourcemod> public OnPluginStart() { RegConsoleCmd("test",Command); RegConsoleCmd("sm_test",Command); } public Action:Command(client,argc) { decl String:player[64],String:command[32]; GetCmdArg(1,command,sizeof(command)); GetCmdArg(2,player,sizeof(player)); { OpenMenu(client); } } OpenMenu(client) { new flags = GetUserFlagBits(client); new Handle:menu = CreateMenu(AccesMenu_handle); SetMenuTitle(menu, "Menu"); AddMenuItem(menu, "", "votemute"); AddMenuItem(menu, "", "votekick"); AddMenuItem(menu, "", "voteban"); if (flags & ADMFLAG_RESERVATION) { AddMenuItem(menu, "1", "Для админов"); } else AddMenuItem(menu, "2", "test"); AddMenuItem(menu, "", "noobs"); DisplayMenu(menu, client, 0); } public AccesMenu_handle(Handle:AccesMenu,MenuAction:action,client,slot) { if(action==MenuAction_Select) { switch(slot) { case 0: { PrintToChat(client, "\x02 Вы простой смертный"); OpenMenu(client); } case 1: { PrintToChat(client, "\x07ff0033 Вы простой смертный)"); OpenMenu(client); } case 2: { PrintToChat(client, "\x0700ffff Вы простой смертный"); OpenMenu(client); } case 3: { PrintToChat(client, "\x07e6e6fa Вы админ"); OpenMenu(client); } case 4: { PrintToChat(client, "!ban @all"); OpenMenu(client); } case 5: { PrintToChat(client, "test"); OpenMenu(client); } } } if (option == 3) { new String:buffer[12]; GetMenuItem(menu, option, buffer, sizeof(buffer)); if (StrEqual(buffer, "1")) { //Тут если для админов } else if (StrEqual(buffer, "2")) { //Тут для игроков (Тест) } if (action == MenuAction_End) { CloseHandle(AccesMenu); return; } }
и выдает при компиляции ошибки 3 ошибки выдаёт, что я не так сделал ?
Сообщение отредактировал Jon4ik - Понедельник, 02.06.2014, 15:43:38
Tokami
Дата: Понедельник, 02.06.2014, 16:01:37 | Сообщение # 24
Сообщений: 238
Репутация: 19 [ +/- ]
Jon4ik, ойй ужас) щас попробую сделать)Добавлено (02.06.2014, 16:01:37) --------------------------------------------- Ужаааас не могу кошмар зачем после каждый строчки OpenMenu(client);
Jon4ik
Дата: Понедельник, 02.06.2014, 16:03:30 | Сообщение # 25
Сообщений: 278
Репутация: 7 [ +/- ]
Цитата Tokami (
)
Ужаааас не могу кошмар зачем после каждый строчки OpenMenu(client);
Чтобы когда жмеш на пункт в меню,выполналась команда,снова меню открывалось
Tokami
Дата: Понедельник, 02.06.2014, 16:05:00 | Сообщение # 26
Сообщений: 238
Репутация: 19 [ +/- ]
Жееесть что ты вообще делаешь тут легче будет сначала писать чем твой бред переписыватьДобавлено (02.06.2014, 16:04:12) --------------------------------------------- Скажи суть плагина что он должен делать!
Добавлено (02.06.2014, 16:04:40) --------------------------------------------- Jon4ik, так если он не админ зачем ему открывать OpenMenu(client);
Добавлено (02.06.2014, 16:05:00) --------------------------------------------- а стоп надо я уже совсем полетел)
Jon4ik
Дата: Понедельник, 02.06.2014, 16:08:43 | Сообщение # 27
Сообщений: 278
Репутация: 7 [ +/- ]
Цитата Tokami (
)
Скажи суть плагина что он должен делать
я же писал суть: У меня есть меню: 1)Для игроков команда 2)Для игроков команда 3)для игроков команда 4)Для админов с флагом (a) команда 5)test На них забито: 1)votemute 2)votekick 3)voteban 4)команда для админа типо !votemap de_dust2 5)test И чтобы игрок без флага (a) жмет на 4) то он пишеть test а не то, что для админов(http://world-source.ru/forum/102-3672-22548-16-1401569767)
Tokami
Дата: Понедельник, 02.06.2014, 16:11:25 | Сообщение # 28
Сообщений: 238
Репутация: 19 [ +/- ]
Jon4ik, я так понимаю ты делал свой плагин что компилятор не ругался на ошибки а на работу плагина ваще пофиг?)):D
Jon4ik
Дата: Понедельник, 02.06.2014, 16:14:15 | Сообщение # 29
Сообщений: 278
Репутация: 7 [ +/- ]
Цитата Tokami (
)
я так понимаю ты делал свой плагин что компилятор не ругался на ошибки а на работу плагина ваще пофиг?)):D
я пытался, чтобы было всё нормас без ошибок компилятора и была норм плагина как я расписал
Tokami
Дата: Понедельник, 02.06.2014, 16:14:28 | Сообщение # 30
Сообщений: 238
Репутация: 19 [ +/- ]
Если игрок без флага а и жмет на 4 то ему пишет тест? а если флаг а есть то выполняется функция?