Вопросы

djxxx
Новичок

приветствую всех.

 

Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.

 

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

 

а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты

 

Код такой:

DialogAdmShop
(
playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS,
fmt_str,
""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\
"{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\
"{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\
"{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\
"{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\
"{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия",
"Выбрать""Закрыть"
);
}

 

сток dialogadmshop:

stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[])
{
  if(style == 5)
  {
     ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...""...""..."""); 
  }
  ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);
  return 1;
}

 

Отредактировано пользователем Cawfee
Причина: заключил код в теги "Код".

Заметка от Cawfee , создано

Как пользоваться тегом "Код"?

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


Ссылка на сообщение

2 ответа на этот вопрос

  • 0
Mr.Armstrong
Новичок

@djxxx Попробуйте этот код

 

DialogAdmShop(
    playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS,
    fmt_str,
    ""BR"#\t"BR"Наименование\t"BR"Действие\n"\
    "{EB4C42}1\t{FFFFFF}Виртуальная валюта\t{888888}Купить\n"\
    "{EB4C42}2\t{FFFFFF}Донат валюта\t{888888}Купить\n"\
    "{EB4C42}3\t{FFFFFF}Вип статусы\t{888888}Купить",
    "Выбрать", "Закрыть"
);

 

Проблема с выравниванием текста в диалоге `DIALOG_STYLE_TABLIST_HEADERS` связана с тем, что SA-MP использует моноширинный шрифт для отображения диалогов, но табуляция (`\t`) работает не всегда предсказуемо.

 

 Решения для правильного выравнивания:

1. Используйте фиксированную ширину колонок. Вместо надежды на `\t`, задавайте фиксированное количество пробелов или выравнивайте текст вручную:

   
   fmt_str = 
       ""BR"#     \t"BR"Наименование              \t"BR"Действие\n"\
       "{EB4C42}#1    \t{FFFFFF}Виртуальная валюта     \t{888888}Нажмите\n"\
       "{EB4C42}#2    \t{FFFFFF}Донат валюта           \t{888888}Нажмите\n"\
       "{EB4C42}#3    \t{FFFFFF}Вип статусы            \t{888888}Нажмите";
   

2. Используйте `strpad` или `format` для выравнивания. Можно заранее форматировать строки, чтобы они имели одинаковую длину:

   
   new item1[128], item2[128], item3[128];
   format(item1, sizeof(item1), "{EB4C42}#1\t{FFFFFF}%-25s\t{888888}%s", "Виртуальная валюта", "Нажмите");
   format(item2, sizeof(item2), "{EB4C42}#2\t{FFFFFF}%-25s\t{888888}%s", "Донат валюта", "Нажмите");

 

3. **Попробуйте `DIALOG_STYLE_TABLE` (если используется мод с расширенными диалогами). Некоторые моды (например, OpenMP) поддерживают более гибкие варианты таблиц.

4. Избегайте слишком длинных строк. Если текст не вмещается, диалог может "ломаться". Попробуйте сократить названия.


- SA-MP не поддерживает полноценное табличное форматирование, как HTML/CSS.
- Если выравнивание критично, можно использовать `DIALOG_STYLE_LIST` с заранее отформатированными строками.

Если проблема сохраняется, попробуйте поэкспериментировать с количеством пробелов и `\t` в разных частях строки.

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


Ссылка на сообщение

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

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

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

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


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

Войти

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


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

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

  • Похожий контент

    • Elvis
      От Elvis
      Идёт набор в команду по разработке CRMP-проекта! 
       
      Требуются специалисты на следующие роли:  
      - Технический администратор (1 человек)  
      - Технические разработчики (2 человека)  
      - Внутриигровые разработчики (5 человек)  
       
      Все подробности и условия обсудим лично — пишите руководителю в Telegram - @AntonLegost
    • Jasper231
      От Jasper231
      Идет набор в команду для создания CRMP MOBILE проекта. Нам нужны
      1) Кодеры
      2) Мапперы
      3) Люди которые вообще разбираются в создании серверов
       
      об зарпалте договоримся и об остальном поговорим в вк: @haslyyyim
    • otec
      От otec
      Копия радмира
      ║☑️Название CORVUS CRMP
      ║☑️Сервер у которого есть будущее и будет
      ║☑️Адекватная администрация
      ║☑️Идут наборы в Лидеры, Админы.
      ║☑️Вступайте в Telegram: t.me/corvusgta « Вступай!
      ║☑️Вступайте в ВКонтакте: vk.com/corvus_crmp « Вступай!
      ║☑️Постоянные ПРИЗЫ - МП | Интересный Мод
      ║☑️Все новости - обновления в Telegram и ВКонтакте
      ║☑️Сайт - corvus-crmp.ru
      ║☑️Форум - forum.corvus-crmp.ru
      ║☑️Скачать лаунчер - corvus-crmp.ru
      ║☑️Заходи мы ждем тебя
      ║☑️В случае возможных ошибок пишите сюда:@corvus_help_bot
    • vicegame
      От vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК