Ошибки павно error 017 как исправить


#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

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid)
	{
    	case dRegister:
    	{
        	if(!response)
	        {
	            ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Отказ от регистрации.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
	            return Kick(playerid);
	        }
	        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить регистрацию не введя пароль!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
	        else if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль слишком короткий!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
	        else if(strlen(inputtext) > 30) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
	        for(new i = strlen(inputtext)-1; i != -1; i--)
	        {
	            switch(inputtext[i])
	            {
	                case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
	                default: return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль содержит запрещённые символы!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
	            }
	        }
	        pInfo[playerid][pPassword][0] = EOS;
	        strins(pInfo[playerid][pPassword], inputtext, 0);
	        CreateNewAccount(playerid, pInfo[playerid][pPassword]);
	        return 1;
	    }
	    case dLogin:
	    {
	        if(!response)
	        {
	            ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Отказ от авторизации.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
	            return Kick(playerid);
	        }
	        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить авторизацию не введя пароль!nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
	        for(new i = strlen(inputtext)-1; i != -1; i--)
	        {
	            switch(inputtext[i])
	            {
	                case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
	                default: return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Введённый пароль содержит запрещённые символы!nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
	            }
	        }
	        if(!strcmp(pInfo[playerid][pPassword], inputtext))
	        {
	            new query_string[49+MAX_PLAYER_NAME];
	            format(query_string, sizeof(query_string), "SELECT * FROM `accounts` WHERE `player_name` = '%s'", pInfo[playerid][pName]);
	            mysql_tquery(mysql_connect_ID, query_string, "UploadPlayerAccount","i", playerid);
	        }
	        else
	        {
	            switch(GetPVarInt(playerid, "WrongPassword"))
	            {
	                case 0: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 3 попытки.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
	                case 1: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 2 попытки.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
	                case 2: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 1 попытка.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
	                case 3: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталась последняя попытка, после чего Вас кикнет.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
	                default:
	                {
	                    ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Превышен лимит попыток на ввод пароля.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
	                    return Kick(playerid);
	                }
	            }
	            SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")+1);
	        }
	        return 1;
	    }
	}
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}

//==================== [ Форварды ] ============================================
forward FindPlayerInTable(playerid);
public FindPlayerInTable(playerid)
{
    new rows;
    cache_get_row_count(rows);

    if(!rows)
    {
        ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "Введите пароль для регистрации нового аккаунта:", "Регистрация", "Выход");
    }
    else
    {
        ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "Введите пароль от аккаунта для того, чтоб продолжить игру:", "Вход", "Выход");
        cache_get_value_name(0, "password", pInfo[playerid][pPassword], 31);
    }
    return 1;
}
forward UploadPlayerAccount(playerid);
public UploadPlayerAccount(playerid)
{
    cache_get_value_name_int(0, "id", pInfo[playerid][pID]);
    SendClientMessage(playerid, 0xFFFFFF00, "Вы успешно авторизировались!");
    SetPlayerAuthorized(playerid, PLAYER_ONLINE);
    SpawnPlayer(playerid);
    return 1;
}

Данная тема предназначена для исправления ошибок в моде,тоесть для помощи вам.
Тема делится на 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

Как исправить Error
Автор: neka

Значение Error можно посмотреть здесь.

error 040: duplicate «case» label (value 28)

Это означает что case стаким значением повторяется. Решение этой проблемы простое — нам нужно цифру 28 изменит на другую (в той строчке на которую жалуется )

error 032: array index out of bounds (variable «JoinPed»)

Это означает что индекс массива превышен (но не всегда, смотрим дальше) Пример:

131 — массив поигравшись с ним я понял что дело не в нем, а в чём же спросите вы? Пример данной ошибки:

Код: Выделить всё

else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[98][0]; 

как видим — JoinPed[123] сначало с таким значением, а потом JoinPed[98]. Решение простое: JoinPed[123] число в данных скобках должно быть одинаковым. Пример:

Код: Выделить всё

else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[123][0]; 

error 037: invalid string (possibly non-terminated string)

Это означает что строка неправильная, а точнее где то допущена ошибка:

Код: Выделить всё

else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера; }

как видим нам после слова «модера» не хватает «. Правим:

Код: Выделить всё

else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера"; }

error 001: expected token: «,», but found «;»

Это значит что мы пропустили знак или скобку (в данном примере скобку) Пример:

Код: Выделить всё

public SaveProdykts()
{
    new idx;
    new File: file2;
    while (idx < sizeof(ProdyktsInfo))
    {
        new coordsstring[256];
        format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%dn",
        ProdyktsInfo[idx][prSous],
        ProdyktsInfo[idx][prPizza],
        ProdyktsInfo[idx][prMilk],
        ProdyktsInfo[idx][prJuice],
        ProdyktsInfo[idx][prSpirt],
        ProdyktsInfo[idx][prChicken],
        ProdyktsInfo[idx][prKolbasa],
        ProdyktsInfo[idx][prFish],
        ProdyktsInfo[idx][prIceCream],
        ProdyktsInfo[idx][prChips],
        ProdyktsInfo[idx][prZamProd];
        if(idx == 0)
        {
            file2 = fopen("[prodykts]/prodykts.cfg", io_write);
        }
        else
        
{
            file2 = fopen("[prodykts]/prodykts.cfg", io_append);
        }
        fwrite(file2, coordsstring);
        idx++;
        fclose(file2);
    }
    return 1;
}

смотрим на:

и вим что мы ппропустили )

Правим:

И в итоге:

Код: Выделить всё

public SaveProdykts()
{
    new idx;
    new File: file2;
    while (idx < sizeof(ProdyktsInfo))
    {
        new coordsstring[256];
        format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%dn",
        ProdyktsInfo[idx][prSous],
        ProdyktsInfo[idx][prPizza],
        ProdyktsInfo[idx][prMilk],
        ProdyktsInfo[idx][prJuice],
        ProdyktsInfo[idx][prSpirt],
        ProdyktsInfo[idx][prChicken],
        ProdyktsInfo[idx][prKolbasa],
        ProdyktsInfo[idx][prFish],
        ProdyktsInfo[idx][prIceCream],
        ProdyktsInfo[idx][prChips],
        ProdyktsInfo[idx][prZamProd]);< ----------- И вот наша скобка 
        if
(idx == 0)
        {
            file2 = fopen("[prodykts]/prodykts.cfg", io_write);
        }
        else
        
{
            file2 = fopen("[prodykts]/prodykts.cfg", io_append);
        }
        fwrite(file2, coordsstring);
        idx++;
        fclose(file2);
    }
    return 1;

error 002: only a single statement (or expression) can follow each «case»

Это означает что у вас после «case» идет if(dialogid == ). Пример:

Код: Выделить всё

  case 7507: 
    
{ 
        if
(response) ClothesSex[playerid] = 1; 
        else ClothesSex
[playerid] = 2; 
        ShowPlayerDialog
(playerid,7504,2,"??????? ??????","{A0B0D0}?????????? ?????? {7CC000}300$n{A0B0D0}??????? ?????? {7CC000}300$n{A0B0D0}???????????? ?????? {7CC000}300$n{A0B0D0}?????","???????","?????"); 
        return 1
; 
    
} 
if(dialogid == 7504)  <------------------- вот наша и ошибка 
    
{ 
        if
(response) 
        
{ 
              SetCameraBehindPlayer
(playerid); TogglePlayerControllable(playerid, 1); 
              SetPlayerSkin
(playerid, PlayerInfo[playerid][pModel]); 
              ClothesRun
[playerid] = 0; 
            return 1
; 
        
}

Решение простое: if(dialogid == 7504) это нам нужно заменить на case как и последующий диалог !

Код: Выделить всё

case 7504:  <------------------- вот так это выглядит
    

        if(
response
        { 
              
SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid1); 
              
SetPlayerSkin(playeridPlayerInfo[playerid][pModel]); 
              
ClothesRun[playerid] = 0
            return 
1
        }  

error 004: function «%s» is not implemented

Это означает что мы пропустили скобку. Мой совет:

  • проверить весь код в ручную
  • на форуме был урок как найти не по ставленую скобку
  • Можно воспользоватся notepad++ там показы линии открытых скобок и тогда можно найти эту скобку

error 017: undefined symbol %s

Это означает что мы не поставили переменную new. Пример:

Решение — ко всем new добавим:

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

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

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

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

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