Вопросы

trevison
Активный

Квесты на телефоне отображаются так:

  открыть спойлер

сверху лишняя строка ( с пк такой проблемы нет ) и чтобы взаимодействовать с квестом - нужно выбирать пустую строку ( то есть каждый раз предыдущую от самого текста квеста )

код:

cc:quest;
{
    new string[1024],num;
    for(new i;i<MAX_QUESTS;i++)
    {
        if(AcceptQuest[playerid][i]!=0 && QuestProgress[playerid][i]!=100)
        {
            if(QuestProgress[playerid][i]<QI[i][LastProgress]) format(string,sizeof(string),"%s\n{FFFFFF}%s | {f4a92c}Прогресс: %d/%d",string,QI[i][QuestName],QuestProgress[playerid][i],QI[i][LastProgress]);
            else if(QuestProgress[playerid][i]==100) format(string,sizeof(string),"%s\n{FFFFFF}%s | {aeafaf}[Выполнен]",string,QI[i][QuestName]);
            else format(string,sizeof(string),"%s\n{FFFFFF}%s | {f4a92c}Прогресс: {dbea0e}[Можно завершить]",string,QI[i][QuestName]);

            QuestShow[playerid][num]=i;
            num++;
        }
    }
    if(strlen(string)>0) ShowPlayerDialog(playerid,7650,2,"{e5b029}Сюжетная линия",string,"Инфо","Отмена");
    else ShowPlayerDialog(playerid,0,0,"{e5b029}Квесты","{FFFFFF}У вас нет принятых квестов!","Принять","");
    return 1;
}

 

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


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

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

  • 0
Sleash
Завсегдатый

@trevison 

format(string,sizeof(string),"%s%s %s\n",string,QI[mas[i]][QuestName],skr);

Из-за того, что у Вас сначала появляется информация о квесте, а потом вставляется оставшаяся строка - каждый квест "съезжает" на строку, то есть вы как бы "вставляете" квест на первое место, а надо его добавлять в конце, как это сделано выше

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@trevison, так а зачем вы делаете перенос строки ('\n') в начале форматируемой строки? Делайте его в конце. 

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


Ссылка на сообщение
  • 0
trevison
Активный

@Cawfee проблема ушла, но теперь квесты идут не в том порядке который должен быть

вот код:

if (AcceptQuest[playerid][14]!=0return SendBotMessage(playerid,"Извини, но ты у меня взял, уже все задания!");
new mas[10] = {5,6,7,8,9,10,11,12,13,14},num=0;
new skr[256], string[1024];
for(new i;i<10;i++)
{
    if(AcceptQuest[playerid][mas[i]]==0) skr = "{64e55e}[Доступен]{FFFFFF}";
    else if(QuestProgress[playerid][mas[i]]==100) skr = "{aeafaf}[Выполнен]{FFFFFF}";
    else if(QuestProgress[playerid][mas[i]]==QI[mas[i]][LastProgress] && AcceptQuest[playerid][mas[i]]!=0) skr = "{dbea0e}[Завершить]{FFFFFF}";
    else if(QuestProgress[playerid][mas[i]]>=0 && AcceptQuest[playerid][mas[i]]!=0) skr = "{f4a92c}[В процессе]{FFFFFF}";

    format(string,sizeof(string),"%s %s\n%s",QI[mas[i]][QuestName],skr,string);
    QuestShow[playerid][num]=mas[i];
    num++;
}
ShowPlayerDialog(playerid,7971,2,"{e5b029}Сюжетная линия",string,"Принять","Отмена");
}

скриншот:

657964047acc4__2023-12-13_145755313.png.fc76b3ede7fe8881e4d4b297aab139a2.png

должно быть наоборот: первым сделать паспорт, начинающий работник и т.д.

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


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

И ещё совет, вы можете использовать strcat:

    strcat(string, QI[mas[i]][QuestName]);
    if(AcceptQuest[playerid][mas[i]]==0) strcat(string, " {64e55e}[Доступен]{FFFFFF}");
    else if(QuestProgress[playerid][mas[i]]==100) strcat(string, " {aeafaf}[Выполнен]{FFFFFF}");
    else if(QuestProgress[playerid][mas[i]]==QI[mas[i]][LastProgress] && AcceptQuest[playerid][mas[i]]!=0)strcat(string, " {dbea0e}[Завершить]{FFFFFF}");
    else if(QuestProgress[playerid][mas[i]]>=0 && AcceptQuest[playerid][mas[i]]!=0) strcat(string, " {f4a92c}[В процессе]{FFFFFF}";
    strcat(string, "\n");

 

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

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

    • Elvis
      От Elvis
      Настоящим информируем о начале набора сотрудников в нашу студию "AlinSA Studios". В рамках текущего проекта "VanguardRP", основанного на мотивах CRMP, мы ищем профессионалов и энтузиастов для выполнения следующих должностей:
       
      1. Технические специалисты
       
      Требования:
       
      | Базовые знания в области информационных технологий
      | Понимание структур кода и принципов работы компиляторов
      | Готовность к обучению и развитию профессиональных навыков
      | Иметь базовое представлении ЯП "Pawn" или "Kotlin" и "Java".
       
      Обязанности:
       
      | Поддержка технической инфраструктуры проекта
      | Участие в разработке и оптимизации программных решений
      | Взаимодействие с командой разработки для внедрения новых функций
       
      2. Пиар-ассистенты
       
      Требования:
       
      | Опыт работы в сфере SMM, маркетинга или PR
      | Навыки взаимодействия с аудиторией и ведения социальных сетей
       
      Обязанности:
       
      | Продвижение проекта в социальных сетях
       
      3. Дизайнеры
       
      Требования:
       
      | Наличие портфолио с примерами выполненных работ (не обязательно, желательно)
      | Владение графическими редакторами ! (Photoshop и Figma)
      | Креативность, внимательность к деталям и способность работать в сжатые сроки
       
      Обязанности:
       
      | создание графического контента для соцсетей, сайта и внутриигровых материалов
      | Разработка дизайна интерфейсов, баннеров, логотипов и иллюстраций
      | Участие в визуальном оформлении проекта
       
      4. Геймдизайнеры
       
      Обязанности:
       
      | Разработка игровых механик, правил взаимодействия и систем баланса
      | Проработка сюжета, персонажей и сценариев для создания эмоциональной связи с игроками
      | Проектирование уровней, задач и сценариев для обеспечения разнообразия игрового процесса
      | Взаимодействие с командой разработчиков, художников и звукорежиссёров для достижения согласованности элементов игры
      | Участие в тестировании прототипов, выявление проблем и балансировка игрового процесса
       
      5. Рупоры
       
      Цель роли: Обеспечить эффективное взаимодействие с целевой аудиторией, формировать положительный имидж проекта, своевременно информировать участников о новостях, обновлениях и
      мероприятиях, а также модерировать сообщества для поддержания комфортной и безопасной среды.
       
      -————————-
      Условия работы:
       
      Обучение и постоянная поддержка со стороны команды
      Гибкий график работы / удалённый формат (обсуждается индивидуально)
       
       
      Если вы заинтересованы в присоединении к нашей команде или хотите получить дополнительную информацию, обращайтесь по следующему контакту:
      Telegram: @AntonLegost
       
       
      Благодарим за внимание! Надеемся на плодотворное сотрудничество.
       
      p.s Новички приветствуются. Для пополнение портфолио и наработки опыта.
       
      С уважением,
      Команда "AlinSA Studios"
    • Alesher
      От Alesher
      НОВЕЙШИЙ МОД HEAVILY MOD 2025
      Скачать файл Имеется 14 уровень админки а также 3 уровня хелпера авторизация /alogin, имееться база данный а также минимальное количество багов.
      Добавил Alesher Добавлено 30.05.2025 Категория Моды Автор ByNikolas  
    • BESPERSPEKTIBN9AK
      От BESPERSPEKTIBN9AK
      Как убрать обьект в мэрии? 
      Искал уже по координатам из save убираю, не убирается.