Warning 217 loose indentation pawno как исправить


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

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

warning 217: loose indentation — не выровненная строка (нарушение табуляции).

Предупреждение 217 можно исправить добавив эту строку в начало мода (после #include)

#pragma tabsize 0

Но, использовать #pragma tabsize крайне не рекомендуется. Подробнее о ней можете прочитать в этой теме

Лучше всего — исправить неверный код (построить код лесенкой).

Код ниже, вызовет предупреждение 217:

if(GPVI(playerid,»PlayerDrunk») >= 5)
{
GGPVI(playerid,»PlayerDrunkTime»,1);
if(GPVI(playerid,»PlayerDrunkTime») >= 8)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
ApplyAnimation(playerid,»PED»,»WALK_DRUNK»,4.1,1,1,1,1,1);
}
DPVR(playerid,»PlayerDrunkTime»);
}
}

А теперь исправим его:

if(GPVI(playerid,»PlayerDrunk») >= 5)
{
GGPVI(playerid,»PlayerDrunkTime»,1);
if(GPVI(playerid,»PlayerDrunkTime») >= 8)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
ApplyAnimation(playerid,»PED»,»WALK_DRUNK»,4.1,1,1,1,1,1);
}
DPVR(playerid,»PlayerDrunkTime»);
}
}

Вот и всё! Для табуляции используйте клавишу TAB и Shift + TAB

Урок подготовил: cooper

Помогите с кодом, команда /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

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

Работая в павно я начал очень часто сталкиваться с warning 217: loose indentation невыровненная строка, и смотрел самое построение мода, ломал голову как же убрать, но моя проблема решилась как я нашел этот урок.

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

Код с ошибкой:

Code

if(strcmp(cmd, «/lolka», true) == 0)   
{   
if(IsPlayerConnected(playerid))   
{   
ShowPlayerDialog(playerid,17,DIALOG_STYLE_INPUT,»Text»,»Text»,»Text»,»Text»);   
}   
return 1;   
}    

Вроде-бы все в порядке, но главная ошибка в построении кода. После каждой открытой скобки, в следующей строке нужно нажимать TAB который делает отступ сразу примерно на 3-4 пробела.

Ясно станет на примере ( верный код без варнинга ):

Code

if(IsPlayerConnected(playerid))   
             {   
                 ShowPlayerDialog(playerid,17,DIALOG_STYLE_INPUT,»Text»,»Text»,»Text»,»Text»);   
             }

И в итоге наш код должен иметь вот такой вид:

Code

if(strcmp(cmd, «/lolka», true) == 0)   
         {   
             if(IsPlayerConnected(playerid))   
             {   
                 ShowPlayerDialog(playerid,17,DIALOG_STYLE_INPUT,»Text»,»Text»,»Text»,»Text»);   
             }   
             return 1;   
         }

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

Автор начального урока не я, но я постарался его сократить и улучшить для максимального понимания

Сообщение отредактировал Ak-96Понедельник, 10.12.2012, 21:53

Понравилась статья? Поделить с друзьями:
  • Как составить на один квартал бюджет продаж
  • Как составить программу туристического маршрута
  • Как найти где прописан человек по фио
  • Как исправить ошибку при запуске приложения 0xc0000006
  • Please contact itunes support to complete this transaction как исправить