PDA

Просмотр полной версии : [Вопрос] Ошибка при создании диалога



PawnoNoob
29.07.2016, 17:39
Привет всем ещё раз. Уверен в том, что этот вопрос покажется Вам слишком странным, но, прошу, не судите строка "нуба".:sorry:
Сразу к делу: решил создать диалог с информацией о блокировке (это не так важно) и хочу вместить туда подробную информацию о блокировке (это тоже не так уж и важно) и по моим подсчётам вышло около 700 символов, что не так уж и много по-моему, но компилятор так не считает:



error 075: input line too long (after substitutions)
error 037: invalid string (possibly non-terminated string)
error 017: undefined symbol "FFFFFF"
warning 217: loose indentation
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line


Что делать в этой ситуации? Сократить количество символов или использовать strcat?

Дополню: делаю всё так:

format...
текст: ...\n\
ещё текст: ...\n\
и ещё текст", тут данные);
ShowPlayerDialog(....);

vovandolg
29.07.2016, 17:43
А код где?

PawnoNoob
29.07.2016, 17:45
А код где?

Добавил, только не полностью свой, так как по сути и смысла-то нет.
Ещё хотелось бы сказать, что переносы не помогают, например:
преобразование этого

тексттексттекст\n\
в это

текст\n\
текст\n\
текст
не помогает.

Redsan
29.07.2016, 18:13
Вот пример:

ShowPlayerDialog(playerid, DIALOG_ID, DIALOG_STYLE_INPUT,
"Имя диалогового окна",
"{FFFFFF}"\
"1 строка\n"\
"2 строка\n"\
"3 строка",
"Кнопка 1", " Кнопка 2");

PawnoNoob
29.07.2016, 18:18
Вот пример:

ShowPlayerDialog(playerid, DIALOG_ID, DIALOG_STYLE_INPUT,
"Имя диалогового окна",
"{FFFFFF}"\
"1 строка\n"\
"2 строка\n"\
"3 строка",
"Кнопка 1", " Кнопка 2");

Я делаю почти так же, но с использованием формата.

vovandolg
29.07.2016, 18:32
Нормально покажи как ты делаешь что там такого секретного))
тут куда грамотнее и умнее люди сидят могут похлеще придумать,
нету смысла прятать что то если хочешь чтобы тебе помогли:bye:

PawnoNoob
29.07.2016, 18:50
Нормально покажи как ты делаешь что там такого секретного))
тут куда грамотнее и умнее люди сидят могут похлеще придумать,
нету смысла прятать что то если хочешь чтобы тебе помогли:bye:

Та я вроде не прячу, просто я вроде всё рассказал:

format(string, sizeof(string), "{FFFFFF}Аккаунт с именем {FF0000}%s {FFFFFF}заблокирован администратором {FFA500}%s.\n\
{FFFFFF}Дата блокировки аккаунта: {FFD700}%s.\n\
{FFFFFF}Причина блокировки аккаунта: {FFD700}%s.\n\
{FFFFFF}IP-адрес при блокировке аккаунта: {FFD700}%s.\n\
{FFFFFF}Аккаунт будет разблокирован через %i дней.\n\n\
{FFFF00}Если вы не согласны с блокировкой или считаете, что это сделано по ошибке,\n\
то оставьте жалобу на администратора на нашем форуме в разделе с жалобами."
Ну и ниже соответственно ShowPlayerDialog. Описал общую картину, не предоставив кода. (так как я те строки удалил).
Если я просто начинаю компилировать, то мой компилятор просто крашит, ну а если заккоментирую, то вылазят ошибочки.

ziggi
29.07.2016, 19:04
Компилятору это много. Строки не могут быть длиной выше 512 символов. Можно разделить строки на две и склеить, или использовать компилятор от Zeex (https://github.com/Zeex/pawn).

PawnoNoob
29.07.2016, 19:12
Компилятору это много. Строки не могут быть длиной выше 512 символов. Можно разделить строки на две и склеить, или использовать компилятор от Zeex (https://github.com/Zeex/pawn).

Вот ещё вопрос появился, который относится к этой теме: спецсимволы и их содержание (например %s - 29.07.2016) не считаются?

vovandolg
29.07.2016, 19:15
Вот ещё вопрос появился, который относится к этой теме: спецсимволы и их содержание (например %s - 29.07.2016) не считаются?
Там точки есть, уже считается как символы %s, без точек %i или %d

Daniel_Cortez
29.07.2016, 19:15
Вот ещё вопрос появился, который относится к этой теме: спецсимволы и их содержание (например %s - 29.07.2016) не считаются?
Считается длина только тех строк, которые читает компилятор в исходном коде, а не тех, которые получаются во время работы сервера.

PawnoNoob
29.07.2016, 19:18
Там точки есть, уже считается как символы %s, без точек %i или %d

- - - Добавлено - - -


Считается длина только тех строк, которые читает компилятор в исходном коде, а не тех, которые получаются во время работы сервера.

Всё, вопрос отпадает.
Спасибо за ответ, товарищ администратор! :give_heart:

vovandolg
29.07.2016, 19:24
Не так понял вопрос)
Я думал про то что относится к символьному или числовому виду:crazy:

- - - Добавлено - - -


Считается длина только тех строк, которые читает компилятор в исходном коде, а не те, которые получаются во время работы сервера.

То есть если мы не записали дату/время, а вместо неё %s и нам не надо считать ячейки под дату/время?
Кажется не правильно сформулировали ответ)

DeimoS
29.07.2016, 19:44
То есть если мы не записали дату/время, а вместо неё %s и нам не надо считать ячейки под дату/время?
Кажется не правильно сформулировали ответ)


new string[5];
format(string, sizeof(string), "%s", "пять.");
print(string);
"пять." - 5 символов.
"%s" - 2 символа.
5+2=7. Но мы выделили 5 ячеек для массива "string" и нужные нам символы ("пять.") уместились.
Следовательно...?