Делаем код "лесенкой" (Notepad ++)

Описание: Основы скриптинга
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 11 апреля 2013, 9:39

#pragma tabsize или warning 217
Автор: Saimon_Jones

Начнем с того , для чего нужна #pragma tabsize и что такое warning 217


Прежде всего если вы скачали или написали сами мод/скрипт не применяйте #pragma tabsize 0, либо удалите. Почему ? - спросите вы. #pragma tabsize 0 Скрывает ( именно скрывает , а не удаляет ) ошибки табуляции . Если удалить #pragma tabsize появляется warning 217. Ошибки табуляции , даже при скрытом режиме , нагружают мод/скрипт и сам сервер.

Чтобы у нас не появилось warning 217, в своём моде, нужно выравнивать код лесенкой.

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

Обычный код, при компиляции которого появляется warning 217:

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

if(strcmp(cmd, "/reg", true) == 0) 
 
{ 
if(IsPlayerConnected(playerid)) 
           
{ 
ShowPlayerDialog
(playerid,1,DIALOG_STYLE_INPUT,"Регистрация","Введите текст","Ок","Отмена"); 
    
} 
              return 1
; 
       


Табулирует ваш скрипт кнопка TAB . Она делает отступ в 3-4 символа ( пробела ) . После каждой открытой скобки, в следующей строке должна быть табуляция (т.е. TAB) .Как только функция (тело) завершена, закрывающуюся скобку ставим под той скобкой, которая открывала это тело, далее пишем код сразу под закрытой скобкой, примерно так:

Так выглядит табулированный код:

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

  if(strcmp(cmd, "/reg", true) == 0) 
      
{ 
          if
(IsPlayerConnected(playerid)) 
          
{ 
              ShowPlayerDialog
(playerid,1,DIALOG_STYLE_INPUT,"Регистрация","Введите текст","Ок","Отмена"); 
          
} 
          return 1
; 
      
}


Но возникает вопрос на подобие этого :
"У меня 100500 warning 217 после удаления #pragma tabsize 0 ? что мне делать ? выравнивать их самому ?"

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

Этот способ (ниже) НЕ выравнивает код лесенкой.


Как это сделать ?

1. Скачиваем notepad++ по ссылке
2. Запускаем Notepad ++ и открываем наш скрипт
3. Выбираем Плагины > Plugin Manager > Show Plugin Manager

Делаем код лесенкой (Notepad ++) 1.jpg
Делаем код лесенкой (Notepad ++) 1.jpg (26.15 КБ) 33405 просмотров


4. Ищем в списке плагин Ident By Fold

Делаем код лесенкой (Notepad ++) 2.jpg
Делаем код лесенкой (Notepad ++) 2.jpg (85.5 КБ) 33405 просмотров


5. Отмечаем его галочкой и жмем Install (произойдет скачивание и автоматический перезапуск)

Если у вас по каким-то причинам не установился плагин "Ident By Fold"


Делаем код лесенкой (Notepad ++) 3.jpg
Делаем код лесенкой (Notepad ++) 3.jpg (75.8 КБ) 33405 просмотров


скачиваем его с оф.сайта
разработчика и устанавливаем вручную
Далее разархивируем скачанный архив в папку с установленным Notepad++ >> в директорию plugins
Теперь перезагружаем программу Notepad++ и видим что наш плагин виден в списке установленных.

Делаем код лесенкой (Notepad ++) 4.jpg
Делаем код лесенкой (Notepad ++) 4.jpg (70.68 КБ) 33405 просмотров


6. Открываем снова наш скрипт и выделяем его полностью сочетание ctrl + A.

7. Открываем "Плагины" и выбираем "Ident By Fold", нажимаем "Reindent File"

Делаем код лесенкой (Notepad ++) 5.jpg
Делаем код лесенкой (Notepad ++) 5.jpg (20.83 КБ) 33405 просмотров


Теперь наш код автоматически выстраивается "лесенкой".

Этот способ выравнивает код лесенкой.


2 способ , выравнивающий код лесенкой , с помощью того же Notepad++ :

1. Снова открываем список Plugin Manager
2. Находим в списке TextFX (возможно будет TextFX Characters)
3. Устанавливаем ( Notepad перезагрузится )
4. В меню находим: TextFX -> TextFX Edit -> Reindent C++ Code

Делаем код лесенкой (Notepad ++) 6.jpg
Делаем код лесенкой (Notepad ++) 6.jpg (70.01 КБ) 33405 просмотров


Только теперь наш код выровнен "лесенкой"


Вот и все. Есть недостаток замеченный мной. Скрипты в одну строку он не редактирует. Скорее всего в новых версиях плагина это будет исправлено
Вложения
TextFX.png
TextFX.png (1.71 КБ) 39412 просмотров
TextFX2.png
TextFX2.png (12.13 КБ) 39412 просмотров
[center]i love you [s]mxIni[/s] Mysql[/center]


Aleksandr M
Модератор
Модератор
Аватара
Aleksandr M
Модератор
Модератор
Сообщения: 55
Зарегистрирован: 4 июня 2013
С нами: 10 лет 9 месяцев

#2 Aleksandr » 8 июля 2013, 19:16

Попробовал и вправду работает, и мод легче стал

SLesaruga
Аватара
SLesaruga
Сообщения: 2
Зарегистрирован: 9 ноября 2014
С нами: 9 лет 4 месяца

#3 SLesaruga » 9 ноября 2014, 0:57

последние две картинки не отображаются

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#4 Дим » 9 ноября 2014, 1:15

SLesaruga писал(а):последние две картинки не отображаются
Сделаны новые скриншоты и пояснение
[center]i love you [s]mxIni[/s] Mysql[/center]

Miranda F
Старшина
Старшина
Аватара
Miranda F
Старшина
Старшина
Сообщения: 143
Зарегистрирован: 5 июля 2013
С нами: 10 лет 8 месяцев

#5 Miranda » 15 января 2015, 16:55

Хороший способ, и вес pwn сразу поубавился
Изображение


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Основы скриптинга»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 6 гостей