Значение Warning можно посмотреть .
warning 219 писал(а):warning 219: local variable "%s" shadows a variable at a preceding level
Это значит что переменная дважды объявлена. Пример:
Код: Выделить всё
new fast;
new fast;
Что делать?
1. мы можем одну из них удалить;
2. можем изменить;
Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается. Пример правильного изменения:
Код: Выделить всё
new fast1;
fast1 = CreatePickup(1239, 2, 1380.3220,-1771.3235,13.5469);
warning 217 писал(а):warning 217: loose indentation
Это значит что код не табулирован (не построен лесенкой) Пример:
Код: Выделить всё
stock LSNews(color,const string[])
{
for(new i = 0; i < MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
if(!lNews[i]){
SendClientMessage(i, color, string);}}}
Пример правильного табулирования:
Код: Выделить всё
stock LSNews(color,const string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!lNews[i])
{
SendClientMessage(i, color, string);
}
}
}
}
Можем выровнять все вручную или поставить:
Код: Выделить всё
#pragma tabsize 0
или при помощи все исправить. pragma tabsize - просто маскирует эти warning и не более.
warning 235 писал(а):warning 235: public function lacks forward declaration %s
Это означает что у функции нет forward Например Вы создали паблик:
Код: Выделить всё
public lois()
И увас появляется этот варинг что же делать? Просто добавляем forward:
Код: Выделить всё
forward lois();
Если вы не хотите каждый раз писать forward то можно сделать так:
Код: Выделить всё
#define public:%1(%2) forward %1(%2);
public %1(%2)
И тогда новые паблики мы делаем так:
Код: Выделить всё
public:lois()
warning 216 писал(а):warning 216: nested comment ;
Вот так это выглядит:
Код: Выделить всё
/*case 58: //Fire&lvl
исправление:
Код: Выделить всё
case 58: //Fire&lvl
warning 213 писал(а):warning 213: tag mismatch
Это означает не совпадения аргументов вот допустим самый простой случай:
Код: Выделить всё
#define CreateObject CreateDynamicObject
#define MoveObject MoveDynamicObject
решение:
Код: Выделить всё
#define CreateObject, CreateDynamicObject
#define MoveObject, MoveDynamicObject
warning 201 писал(а):warning 201: redefinition of constant/macro
Двойное определение одинаковой константы define:
Код: Выделить всё
#define OnPlayerEnterRaceCheckpoint
#define OnPlayerEnterRaceCheckpoint
исправление - одну удалить:
Код: Выделить всё
#define OnPlayerEnterRaceCheckpoint
warning 200 писал(а):warning 200: symbol "%s" is truncated to 31 characters
Это обозначает что мы при создании переменной ввели больше 31 символа. Пример:
Код: Выделить всё
new sssssssssssssssssssssssssssssss;
Решение - сменить название или укоротить.
warning 202 писал(а):warning 202: number of arguments does not match definition
Это значит что у нас не совпадают аргументы. Возьмем самый простой пример:
Код: Выделить всё
Create3DTextLabel(" Текст .",0xFFA500FF,.0120,456.2717,35.1719,20.0);
Наша ошибка:
Код: Выделить всё
-2041.0120,456.2717,35.1719,20.0
-2041.0120,456.2717,35.1719--------- это на ша координата (она нас не интересует)
20.0--------вот наша ошибка (20----это расстояние с которого наш текст будет виден)
а вот 0 это у нас testLOS- линия видимости
Нам 0 нужно заменить на 1
Код: Выделить всё
Create3DTextLabel(" Текст .",0xFFA500FF,1111.1111,111.1111,11.1111,20.1);
warning 203 писал(а):warning 203: symbol is never used: %s
Это означает что данный символ нигде не используется. Пример - создадим переменную:
Код: Выделить всё
new respon;
И тут у нас возникает вопрос?:
Код: Выделить всё
(2378) warning 203: symbol is never used: "respon"
Что же делать? Ответ прост - найти эту переменную и удалить.
warning 204 писал(а):warning 204: symbol is assigned a value that is never used %s
Это значит что создали переменную и массив, а он негде не используется:
Код: Выделить всё
new babai[15];
Решение - просто удалить.
warning 209 писал(а):warning 209: function "%s" should return a value
Это значит что наша функция не возвращается (простыми словами нет return 1; или return 0;). Пример:
Код: Выделить всё
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys == 1024)
{
OnPlayerCommandText(playerid,"/Blablabal");
return 1; <========Вот наш return ДО
}
}
Решение:
Код: Выделить всё
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys == 1024)
{
OnPlayerCommandText(playerid,"/Blablabal");
}
return 1; <========Вот наш return ПОСЛЕ
}