http://laska-samp.biz/articles/pawn-book/oshibki | |
°•°•° Проект SAMP - Romashka [0.3e] ™18+™ °•°•° :: Теория :: Pawn |
Это значит что переменная дважды объявлена.
Пример
new neka; new neka; |
Что же нам делать, а вот что: 1) мы можем одну из них удалить; 2) можем изменить;
Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается вот пример правильного изменения:
new neka1; neka1 = CreatePickup(1239, 2, 1380.3220,-1771.3235,13.5469); |
2)
Это значит что код не табулирован(код не построен лесенкой)
Пример:
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)
Это означает что у функции нету forward
Пример:
Вы создали паблик
public lol() |
И увас появляется этот варинг что же делать?
добавляем forward
forward lol();
public lol()
если вы не хотите каждый раз писать forward то можно сделать так:
#define public:%1(%2) forward %1(%2); public %1(%2) |
public:lol() |
Вот так это выглядит
/*case 458: // Fire&lvl |
case 458: // Fire&lvl |
5)
Это означает не совпадения аргументов
вот допустим самый простой случай:
#define CreateObject CreateDynamicObject #define MoveObject MoveDynamicObject |
решение простое
#define CreateObject, CreateDynamicObject #define MoveObject, MoveDynamicObject |
6)
Это означает что в дефайнах(define)
Пример:
#define OnPlayerEnterRaceCheckpoint #define OnPlayerEnterRaceCheckpoint |
7)
Это обозначает что мы при создании переменной ввели больше 31 символа
Пример:
Решение:
Просто сменить название или укоротить !
8)
Это значит что у нас не совпадают аргументы
Возьмем самый простой пример:
SendAdminMessage(COLOR_LIGHTRED, string, 5); |
Найдём
stock SendAdminMessage |
stock SendAdminMessage(color, string[])
|
Объясню как можно понятней и проще. Обратим внимание на эту строчку:
stock SendAdminMessage(color, string[]) |
9)
Это означает что данный символ нигде не используется
Пример :
Создадим допустим переменную
new respon; |
И тут у нас возникает
(1578) warning 203: symbol is never used: "respon"
Что же делать?
Ответ прост:
найти эту переменную и удалить
10)
Это значит что создали переменную и массив а он негде не используется
Пример:
new blabal[15];
Решения: просто удалить
11)
Это значит что наша функция не возвращается(простыми словами нету 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 ; );
|