Вопросы

Всем салам алейкум, хотел сделать чтобы, в admins были видны префиксы, но если их нет отображалось статичное название, написал такой легкий код, выдает ошибку 002
Ошибка

D:\jobs\archive\gamemodes\new.pwn(54968) : error 002: only a single statement (or expression) can follow each "case"
D:\jobs\archive\gamemodes\new.pwn(54968) : warning 215: expression has no effect

строка где выходит ошибка

format(str, sizeof(str), ""W"%i\t%s\t%s\t%d%s\n",i,player_name[i],Admin,PlayerInfo[i][pAdmin],TI[i][tAFK]>=3?("{ffa800} [AFK]"):("")),strcat(string,str);

весь код

CMD:admins(playerid) {
     if(PlayerInfo[playerid][pAdmin] < 1 && !PlayerInfo[playerid][pVips]) return true;
    new countleader = 0;
    new string[2000],str[156];
    new Admin[128];
    string = "ID\tНик\tДолжность\tУровень\n";
    foreach(new i:Player) {
        if(!IsPlayerConnected(i) || (!TI[i][tLogin]) || (PlayerInfo[i][pAdmin] <= 0)) continue;
        switch(PlayerInfo[playerid][pAdmin]) {
        case 1: Admin = "Младший Модератор";
        case 2: Admin = "Модератор";
        case 3: Admin = "Старший Модератор";
        case 4:
        {

            if(PlayerInfo[playerid][pMyPrefix])
            {
                format(Admin, sizeof Admin, "%s", PlayerInfo[playerid][pMyPrefix]);
            }
            else format(Admin, sizeof Admin, "Младший Администратор");
        }
        case 5:
        {

            if(PlayerInfo[playerid][pMyPrefix])
            {
                format(Admin, sizeof Admin, "%s", PlayerInfo[playerid][pMyPrefix]);
            }
            else format(Admin, sizeof Admin, "Администратор");
        }
        case 6:
        {

            if(PlayerInfo[playerid][pMyPrefix])
            {
                format(Admin, sizeof Admin, "%s", PlayerInfo[playerid][pMyPrefix]);
            }
            else format(Admin, sizeof Admin, "Старший Администратор");
        }
        case 7:
        {

            if(PlayerInfo[playerid][pMyPrefix])
            {
                format(Admin, sizeof Admin, "%s", PlayerInfo[playerid][pMyPrefix]);
            }
            else format(Admin, sizeof Admin, "Администратор 7 уровня");
        }
        format(str, sizeof(str), ""W"%i\t%s\t%s\t%d%s\n",i,player_name[i],Admin,PlayerInfo[i][pAdmin],TI[i][tAFK]>=3?("{ffa800} [AFK]"):("")),strcat(string,str);
        countleader++;
    }
    if(countleader > 0) {
        D(playerid, DIALOG_NONE, DSTH, ""P"Администрация",string, "Закрыть""");
        new str_adm[128];
        format(str_adm, sizeof(str_adm), "В сети "W"%i"G" администратор(ов)", countleader);
        SendOk(playerid,str_adm);
    }
    else D(playerid, DIALOG_NONE, DSM, ""P"Администрация",""W"Нет администраторов в сети""Закрыть""");
    return 1;
}

 

Поделиться сообщением


Ссылка на сообщение

1 ответ на этот вопрос

  • 0

@Атанияз, вырезка из документации:

  Цитата

The body of a switch statement may have an arbitrary number of case: labels, as long as the values of all constant-expressions are unique (after conversions/promotions). At most one default: label may be present (although nested switch statements may use their own default: labels or have case: labels whose constants are identical to the ones used in the enclosing switch).

Читать далее...  


Таким образом, в теле оператора switch могут быть только ключевые слова case и default. Об этом же написано в ошибке 002:

  Цитата
error 002: only a single statement (or expression) can follow each "case"
Читать далее...  

 

У вас же в теле оператора switch также присутствует следующее:

  Цитата
format(str, sizeof(str), ""W"%i\t%s\t%s\t%d%s\n",i,player_name[i],Admin,PlayerInfo[i][pAdmin],TI[i][tAFK]>=3?("{ffa800} [AFK]"):("")),strcat(string,str);
countleader++;

 

Читать далее...  

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • djxxx
      От djxxx
      приветствую всех.
       
      Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.
       
      Суть проблемы в том, что диалог не выравнивается под нужные показатели, а просто как будто находиться по середине, в диалоге используется \t, но они особо не помогают в решении, также не ровно.
       
      а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты
       
      Код такой:
      DialogAdmShop ( playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS, fmt_str, ""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\ "{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия", "Выбрать", "Закрыть" ); }  
      сток dialogadmshop:
      stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[]) {   if(style == 5)   {      ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...", "...", "...", "");    }   ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);   return 1; }