Error 017 undefined symbol как исправить


#1

Пользователь офлайн
 

Отправлено 28 мая 2013 – 15:42

  • Прохожий

C:Users????????????1DownloadsSNK RPGSNKgamemodesSNKland.pwn(6147) : error 017: undefined symbol “SNKland”
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

1 Error.

Как исправить?
Мод писал не с 0:D

0



#2

Отправлено 28 мая 2013 – 16:09

  • ДЭЭМ, БООЙ

ко всем new в верх добавь

new SNKland;

Сообщение отредактировал VistigoN: 28 мая 2013 – 16:09

1



#3

Отправлено 28 мая 2013 – 16:30

  • Прохожий

Появилось это:

C:Users????????????1DownloadsSNKlandSNKlandgamemodesSNKland.pwn(6148) : error 035: argument type mismatch (argument 1)
C:Users????????????1DownloadsSNKlandSNKlandgamemodesSNKland.pwn(29486) : warning 203: symbol is never used: “SNKland”
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

1 Error.

29486 Вобще строчки нет такой О_о

Сообщение отредактировал weZZy: 28 мая 2013 – 16:37

0



#4

Отправлено 28 мая 2013 – 17:47

  • Профессионал

Кинь строку 6148
warning 203: symbol is never used: “SNKland” – говорит о том что перменная которую ты объявил нигде не используется.

1



#5

Отправлено 28 мая 2013 – 18:08

  • Прохожий

Просмотр сообщенияiRusel (28 мая 2013 – 17:47) писал:

Кинь строку 6148
warning 203: symbol is never used: “SNKland” – говорит о том что перменная которую ты объявил нигде не используется.

SetGameModeText(SNKland);

0



#6

Отправлено 28 мая 2013 – 19:35

  • Профессионал

Я не понимаю ты в переменную загоняешь название а потом используешь или название мода SNKland?
Если название мода такое то удаляй new SNKland; а строчку

SetGameModeText(SNKland);

замени на

SetGameModeText("SNKland");

1



#7

Отправлено 28 мая 2013 – 20:04

  • Прохожий

Просмотр сообщенияiRusel (28 мая 2013 – 19:35) писал:

Я не понимаю ты в переменную загоняешь название а потом используешь или название мода SNKland?
Если название мода такое то удаляй new SNKland; а строчку

SetGameModeText(SNKland);

замени на

SetGameModeText("SNKland");

Спасибо большое!)

0


  • ← Предыдущая тема
  • Проблемы с компилированием
  • Следующая тема →

  • Вы не можете создать новую тему
  • Тема закрыта


1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

17 минут назад, Nekit_Krut18 сказал:

@x_SkYAs_x Покажите код этих строк, на которых ошибки. Используйте для этого, спойлер и тег ‘ Код ‘.

8452: 	SetVehicleData(GetPlayerVehicleID(playerid),V_BAGAGE_AMOUNT_GUN,0);
10475: if GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500 > 3000 *then SendClientMessage(playerid,-1,"Матовоз переполнен!");
10478: SetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN,GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500);
10479: format(l_string,26,"Матовоз загружен: 0/%d",GetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN));
10594: if GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500 > 3000 *then SendClientMessage(playerid,-1,"Матовоз переполнен!");
10597: SetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN,GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500);
10598: format(l_string,26,"Матовоз загружен: 0/%d",GetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN));
new V_BAGAGE_AMOUNT_GUN

Я все правильно сделал с этим?

Ну и в конце ” ; ” забыл дописать тут

Отредактировано 15 января, 2021 пользователем x_SkYAs_x

Данная тема предназначена для исправления ошибок в моде,тоесть для помощи вам.
Тема делится на 2 пункта
I.Ошибки
II.Варнинги

I.Ошибки
1)Неизвестный символ.(error 017)
У многих при вырезке вылазиет следущая ошибка

PHP:

бла-бла-бланазвание мода.pwn(строчка) : error 017: undefined symbol "аргумент."

Давайте посмотрим как же это исправить.Берем мод из которого вы вырезали что-либо,и в поиске вводим

Скорее всего ошибка будет исправлена!
2)Неизвестный символ(Тип 2)(error 017)
Часто случается и такая ошибка

PHP:

бла-бла-бланазвание мода.pwn(строчка) : error 017: undefined symbol "p(или другая буква)Аргумент."

Разница в том,что это нужно добавлять в другое место.Например у вас допустим

PHP:

бла-бла-бланазвание мода.pwn(строчка) : error 017: undefined symbol "pAdmin"

делаем следущее: находим enum pInfo(возможно и hInfo и т.д. зависит от первой буквы неизвестного символа)
и вставляем туда “pAdmin,”(желательно где-то в середину добавлять чтобы потом не разбираться с запятыми).Готово! Ошибка исправлена!
3)Не подключенные include’ы(fatal error 001)
Также многие пытаются вырезать регистрацию(и т.п.) но у них что-то не получается,а файлы new аргумент не находятся и они начинают психовать,и забрасывать все куда подальше.из этого тоже есть выход.Просто подключим в мод include тоесть например

лучше всего засунуть это к другим include’ам.
4)Пропущенный символ(error 001)
Данная ошибка просто напросто нелепа и решение ее как два пальца.Рассмотрим пример:

PHP:

error 001: expected token: "}", but found ";"

Тоесть здесь вы закрыли public(например) но забыли поставить ; к последней его строчке и решение таково

PHP:

public Бла-бла-бла()
{
    Какой-нибудь бред; // Тоесть я добавил ";"
}

5)Повторение переменной(error 021)
Это обычно выглядит вот так

PHP:

error 021: symbol already defined: bla-bla-bla

Для начало об ошибке.Когда-то уже вы добавляли такую переменную(в моем случае это new bla-bla-bla),и вот это действие повторилось.Ну что же давайте убивать эту ошибку.Вводим в поисковике(CTRL+F)следущее

PHP:

new bla-bla-bla(опять же у вас вместо бла-бла-бла то что в ошибке);

, удаляем.Внимание удаляем только одну строчку если удалите две такие скорее всего у вас вылезит error 017.
II.Варнинги
1)Не зарегистрированный public
Часто случается что появляется вот такой warning:

PHP:

бла-бла-бланазвание мода.pwn(строчка) : warning 235: public function lacks forward declaration (symbol "название паблика")

Для исправления делаем следуещее:Находим public из-за которого возник warning и копируем полностью его название и аргументы
Пример:

PHP:

public PayDay(возможно здесь будут какие-либо аргументы)

После того как вы скопировали название public’a вставляем в поиске forward, и там делаем новую строчку,вставляем туда название public’a,слово public изменяем на forward и в конце вставляем “;” тоесть вот вам пример:

2)Ошибка в пробелах

PHP:

бла-бла-бланазвание мода.pwn(строчка) : warning 217: loose indentation

Здесь есть 2 вида исправления
1)Затрудненный:подбирать все пробелами
2)Для ленивых: просто напросто добавить после инклудов следущее

Тема постоянно обновляется,и вы можете помочь ей разместив свой метод.Помните любую ошибку лучше исправить сразу кнопками Ctrl+Z

From SA-MP Wiki

Jump to: navigation, search

Undefined symbol is a Pawn compiler error message. The Pawn Language Guide formally defines this error as error 017, and explains that the error means “The symbol (variable, constant or function) is not declared“.

The error will look roughly look like this: error 017: undefined symbol “WelcomePlayer”

Cause

The error occurs when a piece of code references a variable, constant or function that the compiler cannot find. Often, this error is encountered by scripters who recklessly copy and paste code from one script to another, not realizing that the code in question depends on other code in the original script. Another, more common mistake made by even the most experienced scripters, is misspelling symbols.

Example with a function

This is example where a function that does not exists is referenced. A reckless copy-paster is copying a piece for code from the original script (awesomeroleplay.pwn) to his or her own (supercoolrp.pwn). awesomeroleplay.pwn compiles without any warnings or errors.

The reckless copy-paster decides to copy this piece of code from the original script:

awesomeroleplay.pwn

public OnPlayerConnect(playerid)
{
    WelcomePlayer(playerid);
}

The reckless copy-paster replaces supercoolrp.pwn’s OnPlayerConnect callback with the one from awesomeroleplay.pwn and then attemps to compile it. The compiler will, however, throw an error: error 017: undefined symbol “WelcomePlayer”. This is because the function WelcomePlayer does not exist the paster’s own script. In other words: the piece of code that the reckless copy-paster pasted, depends on other code in awesomeroleplay.pwn. The paster will need to copy the dependent script as well.

In the original script, the function WelcomePlayer is defined.

awesomeroleplay.pwn

WelcomePlayer(playerid)
{
    SendClientMessage(playerid, "Welcome to Interactive Roleplay!", 0xFF0000AA);
}

The reckless copy-paster will need to copy and paste this function into his own script as well to make the code compile correctly. If this function would also depend on other code, the paster will need to copy and paste that code as well. In fact, the paster would need to repeat this step until all dependencies are resolved.

Tips for resolving this error

  • Use Ctrl + F to find the missing symbol (note that the compiler will tell you what symbol is missing after the words undefined symbol!) in the original script. If the symbol is a variable, you will have to copy all code that is relevant to its “ecosystem”, that is to say, all code that modifies the variable. For beginning scripters and reckless copy-pasters, this may be hard, because it requires a deep understanding of the code and code paths.
  • Look into the includes of the original script.
  • Make sure you are adding the right includes.
  • Make sure you are not misspelling the symbol.

#1

azik215

    Новичок

  • Пользователь
  • Pip

  • 32 сообщений

Отправлено 12 Сентябрь 2014 – 18:29

Помогите , что за ошибка??

Упс. Компилирование

  • Наверх


#2


The

Отправлено 12 Сентябрь 2014 – 18:56

  • Помогите , что за ошибка??

    Упс. Компилирование

    error 017: undefined symbol “%s” – неизвестный символ “%s”;
    warning 217: loose indentation – не выровненная строка

Сообщение отредактировал The: 12 Сентябрь 2014 – 18:56

  • Наверх


#3


azik215

azik215

    Новичок

  • Пользователь
  • Pip

  • 32 сообщений

Отправлено 20 Сентябрь 2014 – 18:46

  • error 017: undefined symbol “%s” – неизвестный символ “%s”;
    с ним то , что делать с 2 я разобрался

  • Наверх


#4


FasT of boni

Отправлено 20 Сентябрь 2014 – 18:58

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

  • Наверх


#5


azik215

azik215

    Новичок

  • Пользователь
  • Pip

  • 32 сообщений

Отправлено 20 Сентябрь 2014 – 19:03

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

Я с этим разобрался мне нужно 

error 017: undefined symbol “%s” – неизвестный символ “%s”;

Что с ним делать?

Вот 93 строчка

LogMgr_Print(g_moduleCore, LogType_Debug, “PurchaseUpgrade”, “Client %d tried to buy interlocked upgrade %s”, client, name);

  • Наверх


#6


FasT of boni

Отправлено 20 Сентябрь 2014 – 19:08

Я с этим разобрался мне нужно 

error 017: undefined symbol “%s” – неизвестный символ “%s”;

Что с ним делать?

Вот 93 строчка

LogMgr_Print(g_moduleCore, LogType_Debug, “PurchaseUpgrade”, “Client %d tried to buy interlocked upgrade %s”, client, name);

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

  • Наверх


#7


azik215

azik215

    Новичок

  • Пользователь
  • Pip

  • 32 сообщений

Отправлено 20 Сентябрь 2014 – 19:24

Я с этим разобрался мне нужно 

error 017: undefined symbol “%s” – неизвестный символ “%s”;

Что с ним делать?

Вот 93 строчка

LogMgr_Print(g_moduleCore, LogType_Debug, “PurchaseUpgrade”, “Client %d tried to buy interlocked upgrade %s”, client, name);

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

Можно я в лс файл кину. Ты сделаешь??

  • Наверх


#8


FasT of boni

Отправлено 20 Сентябрь 2014 – 19:25

Можно я в лс файл кину. Ты сделаешь??

попробуй

  • Наверх


#9


azik215

azik215

    Новичок

  • Пользователь
  • Pip

  • 32 сообщений

Отправлено 20 Сентябрь 2014 – 19:28

  • Наверх


#10


FasT of boni

Отправлено 20 Сентябрь 2014 – 20:26

Это инклюд.

Кидай все инклюды и исходник.

  • Наверх


#11


Mattko

Отправлено 21 Сентябрь 2014 – 13:29

Нету переменной “name”, объявите о ней в начале кода.
Используя вот-так: new name;
 

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

Не отступами, а с табуляции… Можно объявить #table, но проще соблюдать табуляцию, чтобы работа плагина была стабильна.

PS: Автору темы, кидай исходник мне в ЛС, или тут. Исправлю.

  • Mr.Credo это нравится
  • Наверх


Добавить комментарий