[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Counter Strike Source » Помощь » Ошибки при Компиляции SM Плагина
Ошибки при Компиляции SM Плагина
REgionДата: Суббота, 28.02.2015, 13:11 | Сообщение # 1
Сообщений: 63
Репутация: 21
Если в SourceMod плагине есть ошибки и вы попытаетесь его скомпилировать, то в черном окне должны появиться предупреждающие сообщения об этих ошибках. Сообщение содержит номер ошибки, ее текст, и номер строки, на которой она найдена. Но бывают такие случаи, когда в коде вообще нет видимых ошибок, но компилятор начинает ругаться с самой первой строки - может из-за того, что копировали/вставляли код из другого файла и это как-то на кодировку повлияло, или другая причина, не знаю, но это решит подобную проблему:

Код
1. Создать пустой текстовый документ   
2. Открыть его в другом текстовом редакторе, например, в wordpad'е или др.   
3. Вставить весь код и сохранить файл в стандартной кодировке   
4. Теперь можно переименовать его с другим расширением (.sp) и в Notepad++ или др. изменить кодировку на нужную   
5. Кинуть в папку "scripting" и пробовать скомпилировать - теперь должно получиться   

Может какие-то шаги и лишние, но это работает


error 001: expected token: ";", but found "}"
Нет точки с запятой в конце строки

error 017: undefined symbol "x"
Используемый символ не найден. Или забыли переменную объявить, или не подключили модуль. Если это какая-то SourceMod команда, например, CS_RespawnPlayer, то зайдите в API и введите её в поле "Search:". Выше над командой жирным шрифтом будет указано имя модуля, например, "cstrike", и чтобы его подключить, добавьте в самый верх кода #include <cstrike>

error 030: compound statement not closed at the end of file
Забыли закрыть скобку -> }

warning 217: loose indentation
Проблема с отступами. Внутри функции отступы должны быть сделаны или с помощью TAB, или с помощью пробелов - нельзя их смешивать, выберите что-то одно.

warning 203: symbol is never used: "x"
Это не такая уж и ошибка. Это значит, что переменная создана, но никогда не используется, и поэтому она является лишней в коде. Просто удалите её, если она не нужна.

warning 204: symbol is assigned a value that is never used: "x"
Почти то же самое, что и 203.
Переменная создана, ей присвоено значение, но далее она не используется.

fatal error 120: cannot read from file: "файл"
Не удалось подключить файл (#include) - скорее всего .sp или .inc файла просто нет

error 021: symbol already defined: "x"
Это значит, что переменная уже была объявлена (new, decl и тд), но вы снова пытаетесь это сделать.
Объявлять переменную нужно 1 раз.

warning 213: tag mismatch
Несовпадение тегов, например: new String:x[] = 1;
Переменная и её значение должны быть одинакового типа (строки, float, int, и тд).

warning 219: local variable "x" shadows a variable at a preceding level
Имя переменной уже занято одним из параметров функции, а вы создаёте переменную с этим же именем.

Код
my_func(xz)   
{   
       new xz = 1; // так нельзя, имя "xz" уже занято   
}


error 092: number of arguments does not match definition
Количество параметров (аргументов) не совпадает с объявленными в функции

warning 209: function "x" should return a value
Функция должна возвращать какое-либо значение с помощью команды return

error 032: array index out of bounds (variab;e "x")
Индекс массива выходит за пределы:

Код
new x[2];   
x[2] = 1; // ошибка, т.к. доступные индексы здесь от 0 до 1


error 009: invalid array size (negative, zero or out of bounds)
Неверный размер массива (отрицательный, ноль, или вне границ):

Код
new String:x[]; // не указан размер


warning 211: possibly unintended assignment
В условии использован символ присвоения, вместо сравнения, например: if (x = y)

error 027: invalid character constant
Скорее всего вместо символа / вы используете \
 
Форум » Counter Strike Source » Помощь » Ошибки при Компиляции SM Плагина
  • Страница 1 из 1
  • 1
Поиск: