• 0
Sign in to follow this  
Followers 0
irus1an

[закрыто] Очень странная проблема. warning 213: tag mismatch

Question

Смотрите, если ставлю название энума диалогов E_DIALOGS, то в месте, где используются диалоги из этого энума происходят варнинги. Скрины (сюда не вставляются, сорри):
https://ibb.co/Mc3fKVq
https://ibb.co/qM0Pv4w

Если убрать из названия энума капслок (написать просто e_dialogs), то все нормально. В общем потестил, ошибка вылазит, если название начинается с большой буквы. e_DIALOGS проходит, а вот E_dialogs нет. Что за бред?
Еще, если закомменитировать строки, где варнинги происходят (ShowPlayerDialog), то варнинги пропадают (даже если название остается E_DIALOGS). Т.е. варнинги происходят, когда я использую элементы энума, например, DIALOG_REGISTER в ShowPlayerDialog.
Протестировал это все в new.pwn и варнинги все равно появляются.

Была мысль, вдруг в каком-то инклуде самповском уже есть энум E_DIALOGS, но почему тогда варнинги срабатывают и на другие названия, которые начинаются с большой буквы?

Share this post


Link to post
Share on other sites

7 answers to this question

  • 0

@irus1an возможно, это баг компилятора. Попробуйте использовать альтернативный компилятор , либо, если здесь не будет других ответов, обратиться на pro-pawn, там присутствует один из разработчиков альтернативного компилятора. Попробуйте кстати редактировать текст в стандартном редакторе

Share this post


Link to post
Share on other sites
  • 0
16 часов назад, DEST сказал:

@irus1an возможно, это баг компилятора. Попробуйте использовать альтернативный компилятор , либо, если здесь не будет других ответов, обратиться на pro-pawn, там присутствует один из разработчиков альтернативного компилятора. Попробуйте кстати редактировать текст в стандартном редакторе

Пробовал в стандартном редакторе - тоже самое.

Поставил последний компилятор от Zeex'a. Ошибка та же, но уже более содержательная:

C:\Users\blablabla : warning 213: tag mismatch: expected tag none ("_"), but found "E_DIALOGS"

Видел в интернете решение, перед переменными из энума ставить тег _:, напр,

ShowPlayerDialog(playerid, _:DIALOG_REGISTER и т.д.)

И это работает.. Но все-таки интересно, в чем тут дело. И что вообще значит этот пустой тег _:?

Edited by irus1an

Share this post


Link to post
Share on other sites
  • 0

Тэги это что-то вроде "типизации", если в native ShowPlayerDialog переменная без тега, аналогично _: , значит и передать ее нужно без тега.

Share this post


Link to post
Share on other sites
  • 0
15 часов назад, DEST сказал:

Тэги это что-то вроде "типизации", если в native ShowPlayerDialog переменная без тега, аналогично _: , значит и передать ее нужно без тега.

Так если я явно его не указываю, то почему он вместо меня что-то ставит (судя по тексту ошибки).

Share this post


Link to post
Share on other sites
  • 0

@irus1an вы использовали значение из enum, который имеет тег этого enum

Share this post


Link to post
Share on other sites
  • 0

@irus1an, а не пробовали задать значение по умолчанию для первого элемента перечисления?

Спойлер

enum E_DIALOGS {
	DIALOG0 = 0,
	DIALOG1,
	DIALOG2,
	...
};

 

 

Share this post


Link to post
Share on other sites
  • 0
7 часов назад, odosenok сказал:

@irus1an, а не пробовали задать значение по умолчанию для первого элемента перечисления?

  Код (открыть спойлер)


enum E_DIALOGS {
	DIALOG0 = 0,
	DIALOG1,
	DIALOG2,
	...
};

 

 

Пробовал. Не помогает. В общем, попробую достучаться до разработчика компилятора на том форуме.

Edited by irus1an

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Ruman
      By Ruman
      Здравствуйте! У меня тут одна проблема возникла, когда я написал RP команды такие как /me /ame /do /try /todo /n /s решил их протестировать но они не работали как будто я их и не добавлял. Пожалуйста, попытайтесь найти ошибочку.
       
      Код:
      С нетерпением жду ответа!
    • Mishura
      By Mishura
      Здравствуйте, делал я значит багажник для своей Копии R@dmir и возникли куча error. Такие как: (125020) : error 006: must be assigned to an array И (125011) : error 006: must be assigned to an array
       
      Строка 125020: bagaj[playerid] = fmt_text;
      Строка 125011: if(!rows) bagaj[playerid] = "";
       
      Помогите пожалуйста!