Текст без индекса в меню

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
И снова здравствуйте.
На днях столкнулся с проблемой. Необходимо было добавить пункт в меню белым текстом без индекса (то есть просто белым текстом написать без использования \n в прошлых пунктах).
Вот, как я попробовал: (пункт "за выполнение вы получите" должен быть белым без индекса)
PHP:
public void Menu_BattlePass_Tasks_Choosen(int client, int idChoose)
{
    char temp[1280];
    char temp2[128];
    hArray_Tasks_Name.GetString(idChoose, temp2, sizeof(temp2));
    Menu hMenu = new Menu(MenuHandler_BattlePass_Tasks_Choosen);
    Format(temp, sizeof(temp), "Battle Pass | Задание: %s [%i★]\nВаши звезды: %i★\n ", temp2, hArray_Tasks_Stars.Get(idChoose), player_info[client][Stars]);
    hMenu.SetTitle(temp);
    if(hArray_Tasks_Kills.Get(idChoose))
    {
        Format(temp, sizeof(temp), "Убийства: %i/%i", player_info[client][Kills], hArray_Tasks_Kills.Get(idChoose));
        hMenu.AddItem("", temp, ITEMDRAW_DISABLED);
    }
    Format(temp, sizeof(temp), "За выполнение вы получите: %i★\n ", hArray_Tasks_Stars.Get(idChoose));
    hMenu.AddItem("Text", temp);
    hMenu.AddItem("Give", "Выбрать это задание");
    hMenu.ExitBackButton = true;
    hMenu.Display(client, 0);
}

public int MenuHandler_BattlePass_Tasks_Choosen(Menu hMenu, MenuAction action, int client, int item)
{
    switch(action)
    {
        case MenuAction_DrawItem:
        {
            char info[128];
            hMenu.GetItem(item, info, sizeof(info));
            if(StrEqual(info, "Text"))
            {
                return ITEMDRAW_RAWLINE;
            }
        }
        case MenuAction_Cancel:
        {
            if(item == MenuCancel_ExitBack)
            {
                Menu_BattlePass_Tasks(client);
            }
        }
        case MenuAction_End:
        {
            hMenu.Close();
        }
    }
    return 0;
}

И получилось так:
csgo_le6Orhateh.png


Спасайте пожалуйста.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
DISABLED и означает, что текст будет белым цветом, но не значит, что индекс будет отсутствовать

Емнип, без индекса можно делать только в панелях (у меня в меню так не выходило, во всяком случае) или переводом строки.
Сообщения автоматически склеены:

А ты же вообще никаких флагов не ставил, чтобы текст был белым и без индекса.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Вообще лучше было бы сделать так:
C-подобный:
public void Menu_BattlePass_Tasks_Choosen(int client, int idChoose)
{
    char temp[1280], temp2[128];
    int kills = hArray_Tasks_Kills.Get(idChoose), stars = hArray_Tasks_Stars.Get(idChoose);
    FormatEx(temp, sizeof(temp), "За выполнение вы получите: %i★\n ", stars);
    Menu hMenu = new Menu(MenuHandler_BattlePass_Tasks_Choosen);
    hArray_Tasks_Name.GetString(idChoose, temp2, sizeof(temp2));
    hMenu.SetTitle("Battle Pass | Задание: %s [%i★]\nВаши звезды: %i★\n \n%s", temp2, stars, player_info[client][Stars], !kills ? temp : "");
    if(kills)
    {
        Format(temp, sizeof(temp), "Убийства: %i/%i\n%s", player_info[client][Kills], kills, temp);
        hMenu.AddItem("", temp, ITEMDRAW_DISABLED);
    }
    hMenu.AddItem("Give", "Выбрать это задание");
    hMenu.ExitBackButton = true;
    hMenu.Display(client, 0);
}

public int MenuHandler_BattlePass_Tasks_Choosen(Menu hMenu, MenuAction action, int client, int item)
{
    switch(action)
    {
        case MenuAction_Cancel:    if(item == MenuCancel_ExitBack) Menu_BattlePass_Tasks(client);
        case MenuAction_End:    hMenu.Close();
    }
    return 0;
}
 
Последнее редактирование:

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
  • Команда форума
  • #5
Я в хендлере меняю тип пункта
Увы, но в ксго такое не канает нормально. Или вообще с меню, а только лишь с панелями работает. Я уже создавал тему, где решение одно - отступы (\n).
 
Сверху Снизу