Перейти к содержанию
Авторизация  
LeonYT

Используем перенос текста и аргументов (избегаем длинных строк кода)

Рекомендуемые сообщения

LeonYT

Приветствую пользователей портала, довольно часто приходилось встречать не особо дальновидных людей (в том числе пишущих мануалы/туториалы :D83DDE02: ), которые создавали колоссальной длины строки не учитывая тот факт, что редактировать в дальнейшем всё это крайне трудно.

Как это обычно выглядит:

ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX, "Заголовок", "Тутмноготекста\nТутмноготекста\nТутмноготекста\nТутмноготекста\nТутмноготекста\n\nАТУТВООБЩЕКАПСОМ", "Кнопка 1", "Кнопка 2");

Если вам в дальнейшем понадобится редактировать сие чудо, то вы будете похожи на человека, одевающего майку через ноги :-D.

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

Так как же вам поступить? Будем переносить аргументы и саму строку!

ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX, "Заголовок",
"Тутмноготекста\n\
Тутмноготекста\n\
Тутмноготекста\n\
Тутмноготекста\n\
Тутмноготекста\n\n\
АТУТВООБЩЕКАПСОМ",
"Кнопка 1", "Кнопка 2");

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

ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX,
"Заголовок",
	"Тутмноготекста\n\
	Тутмноготекста\n\
	Тутмноготекста\n\
	Тутмноготекста\n\
	Тутмноготекста\n\n\
	АТУТВООБЩЕКАПСОМ",
"Кнопка 1", "Кнопка 2");

Вы также можете использовать данный приём в других функциях, давайте покажу как это действует с format:

new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new ip[16];
GetPlayerIp(playerid, ip, sizeof(ip));
new dialog_str[85+1+(-2+MAX_PLAYER_NAME)+(-2+16)+(-2+5)];
format(dialog_str, sizeof(dialog_str),
	"{FFFFFF}Ваш ник: {FFFF00}%s\n\
	{FFFFFF}Ваш IP: {FFFF00}%s\n\
	{FFFFFF}Ваш Ping: {FFFF00}%d",
name,
ip,
GetPlayerPing(playerid)
);
	
ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX, "Информация о игроке", dialog_str, "Закрыть", "");

В данном примере мы видим, что дальнейшее редактирование и добавление новых спецификаторов будет намного проще, нежели мы бы писали всё в одну строку.
P.S. Символ перехода (обратный слэш) в подсчёте строки не участвует, т.к. он требуется для распознания компилятором переноса строки. (В конечной строке этого символа попросту не будет).
Ну а если вы до сих пор не знаете, как посчитать размер строки, то советую посетить вам данную тему.

 

Спасибо за внимание  :D83DDE0A:. Удачи в начинаниях!

Автор: LeonYT

  • Like 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.