Вопросы

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 пользователей онлайн

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

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

    • vexlinee
      От vexlinee
      Всем здравствуйте, сидел я на майнкрафт читиках и поднадоело, теперь хочу сделать студию либо свой крмп проектик
      Так вот вопросы:
      1. Какие программы лучше всего использовать для лаунчеров? В большенстве видел Android studio
      2. Как запустить сам мод, можно ли это сделать локально и быстро, или стоит переносить на хост 
      3. Про какой кеш говорят типы под лаунчерами 
      4. Как сделать установку сборки через лаунчер по кнопке играть