#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
Заблокирован
- Регистрация
- 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») >=
{
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») >=
{
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;
}
Как видно, что каждая оскобка находится на уровне со своей. И хотел бы сказать, прежде чем писать мод, постарайтесь изучить основы скриптинга, т.к в дальнейшем у вас будут проблемы из-за таких маленьких проблем
Автор начального урока не я, но я постарался его сократить и улучшить для максимального понимания
Сообщение отредактировал Ak-96 — Понедельник, 10.12.2012, 21:53