Loose indentation pawno как исправить

Начинающие осваивать pawno задавали не однократно вопрос "как исправить warning 217?".Пишу это для вас Сам варнинг выглядит так: warning 217: loose indentation Давайте разберём что тут написано: warning 217: loose indentation - невыровненная строка (return должен быть строго под телом функции по...

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;
        }

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


#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 скрытых пользователей

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.

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

Вот что выходит при компилировании: 
C:UsersFelixDesktopServer DMgamemodesserver.pwn(4598) : warning 217: loose indentation
C:UsersFelixDesktopServer DMgamemodesserver.pwn(4831) : warning 217: loose indentation
C:UsersFelixDesktopServer DMgamemodesserver.pwn(4864) : warning 217: loose indentation
C:UsersFelixDesktopServer DMgamemodesserver.pwn(6548) : warning 211: possibly unintended assignment
C:UsersFelixDesktopServer DMgamemodesserver.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;
}

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

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


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

Заметка от

Гость
, создано 15 апреля, 2018

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


  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


Как исправить Warning

Значение Warning можно посмотреть .

warning 219 писал(а):warning 219: local variable «%s» shadows a variable at a preceding level

Это значит что переменная дважды объявлена. Пример:

Что делать?
1. мы можем одну из них удалить;
2. можем изменить;

Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается. Пример правильного изменения:

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

new fast1;
fast1 = CreatePickup(1239, 2, 1380.3220,-1771.3235,13.5469);

warning 217 писал(а):warning 217: loose indentation

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

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

stock LSNews(color,const string[])
{
for(
new i = 0; i < MAX_PLAYERS; i++){
        if(IsPlayerConnected(i)){
if(!
lNews[i]){
  SendClientMessage(i, color, string);}}}

Пример правильного табулирования:

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

stock LSNews(color,const string[])
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(!lNews[i])
            {
                SendClientMessage(i, color, string);
            }
        }
    }
}

Можем выровнять все вручную или поставить:

или при помощи все исправить. pragma tabsize — просто маскирует эти warning и не более.

warning 235 писал(а):warning 235: public function lacks forward declaration %s

Это означает что у функции нет forward Например Вы создали паблик:

И увас появляется этот варинг что же делать? Просто добавляем forward:

Если вы не хотите каждый раз писать forward то можно сделать так:

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

#define public:%1(%2) forward %1(%2);
public %1(%2)

И тогда новые паблики мы делаем так:

warning 216 писал(а):warning 216: nested comment ;

Вот так это выглядит:

исправление:

warning 213 писал(а):warning 213: tag mismatch

Это означает не совпадения аргументов вот допустим самый простой случай:

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

#define CreateObject CreateDynamicObject
#define MoveObject MoveDynamicObject      

решение:

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

#define CreateObject, CreateDynamicObject
#define MoveObject,  MoveDynamicObject      

warning 201 писал(а):warning 201: redefinition of constant/macro

Двойное определение одинаковой константы define:

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

#define OnPlayerEnterRaceCheckpoint
#define OnPlayerEnterRaceCheckpoint      

исправление — одну удалить:

warning 200 писал(а):warning 200: symbol «%s» is truncated to 31 characters

Это обозначает что мы при создании переменной ввели больше 31 символа. Пример:

Решение — сменить название или укоротить.

warning 202 писал(а):warning 202: number of arguments does not match definition

Это значит что у нас не совпадают аргументы. Возьмем самый простой пример:

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

Create3DTextLabel(" Текст .",0xFFA500FF,.0120,456.2717,35.1719,20.0);

Наша ошибка:

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

-2041.0120,456.2717,35.1719,20.0  
-2041.0120,456.2717,35.1719--------- это на ша координата (она нас не интересует)
20.0--------вот наша ошибка (20----это расстояние с которого наш текст будет виден)
а вот 0 это у нас testLOS- линия видимости

Нам 0 нужно заменить на 1

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

Create3DTextLabel(" Текст .",0xFFA500FF,1111.1111,111.1111,11.1111,20.1);

warning 203 писал(а):warning 203: symbol is never used: %s

Это означает что данный символ нигде не используется. Пример — создадим переменную:

И тут у нас возникает вопрос?:

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

(2378) warning 203: symbol is never used: "respon"

Что же делать? Ответ прост — найти эту переменную и удалить.

warning 204 писал(а):warning 204: symbol is assigned a value that is never used %s

Это значит что создали переменную и массив, а он негде не используется:

Решение — просто удалить.

warning 209 писал(а):warning 209: function «%s» should return a value

Это значит что наша функция не возвращается (простыми словами нет return 1; или return 0;). Пример:

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

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) 
{ 
   if 
(newkeys == 1024) 
   
{ 
   OnPlayerCommandText
(playerid,"/Blablabal"); 
   return 1
; <========Вот наш return  ДО
   
} 
}

Решение:

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

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
   if (newkeys == 1024)
   {
   OnPlayerCommandText(playerid,"/Blablabal");
   }
   return 1; <========Вот наш return ПОСЛЕ
}

Author

Message

Senior Member

Old

07-28-2016

, 12:36

 

warning 217: loose indentation

Reply With Quote

#1


Hello
My question is how can I get rid of plugin warnings when compiling

Code:

// Sm_votehs.sp (85): warning 217: loose indentation
// Sm_votehs.sp (96): warning 217: loose indentation

Code:

public Action:Wyswietl_glosowanie(Handle timer, any:client)
{
    if(rund==1 && IsValidPlayer(client))
    {
        if(gunmenu_get_options(client))
        {
    new String:string[64];
            new Handle:menu = CreateMenu(GlosowanieHand);
            Format(string,sizeof(string),"%t", "menu_title", LANG_SERVER);
            SetMenuTitle(menu, string);
            
            Format(string,sizeof(string),"%t", "menu_tak", LANG_SERVER);
            AddMenuItem(menu, "dice", string);
            
            Format(string,sizeof(string),"%t", "menu_nie", LANG_SERVER);
            AddMenuItem(menu, "dice", string);
            
            SetMenuExitButton(menu, true);
            DisplayMenu(menu, client, 15);
        }
        else
            CreateTimer(2.0,Wyswietl_glosowanie,client);
    }
}

szogun is offline

AlliedModders Donor

8guawong's Avatar

Join Date: Dec 2013

Location: BlackMarke7

Old

07-28-2016

, 12:40

 

Re: warning 217: loose indentation

Reply With Quote

#2


don’t worry it won’t affect anything

__________________

8guawong is offline

Senior Member

Old

07-28-2016

, 12:41

 

Re: warning 217: loose indentation

Reply With Quote

#3


I know that this will not affect the game but wanted you to know where what I owe that warnings

szogun is offline

Veteran Member

Impact123's Avatar

Join Date: Oct 2011

Location: Germany

Old

07-28-2016

, 12:53

 

Re: warning 217: loose indentation

Reply With Quote

#4


Look at the code you posted, you’ll see that the line

PHP Code:



new String:string[64]; 




is not aligned with the rest of the code in the block. Indent (in this case by adding 4 spaces in front of it) and the warning should vanish.

__________________


Last edited by Impact123; 07-28-2016 at 12:56.

Impact123 is offline

Veteran Member

shanapu's Avatar

Join Date: Apr 2015

Location: .de

shanapu is offline

Senior Member

Old

07-28-2016

, 12:55

 

Re: warning 217: loose indentation

Reply With Quote

#6


I already did, and one warning has been solved, now I want to know how can I remove one more warning namely

Code:

// Sm_votehs.sp (96): warning 217: loose indentation

szogun is offline

Veteran Member

Impact123's Avatar

Join Date: Oct 2011

Location: Germany

Old

07-28-2016

, 13:02

 

Re: warning 217: loose indentation

Reply With Quote

#7


This is hard to tell without seeing the code block that causes it. I recommend you to get an editor (for example notepad++) that is able to show you «invisible» characters like tabs/spaces and do what is described in the page shanapu linked to.

__________________


Last edited by Impact123; 07-28-2016 at 13:05.

Impact123 is offline

Senior Member

General Lentils's Avatar

Old

07-28-2016

, 16:05

 

Re: warning 217: loose indentation

Reply With Quote

#8


Quote:

Originally Posted by szogun
View Post

Hello
My question is how can I get rid of plugin warnings when compiling

Code:

// Sm_votehs.sp (85): warning 217: loose indentation
// Sm_votehs.sp (96): warning 217: loose indentation

Code:

public Action:Wyswietl_glosowanie(Handle timer, any:client)
{
    if(rund==1 && IsValidPlayer(client))
    {
        if(gunmenu_get_options(client))
        {
    new String:string[64];
            new Handle:menu = CreateMenu(GlosowanieHand);
            Format(string,sizeof(string),"%t", "menu_title", LANG_SERVER);
            SetMenuTitle(menu, string);
            
            Format(string,sizeof(string),"%t", "menu_tak", LANG_SERVER);
            AddMenuItem(menu, "dice", string);
            
            Format(string,sizeof(string),"%t", "menu_nie", LANG_SERVER);
            AddMenuItem(menu, "dice", string);
            
            SetMenuExitButton(menu, true);
            DisplayMenu(menu, client, 15);
        }
        else
            CreateTimer(2.0,Wyswietl_glosowanie,client);
    }
}

will fix your problems


Last edited by General Lentils; 07-28-2016 at 16:06.

General Lentils is offline

Veteran Member

xines's Avatar

Join Date: Aug 2013

Location: Denmark

Old

07-31-2016

, 09:35

 

Re: warning 217: loose indentation

Reply With Quote

#9


Tends to happen when you mix tabs with spaces, i would suggest to stick with tabs overall, another thing to note is to allign the code properly.

__________________

xines is offline

Veteran Member

Grey83's Avatar

Join Date: Dec 2014

Location: Ukraine

Old

07-31-2016

, 14:29

 

Re: warning 217: loose indentation

Reply With Quote

#10


If you use tabs, then try using this code

PHP Code:



public Action:Wyswietl_glosowanie(Handle timerany:client)
{
    if(
rund==&& IsValidPlayer(client))
    {
        if(
gunmenu_get_options(client))
        {
            new 
Handle:menu CreateMenu(GlosowanieHand);
            
SetMenuTitle(menu"%t""menu_title"LANG_SERVER);

            new 

String:string[64];
            
Format(string,sizeof(string),"%t""menu_tak"LANG_SERVER);
            
AddMenuItem(menu"yes"string);Format(string,sizeof(string),"%t""menu_nie"LANG_SERVER);
            
AddMenuItem(menu"no"string);SetMenuExitButton(menutrue);
            
DisplayMenu(menuclient15);
        }
        else 
CreateTimer(2.0,Wyswietl_glosowanie,client);
    }





__________________

Grey83 is offline

warning 217: loose indentation

Модераторы: Subb98, liFe iS GoOD

  • Список форумов AMX Mod X Скриптинг

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

warning 217: loose indentation

При компиляции выдаёт ошибки:

Код: Выделить всё
Admin_menus.sma(43) : warning 217: loose indentation
Admin_menus.sma(47) : warning 217: loose indentation
Admin_menus.sma(96) : warning 217: loose indentation
Admin_menus.sma(100) : warning 217: loose indentation
Admin_menus.sma(120) : warning 217: loose indentation
Admin_menus.sma(126) : warning 217: loose indentation
Admin_menus.sma(132) : warning 217: loose indentation
Admin_menus.sma(139) : warning 217: loose indentation
Admin_menus.sma(146) : warning 217: loose indentation
Admin_menus.sma(168) : warning 217: loose indentation
Admin_menus.sma(172) : warning 217: loose indentation
Admin_menus.sma(198) : warning 217: loose indentation
Admin_menus.sma(204) : warning 217: loose indentation
Admin_menus.sma(211) : warning 217: loose indentation
Admin_menus.sma(232) : warning 217: loose indentation
Admin_menus.sma(236) : warning 217: loose indentation

я отметил ошибки, которые, мешают работать меню, есть какой-то вариант их исправить?

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
native get_m79(id);
native give_weapon_thompson(id);
native Ak47_DarkHunter(id);
native get_user_inviz(id);
native set_user_inviz(id, amount);
native give_weapon_pkm(id);
native give_weapon_infinir(id)#define plugin_name "Admin_menus"
#define version "1.0"
#define author "Nikita"

#define VIP ADMIN_IMMUNITY
#define ADMIN_L2 ADMIN_CFG
#define ADMIN_L3 ADMIN_CVAR
#define ADMIN_L4 ADMIN_BAN

new one_map[33];public plugin_init(){
    register_plugin(plugin_name, version, author);
    register_clcmd("vipmenu", "vipmenu");
    register_clcmd("adml2", "adml2_menu");
    register_clcmd("adml3", "adml3_menu");
    register_clcmd("adml4", "adml4_menu");
}
public vipmenu(id){
    if(!(get_user_flags(id) & VIP)){
        return PLUGIN_HANDLED;
    }
    new formatted_str[4][64];
    format(formatted_str[0], charsmax(formatted_str[]), "yВип-Меню^nd[rУровень: L6d]");
    format(formatted_str[1], charsmax(formatted_str[]), "wВзятьr 255APw +r 255HP");
    format(formatted_str[2], charsmax(formatted_str[]), "wВзятьr $10000");
    format(formatted_str[3], charsmax(formatted_str[]), "wВзятьw Инфинити d[rКрасныйd]");
    new VIPMENU = menu_create(formatted_str[0], "vip_handlermenu");
    for(new il = 1; il < sizeof(formatted_str); il++){
        menu_additem(VIPMENU, formatted_str[il]);
    }
    
    menu_setprop
(VIPMENU, MPROP_NEXTNAME, "Дальше");
    menu_setprop(VIPMENU, MPROP_BACKNAME, "Назад");
    menu_setprop(VIPMENU, MPROP_EXITNAME, "Выход");
    menu_setprop(VIPMENU, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, VIPMENU, 0);
    return PLUGIN_HANDLED;
}
public vip_handlermenu(id, menu, key){
    switch(key+1){
        case 1:{
            if(one_map[id]>7){
                set_user_health(id, 255);
                set_user_armor(id, 255);
                one_map[id]++
            }
        }
        case 2:{
            if(one_map[id]>7){
                cs_set_user_money(id, cs_get_user_money(id) + 10000);
                one_map[id]++
            }
        }
        case 3:{
            if(one_map[id]>5){
                give_weapon_infinir(id);
                one_map[id]++
            }
        }
        case MENU_EXIT:{
            return menu_destroy(menu);
        }
    }
    return menu_destroy(menu);
}
public adml2_menu(id){
    if(!(get_user_flags(id) & ADMIN_L2)){
        return PLUGIN_HANDLED;
    }
    new formatted_str[7][64];
    format(formatted_str[0], charsmax(formatted_str[]), "yАдмин-Менюnd[rУровень: L2]");
    format(formatted_str[1], charsmax(formatted_str[]), "wВзятьr 400APw +r 400HP");
    format(formatted_str[2], charsmax(formatted_str[]), "wВзятьr $30000");
    format(formatted_str[3], charsmax(formatted_str[]), "wВзятьr Пулемёт PKM(ЭрКаЭм)");
    format(formatted_str[4], charsmax(formatted_str[]), "wВзятьr Гранатомёт");
    format(formatted_str[5], charsmax(formatted_str[]), "wВзятьr Скорость+Инвиз");
    format(formatted_str[6], charsmax(formatted_str[]), "wВзятьr +500АР + 500HP");
    new L2MENU = menu_create(formatted_str[0], "l2_handlermenu");
    for(new il = 1; il < sizeof(formatted_str); il++){
        menu_additem(L2MENU, formatted_str[il]);
    }
    
    menu_setprop
(L2MENU, MPROP_NEXTNAME, "Дальше");
    menu_setprop(L2MENU, MPROP_BACKNAME, "Назад");
    menu_setprop(L2MENU, MPROP_EXITNAME, "Выход");
    menu_setprop(L2MENU, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, L2MENU, 0);
    return PLUGIN_HANDLED;
}
public l2_handlermenu(id, menu, key){
    switch(key+1){
        case 1:{
            if(one_map[id]>7){
                set_user_health(id, 400);
                set_user_armor(id, 400);
                one_map[id]++
        }
    }
        case 2:{
            if(one_map[id]>7){
                cs_set_user_money(id, cs_get_user_money(id) + 30000);
            one_map[id]++//тут
        }
    }
        case 3:{
            if(one_map[id]>5){
                give_weapon_pkm(id);
            one_map[id]++//тут
        }
    }
        case 4:{
            if(one_map[id]>10){
                get_m79(id);
            one_map[id]++//тут
        }
    }
        case 5:{
            if(one_map[id]>5){
                set_user_maxspeed(id, 999.0);
                set_user_inviz(id, 15);
            one_map[id]++//тут
        }
    }
        case 6:{
            if(one_map[id]>6){
                set_user_health(id, get_user_health(id) + 500);
                set_user_armor(id, get_user_armor(id) + 500);
            one_map[id]++ //тут
        }
    }
    case MENU_EXIT:{
        return menu_destroy(menu);
        }
    }
    return menu_destroy(menu);
}
    
public adml3_menu
(id){
    if(!(get_user_flags(id) & ADMIN_L3)){
        return PLUGIN_HANDLED;
    }
    new formatted_str[6][64];
    format(formatted_str[0], charsmax(formatted_str[]), "yАдмин-меню^nd[rУровень: L3d]");
    format(formatted_str[1], charsmax(formatted_str[]), "wВзятьr 350APw +r 350HP");
    format(formatted_str[2], charsmax(formatted_str[]), "wВзятьr $22000");
    format(formatted_str[3], charsmax(formatted_str[]), "wВзятьr автомат AK47 Dark Hunter");
    format(formatted_str[4], charsmax(formatted_str[]), "wВзятьr Гранатомёт");
    format(formatted_str[5], charsmax(formatted_str[]), "wВзятьr +300APw +r +300HP");
    new L3MENU = menu_create(formatted_str[0], "l3_handlermenu");
    for(new il = 1; il < sizeof(formatted_str); il++){
        menu_additem(L3MENU, formatted_str[il]);
    }
    
    menu_setprop
(L3MENU, MPROP_NEXTNAME, "Дальше");
    menu_setprop(L3MENU, MPROP_BACKNAME, "Назад");
    menu_setprop(L3MENU, MPROP_EXITNAME, "Выход");
    menu_setprop(L3MENU, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, L3MENU, 0);
    return PLUGIN_HANDLED;
}
public l3_handlermenu(id, menu, key){
    switch(key+1){
        case 1:{
        if(one_map[id]<7){
            set_user_health(id, 350);
            set_user_armor(id, 350);
            one_map[id]++
            }
        }
        case 2:{
        if(one_map[id]<7){
            cs_set_user_money(id, cs_get_user_money(id) + 22000);
            one_map[id]++
        }
    }
        case 3:{
            if(one_map[id]>5){
                Ak47_DarkHunter(id)
            one_map[id]++//тут
        }
    }
        case 4:{
        if(one_map[id]>5){
            get_m79(id);
        one_map[id]++//тут
        }
    }
        case 5:{
            if(one_map[id]>6){
                set_user_health(id, get_user_health(id) + 300);
                set_user_armor(id, get_user_armor(id) + 300);
            one_map[id]++ //Тут
        }
    }
        case MENU_EXIT:{
            return menu_destroy(menu);
        }
    }
    return menu_destroy(menu);
}
public adml4_menu(id){
    if(get_user_flags(id) & ADMIN_L4){
        return PLUGIN_HANDLED
    
}
    new formatted_str[5][64];
    format(formatted_str[0], charsmax(formatted_str[]), "yАдмин-меню^nd[rУровень: L4d]");
    format(formatted_str[1], charsmax(formatted_str[]), "wВзятьr 300APw +r 300HP");
    format(formatted_str[2], charsmax(formatted_str[]), "wВзятьr $22000");
    format(formatted_str[3], charsmax(formatted_str[]), "wВзятьr автомат Томпсона");
    format(formatted_str[4], charsmax(formatted_str[]), "wВзятьr Гранатомёт");
    new L4MENU = menu_create(formatted_str[0], "l4_handlermenu");
    for(new il = 1; il < sizeof(formatted_str); il++){
        menu_additem(L4MENU, formatted_str[il]);
    }
    
    menu_setprop
(L4MENU, MPROP_NEXTNAME, "Дальше");
    menu_setprop(L4MENU, MPROP_BACKNAME, "Назад");
    menu_setprop(L4MENU, MPROP_EXITNAME, "Выход");
    menu_setprop(L4MENU, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, L4MENU, 0);
    return PLUGIN_HANDLED;
}
public l4_handlermenu(id, menu, key){
    switch(key+1){
        case 1:{
        if(one_map[id]<7){
            set_user_health(id, 300);
            set_user_armor(id, 300);
            one_map[id]++
        }
    }
        case 2:{
        if(one_map[id]<7){
            cs_set_user_money(id, cs_get_user_money(id) + 16000);
            one_map[id]++
        }
    }
        case 3:{
            if(one_map[id]>5){
                Ak47_DarkHunter(id)
                one_map[id]++
        }
    }
        case 4:{
        if(one_map[id]>1){
            get_m79(id);
            one_map[id]++
        }
    }
        case MENU_EXIT:{
            return menu_destroy(menu);
        }
    }
    return menu_destroy(menu);
}

Название темы скорректировано // Subb98

Аватара пользователя

Nick2001

 
Сообщения: 31
Зарегистрирован: 02 мар 2016, 19:43
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6

Re: warning 217: loose indentation

Сообщение L4D2 » 23 мар 2016, 02:31

Табуляция…
Никакой ошибки здесь нету, он лишь предупреждает.
Научитесь расставлять правильно табуляцию.

Аватара пользователя

L4D2

 
Сообщения: 792
Зарегистрирован: 25 июн 2011, 19:26
Благодарил (а): 240 раз.
Поблагодарили: 100 раз.
Языки программирования: Counter-Strike 1.6

Re: warning 217: loose indentation

Сообщение Nick2001 » 23 мар 2016, 02:37

Ещё, он не выполняет своих функции.
Всё раставил ошибок нет, но всё равно не выполняет

Добавлено спустя 20 секунд:
Только одну, выдаёт 22000 долларов

Аватара пользователя

Nick2001

 
Сообщения: 31
Зарегистрирован: 02 мар 2016, 19:43
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6

Re: warning 217: loose indentation

Сообщение Fedcomp » 23 мар 2016, 09:26

Если плагин скомпилировался (или если вы обратите внимание на слово warning) то это предупреждения.
В предупреждении у вас сказано что неправильно расставлены отступы, поправьте отступы и предупреждение уйдет. За сим закрываю.

Не помогаю в ЛС — есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.

«я ставлю зависимости потому что мне приятно» — subb98 @ 2017

Аватара пользователя

Fedcomp

Администратор
 
Сообщения: 4910
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 790 раз.
Поблагодарили: 1302 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

Понравилась статья? Поделить с друзьями:
  • Loopmidi error code 21 ошибка
  • Loopback error detected err disabled
  • Lookup failed skyrim как исправить
  • Lookup failed fallout 4 как исправить ошибку
  • Lookup error traceback most recent call last