Ошибки при Компиляции SM Плагина
|
|
_wS_
|
Дата: Четверг, 21.06.2012, 00:39:31 | Сообщение # 1 |
|
Если в SourceMod плагине есть ошибки и вы попытаетесь его скомпилировать, то в черном окне должны появиться предупреждающие сообщения об этих ошибках. Сообщение содержит номер ошибки, ее текст, и номер строки, на которой она найдена. Но бывают такие случаи, когда в коде вообще нет видимых ошибок, но компилятор начинает ругаться с самой первой строки - может из-за того, что копировали/вставляли код из другого файла и это как-то на кодировку повлияло, или другая причина, не знаю, но это решит подобную проблему:
Code 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 Имя переменной уже занято одним из параметров функции, а вы создаёте переменную с этим же именем.
Code 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") Индекс массива выходит за пределы:
Code new x[2]; x[2] = 1; // ошибка, т.к. доступные индексы здесь от 0 до 1 error 009: invalid array size (negative, zero or out of bounds) Неверный размер массива (отрицательный, ноль, или вне границ):
Code new String:x[]; // не указан размер warning 211: possibly unintended assignment В условии использован символ присвоения, вместо сравнения, например: if (x = y)
error 027: invalid character constant Скорее всего вместо символа / вы используете \
|
|
| |
М9сНиК
|
Дата: Четверг, 21.06.2012, 12:12:30 | Сообщение # 2 |
|
Сообщений: 61
Репутация: 0 [ +/- ]
|
|
тут не все ошибки
|
|
| |
_wS_
|
Дата: Четверг, 21.06.2012, 12:26:08 | Сообщение # 3 |
|
Знаю, но в том .txt что ты дал, номера бывают не совпадают с теми, которые компилятор выдает. Эти ошибки, вроде более популярны, постепенно буду обновлять список (помощь не помешает).
|
|
| |
М9сНиК
|
Дата: Четверг, 21.06.2012, 14:02:07 | Сообщение # 4 |
|
Сообщений: 61
Репутация: 0 [ +/- ]
|
|
ну я в июле приеду и буду помогать. Как бы вы мне помогли и я хочу помочь вам
|
|
| |
siver
|
Дата: Вторник, 24.07.2012, 20:04:35 | Сообщение # 5 |
|
Сообщений: 28
Репутация: 0 [ +/- ]
|
|
Большое спасибо,если бы не этот сборник ошибок,я так бы и не понял принципы работы некоторых вещей.
|
|
| |
LightGreen
|
Дата: Воскресенье, 20.01.2013, 12:40:01 | Сообщение # 6 |
|
Сообщений: 35
Репутация: 1 [ +/- ]
|
|
error 029 - invalid expression, assumed zero (попытались сложить пустоту, по крайней мере мне так кажется, и после исправлений все заработало)(путь исправления: присвоить пременной какое либо значение)
|
|
| |
panorama
|
Дата: Вторник, 09.07.2013, 16:56:26 | Сообщение # 7 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Спасибо половина ошибок решил )
|
|
| |
|
DantE6828
|
Дата: Четверг, 12.09.2013, 11:53:43 | Сообщение # 9 |
|
Сообщений: 16
Репутация: 0 [ +/- ]
|
|
Извините, что значит ошибка 037 invalid string (possibly non-terminated string)?
Сообщение отредактировал DantE6828 - Четверг, 12.09.2013, 11:56:54 |
|
| |
Scarface_slv
|
Дата: Четверг, 12.09.2013, 13:45:53 | Сообщение # 10 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
error 037: invalid string (possibly non-terminated string) Походу в какой то строке забыл символ " PrintToChatAll("test) - так ошибка, должно быть так PrintToChatAll("test")
|
|
| |
Sony_uw
|
Дата: Суббота, 05.10.2013, 23:31:13 | Сообщение # 11 |
|
Сообщений: 10
Репутация: 0 [ +/- ]
|
|
Код decl String:name[MAX_NAME_LENGTH]; new String:FilterName[][]={"www.club-astr.com", "zloy.pl.ua", "marcoserv.ru"}; new String:RS_name[]="redstar-servers.com"; GetClientName(client, name, MAX_NAME_LENGTH); if (name == FilterName) if (name == FilterName) -->>>error 033: array must be indexed (variable "name")
|
|
| |
Scarface_slv
|
Дата: Суббота, 05.10.2013, 23:55:33 | Сообщение # 12 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Sony_uw, я в твоей теме все описал...
|
|
| |
Sony_uw
|
Дата: Понедельник, 07.10.2013, 15:21:42 | Сообщение # 13 |
|
Сообщений: 10
Репутация: 0 [ +/- ]
|
|
Код new len = strlen(GetSteamAccountID(client)); error 035: argument type mismath(argument 1)
|
|
| |
TEIN
|
Дата: Понедельник, 07.10.2013, 15:38:32 | Сообщение # 14 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
GetSteamAccountID - покажи функцию
|
|
| |
Sony_uw
|
Дата: Понедельник, 07.10.2013, 16:05:08 | Сообщение # 15 |
|
Сообщений: 10
Репутация: 0 [ +/- ]
|
|
TEIN, native GetSteamAccountID(client, bool:validate=true); если ты про это, но она не прописана у меня в скрипте
|
|
| |