Создание Меню
| |
Intel9077
|
Дата: Воскресенье, 14.04.2013, 18:26:53 | Сообщение # 31 |
|
Сообщений: 2
Репутация: 0 [ +/- ]
|
|
Можно ли сделать в меню больше 7 строчек?
|
|
| |
хвостег
|
Дата: Понедельник, 15.04.2013, 14:28:01 | Сообщение # 32 |
|
Сообщений: 161
Репутация: 53 [ +/- ]
|
|
Можно.
SetMenuPagination(menu, MENU_NO_PAGINATION);
Добавлено (15.04.2013, 14:28:01) --------------------------------------------- Подскажите. Сколько символов можно уместить на одной странице меню? Как узнать эту величину и возможно ли ее изменить? Мне нужно как-то запихнуть на одну страницу 512 символов. Надеюсь на вашу помощь!
Сообщение отредактировал хвостег - Понедельник, 15.04.2013, 14:32:34 |
|
| |
Intel9077
|
Дата: Понедельник, 15.04.2013, 14:58:07 | Сообщение # 33 |
|
Сообщений: 2
Репутация: 0 [ +/- ]
|
|
после того как нажимаю на 8 строчку меню автоматически закрывается и эта кнопка не действительна
|
|
| |
david9010
|
Дата: Четверг, 04.07.2013, 22:27:20 | Сообщение # 34 |
|
Сообщений: 2
Репутация: 0 [ +/- ]
|
|
Как сделать меню вот я для джайла хочу чтоб в меню было сменить цвет игроку и там были цвета
|
|
| |
vanbka9
|
Дата: Суббота, 31.08.2013, 13:06:50 | Сообщение # 35 |
|
Сообщений: 11
Репутация: 2 [ +/- ]
|
|
Возможно ли создать меню/панель с простым (белым) текстом, при условии что оно должно полностью работать ? Простой пример этому - меню радиокомманд.
|
|
| |
MongoL666
|
Дата: Понедельник, 04.11.2013, 17:29:46 | Сообщение # 36 |
|
Сообщений: 92
Репутация: -9 [ +/- ]
|
|
Можете сделать пример несложного меню с двумя тремя пунктами выбирая которые на игроке бы отражались команды. Ну например:
МОЕ МЕНЮ 1.Убить себя 2.Сжечь себя 3.Взорвать себя
0.Выход
Пример необходим мне для того чтобы понять как выставить в меню команды так чтобы они правельно выполнялись на игроке,который выбрал пункт меню.
|
|
| |
king(rus)
|
Дата: Понедельник, 04.11.2013, 19:15:17 | Сообщение # 37 |
|
Сообщений: 109
Репутация: 2 [ +/- ]
|
|
Код #include <sourcemod> #pragma tabsize 0 public OnPluginStart() { RegConsoleCmd("Menu", Menu_Open); }
public Action:Menu_Open(iClient, args) { if ( iClient == 0 ) { PrintToServer("Only Client"); return Plugin_Handled; } ShowMyMenu(iClient) return Plugin_Handled; }
ShowMyMenu(iClient) { new Handle:hMenu = CreateMenu(Handle_MyMenu1); SetMenuTitle(hMenu, "Меню \nВыберите: \n"); AddMenuItem(hMenu, NULL_STRING, "Сколко будет 2 + 2?"); DisplayMenu(hMenu, iClient, MENU_TIME_FOREVER); }
public Handle_MyMenu1(Handle:hMenu, MenuAction:action, iClient, iSlot) { if ( action == MenuAction_Select ) { if ( iSlot == 0 ) { new a = 2; new b = 2; new c = a + b; PrintToChat(iClient, "Ответ: %d", c); ShowMyMenu(iClient); } } else if ( action == MenuAction_End ) { CloseHandle(hMenu); } } Вот. Вводишь в консоль "Menu" и видишь.
Сообщение отредактировал king(rus) - Понедельник, 04.11.2013, 19:16:07 |
|
| |
MongoL666
|
Дата: Понедельник, 04.11.2013, 22:22:00 | Сообщение # 38 |
|
Сообщений: 92
Репутация: -9 [ +/- ]
|
|
king(rus), Разве я это просил? Как вывести меню я знаю и умею, а вот как сделать выполнение команды после выбранного пункта меню??? В примере что в первом посте я не понял, так как там прост опишет вчате какой пункт выбран, а у тебя ваще не понято чтото считает там ??? Мне бы самое нубское меню простое до тупизма, как я и написал выше.
|
|
| |
king(rus)
|
Дата: Понедельник, 04.11.2013, 22:53:57 | Сообщение # 39 |
|
Сообщений: 109
Репутация: 2 [ +/- ]
|
|
Лови пример: Код #include <sourcemod> #pragma tabsize 0
public OnPluginStart() { RegConsoleCmd("test_kick", test); }
public Action:test(client, args) { if (client > 0 && args < 1) ShowMyMenuis(client); return Plugin_Handled; }
ShowMyMenuis(client) { new Handle:hMenu = CreateMenu(Select_Menu01); SetMenuTitle(hMenu, "МОЁ МЕНЮ \n \n"); AddMenuItem(hMenu, NULL_STRING, "Кикнуть игрока"); DisplayMenu(hMenu, client, MENU_TIME_FOREVER); } public Select_Menu01(Handle:hMenu, MenuAction:action, client, iSlot) { if ( action == MenuAction_Select ) { if ( iSlot == 0 ) { ShowMyMenu(client); } } else if ( action == MenuAction_End ) { CloseHandle(hMenu); } }
ShowMyMenu(client) { new Handle:hMenu = CreateMenu(Select_Menu); SetMenuTitle(hMenu, "Выберите игрока:\n \n"); decl String:userid[15], String:name[32]; for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i)) { IntToString(GetClientUserId(i), userid, 15); GetClientName(i, name, 32); AddMenuItem(hMenu, userid, name); } } DisplayMenu(hMenu, client, 0); }
public Select_Menu(Handle:hMenu, MenuAction:action, client, iSlot) { if (action == MenuAction_End) { CloseHandle(hMenu); return; } if (action != MenuAction_Select) return; decl String:userid[15]; GetMenuItem(hMenu, iSlot, userid, 15); new target = GetClientOfUserId(StringToInt(userid)); if (target > 0) { decl String:name[MAX_NAME_LENGTH]; GetClientName(target, name, sizeof(name)); KickClient(target, "Проверка"); PrintToChatAll("\x01[Администратор] \x04Кикнул игрока %s", name); } else PrintToChat(client, "Игрок не найден (вышел с сервера)"); ShowMyMenuis(client); }
Добавлено (04.11.2013, 22:53:57) --------------------------------------------- А вот убить, сжечь и т.д. вытяни из исходников самого SourceMod. Заодно научишься читать чужие плагины.
Сообщение отредактировал king(rus) - Понедельник, 04.11.2013, 22:54:34 |
|
| |
MongoL666
|
Дата: Понедельник, 04.11.2013, 23:37:12 | Сообщение # 40 |
|
Сообщений: 92
Репутация: -9 [ +/- ]
|
|
king(rus), Этовсе очень здорово, но видимо ты не можешь понять что мне нужно! Зачем ты нагружаешь меню всякими админскими командами??? Я же прошу простое меня для простого игрока с тремя пунктами (спецально чтобы я смог понять что к чему) и чтобы команды выполнялиь на игроке не админом. Понимаешь? Самое простое меню. Ты либо не сам эти меню пишешь, либо не понимаешь что я хочу. Если можешь сделай пожалуйста как я описал
МОЕ МЕНЮ 1.Убить себя 2.Сжечь себя 3.Взорвать себя
0.Выход
команды можешь любые, тока чтобы активировались самим игроком и на нем же использовались.
|
|
| |
king(rus)
|
Дата: Вторник, 05.11.2013, 00:55:08 | Сообщение # 41 |
|
Сообщений: 109
Репутация: 2 [ +/- ]
|
|
Дак ты пиши конкретнее, жди, напишу
|
|
| |
MongoL666
|
Дата: Вторник, 05.11.2013, 01:53:27 | Сообщение # 42 |
|
Сообщений: 92
Репутация: -9 [ +/- ]
|
|
спасибо за понимание я подожду
|
|
| |
king(rus)
|
Дата: Вторник, 05.11.2013, 02:03:10 | Сообщение # 43 |
|
Сообщений: 109
Репутация: 2 [ +/- ]
|
|
Код #pragma tabsize 0 #include <sourcemod> #include <sdktools>
public OnPluginStart() { RegConsoleCmd("MyMenu", MyMenu_Command); }
PerformSlay(iClient) { ForcePlayerSuicide(iClient); }
PerformBurn(iClient, Float:seconds) { IgniteEntity(iClient, seconds); }
public Action:MyMenu_Command(iClient, args) { if ( iClient == 0 ) { PrintToServer("Only Client Console and Chat"); return Plugin_Handled; } ShowMyMenuClient(iClient); return Plugin_Handled; }
ShowMyMenuClient(iClient) { new Handle:hMenu = CreateMenu(Handle_MyMenu1); SetMenuTitle(hMenu, "Меню игроков \n \n"); AddMenuItem(hMenu, NULL_STRING, "Убить себя"); AddMenuItem(hMenu, NULL_STRING, "Сжечь себя"); DisplayMenu(hMenu, iClient, MENU_TIME_FOREVER); } public Handle_MyMenu1(Handle:hMenu, MenuAction:action, iClient, iSlot) { if ( action == MenuAction_Select ) { if ( iSlot == 0 ) { PerformSlay(iClient); ShowMyMenuClient(iClient); PrintToChat(iClient, "[Меню]Вы убили себя"); } else if ( iSlot == 1 ) { PerformBurn(iClient, 20.0); ShowMyMenuClient(iClient); } } }
Вот. Mymenu в консоль, надеюсь двух пунктов хватит. И как с тобой можно связаться? Скайп?
Сообщение отредактировал king(rus) - Вторник, 05.11.2013, 02:05:24 |
|
| |
BarD
|
Дата: Пятница, 14.02.2014, 15:03:52 | Сообщение # 44 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
vanbka9, используй Код new Handle:panel = CreatePanel(MenuStyle_Radio = 2); Вроде должно работать
|
|
| |
Admin8363
|
Дата: Понедельник, 17.02.2014, 18:58:29 | Сообщение # 45 |
|
Сообщений: 1
Репутация: 0 [ +/- ]
|
|
Ребят скажите Как сделать что бы Открывалось не вводе в консоле Test (Примерно) А допустим в чате !test
Код #include <sourcemod>
public OnPluginStart() { RegConsoleCmd( "say", CommandSay ); RegConsoleCmd( "say_team", CommandSay ); } public Action:CommandSay(client, args) { if (client > 0 && args < 1 ) ShowMyMenu(client); return Plugin_Handled; { new String:text[192]; GetCmdArgString(text, sizeof(text));
new startidx = 0; if (text[0] == '"') { startidx = 1;
new len = strlen(text); if (text[len-1] == '"') { text[len-1] = '\0'; } }
if(StrEqual(text[startidx], "!adm")) }
ShowMyMenu(client) { new Handle:menu = CreatePanel(); SetPanelTitle(panel, "Администраторы:\n \n"); DrawPanelItem(panel, "Конфиг \n \n"); DrewPanelItem(panel, "Выход"); SendPanelToClient(panel, client, Select_Panel, 0); CloseHandle(panel); }
public Select_Panel(Handle:panel, MenuAction:action, client, option) { if (action == MenuAction_Select) { PrintToChat(client, "Номер выбранной опции: %d", option); if (option < 2) ShowMyPanel(client); } }
Сообщение отредактировал Admin8363 - Понедельник, 17.02.2014, 18:59:48 |
|
| |
|