Skip to content

2.0 | Диалоги | Начало

HollowHorizon edited this page Aug 22, 2023 · 3 revisions

Диалоги

Файл диалога

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

Тип скрипта: hsd (Hollow Story Dialogue), например dialogue_1.hsd.kts, иначе запустить его у вас не получится.

Создание персонажа

Теперь создадим нашего персонажа, для этого создадим переменную:

val vitalik = HDCharacter(моб, (опционально) имя персонажа, (опционально) nbt)

Параметр моб указывает регистрационное имя сущности, т.е. как при команде /summon, там же вы можете подсмотреть список этих самых сущностей.

Параметр имя персонажа отвечает за имя, которое будет отображаться в левом углу окна, когда персонаж говорит

Параметр nbt отвечает за данные сущности, например призывая жителя можно указать ему уровень, биом, профессию и т.п.

Пусть наш персонаж будет жителем из саванны:

val vitalik = HDCharacter("minecraft:villager", "Виталик", "{VillagerData:{profession:farmer,level:2,type:savanna}}")

Фразы персонажей

Теперь мы можем заставить персонажа говорить:

vitalik say "Привет, я Виталик, я захвачу мир!"

Ну и готово, теперь вы можете писать диалоги с персонажами... Но чего-то не хватает?

Варианты Выбора

Не хватает выбора, а делается он очень просто:

choice(
    "Нет, Виталик, я буду защищать этот мир" to {
        vitalik say "Я буду бороться за свои кринжовые фразы!"
    },
    "Нет, Виталик, я захвачу этот мир первым!" to {
        vitalik say "Ну блин("
    }
)

Персонаж игрока и его фразы

В скрипт уже вшита переменная player, так что вы можете сразу использовать её:

player say "Я и-и-игрок!"

Звуковые Эффекты / Озвучка

Чтобы воспроизвести звук достаточно написать: play("звук") - где "звук" - путь к звуку (как в команде /playsound), добавить новые звуки можно через ресурспаки или моды-загрузчики ресурсов

Пример

В качестве примера можете создать файл диалога и вставить туда этот текст:

val vitalik = HDCharacter("minecraft:villager", "Виталик", "{VillagerData:{profession:farmer,level:2,type:savanna}}")

vitalik say "Добро пожаловать в диалог HollowStory!"
vitalik say "Я Виталик, меня придумал BarMaxx!"

choice(
    "Что ты умеешь?" to {
        vitalik say "Я умею считать до 100!"
        for(i in 1..100) vitalik say "$i"
        player say "Пон."
    },
    "А я ${player.name.string}" to {
        vitalik say "Круто, а что ты умеешь?"

        choice(
            "Я умею писать диалоги" to {
                vitalik say "А я нет, научи, пж, пж, пж, пж, пж, пж!"

                player say "А вот хрен те, иди исходный код читай"

                vitalik say "Хорошо, спасибо"
            }
        )

        player say "Надо что-то сказать, но я не знаю что..."
    }
)

say("", "И жили они долго и долго!")
say("${player.name.string} и Виталик", "Кто это сказал?!")

Пример того, как диалоги выглядят в игре (все текстуры и цвета можно настроить в скрипте)

FfwQYZCZlAE

Запуск Диалога

Для запуска диалога введите /hollow-story open-dialogue и найдите далее в списке ваш диалог. Если после названия указать имя игрока или тег типа @a, то диалог запустится у конкретного игрока/группы.

Ну вот и всё, конец, в остальном разбирайтесь сами, пока у меня через пол года не дойдут руки дописать Вики)