Вопросы

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

 

Задался таким вопросом при добавлении одной системы на 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

@djxxx, возможно, здесь то, что вам нужно.

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


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

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

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

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

    • RASTAMAN
      От RASTAMAN
      Для того чтобы дать пароль нужно быть администратором 10 lvl после того пишем в чат /passadm
       
      Система казино Система домов Система авто И многие другие системы!

      Особых багов не найдено.

      В моде присутствует 25 фракции.
      Есть Textdraw на спавне!
    • RASTAMAN
      От RASTAMAN
      Plantinum RolePlay
      Скачать файл Для того чтобы дать пароль нужно быть администратором 10 lvl после того пишем в чат /passadm
       
      Система казино Система домов Система авто И многие другие системы!

      Особых багов не найдено.

      В моде присутствует 25 фракции.
      Есть Textdraw на спавне!
      Добавил RASTAMAN Добавлено 10.10.2017 Категория Моды Автор неизвестен  
    • Michov Andr
      От Michov Andr
      Re:samp RP — проект в разработке
      Re:samp RP — это SA-MP в стиле RP-проект, который в данный момент находится в активной разработке. Мы создаём сервер с бонусной системой, где механики будут, и игроки смогут развивать свои персонажи, зарабатывать деньги и взаимодействовать с окружающим миром. Однако, главное — это ролевой процесс. Вы сами выбираете, хотите ли вы заниматься бизнесом и фармом или погружаться в глубокую ролевую игру. Всё зависит от того, какой путь вы хотите пройти.
      Мы стремимся к тому, чтобы на сервере не было скучного фарма и бесконечных рутинных задач. Всё будет сбалансировано так, чтобы каждый игрок мог выбрать свой стиль игры и наслаждаться процессом, будь то отыгрыш роли, развитие персонажа или участие в экономике.
      Что касается доната — на сервере будет доступна возможность покупки привилегий, включая покупку админки. Мы не планируем делать донат обязательным для прогресса, и он не будет влиять на геймплей, но те, кто хотят ускорить процесс или получить дополнительные возможности, смогут воспользоваться такими предложениями. Всё сделано так, чтобы не нарушать баланс и не превращать сервер в платный путь к успеху.
      Re:samp RP — это сервер, где каждый игрок может найти для себя интересное занятие и, главное, где всегда будет место для качественной ролевой игры. Мы не навязываем никаких обязательных механик, и все решения остаются за вами. Стартовый бонус, донат, админки — это всё дополнительные возможности, но не основа игры. 
      Discrod:https://discord.gg/ernRMjyEJy
       
             
      на логотип не смотрим да признаюсь взял с самп рп() но уж больно он норм)
    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }