Error 001 expected token but found identifier как исправить


#1

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

Отправлено 20 августа 2017 — 20:40

  • Новичок

Здравствуйте! Поомгите пожалуйста, при компиляции выскочило следующие:
error 001: expected token: «-string end-«, but found «-identifier-«

Ошибка произошла в коде: if(GetPVarInt(playerid,»RobAtm» != 1)) return true;

Вот весь код:

CMD:robbank(playerid, params[])
{
if(!IsAGang(playerid)) return SendClientMessage(playerid, COLOR_GREY, YouCanNot);
else if(TextResetCMD[playerid] > gettime()) return SendClientMessage(playerid, COLOR_GREY, «?? ?????»);
else if(pInfo[playerid][pRank] < 6) return SendClientMessage(playerid, COLOR_GREY, «??????? ????? ????? ? 6 ?????!»);
if(pInfo[playerid][pPhoneNumber] <= 1) return SendClientMessage(playerid, COLOR_GREY, «? ??? ???? ????????.»);
{
if(!IsPlayerInRangeOfPoint(playerid,1.3,-19.1494,1488.8000,16.8570)) return SendClientMessage(playerid, COLOR_GREY, «?? ?????? ????????? ? ?????? ?????????? ????????»);
{
if(GetPVarInt(playerid,»RobAtm» != 1)) return true;
SendClientMessage(playerid, 0xFFFFFFAA, «?? ??? ??????? ????????!»), SetPVarInt(playerid,»Robatm»,1),SetPVarInt(playerid,»RobAtm»,gettime()+10),SetPVarInt(playerid,»atmrob»,gettime()+90);

if(GetPVarInt(playerid,»RobAtm») > gettime()) RobAtm();
if(GetPVarInt(playerid,»atmrob») > gettime()) DeletePVar(playerid,»Robatm»), SendClientMessage(playerid, 0xFFFFFFAA, «?? ????? ?????? ??????? ????????!»);
}
}
return 1;
}

Так же вот такая ошибка warning 202: number of arguments does not match definition
Вот тут: if(GetPVarInt(playerid,»RobAtm») > gettime()) RobAtm();

0


#2

Отправлено 20 августа 2017 — 20:48

  • Worst

Объясни мне, зачеем так делать?

Function;
{
}

Что открывает данные скобки?


warning 202: number of arguments does not match definition — Несовпадение аргументов в ф-ии.


if(GetPVarInt(playerid,"RobAtm") != 1) return true;

0


#3

Отправлено 20 августа 2017 — 20:57

  • Новичок

Просмотр сообщенияSkiffi (20 августа 2017 — 20:48) писал:

Объясни мне, зачеем так делать?

Function;
{
}

Что открывает данные скобки?


warning 202: number of arguments does not match definition — Несовпадение аргументов в ф-ии.


if(GetPVarInt(playerid,"RobAtm") != 1) return true;

Ты сейчас будешь посты набивать?

-2


#4

Отправлено 20 августа 2017 — 21:22

  • Island

if(pInfo[playerid][pPhoneNumber] <= 1) return SendClientMessage(playerid, COLOR_GREY, «? ??? ???? ????????.»);
{
Убавлю немного прозрачность с сообщения скиффи, так более понятно?

0


#5

Отправлено 20 августа 2017 — 21:25

  • Новичок

Просмотр сообщенияQuentino (20 августа 2017 — 21:22) писал:

if(pInfo[playerid][pPhoneNumber] <= 1) return SendClientMessage(playerid, COLOR_GREY, «? ??? ???? ????????.»);
{
Убавлю немного прозрачность с сообщения скиффи, так более понятно?

Ну я убрал эти скобки, а что делать с теми ошибками, которые при компиляции?

0


#6

Отправлено 20 августа 2017 — 21:26

  • Знаток

error 001: expected token: «-string end-«, but found «-identifier-«
Для исправления вот эту строку:

if(GetPVarInt(playerid,"RobAtm" != 1)) return true;

Измени на эту:

if(GetPVarInt(playerid,"RobAtm") != 1) return true;

warning 202: number of arguments does not match definition
Тут компилятор жалуется на несовпадение аргументов, вероятнее всего функции RobAtm();
Посмотри операнды той функции и скорректируй.

1


#7

Отправлено 20 августа 2017 — 21:33

  • Новичок

Просмотр сообщенияConst (20 августа 2017 — 21:26) писал:

error 001: expected token: «-string end-«, but found «-identifier-«
Для исправления вот эту строку:

if(GetPVarInt(playerid,"RobAtm" != 1)) return true;

Измени на эту:

if(GetPVarInt(playerid,"RobAtm") != 1) return true;

warning 202: number of arguments does not match definition
Тут компилятор жалуется на несовпадение аргументов, вероятнее всего функции RobAtm();
Посмотри операнды той функции и скорректируй.

Спасибо что помог с решением первой проблемы!

0


#8

Отправлено 20 августа 2017 — 21:34

  • Знаток

Просмотр сообщенияMr_Frikan (20 августа 2017 — 21:33) писал:

Спасибо что помог с решением первой проблемы!

Скинь функцию RobAtm, тогда и со второй поможем.

0


#9

Отправлено 20 августа 2017 — 21:38

  • Новичок

Просмотр сообщенияConst (20 августа 2017 — 21:34) писал:

Скинь функцию RobAtm, тогда и со второй поможем.

Если не ошибась, то ты про это. Если нет, напиши что именно

RobAtm(playerid)
{
SendClientMessage(playerid, COLOR_RED, «Вы грабите банкомат! У вас повышен уровень розыска!»);
SetPlayerWantedLevel(playerid, 4);
pInfo[playerid][pWanted] = 4;
TogglePlayerControllable(playerid,1);
switch(random(16))
{
case 0: return GivePlayerMoney(playerid,100);
case 1: return GivePlayerMoney(playerid,300);
case 2: return GivePlayerMoney(playerid,500);
case 3: return GivePlayerMoney(playerid,700);
case 4: return GivePlayerMoney(playerid,900);
case 5: return GivePlayerMoney(playerid,1100);
case 6: return GivePlayerMoney(playerid,1300);
case 7: return GivePlayerMoney(playerid,1500);
case 8: return GivePlayerMoney(playerid,1700);
case 9: return GivePlayerMoney(playerid,1900);
case 10: return GivePlayerMoney(playerid,2100);
case 11: return GivePlayerMoney(playerid,2300);
case 12: return GivePlayerMoney(playerid,2500);
case 13: return GivePlayerMoney(playerid,2700);
case 14: return GivePlayerMoney(playerid,2900);
case 15: return GivePlayerMoney(playerid,3100);
}
return 1;
}

0


#10

Отправлено 20 августа 2017 — 21:52

  • Знаток

Да, про это. Как видишь у данной функции есть параметр: playerid. Но при вызове функции ты его не указываешь, поэтому предупреждение и выскакивает.

warning 202: number of arguments does not match definition
Для исправления эту строку:

if(GetPVarInt(playerid,"RobAtm") > gettime()) RobAtm();

Измени на эту:

if(GetPVarInt(playerid,"RobAtm") > gettime()) RobAtm(playerid);

0

@Bennett228, некоторые компиляторы недовольны, когда в тернарнике нет скобок — попробуйте добавить. И обратите внимание: Вы пытаетесь в тексте вывести 4 значения переменных, но по факту указываете лишь три переменных для вывода (имя, пол и возраст выводите, а уровень — нет).

format(tempstring, sizeof(tempstring), 
	"Имя: [%s]tttnПол: [%s]tttnВозвраст: [%d лет]tttnУровень: [%d lvl]tt", 
	player_info[playerid][name], (player_info[playerid][gender] == 1 ? ("Мужской") : ("Женский")), player_info[playerid][age]
);

На чтение 2 мин. Просмотров 121 Опубликовано 15.12.2019

Самые известные баги стандартного компилятора «Pawno» и их исправление.

return «Some string»;

Проблема
Возвращая строки напрямую компилятор падает ( краш ).

Решение
Создайте для вашей строки массив, далее возвратите её ( не рекомендуется возвращать большие строки ).

static const
some_text[] = «Some String»;

string = (a == 5) ? «это пять» : «это не пять»;

Проблема
Строки конкатенируются (объединяются, соединяются) компилятором в одну, например это будет скомпилировано в одну строку «Hello World»:

string = «Hello» » » «World»;

Однако компилятор на засчитывает «:» как часть тернарного оператора и компилятор засчитывает это за ошибку скриптера. Обычно в таких случаях ( а обычно это так и есть ) появляется вот такая ошибка:

errors.pwn(11) : error 001: expected token: «-string end-«, but found «-identifier-»
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.

Решение
Чтобы это исправить, просто заключите строки в круглые скобки, хочу заметить, что на работоспособность кода это никак не влияет.

string = (a == 5) ? («это пять») : («это не пять»);

new
gGlobalVariable = SomeFunction();

Проблема
Вызывая функцию для инициализации глобальной переменной компилятор падает ( краш ).

Решение
Вызовите функцию для инициализации переменной в «OnGameModeInit», «OnFilterScriptInit», или «main»:

public OnGameModeInit()
<
gGlobalVariable = SomeFunction();
// некоторый код
>

Проблема
Максимальная длина строки в компиляторе 512 символов ( считая с завершающим символом ‘’ ).

Решение
Сократить текст со строкой. Обычно люди делают это так:

format(str, sizeof(str),
«Очень длинная строка»,
other,
parameters);

Это разделяет вызов функции на 4 строки, делая её короче. Однако это решение далеко не хорошее. Даже иногда может откуда не возьмись возникнуть падения компилятора ( краш ).

stock SomeFunction()
<
#if defined main
gVar = (gVar ? 0 : 1);
#endif

main()
<
return SomeFunction() ? 0 : 1;
>

Проблема
Данный код будет генерироваться следующим образом: Сначала сгенерируется код в функции ( SomeFunction ), далее сгенерируется код в main (изначально компилятор «не знает», что «main» инициализируется позже). В результате, по неизвестной причине, любые другие тернарные операторы в вашем скрипте неверно сгенерируются и это приведёт к падению компилятора ( краш ).

Решение
Не используйте тернарный оператор для проверки на существование функции если функция ещё не определена или будет определена позже.

Автор урока: Y_Less
Перевод и дополнение: Londlem (http://pro-pawn.ru/member.php?2057-Londlem)
Оригинал: http://forum.sa-mp.com/showthread.php?t=355877 (http://forum.sa-mp.com/showthread.php?t=355877)

Специально для: Pro-Pawn.Ru (http://pro-pawn.ru)

Копирование данной статьи без разрешения автора запрещено!

Posts: 518
Threads: 63
Joined: Jun 2010

Reputation:

0

Код:

C:UsersOwnerDesktopPawnopawnoincluderandom.inc(24) : error 001: expected token: "-string end-", but found "-identifier-"
C:UsersOwnerDesktopPawnopawnoincluderandom.inc(29) : error 010: invalid function or declaration

Line 29:

pawn Код:

enum Z_Info
{
    Float:z_minx,
    Float:z_miny,
    Float:z_maxx,
    Float:z_maxy,
    z_team,
    z_id
}

Line 24:

pawn Код:

if(pickupid == pilot)
    {
        PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0);
        SetPlayerSkin(playerid, 61);
        GameTextForPlayer(playerid, "~u~~g~]~r~Found ~b~Hidden ~w~Skin~g~]~u~", 5000, 6);
    }

Please help, I compiled one minute and it worked, i then closed, and opened back up again and these errors come up.

Posts: 4,878
Threads: 85
Joined: Jun 2007

Reputation:

0

Quote:


expected token: «-string end-«, but found «-identifier-«

This means there is a unclosed string (a missing «) in the line before 24, because the compiler found -identifier- instead of the closing «, identifier is the ‘new’.

The other error probably comes with the first one, because the unclosed string mixes up the following code.
If you dont see a problem in line 23, post it here.

Posts: 230
Threads: 5
Joined: Nov 2010

Reputation:

0

Posts: 518
Threads: 63
Joined: Jun 2010

Reputation:

0

the line before 24 is

HELP ME PLEASE!

Posts: 967
Threads: 99
Joined: Oct 2010

Reputation:

0

Quote:

Originally Posted by ToPhrESH
Посмотреть сообщение

The first error happens when you make a new variable, while this one is on a define. Look that:

pawn Код:

C:Documents and SettingsF e L i P eDesktopSAMP SERVER 0.3Cfilterscriptscarsys.pwn(24) : error 001: expected token: "-string end-", but found "-identifier-"

Line 24:

Means you have on a define, the variable «pilot»

Posts: 4,878
Threads: 85
Joined: Jun 2007

Reputation:

0

Quote:

Originally Posted by ToPhrESH
Посмотреть сообщение

Hm, strange problem. I have no other ideas atm, except it might be a define problem like blackwave said.

#define money «abc»

or something.

Posts: 518
Threads: 63
Joined: Jun 2010

Reputation:

0

Quote:

Originally Posted by blackwave
Посмотреть сообщение

The first error happens when you make a new variable, while this one is on a define. Look that:

pawn Код:

C:Documents and SettingsF e L i P eDesktopSAMP SERVER 0.3Cfilterscriptscarsys.pwn(24) : error 001: expected token: "-string end-", but found "-identifier-"

Line 24:

Means you have on a define, the variable «pilot»

Nope. Checked all the defines… Still need help -.-

Posts: 967
Threads: 99
Joined: Oct 2010

Reputation:

0

Quote:

Originally Posted by ToPhrESH
Посмотреть сообщение

Nope. Checked all the defines… Still need help -.-

Well, that impossible lol. Look for all «pilot» variable. Also, should be there:

pawn Код:

pilot = CreatePickup(model,type,x,y,z); //

Posts: 518
Threads: 63
Joined: Jun 2010

Reputation:

0

I’m willing to bet it’s impossible.
Here is all pilot.

pawn Код:

if(pickupid == pilot)
    {
        PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0);
        SetPlayerSkin(playerid, 61);
        GameTextForPlayer(playerid, "~u~~g~]~r~Found ~b~Hidden ~w~Skin~g~]~u~", 5000, 6);
    }

pawn Код:

pilot = CreatePickup(1275, 23, 1954.17736816,-2188.46069336,13.24627781, -1);

I even used, EDIT >> Find and typed in the search box pilot. Then three results came up when I search and pressed F3 to find next. They are the ones above.

Posts: 967
Threads: 99
Joined: Oct 2010

Reputation:

0

but did you check at your script? it’s on the INC random.inc. The single things I could say were these one, since other FS/GM doesn’t affect.

error 001 expected token: «%s», but found «%s» ожидался символ: «%s», но был найден «%s» error 002 only a single statement (or expression) can follow each «case» только одно заявление (или выражение) могут следовать за «case» error 003 declaration of a local variable must appear in a compound block объявленная локальная переменная должна использоваться в этом же блоке error 004 function «%s» is not implemented функция %s не реализована error 005 function may not have arguments функция не имеет аргументов error 006 must be assigned to an array должен быть присвоен массив error 007 operator cannot be redefined оператор не может быть установлен еще раз error 008 must be a constant expression; assumed zero должно быть постоянным выражением; равным нулю error 009 invalid array size (negative or zero) неверный размер массива (отрицательный или 0) error 010 invalid function or declaration неизвестная функция или декларация error 011 invalid outside functions неверно вне функции error 012 invalid function call, not a valid address неверный вызов функции, неверный адрес error 013 no entry point (no public functions) нет точки входа (не public функция) error 014 invalid statement; not in switch неверный оператор; не в switch error 015 default case must be the last case in switch statement default должен быть последним условием в switch error 016 multiple defaults in «switch» несколько «default» в switch error 017 undefined symbol «%s» неизвестный символ «%s» error 018 initialization data exceeds declared size данные массива превышают его размер error 019 not a label: «%s» не метка «%s» error 020 invalid symbol name «%s» неверное имя символа «%s» error 021 symbol already defined: «%s» символ уже объявлен: «%s» error 022 must be lvalue (non-constant) должно быть левосторонним (нет постоянной) error 023 array assignment must be simple assignment назначение массива должно быть простым error 024 break or «continue» is out of context break или «continue» вне контекста error 025 function heading differs from prototype функция заголовка отличается от прототипа error 026 no matching «#if…» не найдено «#if…» error 027 invalid character constant недопустимый символ в постоянной error 028 invalid subscript (not an array or too many subscripts): «%s» неверный индекс (это не массив или слишком много индексов): «%s» error 029 invalid expression, assumed zero неверное выражение, нет результата error 030 compound statement not closed at the end of file составной оператор не закрыт в конце файла error 031 unknown directive неизвестная директива error 032 array index out of bounds (variable «%s») индекс массива превышен error 033 array must be indexed (variable «%s») массив должен быть проиндексирован error 034 argument does not have a default value (argument %d) аргумент не имеет начального значения (аргумент %d) error 035 argument type mismatch (argument %d) несоответствие типа аргумента (аргумент %d) error 036 empty statement пустой оператор error 037 invalid string (possibly non-terminated string) неправильная строка error 038 extra characters on line лишние символы в строке error 039 constant symbol has no size символьная константа не имеет размера error 040 duplicate «case» label (value %d) несколько раз объявлен «case» с одним тем же параметром error 041 invalid ellipsis, array size is not known размер массива неизвестен error 042 invalid combination of class specifiers недопустимое сочетание класса error 043 character constant exceeds range for packed string символьная константа превышает размер строки error 044 positional parameters must precede all named parameters позиционные параметры должны предшествовать всем именованным параметрам error 045 too many function arguments слишком много аргументов у функции error 046 unknown array size (variable «%s») неизвестный размер массива error 047 array sizes do not match, or destination array is too small размеры массива конфликтуют, либо целевой массив слишком маленький error 048 array dimensions do not match размеры массива не совпадают error 049 invalid line continuation неправильное продолжение строки error 050 invalid range неверный диапазон error 051 invalid subscript, use «[ ]» operators on major dimensions неправильный индекс, используйте «[]» error 052 multi-dimensional arrays must be fully initialized много-размерные массивы должны быть полностью определены error 053 exceeding maximum number of dimensions превышение максимального числа измерений error 054 unmatched closing brace не найдена закрывающаяся скобка error 055 start of function body without function header начало функции без заголовка error 056 arrays, local variables and function arguments cannot be public (variable «%s») массивы, локальные переменные и аргументы функции не могут быть общедоступными (переменная «% s») error 057 unfinished expression before compiler directive который недействителен. error 058 duplicate argument; same argument is passed twice дублирование аргумента; аргумент передается несколько раз error 059 function argument may not have a default value (variable «%s») аргумент не может иметь значение по-умолчанию error 060 multiple «#else» directives between «#if … #endif» несколько «#else» между «#if и #endif» error 061 #elseif directive follows an «#else» directive #else перед «#elseif» error 062 number of operands does not fit the operator Количество операторов не соотвествует оператору error 063 function result tag of operator «%s» must be «%s» Результат функции %s должен быть %s error 064 cannot change predefined operators невозможно изменить уже определенные операторы error 065 function argument may only have a single tag (argument %d) в этой функции может быть только один аргумент error 066 function argument may not be a reference argument or an array (argument «%s») аргумент функции не может быть ссылкой или массивом error 067 variable cannot be both a reference and an array (variable «%s») Переменная не может быть как массив или ссылка error 068 invalid rational number precision in #pragma неверное число в #pragma error 069 rational number format already defined формат рационального числа уже определен error 070 rational number support was not enabled рациональное число не поддерживается error 071 user-defined operator must be declared before use (function «%s») объявленный оператор должен быть перед использованием error 072 sizeof operator is invalid on «function» symbols оператор «sizeof» не может быть использован для символов функции error 073 function argument must be an array (argument «%s») аргумент %s должен быть массивом error 074 #define pattern must start with an alphabetic character #define должен начинаться с буквы error 075 input line too long (after substitutions) введенная строка слишком длинная error 076 syntax error in the expression, or invalid function call неправильный синтаксис или неправильный вызов функции error 077 malformed UTF-8 encoding, or corrupted file: %s плохая кодировка UTF-8 или плохой файл: %s error 078 «»}»>function uses both «return» and «return <value>» «»}»>функция использует «return» и «return <значение>» error 079 inconsistent return types (array & non-array) несовместимость типов возвращенных результатов error 080 unknown symbol, or not a constant symbol (symbol «%s») неизвестный или непостоянный символ: %s error 081 cannot take a tag as a default value for an indexed array parameter (symbol «%s») Нельзя взять значение в массив %s error 082 user-defined operators and native functions may not have states созданные функции или операторы не имеют состояния error 083 a function may only belong to a single automaton (symbol «%s») функция может принадлежать только к одной автоматизации error 084 state conflict: one of the states is already assigned to another implementation (symbol «%s») для функции %s уже определенна данная state error 085 no states are defined for function «%s» нет состояний, определенных для функции «%s» error 086 unknown automaton «%s» неизвестная автоматизация «%s» error 087 unknown state «%s» for automaton «%s» неизвестное состояние «%s» в автоматизации «%s» error 088 number of arguments does not match definitionn количество аргументов не совпадает с объявленными в функции

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как составить план статьи для копирайтера
  • Как найти свое направление в работе
  • Как исправить проколы в ушах
  • Как найти человека по номеру телефону украина
  • Разбухла столешница возле мойки как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии