Глава 16. Квестовое ветвление
До сих пор мы делали квесты-одиночки. Квест выполнил – Квест исчез. Никакой цепочки квестов. Скучно, откровенно говоря. В офциальных квестах есть полноценная сюжетная линия с дополнительными ветками. Чем же мы хуже?
В этой Главе мы научимся соединять отдельные квесты (XML файлы) в полноценную цепочку, выдавать ежедневные задания с прогрессией (чем больше дней выполняешь, тем больше награда), блокировать квесты, запускать новые квесты.
Для этого нам понадобятся 4 новых тега:
<start><complete><speak><daily/>
Текущий квест – квест, из которого игрок куда-то переходит
Целевой квест – квест, на который игрок должен перейти
Шаг 1. <speak/> – Поговори с NPC
Используется внутри <option> как условие. Он проверяет, общался ли игрок с указанным NPC.
<speak npc="Имя NPC" />
Важно
- 1. Тег
<speak>НЕ начинает диалог автоматически. Он просто фиксирует факт разговора с указанным NPC - 2. Не отображается в
<info>. Решение: С помощью<label>напишите текст в духе: «Поговори с [Имя NPC]»
Применение: Волшебник просит поговорить с Тедом. Игрок идет и говорит с ним, после чего авто-опция срабатывает и квест Волшебника отправляется дальше
Пример авто-опции:
<option auto="return_to_wizard_step"><speak npc="Viking" /></option>
В <info>:
<info><label>Поговори с Тедом</label></info>
На самом деле, очень мало мест, где можно применить этот тег. Ему побарабану: выполнял игрок какой-то квест у NPC, к которому игрока отправили, или нет. Игрок может просто открыть диалоговое окно с целевым NPC и тут же закрыть.
Намного практичнее использовать тег <complete>, который уже проверяет именно факт выполнения конкретного квеста, а не просто говорил с NPC или нет. Его рассмотрим и применим в нашем Квесте ниже
Шаг 2. <complete/> – Выполнил ли квест
Тег <complete/> проверяет факт прохождения квеста (до #end/#end_dark_side), достижения какого-то конкретного шага или прохождения какого-то квеста N-раз
<complete quest="ИмяКвеста" step="ИмяШага"/>
<complete count="СколькоРаз"/>
Последняя запись работает только с ежедневными квестами (рассмотрим чуть позже). То бишь теги count и quest/step взаимосиключающие, комбинировать нельзя
Важно: Регистр Важен! «Мой Квест» и «Мой квест» – это два разных квеста!
Его можно ставить:
- В начало квеста перед всеми
<step>. Когда нужно, чтобы этот квест появлялся в меню у NPC только после того, как игрок достигнет в целевом квесте определенного шага.
<?xml version="1.0" encoding="UTF-8"?><quest npc="FemaleWarrior" title="Последняя Встреча"><complete quest="Разговор с Тедом" step="#end"/><step id="#start"><desc>Привет, Наездник Дракона. Это наша последняя встреча!</desc><option to="why_question_step" text="???"/></step>
. . .
В данном примере, текущий квест «Последняя Встреча» появиться в списке Квестов на выбор у Паулы (FemaleWarrior) только после того, как игрок дойдет до шага #end в квесте «Разговор с Тедом». До этих пор, квест будет скрыт от игрока.
- В авто-опции в качестве «пинка» для перехода на следующий шаг. Для этого в авто-опцию текущиего квеста добавляете
<complete/>.Как только целевой квест дойдет до нужного шага, авто-опция как бы «пнёт» текущий квест дальше - В качестве счетчика количества прохождения квеста для ежедневных квестов
Шаг 3. <complete/> и Наш Квест
Сначала реализуем простую систему: нужно закончить текущий основной (MyQuest.xml), чтобы открыть новый квест. Потом попробуем сделать систему взаимных «пинков» от нового квеста к основному.
Приступим
Теперь мы создадим цепочку из 2 квестов: Квест Волшебника и Квест Аарона
Добавим в MyQuest.xml примитивный шаг go_to_warrior_step:
<step id="go_to_warrior_step"><desc>На этом пока что всё. Мне нечего тебе поручить. Сходи к Аарону, может быть, у него есть что-то для тебя</desc><option to="#close" text="Ок"/></step>
Также для удобства переименуем наш основной квест из «Мой Первый Квест» в «Основной квест» и отредачим after_hunt_step, чтоыб кнопка «Ок» вела на наш новый шаг:
<step id="after_hunt_step"><desc>Отлично! Ты справился</desc>. . .<option to="spider_hunt_step" text="Уйти"/><option to="go_to_warrior_step" text="Ок">. . .</option>. . .</step>
Теперь создадим новый файл WarriorFirstQuest.xml. В итоге должно получиться 2 файла: MyQuest.xml и WarriorFirstQuest.xml.
Допустим, у Аарона квест будет называться «Маленькая Проблемка», в котором он просит грохнуть Арагога. Значит, в WarriorFirstQuest.xml пишем:
<?xml version="1.0" encoding="UTF-8"?><quest npc="Warrior" title="Маленькая Проблемка">
<complete quest="Основной Квест" step="go_to_warrior_step" />
<step id="#start"><desc>Привет, Наездник Дракона. Полагаю, тебя послал Волшебник. \nЧтож у меня есть для тебя небольшое заданьеце</desc><option to="small_problem_step" text="?"><journal /></option></step><killstep id="small_problem_step"><intro>Видишь ли, у меня тут появилась небольшая проблемка. Говорят, что на дне земных провалов на тамошних деревьях растут самые вкусные яблочки. Я бы и рад туда спуститься, но там сидит огромный паук – Арагог. \nЯ, понимаешь ли, даже мелких паучков страшусь, а тут аж огромный Паучище\nВ общем, не мог бы ты мне немножко подсобить с этой маленькой проблемкой? Я готов немного приплатить за это.</intro><desc>Так ты поможешь или нет?</desc><finish>Спасибо. Наконец я смогу без опаски спуститься в те провалы и насладиться тамошними яблочками</finish><kill enemy="GiantSpider" count="1"/><rewards><reward exp="500"/><reward item="Gold Coin" count="30"/></rewards><option to="after_aragog_step" text="Ок"/></killstep><step id="after_aragog_step"><desc>Пока, и ещё раз спасибо за помощь</desc><option to="#close" text="Ок"/></step><step id="#end"/></quest>
Важно: Регистр Важен! «Мой Квест» и «Мой квест» – это два разных квеста!
В чем суть: Пока игрок не дошел в «Основном квесте» до шага go_to_warrior_step, квест Аарона «Маленькая Проблемка» будет скрыт, как будто его нет. Как только игрок доходит до шага go_to_warrior_step, квест Аарона разблокируется.
Разберем сам код в квесте Аарона:
- Обязательно в первую кнопку в шаге
#startдобавляем тег<journal />, чтобы создать запись в Журнале - Шаг
small_problem_step– это обычный шаблонный шагkillstep. Работу шаблонных шагов разбирали ранее - Обязательно также добавляем шаг-прокладку
after_aragog_step, чтобы игрок мог перейти на него с шаблонного шага
Проверяем:
Готово. Все работает
Шаг 4. Система «пинков»
Усложним взаимодействие между нашими квестами. Пусть теперь выполнение задания у Аарона будет открывать новое задание у Волшебника, а затем наоброт
Настроим Квест Волшебника (MyQuest.xml – «Основной Квест»)
Для начала добавим блок info в шаг go_to_warrior_step у Волшебника, чтобы после выполненяи его задания у нас в Журнале не оставалась пустая метка:
<step id="go_to_warrior_step"><desc>На этом пока что всё. Мне нечего тебе поручить. Сходи к Аарону, может быть, у него есть что-то для тебя</desc><option to="#close" text="Ок"/><info><label>Выполни поручение от Аарона</label></info></step>
Добавим авто-опцию с <complete/>. Она будет «пинать» на шаг-прокладку перед новым заданием от Волшебника, когда игрок выполнит задание от Аарона на убийство Арагога (after_aragog_step)
<step id="go_to_warrior_step">. . .<option auto="before_find_pig_spawner_step"><complete quest="Маленькая Проблемка" step="after_aragog_step" /></option></step>
Теперь сделаем само задание и шаг-прокладку. Допустим, Волшебник будет просить принести спавнер Свиньи (data="56" из «Мобы» в GigaList). Шаг назовем find_pig_spawner_step
<step id="go_to_warrior_step">
. . .
</step>
<step id="before_find_pig_spawner_step"><desc>Всё таки у меня есть для тебя поручение</desc><option to="find_bed_step" text="Ок"/></step>
<removestep id="find_pig_spawner_step"><intro>Всё таки у меня есть для тебя поручение. Собери-ка мне спавнер Свиньи</intro><desc>Так ты будешь собирать?</desc><finish>О, а вот и мой спавнер</finish><remove item="Antique Spawner" data="56" count="1" /><rewards><reward exp="500"/></rewards><option to="after_pig_go_warrior" text="Ок"/></removestep>
<step id="#end">
. . .
</step>
Также добавим ещё один шаг-прокладку, куда будет переводить игрока после выполнения removestep. Пусть это будет after_pig_go_warrior
<removestep id="find_pig_spawner_step">
. . .</removestep>
<step id="after_pig_go_warrior"><desc>Спасибо, Наездник Дракона, а теперь сходи опять к Аарону. У него опять есть для тебя какое-то задание</desc><option to="#close" text="Ок"/><info><label>Иди к Аарону ([FFFF00]опять[-])</label></info></step>
<step id="#end">
. . .
</step>
Настроим Квест Аарона (WarriorFirstQuest.xml – «Маленькая Проблемка»)
В шаг after_aragog_step добавим авто-опцию, которая «пнёт» квест Аарона после достижения шага after_pig_go_warrior в квесте Волшеюника. То бишь после выполения задания на поиск спавнера свиньи.
<step id="after_aragog_step"><desc>Пока, и ещё раз спасибо за помощь</desc><option to="#close" text="Ок"/><option auto="find_bed_step"><complete quest="Основной Квест" step="after_pig_go_warrior"/></option></step>
Создадим задание, допустим, на поиск кровати и шаг-прокладку перед ним. Игрок должен найти и принести кровать для Аарона
<step id="after_aragog_step">. . .</step>
<step id="before_find_bed_step"><desc>Слу-у-ушай...</desc><option to="find_bed_step" text="Ок"/></step>
<removestep id="find_bed_step"><intro>Слу-у-ушай. Можешь найти мне кровать? Да, обычную кровать. Моя что-то в совсем уж печально состоянии</intro><desc>Так ты найдешь кровать?</desc><finish>Спасибо, Наездник Дракона. Эта кровать мне очень пригодиться</finish><remove item="Bed" count="1"/><rewards><reward exp="777"/></rewards><option to="#end" text="ОК"/></removestep><step id="#end"/>
Теперь настроим #end, чтобы полностью убрать этот квест у Аарона после выполнения
- Было:
<step id="#end"/>
- Стало:
<step id="#end"><desc>Ну а теперь пока, Наездник Дракона. Был рад повидаться.\nИди к Волшебнику, может, у него есть какое-то задание для тебя</desc><option to="#close" text="Пока"/></step>
Проверяем
Зачем добавлять шаги-прокладки?
Это нужно, чтобы задание не запускалось сразу, а ждало игрока. Если их не добавлять, то у вас задания будут самостоятельно (без игрока) запускаться и сразу же добавлять Цель задания в Журнал или выводить label на экран, хотя игрок даже не успел поговорить с нужным NPC
Шаг 5. <start/> – Мгновенный запуск квеста
Тег <start> используется как действие. Он мгновено запускает другой квест с определенного шага
Его кладут внутрь опции (авто или кнопки).
Весь тег целиком выглядит так:
<start quest="ИмяКвеста"/>
То бишь этот тег буквально говорит: Начни квест X с шага Y
Важно! В quest должен быть указан точный title нужного квеста со всеми пробелами
Пример использования:
В наборе квестов для карты Random Layer Challenge (https://vk.ru/topic-37328711_35729729?post=34211) используется этот тег. Рассмотрим подробнее.
В квесте «Последняя Просьба» (LastRequest.xml) есть шаги begin и #end
<step id="begin"><info><label>Исполни последнюю просьбу Болтливого Скелета и покончи с [FF0000]Тираном[-]</label><kill enemy="DragonLord" count="1"/></info><option auto="#end"><kill enemy="DragonLord" count="1"/></option></step><step id="#end"><option auto="#close"><start quest="Победа"/></option></step>
В шаге begin есть авто-опция, которая отслеживает убийство Повелителя Драконов (DragonLord). После его смерти, игрока перебросит на шаг #end, в котором есть только одна авто-опция. Нет ни кнопок, ни диалогов. Она мгновенно запускает квест «Победа» (Win.xml) на шаге #start и, чтобы избежать пустого экрана, закрывает диалоговое окно через #close.
После чего мгновенно без подтверждений открывается диалоговое окно на шаге #start у квеста «Победа».
Видео-демонстрация (Youtube): https://www.youtube.com/watch?v=eLtJ56-l8BA&t=2267s
Запоминаем: Тег <start> моментально запускает квест на нужном шаге без подтверждений
Где можно применить
1. Моментальный переход на следующий квест, после завершения текущего
<option to="#end" text="В бой!">
<start quest="Волна 1" />
<close />
</option>
2. Перезапуск квеста. Например, после смерти
Обработчик смерти в шаге «battle_step»
<step id="battle_step">
….
<option auto="player_dead">
<death />
</option>
….
</step>
Шаг после смерти:
<step id="player_dead">
<option auto="#start">
<clearmobs />
</option>
</step>
Шаг 6. <daily/> — ежедневный квест
Ежедневный квест можно выполнять раз в сутки. После завершения, он пропадает до следующего дня.
Как использовать
Просто добавьте тег <daily /> в начало квеста (после <quest …> и перед всеми <step>):
<quest npc="Viking" title="Ежедневный квест: Тест">
<daily/>
...
<step id="#start">
…
</quest>
Прогрессия
В нужном шаге создаете несколько опций с разными <complete count="N-раз">, где N — количество запусков выполненных квестов. В самом первом (базовой) опции указывать count не надо, т.к на старте мы выполнили 0 квестов.
Рассмотрим на примере:
<step id="#start">
<option auto="dragon_lord_battle_step">
<complete count="10"/>
<journal/>
</option>
<option auto="normal_battle_step">
<complete count="6"/>
<journal/>
</option>
<option auto="trainig_step">
<journal/>
</option>
</step>
Где:
1. training_step – Первые 5 выполнений, игрок проходит простенькие тренировки
2. normal_battle_step – с 6-го по 9-е выполнение, игрок сражается в обычных битвах
3. dragon_lord_battle_step – 10-е выполнение и дальше, игрок сражается с Повелителем Драконов
Важно
Соблюдайте порядок выполнения, размещайте <option> с <complete count=…> в порядке убывания (от большего count к меньшему), так как игра проверяет условия сверху вниз
Задания на закрепление
- Создайте цепочку из 2 квестов для Теда (
Viking). Второй квест открывается только после выполнения первого. В первом он просит принести 3 топора, во втором – убить Ледяного Дракона - Создайте ежедневное задание с прогрессией для Паулы (
FemaleWarrior). 1-3 день: убей 3 паука; 3-5 день: убей 3 тигра; 5-7 день: убей Гидру, 8+: убей Мати
Заключение
Теперь ваши квесты перестали быть разрозненными квестами. С этого момента, вы умеете объединять их в Наборы и логические сюжетные цепочки. Можно выстравивать полноценные сюжетные кампании, делать «умные» ежедневки и многое другое
Итоговый код Главы
MyQuest.xml – «Основной Квест»
<?xml version="1.0" encoding="UTF-8"?><quest npc="Wizard" title="Основной Квест"><step id="#start"><intro>Привет, [FFAA00]как дела[-]?</intro><desc>[FFAA00]Рад[-] тебя снова видеть! Как дела?</desc><option to="bad_mood_step" text="[FF0000]Плохо[-]"/><option to="good_mood_step" text="[00FF00]Норм[-]"><journal/></option></step><!-- Хорошее настроение --><step id="good_mood_step"><intro>Это хорошо, что хорошо.У меня есть одно плёвое заданьеце для тебя.Готов ли его выполнить?</intro><desc>Снова ты?\nМоё предложение всё ещё актуально.\nГотов приступить?</desc><option to="spider_hunt_step" text="Да"><journal/></option><option to="#start" text="Назад"/></step><step id="spider_hunt_step"><desc>Хорошо. Попробуй убить парочку пауков для разминки. Также принеси мне яблочко, а то я уж больно проголодался</desc><item name="Apple" count="1"/><option to="#close" text="Ок"/><rewards type="Award"><reward exp="300"/><row><reward item="Axe" count="5"/><reward recipe="Sunshard Paula" type="Table"/></row></rewards><label location="HUD"><persist/><position x="-200" y="-300"/><scale x="24" y="24"/>[FFAA00]Цель:[-] 2 паука и яблоко</label><info><kill enemy="Spider" count="2"/><collect item="Apple" count="1"/><label>Яблоко: </label><item name="Apple" count="1"/></info><option auto="after_hunt_step"><kill enemy="Spider" count="2"/><collect item="Apple" count="1"/><notify>[00FF00]Задание выполнено![-] \nВернись к Волшебнику!</notify></option></step><step id="after_hunt_step"><desc>Отлично! Ты справился</desc><rewards type="Display"><reward exp="300"/><row><reward item="Axe" count="5"/><reward recipe="Sunshard Paula" type="Table"/></row></rewards><option to="spider_hunt_step" text="Уйти"/><option to="go_to_warrior_step" text="Ок"><remove item="Apple" count="1"/><reward exp="300"/><reward item="Axe" count="5"/><reward recipe="Sunshard Paula" type="Table"/></option><info><label>Вернись к Волшебнику и скажи, что ты убил всех пауков</label></info></step><step id="go_to_warrior_step"><desc>На этом пока что всё. Мне нечего тебе поручить. Сходи к Аарону, может быть, у него есть что-то для тебя</desc><option to="#close" text="Ок"/><info><label>Выполни поручение от Аарона</label></info><option auto="before_find_pig_spawner_step"><complete quest="Маленькая Проблемка" step="after_aragog_step" /></option></step><step id="before_find_pig_spawner_step"><desc>Всё таки у меня есть для тебя поручение</desc><option to="find_pig_spawner_step" text="Ок"/></step><removestep id="find_pig_spawner_step"><intro>Собери-ка мне спавнер Свиньи</intro><desc>Так ты будешь собирать?</desc><finish>О, а вот и мой спавнер</finish><remove item="Antique Spawner" data="56" count="1" /><rewards><reward exp="500"/></rewards><option to="after_pig_go_warrior" text="Ок"/></removestep><step id="after_pig_go_warrior"><desc>Спасибо, Наездник Дракона, а теперь сходи опять к Аарону. У него опять есть для тебя какое-то задание</desc><option to="#close" text="Ок"/><info><label>Иди к Аарону ([FFFF00]опять[-])</label></info></step><step id="#end"><desc>Прощай, Наездник Дракона! Рад был повидаться</desc><option to="#start" text="Назад"/><option to="#close" text="Пока"/></step><!-- Плохое настроение --><step id="bad_mood_step"><intro>Очень жаль! Крепись там</intro><desc>Понимаю, что тебе сейчас не хорошо, крепись там!</desc><option to="brew_health_potion_step" text=":("><journal/></option><option to="#start" text="Назад"><reward item="Health Potion" count="1000"/></option></step><step id="brew_health_potion_step"><desc>Могу предложить тебе сварить Зелье Здоровья. Это должно помочь поднять тебе настроение.</desc><option to="#close" text="Понял"/><label>Вот рецепт:</label><recipe name="Health Potion" type="Cauldron" /><label><scale x="1000" y="8"/>[FFFF00]_[-]</label><row><label>Скрафти Котел</label><item name="Cauldron" count="0"/><label>и помести:</label></row><row><item name="Lilia Flower" count="1"/><item name="water" count="1"/><item name="Energy" count="1"/></row><info><label>Свари Зелье Здоровья по рецепту: </label><recipe name="Health Potion" type="Cauldron" /><label>После приготовления, подойди к Волшебнику!</label> <!-- --><label></label><label>Для приготовления потребуются: </label><item name="Cauldron" count="1"/><item name="Lilia Flower" count="1"/><item name="water" count="1"/><item name="Energy" count="1"/></info><option auto="return_to_wizard_step"><collect item="Health Potion" count="1"/> <!-- --></option></step><step id="return_to_wizard_step"><desc>Отлично! Вижу, что ты справился</desc><option to="consume_health_potion_step" text="Ок"/><label location="HUD"><persist/><position x="-200" y="-300"/><scale x="24" y="24"/>[FFAA00]Цель:[-] Отнести зелья Волшебнику</label><info><label>Вернись к Волшебнику и скажи, что ты сварил Зелье</label></info></step><consumestep id="consume_health_potion_step"><intro>Теперь выпей это Зелье! Тебе сразу же полегчает</intro><desc>Давай пей. Чего ты ждёшь?</desc><finish>Вот видишь. Я прямо вижу, как ты стал здоровее выглядеть!</finish><consume target="Player" item="Health Potion" count="1"/><rewards><reward exp="50"/></rewards><option to="#end_dark_side" text="Ок"/></consumestep><step id="#end_dark_side"><desc>Пока, Наездник Дракона. Был рад повидаться!</desc><option to="#start" text="Назад"/><option to="#close" text=". . ."/></step></quest>
WarriorFirstQuest.xml – «Маленькая Проблемка»
<?xml version="1.0" encoding="UTF-8"?><quest npc="Warrior" title="Маленькая Проблемка"><complete quest="Основной Квест" step="go_to_warrior_step" /><step id="#start"><desc>Привет, Наездник Дракона. Полагаю, тебя послал Волшебник. \nЧтож у меня есть для тебя небольшое заданьеце</desc><option to="small_problem_step" text="?"><journal /></option></step><killstep id="small_problem_step"><intro>Видишь ли, у меня тут появилась небольшая проблемка. Говорят, что на дне земных провалов на тамошних деревьях растут самые вкусные яблочки. Я бы и рад туда спуститься, но там сидит огромный паук – Арагог. \nЯ, понимаешь ли, даже мелких паучков страшусь, а тут аж огромный Паучище\nВ общем, не мог бы ты мне немножко подсобить с этой маленькой проблемкой? Я готов немного приплатить за это.</intro><desc>Так ты поможешь или нет?</desc><finish>Спасибо. Наконец я смогу без опаски спуститься в те провалы и насладиться тамошними яблочками</finish><kill enemy="GiantSpider" count="1"/><rewards><reward exp="500"/><reward item="Gold Coin" count="30"/></rewards><option to="after_aragog_step" text="Ок"/></killstep><step id="after_aragog_step"><desc>Пока, и ещё раз спасибо за помощь</desc><option to="#close" text="Ок"/><info><label>Иди к Волшебнику и проверь, есть ли у него задания</label></info><option auto="before_find_bed_step"><complete quest="Основной Квест" step="after_pig_go_warrior"/></option></step><step id="before_find_bed_step"><desc>Слу-у-ушай...</desc><option to="find_bed_step" text="Ок"/></step><removestep id="find_bed_step"><intro>Можешь найти мне кровать? Да, обычную кровать. Моя что-то в совсем уж печально состоянии</intro><desc>Так ты найдешь кровать?</desc><finish>Спасибо, Наездник Дракона. Эта кровать мне очень пригодиться</finish><remove item="Bed" count="1"/><rewards><reward exp="777"/></rewards><option to="#end" text="Ок"/></removestep><step id="#end"><desc>Ну а теперь пока, Наездник Дракона. Был рад повидаться.\nИди к Волшебнику, может, у него есть какое-то задание для тебя</desc><option to="#close" text="Пока"/></step></quest>
Отличный гайд, но осталось несколько вопросов:
1) Куда делся раздел с кастомным магазином из прошлой версии руководства. В 13.5.0? Его больше нельзя кастомизировать?
2) У Фуза в 13.5.0 есть свой магазин, следовательно, они тоже стали квестовыми НПС и для них можно делать кастомные квесты. Или нельзя?
1) Кастомные магазины полностью убраны (даже для Алхимика, Фуза и Крестьян). Теперь игра не будет подгружать квесты, содержащие в коде тег <store>
В логах будет писать:
Skipped custom quest ‘ИмяКвеста’ from file [Путь до XML-файла квеста]: NPC stores are not allowed in custom quests
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogWarning(Object)
QuestManager:AddUserQuests(XmlSerializer, String)
d__77:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
2) Да, для Фуза можно теперь тоже делать квесты. Список Квестовых NPC только что обновил, просто изначально забыл добавить
Из нюансов: У них пока что нет своего портрета, поэтому будет видно просто имя