Skip to content

Превью диалога #20

@UsmanShinobi

Description

@UsmanShinobi
  1. Превью не понимает, составлен диалог для start_dialog или actor_dialog. Поскольку может быть и так, и так, то стоит сделать переключение между этими режимами отображения.

  2. У себя в проекте я раньше делал диалоги немного более хитрым способом, чем в оригинале. У меня весь диалог выстраивается через start_dialog таким образом:

  • Первая нода (которая 0) не содержит никаких условий и текстов, только ссылки на next-ноды
  • Вторая нода (их может быть 2-3) включает в себя условия, когда ветка этой ноды может или не может включиться
  • Третья нода (их может быть много) и последующие содержат тексты, условия и всё как обычно
    В игре получается так, что двиг читает ноду 0, но не выводит её текст (потому что его нет). Читает вторую ноду и её условия, но текст тоже не выводит (потому что его тут тоже нет), И наконец, он читает третью ноду, показывая её текст в диалоге по условиям, заданным во второй ноде. При этом фразой НПС оказывается как раз третья нода с текстом, и далее всё как обычно. Такая махинация позволяет динамически менять первую фразу НПС в разных условиях (карма, квест и т.п.), и всё это в рамках одного диалога. Обычным способом это не получилось бы, ведь первая (нулевая) нода может быть только одна, а вторая ноды в диалогах start_dialog принадлежит актору.

Так вот, превью тулды так не работает. Она читает все ноды по порядку, и даже если в ноде нет текста - она показывает пустую строку. По идее его можно заставить так работать, если его научить игнорировать ноды, в которых нет текста. Дойдя в дереве до первой ноды с текстом, тулза должна его выводить на экран, а все предыдущие пропускать. При этом см. пункт 1 - важно научить прогу понимать, составлен ли диалог для start_dialog или actor_dialog.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions