Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

Страница 3 из 6«123456»
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » Создание Меню (CreatePanel, CreateMenu)
Создание Меню
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 [ +/- ]
Возможно ли создать меню/панель с простым (белым) текстом, при условии что оно должно полностью работать dumaem ?
Простой пример этому - меню радиокомманд.
starik verh
 
MongoL666 Дата: Понедельник, 04.11.2013, 17:29:46 | Сообщение # 36
Сообщений: 92
Репутация: -7 [ +/- ]
Можете сделать пример несложного меню с двумя тремя пунктами выбирая которые на игроке бы отражались команды.
Ну например:

МОЕ МЕНЮ
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
Репутация: -7 [ +/- ]
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
Репутация: -7 [ +/- ]
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
Репутация: -7 [ +/- ]
спасибо за понимание я подожду
 
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
Сообщений: 945
Репутация: 132 [ +/- ]
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
 
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » Создание Меню (CreatePanel, CreateMenu)
Страница 3 из 6«123456»
Поиск: