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

Description: Основы скриптинга
Moderator: SJplayer

Дим M
Topic author, Администратор
Администратор
Avatar
Дим M
Topic author, Администратор
Администратор
Posts: 1611
Joined: 5 Apr 2013
With us: 11 years 5 months

#1by Дим » 11 Apr 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:

Code: Select all

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


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

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

Code: Select all

  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 KiB) Viewed 34168 times


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

Делаем код лесенкой (Notepad ++) 2.jpg
Делаем код лесенкой (Notepad ++) 2.jpg (85.5 KiB) Viewed 34168 times


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

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


Делаем код лесенкой (Notepad ++) 3.jpg
Делаем код лесенкой (Notepad ++) 3.jpg (75.8 KiB) Viewed 34168 times


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

Делаем код лесенкой (Notepad ++) 4.jpg
Делаем код лесенкой (Notepad ++) 4.jpg (70.68 KiB) Viewed 34168 times


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

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

Делаем код лесенкой (Notepad ++) 5.jpg
Делаем код лесенкой (Notepad ++) 5.jpg (20.83 KiB) Viewed 34168 times


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

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


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 KiB) Viewed 34168 times


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


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


Aleksandr M
Модератор
Модератор
Avatar
Aleksandr M
Модератор
Модератор
Posts: 55
Joined: 4 Jun 2013
With us: 11 years 3 months

#2by Aleksandr » 8 Jul 2013, 19:16

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

SLesaruga
Avatar
SLesaruga
Posts: 2
Joined: 9 Nov 2014
With us: 9 years 10 months

#3by SLesaruga » 9 Nov 2014, 0:57

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

Дим M
Topic author, Администратор
Администратор
Avatar
Дим M
Topic author, Администратор
Администратор
Posts: 1611
Joined: 5 Apr 2013
With us: 11 years 5 months

#4by Дим » 9 Nov 2014, 1:15

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

Miranda F
Старшина
Старшина
Avatar
Miranda F
Старшина
Старшина
Posts: 143
Joined: 5 Jul 2013
With us: 11 years 2 months

#5by Miranda » 15 Jan 2015, 16:55

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


  • Similar Topics
    Replies
    Views
    Last post

Return to “Основы скриптинга”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest