Предлагаю в этой теме собирать варинги и ошибки в Pawno + описание к ним.
Warnings:
[warning 203: symbol is never used: "Time"]
Символ (функция или переменная) нигде не используется. (имя символа в данном случае "Time").
Чтобы решить эту проблему, закройте функцию или переменную потоковым или строковым комментарием. Пример:
// new Time; // строка теперь игнорируется компилятором
/* MuFunc() // функция теперь игнорируется компилятором
{
// тело функции
}*/
Если работаете в павно, то весь закоментированный текст станет зеленым.
[warning 235: public function lacks forward declaration (symbol "MyFunc")]
Возникает если в скрипте есть не не объявленная public функция (в данном случае public MyFunc(var1,var2,...)), чтобы исправить, добавьте в начале скрипта строку:
forward MyFunc(var1,var2,...);
[warning 202: number of arguments does not match definition]
Не хватает параметров
Пример: Правильно: GivePlayerWeapon(playerid,4,1); Не правильно: GivePlayerWeapon(playerid,4);
[warning 217: loose indentation]
Пропущен отступ, не правильная расстановка табов, вроде бы вот так лечится:
#pragma tabsize 0 - после всех #define
[warning 225: unreachable code]
Недопустимый / Неправильный код.
Errors:
[error 025: function heading differs from prototype]
Возникает, если в заголовке функции (в forward) указаны не те переменные с которыми работает public функция. Пример:
forward MyFunc(var1,var2); // это не верно, надо forward MyFunc(str1,var2);
public MyFunc(str1, var2)
{ // тело функции }
[error 021: symbol already defined: "Omega"]
Символ (переменная или функция) уже определен, ( В данном случае Omega - имя символа) Пример:
new Omega; // вводим переменную. "Omega" - имя переменной
public Omega // "Omega" - имя функции
{ // тело функции }
Основные правила:
У функций и переменных не могут быть одинаковые имена!
Глобальные переменные не должны заново вводиться в теле функций!
Избегайте повторного введения переменной с одним именем в теле одной и той же функции!
[error 032: array index out of bounds (variable "Massiv")]
Номер определяемого элемента массива больше чем размер массива. (в данном случае массив Massiv) Пример:
new Massiv[5]; // создаем массив размером 5
{
// тело функции
Massiv[6] = 4; // В массиве нет 6 элемента, т.к. размер массива равен 5, это ошибка!
}
Важно!
Элементы любого массива номируются с 0, то есть если мы имеем массив размером N, то максимальный номер элемента будет равен N-1
[error 052: multi-dimensional arrays must be fully initialized]
Многомерные массивы должны быть полностью определены! Пример:
new massiv[5][2] = { // задаем массив massiv (5 - размер массива)
"P","A","W","N" }
1,2,3,и 4-ый элементы массива есть, пятый отсутствует, это ошибка!
Надо либо добавить пятый элемент { "P","A","W","N","O" }, либо уменьшить размер массива.
[error 018: initialization data exceeds declared size]
При инициализации данных был превышен объявленный размер. Пример:
new massiv[4][2] = { // задаем массив massiv (4 - размер массива)
"P","A","W","N","O" }
1,2,3,и 4-ый элементы массива есть, пятый лишний, т.к размер массива 4, это ошибка!
Надо либо убрать пятый элемент { "P","A","W","N" }, либо увеличить размер массива.
[fatal error 100: cannot read from file: "myfile"]
Возникает если компилятор не смог прочитать указанный файл (в данном случае myfile). Возможно файл отсутствует, поврежден или имеет неизвестный формат. Еще раз проверьте правильно ли вы подключаете файл.
#include <myfile> // Ищет и подключает файл из папки include
#include "myfile" // Ищет и подключает файл из папки include
#include "myfolder+myfile" // Ищет и подключает файл из папки include+myfolder (вместо + надо ставить / только в другую сторону.