Ошибка 217 самп


#1

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

Отправлено 24 июня 2013 — 03:50

  • Новичок
	else if(pickupid == lspic[0])
	{
		SetPlayerInterior(playerid,0);
		SetPlayerPos(playerid,1658.2383,-1693.4553,15.6094);
		SetPlayerFacingAngle(playerid,175.8234);
		SetPlayerVirtualWorld(playerid,0);
	}

Проблема, собственно, в строке:

else if(pickupid == lspic[0])

Как только не выравнивал, все равно варнинг. И по примеру других модов и по мануалам, не помогает. Да и выровнено вроде правильно, не пойму в чем проблема. Варнинг вроде и один и не очень важный, но хотелось бы понять почему не исправляется и исправить.

Ну и скрин еще:

0



#2

Отправлено 24 июня 2013 — 16:17

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

Табуляция отсутствует.

Выровняй код лесенкой.

И ещё смотри чтобы выше было так же выровнено или наоборот ниже по примеру что выше…

1



#3

Отправлено 24 июня 2013 — 17:16

  • Новичок

Просмотр сообщенияiRusel (24 июня 2013 — 16:17) писал:

Табуляция отсутствует.

Выровняй код лесенкой.

И ещё смотри чтобы выше было так же выровнено или наоборот ниже по примеру что выше…

Отредактируй тогда, пожалуйста, как правильно, выше и ниже, в подобных кодах, такая же табуляция. И я же говорю, с других модов брал этот код, где нет варнингов, все равно не убирается варн

0



#4

Отправлено 24 июня 2013 — 17:21

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

В других модах может присутствовать #pragma tabsize 0

0



#5

Отправлено 24 июня 2013 — 18:30

  • Новичок

iRusel, вот только что проверил на моде без tabsize 0, нету варнингов, вот код оттуда:

	else if(pickupid == lspic[0])
	{
		SetPlayerInterior(playerid,0);
		SetPlayerPosAc(playerid, 1658.2383, -1693.4553, 15.6094);
		SetPlayerFacingAngle(playerid, 175.8234);
		SetPlayerVirtualWorld(playerid, 0);
	}

0



#6

Отправлено 24 июня 2013 — 21:51

  • Илья

Да просто #pragma tabsize 0 после инклюдов и пофиг будет на лесенку моду.

Сообщение отредактировал Killix: 24 июня 2013 — 21:53

0



#7

Отправлено 24 июня 2013 — 21:58

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

Просмотр сообщенияKillix (24 июня 2013 — 21:51) писал:

Да просто #pragma tabsize 0 после инклюдов и пофиг будет на лесенку моду.

Ну не скажи, прагма лишь скрывает сообщения о варнингах а так…
Это аналогично тому что прикрыть бесконечно кровоточащую рану подорожником и говорить что кровь остановлена…

0



#8

Отправлено 24 июня 2013 — 22:03

  • Илья

Просмотр сообщенияiRusel (24 июня 2013 — 21:58) писал:

Ну не скажи, прагма лишь скрывает сообщения о варнингах а так…
Это аналогично тому что прикрыть бесконечно кровоточащую рану подорожником и говорить что кровь остановлена…

Не стоит недооценивать мощь подорожника.

0



#9

Отправлено 25 июня 2013 — 16:02

  • Новичок

Ну #pragma tabsize 0 я б и сам поставил, но хочется разобраться, почему так. Что, нету никого, кто мог бы подсказать в чем проблема?

0



#10

Отправлено 25 июня 2013 — 16:11

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

Просмотр сообщенияDinho (25 июня 2013 — 16:02) писал:

Ну #pragma tabsize 0 я б и сам поставил, но хочется разобраться, почему так. Что, нету никого, кто мог бы подсказать в чем проблема?

Тебе же сказали что ты код криво сделал он должен быть лесенкой
#pragma tabsize 0 — не ставь это,или будет лагать жестко.У тебя будут варнинги и ты их видить не будешь из-за нее.

Сообщение отредактировал Nazi: 25 июня 2013 — 16:12

0


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

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


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

Hosse

Hosse

Изучающий

Регистрация
17 Ноя 2011
Сообщения
613
Лучшие ответы
0
Репутация
224

  • #1

Начинающие осваивать pawno задавали не однократно вопрос «как исправить warning 217?».Пишу это для вас
Сам варнинг выглядит так:

HTML:

warning 217: loose indentation

Давайте разберём что тут написано:

HTML:

warning 217: loose indentation - невыровненная строка (return должен быть строго под телом функции по левому краю, либо можно добавить в начало мода строку #pragma tabsize 0, но это не рекомендуется, так как иногда может не понимать и не прочитывать скобки "{" и "}");

Теперь объясняю примерно (у меня было так):
Вот мой варнинг:

HTML:

pwn(6247) : warning 217: loose indentation

Вот сами строки с варнингом:

HTML:

{
             PutPlayerInVehicle(playerid, marshrutka, 0); // Зажаем NPC В созданую для него машину
              SetPlayerSkin(playerid, 253);
               PlayerInfo[playerid][pCarLic] = 1;//даем лицензию
               return 1;
        }

Теперь будем исправлять.Нужно выровнять данную лесенку:

HTML:

        {
        PutPlayerInVehicle(playerid, marshrutka, 0); // Зажаем NPC В созданую для него машину
        SetPlayerSkin(playerid, 253);
        PlayerInfo[playerid][pCarLic] = 1;//даем лицензию
        return 1;
        }

Варнинг исправлен)

Posts: 2,726
Threads: 85
Joined: Jul 2010

Reputation:

0

23.05.2011, 08:51

(

Последний раз редактировалось Mean; 20.06.2013 в 12:23.

)

How to fix warning 217: loose indentation

Introduction

Recently, I saw A LOT of people asking WHY do they get the warning 217, well, I always had to write examples, and I got sick of wasting my time in doing that, so now I’ll just write a tutorial and post the thread link if someone asks.

Why do we get warning 217?

If your code is not properly indented, your compiler will tell you. To fix the warning, all you have to do is properly indent your code.
I have had problems with this in my scripting beginnings. I couldn’t see some obvious errors in my code, but once I indented them, I could easily spot issues.
Good indentation is important. If you want some scripter to help you and you give him messy code, don’t be surprised if he ignores you.

To indent your code, all you need to do is press the tab key few times, or only one time, depends.

After every «{» (if we open a statement), you need to go one tab forward, by the standards, and if we do «}» (if we close a statement), then we go one tab back. The default tab size in a_samp is 4 spaces (so tab is equal to 4 spaces).

So, here’s an example of

GOOD indentation:

pawn Код:

if( !strcmp( cmdtext, "/lol", true ) )
{
    // There's a "{" so we moved 4 spaces (one tab) forward.
    if( !strcmp( cmdtext[ 5 ], "rofl", true ) )
    {
        //ANOTHER "{" so we move 4 spaces (one tab) forward
        SendClientMessage( playerid, -1, "Your parameter after the /lol command is 'rofl'." );
    }
    //We closed the bracket, so we go 4 spaces (one tab) back.
    return 1;
}

Now, I hope you’ve understood it, if not, I’ll give an example of BAD indentation:

pawn Код:

if( !strcmp( cmdtext, "/lol", true ) )
{
  if( !strcmp( cmdtext[ 5 ], "rofl", true ) )
     {
   SendClientMessage( playerid, -1, "Your parameter after the /lol command is 'rofl'." );
        }
return 1;
}

Also, here’s what alot of people do:

pawn Код:

if( !strcmp( cmdtext, "/lol", true ) )
{
if( !strcmp( cmdtext[ 5 ], "rofl", true ) )
{
SendClientMessage( playerid, -1, "Your parameter after the /lol command is 'rofl'." );
}
return 1;
}

Now that’s really unreadable…

That’s about it.

Posts: 2,726
Threads: 85
Joined: Jul 2010

Reputation:

0

Posts: 176
Threads: 21
Joined: Jan 2011

Reputation:

0

Quote:


Once, myself loose indentation caused some problems, my dialog response wasn’t working well because of faily indenting

I don’t think that has to do with indentation. At least, I used to code with really bad indentation and everything just worked fine. But it does look ugly.

Posts: 649
Threads: 4
Joined: Jul 2010

Nice tutorials and many, many EASY.

you like this: https://sampforum.blast.hk/showthread.php?tid=252966
the first post.

Posts: 2,726
Threads: 85
Joined: Jul 2010

Reputation:

0

25.05.2011, 09:16

(

Последний раз редактировалось Mean; 17.01.2013 в 17:44.

)

Thank you.

Posts: 1,341
Threads: 17
Joined: Aug 2009

Reputation:

0

Nice Tutorial Mean .

Posts: 3,793
Threads: 196
Joined: Jan 2010

Reputation:

0

One thing to do is just ignore them, i get tons of pms from people sending crap about this to me, hopefully this taught them.

Posts: 1,496
Threads: 78
Joined: Jun 2008

Reputation:

0

Nice tutorial.
I did the third method years ago

Actually I think you may add some more explanation on why a good indentation is required,
just like better reading, easy to find the missing brackets, etc..

Posts: 1,768
Threads: 91
Joined: Dec 2010

Reputation:

0

Good I use tabs … it’s easier x)

Posts: 451
Threads: 31
Joined: May 2012

Reputation:

0

Now i understand it. So #pragma is only for ignoring things? because i have:
#pragma Tabsize 0
#pragma Unused Check

Posts: 15,941
Threads: 0
Joined: Jun 2008

No, prgama is for passing special instructions to the compiler. Some of those instructions tell the compiler to ignore certain warnings or unused symbols; some can tell users information; some can adjust compiler flags like string type defaults and heap size. Most of them have legitimate uses — even «unused» and «tabsize», sometimes you have a symbol defined and you know that you don’t use it but can’t make it «stock» for some reason — then «unused» is useful, and both a_samp and YSI use «tabsize» to set it to 4 (YSI uses this to override the warning in some cases where the compiler is wrong without resorting to using 0). For more information check pawn-lang.pdf:

https://sampforum.blast.hk/showthread.php?tid=289258

Posts: 451
Threads: 31
Joined: May 2012

Reputation:

0

Quote:

Originally Posted by Y_Less
View Post

No, prgama is for passing special instructions to the compiler. Some of those instructions tell the compiler to ignore certain warnings or unused symbols; some can tell users information; some can adjust compiler flags like string type defaults and heap size. Most of them have legitimate uses — even «unused» and «tabsize», sometimes you have a symbol defined and you know that you don’t use it but can’t make it «stock» for some reason — then «unused» is useful, and both a_samp and YSI use «tabsize» to set it to 4 (YSI uses this to override the warning in some cases where the compiler is wrong without resorting to using 0). For more information check pawn-lang.pdf:

https://sampforum.blast.hk/showthread.php?tid=289258

oh thx for the pawn-lang.pdf, this will help me learning the pawno language

Posts: 26
Threads: 0
Joined: Jan 2013

Reputation:

0

In my PAWNO experience, i can just use #pragma to give specific instructions to the compiler to miss out the errors or it will creep me out by showing me loose indentations, or too many errors on one line. This is also helpful, but not complete enough for me :\

Posts: 15,941
Threads: 0
Joined: Jun 2008

Quote:

Originally Posted by Superdude
View Post

In my PAWNO experience, i can just use #pragma to give specific instructions to the compiler to miss out the errors or it will creep me out by showing me loose indentations, or too many errors on one line. This is also helpful, but not complete enough for me :\

Yes, that’s called ignoring the problems instead of fixing them. If your indentation wasn’t bad you wouldn’t need to tell the compiler to ignore the badness.

Posts: 451
Threads: 31
Joined: May 2012

Reputation:

0

I fixed all my identitations thx to this tutorial now, thx . +rep

and: Thx Y_Less for explaining me #pragma tabsize 0 only ignores the warnings.

Posts: 58
Threads: 0
Joined: Mar 2012

Reputation:

0

The one important thing you gain with good indentation is easily avoidable dangling-else problem.(Interestingly this reason is explicitly stated in compiler sources)

Posts: 56
Threads: 10
Joined: Apr 2012

Reputation:

0

you can use
#pragma tabsize 0

Posts: 66
Threads: 9
Joined: Jul 2011

Reputation:

0

i in this problem use #pragma tabsize 0 and solved problems with Loose identation

Posts: 7,801
Threads: 187
Joined: Feb 2010

Reputation:

0

You people just don’t understand the proper usage of #pragma tabsize, do you?

If you’re compiler is returning indentation warnings, it means you need to INDENT YOUR CODE. Using #pragma tabsize 0 is a stupid idea and it just shows how lazy you are. If you’re going to write code, do it correctly.


  1. 11.05.2017, 23:39


    #1

    Аватар для DubSteSha

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


    Warning 217: loose indentation

    Здравствуйте, у меня warning 217: loose indentation, как я эту строчку не строил лесенкой, так серавно выдает этот варнинг…
    Cкриншоты — http://imgur.com/a/HVxAO



  2. 11.05.2017, 23:42


    #2

    Аватар для SooBad

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




  3. 11.05.2017, 23:43


    #3

    Аватар для DubSteSha

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


    Цитата Сообщение от SooBad
    Посмотреть сообщение

    notepad++

    Это pawno



  4. 11.05.2017, 23:48


    #4

    В Notepad++ есть автоматическая табуляция.
    А у тебя строка 11486 кривая, не? =\

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю


    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема


    Steve Pavlina



  5. 11.05.2017, 23:51


    #5

    Аватар для DubSteSha

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


    Цитата Сообщение от DeimoS
    Посмотреть сообщение

    В Notepad++ есть автоматическая табуляция.
    А у тебя строка 11486 кривая, не? =\

    Ну если наверное не выдает ошибку, то нет)) это вроде проверка на ркон-админа



  6. 11.05.2017, 23:52


    #6

    Аватар для SooBad

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


    Цитата Сообщение от DubSteSha
    Посмотреть сообщение

    Ну если наверное не выдает ошибку, то нет)) это вроде проверка на ркон-админа

    Дело в том, что стандартный компилятор — это такая хрень вещь, которая не всегда точно показывает строку с ошибкой/предупреждением, поэтому следует проверять код, расположенный чуть выше и ниже.



  7. 12.05.2017, 00:02


    #7

    Аватар для DubSteSha

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


    Цитата Сообщение от SooBad
    Посмотреть сообщение

    Дело в том, что стандартный компилятор — это такая

    хрень

    вещь, которая не всегда точно показывает строку с ошибкой/предупреждением, поэтому следует проверять код, расположенный чуть выше и ниже.

    Я сделал табуляцию, серавно варнинг выдает, и что случилось с русскими символами:D ? Может я что то не так сделал, первый раз пользуюсь этой программой http://imgur.com/a/19r0U



  8. 12.05.2017, 00:09


    #8

    Цитата Сообщение от SooBad
    Посмотреть сообщение

    Дело в том, что стандартный компилятор — это такая

    хрень

    вещь, которая не всегда точно показывает строку с ошибкой/предупреждением, поэтому следует проверять код, расположенный чуть выше и ниже.

    Тут, скорее, дело в том, что компилятор отталкивается начала блока кода, а не от его конца, что вполне логично. Никак иначе адекватно реализовать это не получится, ибо обе строки имеют неверную табуляцию относительно друг друга.
    В общем, компилятор всё верно показывает.

    Цитата Сообщение от DubSteSha
    Посмотреть сообщение

    Я сделал табуляцию, серавно варнинг выдает, и что случилось с русскими символами:D ? Может я что то не так сделал, первый раз пользуюсь этой программой http://imgur.com/a/19r0U

    Да боже, выровняй ты проверку на админа, поставив её в один уровень с скобками. Тебе даже выделили куда поместить.
    А русские символы исковеркались потому что ты файл не в той кодировке открыл

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю


    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема


    Steve Pavlina



  9. 12.05.2017, 00:09


    #9

    Аватар для SooBad

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


    Цитата Сообщение от DubSteSha
    Посмотреть сообщение

    Я сделал табуляцию, серавно варнинг выдает, и что случилось с русскими символами:D ? Может я что то не так сделал, первый раз пользуюсь этой программой http://imgur.com/a/19r0U

    Просто раскладку на русскую выставляй, при копировании.
    А лучше всего адаптируй notepad.

    Последний раз редактировалось SooBad; 12.05.2017 в 00:12.



  10. 12.05.2017, 00:18


    #10

    Аватар для DubSteSha

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


    Цитата Сообщение от DeimoS
    Посмотреть сообщение

    Тут, скорее, дело в том, что компилятор отталкивается начала блока кода, а не от его конца, что вполне логично. Никак иначе адекватно реализовать это не получится, ибо обе строки имеют неверную табуляцию относительно друг друга.
    В общем, компилятор всё верно показывает.

    Да боже, выровняй ты проверку на админа, поставив её в один уровень с скобками. Тебе даже выделили куда поместить.
    А русские символы исковеркались потому что ты файл не в той кодировке открыл

    Так ? Теперь нет варнинга http://imgur.com/WW1b9zB


Помогите с кодом, команда /afly, Все вроде правильно написал, но не понимаю, что за ошибки: warning 217: loose indentation и как их убрать

Вот что выходит при компилировании: 
C:\Users\Felix\Desktop\Server DM\gamemodes\server.pwn(4598) : warning 217: loose indentation
C:\Users\Felix\Desktop\Server DM\gamemodes\server.pwn(4831) : warning 217: loose indentation
C:\Users\Felix\Desktop\Server DM\gamemodes\server.pwn(4864) : warning 217: loose indentation
C:\Users\Felix\Desktop\Server DM\gamemodes\server.pwn(6548) : warning 211: possibly unintended assignment
C:\Users\Felix\Desktop\Server DM\gamemodes\server.pwn(6555) : warning 202: number of arguments does not match definition

Строчка 4598 жалуется, код:

public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/afly", true))
{
if(GetPVarType(playerid, "FlyMode")) CancelFlyMode(playerid);
else FlyMode(playerid);
return true;
}
4598 return true;
}

Строчка 4831 и 4864 жалуется, код:
4831 if(noclipdata[playerid][cameramode] == CAMERA_MODE_FLY)
{
new keys,ud,lr;
GetPlayerKeys(playerid,keys,ud,lr);

if(noclipdata[playerid][mode] && (GetTickCount() - noclipdata[playerid][lastmove] > 100))
{
// If the last move was > 100ms ago, process moving the object the players camera is attached to
MoveCamera(playerid);
}

// Is the players current key state different than their last keystate?
if(noclipdata[playerid][udold] != ud || noclipdata[playerid][lrold] != lr)
{
if((noclipdata[playerid][udold] != 0 || noclipdata[playerid][lrold] != 0) && ud == 0 && lr == 0)
{ // All keys have been released, stop the object the camera is attached to and reset the acceleration multiplier
StopPlayerObject(playerid, noclipdata[playerid][flyobject]);
noclipdata[playerid][mode] = 0;
noclipdata[playerid][accelmul] = 0.0;
}
else
{ // Indicates a new key has been pressed

// Get the direction the player wants to move as indicated by the keys
noclipdata[playerid][mode] = GetMoveDirectionFromKeys(ud, lr);

// Process moving the object the players camera is attached to
MoveCamera(playerid);
}
}
noclipdata[playerid][udold] = ud; noclipdata[playerid][lrold] = lr; // Store current keys pressed for comparison next update
return 0;
}
4864 return true;
}

Строчка 6548 и 6555 жалуется, код:
CMD:afly(playerid,params[])
{
6548 if(dostup[playerid] = 0) return true;
if(PlayerInfo[playerid][pAdmin] < 1) return true;
SetPVarInt(playerid,"spawn_ac",1);

if(GetPVarType(playerid, "FlyMode"))
{
new inter, world, Float:X, Float:Y, Float:Z, Float:FA;
6555 GetPlayerHealth(PlayerInfo[playerid][pHealth]);
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, FA);
inter = GetPlayerInterior(playerid);
world = GetPlayerVirtualWorld(playerid);
SetPVarFloat(playerid, "SpecX", X);
SetPVarFloat(playerid, "SpecY", Y);
SetPVarFloat(playerid, "SpecZ", Z);
SetPVarFloat(playerid, "SpecFA", FA);
SetPVarInt(playerid, "SpecInt", inter);
SetPVarInt(playerid, "SpecWorld", world);

CancelFlyMode(playerid);
}
else
{
SetPVarInt(playerid, "SpecBool", 1);
FlyMode(playerid);
}
return true;
}

Просьба, кто знает в чем проблемы, помогите, буду очень благодарен

Отредактировано пользователем MuhammadPawn


Причина: Убрал код под спойлер

Заметка от

Гость
, создано

Ошибки желательно тоже под код

Понравилась статья? Поделить с друзьями:
  • Ошибка 2176 гранта
  • Ошибка 2125 пежо боксер
  • Ошибка 2162 мтс при отправке смс
  • Ошибка 213 steam vr
  • Ошибка 2124 на принтере чеков