Выскакивает warning 213

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
13
Реакции
-1
Ошибка
warning 213: tag mismatch
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
//Получаю значение кваров из cfg файла:

n_Cvars[4] = get_cvar_num("color_informer_red")
n_Cvars[5] = get_cvar_num("color_informer_green")
n_Cvars[6] = get_cvar_num("color_informer_blue")
n_Cvars[7] = get_cvar_float("position_informer_x") //Строка 50
n_Cvars[8] = get_cvar_float("position_informer_y") //Строка 51

//Вывожу их в HUD сообщении:
set_hudmessage(n_Cvars[4], n_Cvars[5], n_Cvars[6], n_Cvars[7], n_Cvars[8], 0, 0.0, 0.8, 0.2, 0.2, -1) //Строка 176

//Компилятор выдает вот такие ошибки:
1.9.0\informer.sma(50 -- 51) : warning 213: tag mismatch
1.9.0\informer.sma(51 -- 52) : warning 213: tag mismatch
1.9.0\informer.sma(176) : warning 213: tag mismatch
1.9.0\informer.sma(176) : warning 213: tag mismatch
Насколько я знаю, то get_cvar_num - это целое число, а get_cvar_float - дробной. Соответственно у меня значения position_informer_x = 0.005 / position_informer_y = 0.15, а остальные квары = в целых числах. Почему появляется данный варнинг и как его исправить?
 
В этой теме было размещено решение! Перейти к решению.

Ayk

Сообщения
763
Реакции
478
Помог
19 раз(а)
У тебя n_Cvars инт.
 
Сообщения
443
Реакции
319
Помог
13 раз(а)
_:, any:, Float:.
 
Сообщения
13
Реакции
-1
Что-то не понял о чем речь.

У меня new n_Cvars[10], вместо new надо что-то другое?
 
Сообщения
13
Реакции
-1
PHP:
// Сделал вот так:
Float:n_Cvars[7] = get_cvar_float("position_informer_x")
Float:n_Cvars[8] = get_cvar_float("position_informer_y")

// Появились вот такие варнинги:
warning 221: label name "Float" shadows tag name
warning 213: tag mismatch


set_hudmessage(n_Cvars[4], n_Cvars[5], n_Cvars[6], Float:n_Cvars[7], Float:n_Cvars[8], 0, 0.0, 0.8, 0.2, 0.2, -1) // Здесь больше нет варнингов
 
Сообщения
443
Реакции
319
Помог
13 раз(а)
a[0] = _:get...
 
Последнее редактирование:
Сообщения
13
Реакции
-1
Всё равно не понятно о чем речь идет...


PHP:
// Так тоже не правильно =(
n_Cvars[7] = Float:get_cvar_float("position_informer_x")
n_Cvars[8] = Float:get_cvar_float("position_informer_y")
 
Сообщения
1,055
Реакции
212
Предупреждения
9
Помог
6 раз(а)
У тебя весь массив int, сделай лучше enum (погугли), там ты сможешь и int и float записать
 
Сообщения
500
Реакции
275
Помог
6 раз(а)
У меня new n_Cvars[10], вместо new надо что-то другое?
new any:n_Cvars[10]
Тег any: означает, что в массиве могут использоваться любые значения (Float (дробные), int (целые), bool (булевые) и т. п.)
 
Последнее редактирование:
Сообщения
500
Реакции
275
Помог
6 раз(а)
А если с энумом, то вот так:
Код:
enum CvarsDataStruct {
    Float:CVAR_1, // Это нулевая ячейка массива. Именовать можно как угодно. CVAR_1 - просто пример.
    bool:CVAR_2, // Это ячейка 1. И т. д.
    CVAR_3
}

new eCvarsData[CvarsDataStruct]
И уже в получении и подстановке используете eCvarsData[CVAR_1], eCvarsData[CVAR_2] и т. д.
 
Последнее редактирование:
Сообщения
443
Реакции
319
Помог
13 раз(а)
useless
 
Последнее редактирование:
Сообщения
13
Реакции
-1
new any:n_Cvars[10]
Тег any: означает, что в массиве могут использоваться любые значения (Float (дробные), int (целые), bool (булевые) и т. п.)
Сделал вот так. Спасибо большое.


А если с энумом, то вот так:
Код:
enum CvarsDataStruct {
    Float:CVAR_1, // Это нулевая ячейка массива. Именовать можно как угодно. CVAR_1 - просто пример.
    bool:CVAR_2, // Это ячейка 1. И т. д.
    CVAR_3
}

new eCvarsData[CvarsDataStruct]
И уже в получении и подстановке используете eCvarsData[CVAR_1], eCvarsData[CVAR_2] и т. д.
Я энумом мне кажется делать квары на сервере не очень удобно будет, тк их может быть и 50, и 100. Знал бы как поставить спасибо, поставил бы. А так пока что просто на словах могу!)
 
Сообщения
500
Реакции
275
Помог
6 раз(а)
butkov34, с энумом наоборот лучше, чем магические числа использовать. В вашем варианте могло бы всё выглядеть примерно так:
Код:
set_hudmessage(eCvarsData[CVAR_COLOR_R], eCvarsData[CVAR_COLOR_G], eCvarsData[CVAR_COLOR_B], Float:eCvarsData[CVAR_POS_X], Float:eCvarsData[CVAR_POS_Y], 0, 0.0, 0.8, 0.2, 0.2, -1)
Сразу понятно где что и намного удобнее в использовании.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу