PDA

Просмотр полной версии : [Вопрос] warning 213: tag mismatch: expected tag "bool", but found none ("_")



Leogin
07.06.2022, 20:39
Привет ребята. Подскажите как решить проблему, использую код:


enum Testing {
e_None = 0,
e_Proverka
};

Тут нет ошибки, на e_Proverka

test[playerid][_:e_Proverka] = true;

Но тут ругает, при том если использовать в первой массиве, не будет такого

if (test[playerid][_:e_Proverka] == true)
{
//
}

Как решить ошибку?

Shaolinka
08.06.2022, 18:45
enum Testing {
e_None = 0,
bool: e_Proverka
};

Leogin
08.06.2022, 20:57
Спасибо, странно это как-то работает.

Выручил очень :music:

Shaolinka
09.06.2022, 01:12
Не странно, а так, как свойственно. Стоит изучить что такое тэги и с чем их едят, тогда подобных вопросов не будет возникать

Leogin
09.06.2022, 03:29
Не знал что теги нужно применять еще в индексах, помимо типа массива, с учетом что массив создан


new bool:test[MAX_PLAYER][2];

Идет встречный вопрос, почему тут нет ошибок?

test[playerid][_:e_Proverka] = true;

Но в сравнение есть


Это массив не емунинатора Testing, а простой двумерный.

Shaolinka
09.06.2022, 04:34
А в чём соль пропускать тэг? Определись что хочешь наконец: енум с двумя булевыми значениями, который в конечном итоге станет частью резервуара(которого, к слову, нет нужды объявлять булевым, по той причине, что идёт обращение к структуре непосредственно) или булевый, двумерный массив, вторая мера которого требует int значения для обращения и bool для присвоения.

DeimoS
09.06.2022, 10:51
Не знал что теги нужно применять еще в индексах, помимо типа массива, с учетом что массив создан

Так ты сам сообщаешь компилятору о том, что для конкретного индекса ты ожидаешь увидеть данные с конкретным тэгом, а потом удивляешься, что компилятор требует от тебя этот самый тег :)

Если хотелось обнулить тег, то делать это стоило так:

test[playerid][e_Proverka] = _:true;

А условие можно писать так:
// if (test[playerid][e_Proverka] == _:true)
if (test[playerid][e_Proverka])
{
//
}



// if (test[playerid][e_Proverka] == _:false)
if (!test[playerid][e_Proverka])
{
//
}

Хотя вообще в Pawn для констант "true" и "false" тег "bool" не установлен по умолчанию. Так что странно, что у тебя возникло это предупреждение.