-
Notifications
You must be signed in to change notification settings - Fork 2
Description
-
Превью не понимает, составлен диалог для start_dialog или actor_dialog. Поскольку может быть и так, и так, то стоит сделать переключение между этими режимами отображения.
-
У себя в проекте я раньше делал диалоги немного более хитрым способом, чем в оригинале. У меня весь диалог выстраивается через start_dialog таким образом:
- Первая нода (которая 0) не содержит никаких условий и текстов, только ссылки на next-ноды
- Вторая нода (их может быть 2-3) включает в себя условия, когда ветка этой ноды может или не может включиться
- Третья нода (их может быть много) и последующие содержат тексты, условия и всё как обычно
В игре получается так, что двиг читает ноду 0, но не выводит её текст (потому что его нет). Читает вторую ноду и её условия, но текст тоже не выводит (потому что его тут тоже нет), И наконец, он читает третью ноду, показывая её текст в диалоге по условиям, заданным во второй ноде. При этом фразой НПС оказывается как раз третья нода с текстом, и далее всё как обычно. Такая махинация позволяет динамически менять первую фразу НПС в разных условиях (карма, квест и т.п.), и всё это в рамках одного диалога. Обычным способом это не получилось бы, ведь первая (нулевая) нода может быть только одна, а вторая ноды в диалогах start_dialog принадлежит актору.
Так вот, превью тулды так не работает. Она читает все ноды по порядку, и даже если в ноде нет текста - она показывает пустую строку. По идее его можно заставить так работать, если его научить игнорировать ноды, в которых нет текста. Дойдя в дереве до первой ноды с текстом, тулза должна его выводить на экран, а все предыдущие пропускать. При этом см. пункт 1 - важно научить прогу понимать, составлен ли диалог для start_dialog или actor_dialog.