Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 14
  1. #1
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±

    Форматирования строк

    Добрый вечер. Как можно показать игроку слишком длинный текст? Кол-во символов превысил ограничений строк в диалогах. Но люди все равно как-то показывают же их. Подскажите оптимальное решение.

    Мой пример решения:
    Код:
    new string[2000]; 
    format(string, sizeof(string), "%s%s%s%s%s%s", str11, str22, str33, str44, str55);
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Правила сервера", string, "Согласен", "Выход");
    - - - Добавлено - - -

    Прошу не ругаться за мое решение, ибо она единственная которая мне знакома.

  2. #2
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Если я тебя правильно понял, то можно "разбить" текст на строки.
    Например:
    PHP код:
    new test[5][] =
    {
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"}
    }; 
    И потом выводим текст.
    PHP код:
        new string[128];
        
    format(string,sizeof(string), "%s%s%s%s%s",test[0],test[1],test[2],test[3],test[4]);
        
    ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Правила сервера"string"Согласен""Выход"); 
    UPD: Рерультат:
    Последний раз редактировалось Sp1ke; 26.12.2015 в 16:51.

  3. #3
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    Если я тебя правильно понял, то можно "разбить" текст на строки.
    Например:
    PHP код:
    new test[5][] =
    {
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"},
        {
    "бла бла бла бла бла бла бла бла\n"}
    }; 
    И потом выводим текст.
    PHP код:
        new string[128];
        
    format(test,sizeof(test), "%s%s%s%s%s",test[0],test[1],test[2],test[3],test[4]);
        
    ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Правила сервера"string"Согласен""Выход"); 
    Дак это аналог моего варианта. Да и ячеек придется выделить в любом случае почти около 2к. Актуально, жду еще вариантов.

  4. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #5
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    При вводе команды игроку будет показано содержимое обеих строк. В секции данных эти строки располагаются непосредственно друг за другом и можно "сцепить" их, заменив символ конца строки в long_string на любой другой символ (в даном случае - перенос строки).
    При этом не нужно будет перед каждым использованием выделять место в стеке и соединять их - всё уже сделано.
    То есть, так можно будет продолжать бесконечно?

    Код:
    new
        long_string[] =
            "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n"\
            "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
        long_string_1[] =
            "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n"\
            "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        long_string_2[] =
            "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n"\
            "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";

  6. #6
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    PHP код:
    static
        
    dlg_msg[] =
    {
    "бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n"
    };
    ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Правила сервера"dlg_msg"Согласен""Выход"); 
    Последний раз редактировалось Desulaid; 26.12.2015 в 20:30.

  7. Пользователь сказал cпасибо:
    Иван Бубнов (26.12.2015)
  8. #7
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Untonyst Посмотреть сообщение
    PHP код:
    static
        
    dlg_msg[] =
    {
    "бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n"
    };
    ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Правила сервера"dlg_msg"Согласен""Выход"); 
    PHP код:
    C:\Users\continue\Downloads\samp037_svr_R2-1-1_win32\gamemodes\bare.pwn(14) : error 035argument type mismatch (argument 5
    P.S: static const было изначально -_-
    Последний раз редактировалось $continue$; 26.12.2015 в 20:40.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  9. #8
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    PHP код:
    C:\Users\continue\Downloads\samp037_svr_R2-1-1_win32\gamemodes\bare.pwn(14) : error 035argument type mismatch (argument 5
    P.S: static const было изначально -_-
    Я конечно все понимаю, но этого я не понимаю. Зачем писать это сюда еще раз, когда ты мне в ВК написал об этом. Хочешь признания как скриптера? xD

    PS. не надо так поступать

  10. #9
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Цитата Сообщение от Untonyst Посмотреть сообщение
    PHP код:
    static
        
    dlg_msg[] =
    {
    "бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n\
    бла бла бла бла бла бла бла бла\n"
    };
    ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Правила сервера"dlg_msg"Согласен""Выход"); 
    static const или просто static ?

  11. #10
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от Иван Бубнов Посмотреть сообщение
    static const или просто static ?
    просто статик

  12. Пользователь сказал cпасибо:
    Иван Бубнов (26.12.2015)
 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •