Что же нам делать, а вот что: 1) мы можем одну из них удалить; 2) можем изменить;
Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается вот пример правильного изменения:
2)
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);
}
}
}
} |
Что же делать? ответ прост
1) мы можем делать все вручную
2) можем поставить #pragma tabsize 0
3) можем с помощи notepad++ все исправить (на форуме есть урок)
pragma tabsize - Он просто маскирует эти warning и не более
3)
warning 235: public function lacks forward declaration %s
Это означает что у функции нету forward
Пример:
Вы создали паблик
И увас появляется этот варинг что же делать?
добавляем forward
forward lol();
public lol() |
если вы не хотите каждый раз писать forward то можно сделать так:
#define public:%1(%2)
forward %1(%2); public %1(%2) |
и тогда новые паблики мы пишем так
4)
warning 216: nested comment ;
Вот так это выглядит
исправление
5)
warning 213: tag mismatch
Это означает не совпадения аргументов
вот допустим самый простой случай:
#define CreateObject CreateDynamicObject
#define MoveObject MoveDynamicObject |
решение простое
#define CreateObject, CreateDynamicObject
#define MoveObject, MoveDynamicObject |
6)
warning 201: redefinition of constant/macro
Это означает что в дефайнах(define)
Пример:
#define OnPlayerEnterRaceCheckpoint
#define OnPlayerEnterRaceCheckpoint |
Решение одну из двух удалить
7)
warning 200: symbol "%s" is truncated to 31 characters
Это обозначает что мы при создании переменной ввели больше 31 символа
Пример:
new sssssssssssssssssssssssssssssss;
Решение:
Просто сменить название или укоротить !
8)
warning 202: number of arguments does not match definition
Это значит что у нас не совпадают аргументы
Возьмем самый простой пример:
SendAdminMessage(COLOR_LIGHTRED, string, 5); |
Проблема заключается в 5, которая написана после string.
Найдём
stock SendAdminMessage(color, string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pAdmin] >= 1) { SendClientMessage(i, color, string); } } } }
|
Объясню как можно понятней и проще. Обратим внимание на эту строчку:
stock SendAdminMessage(color, string[]) |
Как мы видим используется только color и string[], следовательно 5 будет лишней.
9)
warning 203: symbol is never used: %s
Это означает что данный символ нигде не используется
Пример :
Создадим допустим переменную
И тут у нас возникает
(1578) warning 203: symbol is never used: "respon"
Что же делать?
Ответ прост:
найти эту переменную и удалить
10)
warning 204: symbol is assigned a value that is never used %s
Это значит что создали переменную и массив а он негде не используется
Пример:
new blabal[15];
Решения: просто удалить
11)
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 ПОСЛЕ} |
Общий список warning-ов
warning 200:
|
symbol "%s" is truncated to 31 characters
|
название переменной %s обрезается до 31 символа (укоротите название переменной %s);
|
warning 201:
|
redefinition of constant/macro (symbol "%s")
|
двойное определение одинаковой константы (смотреть #define);
|
warning 202:
|
number of arguments does not match definition
|
несовпадение количества аргументов;
|
warning 203:
|
symbol is never used: "%"
|
символ "%" нигде не используется;
|
warning 204:
|
symbol is assigned a value that is never used: "%s"
|
символ создан, ему присваивается значение, но далее он не используется;
|
warning 208:
|
function with tag result used before definition, forcing reparse
|
использование функции типа bool до её объявления в коде;
|
warning 209:
|
function "%s" should return a value
|
функция %s должна возвращать какое-либо значение (return 1; к примеру);
|
warning 211:
|
possibly unintended assignment
|
в условии использовано не сравнение, а присвоение;
|
warning 213:
|
tag mismatch
|
несовпадение тэгов;
|
warning 215:
|
expression has no effect
|
выражение не имеет эффекта;
|
warning 216:
|
nested comment
|
вложенный комментарий (вынесите его за функцию);
|
warning 217:
|
loose indentation
|
невыровненная строка (return должен быть строго под телом функции по левому краю, либо можно добавить в начало мода строку #pragma tabsize 0, но это не рекомендуется, так как иногда может не понимать и не прочитывать скобки "{" и "}");
|
warning 219:
|
local variable "%s" shadows a variable at a preceding level
|
переменная дважды объявлена;
|
warning 224:
|
indeterminate array size in "sizeof" expression (symbol "%s")
|
должен быть определён размер массива %s (если определён статиком, заменить дефайном);
|
warning 225: |
unreachable code |
невалидный код; |
warning 235:
|
public function lacks forward declaration (symbol "%s")
|
необходим форвард функции %s (перед функцией пишем forward %s ; );
|