Перейти к контенту

Модуль для упрощенного создания диалогов.


Рекомендуемые сообщения

 

 

можно было бы повысить функциональность блоков сделав конфигурирование на скриптовых таблицах

Вообще-то, я инструкции-то не дописал еще. Возможность скриптовой генерации тех же диалоговых блоков очень даже имеется, это было в том куске, который я написал, а форум съел и не отдал. В ближайшие часы допишу, как этим пользоваться. Надеюсь мне кураторство дадут наконец :)

 

 

 

новые команды распространенных действий добавить бы не помешало - has/give/lost_item и т.п.

Дельная мысль.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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


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

 

 

на ходу редактировать текущий диалог

Ну для этого достаточно разубедить движок от мысли хранить однажды сгенеренный граф диалога аки сокровище какое-то. Если генератор вызывается при каждом обращении к диалогу, то какие вообще проблемы создать его каждый раз так как надо?)

Похоже это ты в свою очередь не понял что я имел в виду, говоря о скриптовой генерации.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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


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

Перезалил файл, закомментировал там пару лишних вызовов которые сначала незаметил, и добавил вот это:

 

 

команда item - заспавнить в инвентарь актора итем указанной секции и количества. количество пишется через точку, если не указано то считается равным единице.

пример:
item5 = bandage.10, medkit.5 ; заспавнит 10 бинтов и 5 аптечек
пример2:
item5 = antirad, wpn_pm.2 ; заспавнит 1 антирад и два ПМа.

команда remove - удалить из инвентаря актора итемы указанных секций и количества. Если у актора меньше итемов, удаляются те что есть. Т.е. проверка необходимого количества здесь не выполняется. Если такая проверка нужна, используйте команду has_item.

пример:
remove5 = wpn_pm ; удалит ПМ
пример2:
remove5 = bandage.2, medkit.3, antirad.4, vodka.5 ; удалит 2 бинта, 3 аптечки, 4 антирада и 5 бутылок водки. если чего-то не хватает, это не помешает.

команда has_item - вставляет проверку наличия в инвентаре актора, указанных предметов в указанном количестве.

фраза не будет пропущена, если хоть какого-то из указанных итемов не хватает.

пример:
has_item5 = wpn_abakan ; фраза будет доступна если у актора есть абакан
пример2:
has_item5 = af_medusa.10, bandage.4 ; фраза будет доступна если у актора есть 10 медуз и 4 бинта.

команда donthas_item - вставляет проверку, что в инвентаре актора указанных предметов меньше заданного количества.

пример:
donthas_item5 = wpn_pm, wpn_abakan, wpn_mp5, medkit ; фраза будет доступна только если у актора нет ничего из перечисленного оружия и нет аптечек.
пример2:
donthas_item5 = bandage.25, medkit ; фраза будет доступна если у актора нет ни одной аптечки, и количество бинтов в его инвентаре менее 25.

 

 

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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


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

@Desertir, А ты влезь в кишки-то. по-вникай, как все устроено. Там 2 типа секций и есть. Только второй это не фраза, а обычно, нечто покрупнее (хотя можно и из одной фразы блоки делать, если надо!)

Так то оно в идеале так и выглядит - в секции диалога есть первая фраза, а дальше всякие блоки пошли. Но для написания такого, большинству наверно понадобится как следует освоиться с этой системой, поднабраться опыта.

 

, @Карлан, С наворотами относительно команд, помоему вы перемудрили :) оба.

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

  • Нравится 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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


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

@Карлан, а ты считаешь это никак невозможно сделать через a?

 

 

 

Диалоги сначала пишутся сценаристом, ну, по идее, а дальше реализуются разрабом.
DFN&

в наших реалиях сценарист и тот кто пишет диалог это как правило один и тот же человек. Так что не вижу ничего плохого, если дать этому сценаристу, без знания скриптов возможность реализовать не напрягаясь все что он хочет.

  • Согласен 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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


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

@Карлан, Ты даже не знаешь насколько ты угадал. Этот файлик несчастный, лежит у меня на яндекс-диске. Я вижу сколько народу его скачало, после того как я добавил команды для итемов. Знаешь, это безумно огромная толпа, 2 человека его скачали.

Что-то я подозреваю что это Карлан и Шадовс

:)

 

Удобно/не удобно, каждый сам для себя решает. Просто при такой востребованности со стороны публики, по отношению к вполне готовому вообще-то, и более удобному чем что-то другое, продукту, тратить дальше усилия на его оттачивание, улучшение, оптимизацию etc., я как то не считаю нужным. и так сойдет.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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


Ссылка на сообщение
[bar_dialog_petrenko]
params_sequence = actor
x0 = bar_dialog_petrenko_start
link0 = 1
d0 = prinesti_pripasy_ok

Причина вот тут.  команды для проверок каких-либо условий, могут ограничивать доступ к фразам, но не к самому диалогу целиком. И поэтому именно здесь, в нулевой фразе, команда d не действует.

Чтобы повесить ограничение на сам диалог, придется таки использовать старые методы:

В файле dialogs.xml (или там, где ваш диалог подключается к игре)

вместо записи в таком духе:

    <dialog id="bar_dialog_petrenko">
        <init_func>dialogs_new_system.bar_dialog_petrenko</init_func>
    </dialog>

Надо сделать что-нибудь в таком духе:

    <dialog id="bar_dialog_petrenko">
        <init_func>dialogs_new_system.bar_dialog_petrenko</init_func>
        <precondition>dialogs.is_opp_wounded</precondition>
    </dialog>

Или так:

    <dialog id="bar_dialog_petrenko">
        <init_func>dialogs_new_system.bar_dialog_petrenko</init_func>
        <dont_has_info>prinesti_pripasy_ok</dont_has_info>
    </dialog>

Последний вариант - именно для вас :)

  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...