Questlines
Активный0.0
Установок
Последнее обновление
Версии
Questlines - Система квестов для Minecraft
Внимание: данный мод находится на ранней стадии разработки, и его API может изменяться.
Questlines представляет собой модификацию для Minecraft, которая вводит в игру полноценную систему цепочек заданий. Особенность этого решения заключается в том, что все квесты создаются с помощью датапаков, что позволяет настраивать их без необходимости написания программного кода.
Как работает система квестов
Каждая цепочка заданий состоит из нескольких отдельных квестов. Эти задания могут следовать друг за другом последовательно или разветвляться, создавая различные пути прохождения. Внутри каждого квеста присутствуют одна или несколько целей. Как только игрок выполняет все поставленные цели, задание отмечается как завершенное, и становятся доступными следующие квесты в цепочке.
Интеграция с Arc Lib
Для регистрации действий игрока Questlines использует библиотеку Arc Lib, также разработанную DAQEM Studios. Эта библиотека значительно упрощает процесс определения действий, необходимых для выполнения целей. Достаточно указать Arc Lib, для какой цели предназначено действие, описать условия его выполнения и установить награду в виде "вхождения цели".
Пример настройки
Рассмотрим пример, где цель состоит в добыче 10 блоков травы с наградой в виде 10 каменных блоков.
Настройка цепочки квестов
Файл: data/namespace/questlines/questlines/questline_name.json
{
"is_unlocked_by_default": true
}
Настройка отдельного квеста
Файл: data/namespace/questlines/quests/quest_name.json
{
"questline": "namespace:questline_name",
"objectives": [
{
"id": "objective_name",
"goal": 10
}
],
"rewards": [
{
"type": "arc:item",
"item": "minecraft:stone",
"amount": 10
}
]
}
Настройка действий для целей (Arc Lib)
Файл: data/namespace/arc/quest_name/objective_name.json
{
"holder": {
"type": "questlines:objective",
"id": "namespace:quest_name/objective_name"
},
"type": "arc:on_break_block",
"conditions": [
{
"type": "arc:block",
"block": "minecraft:grass_block"
}
],
"rewards": [
{
"type": "questlines:objective_occurrence"
}
]
}
Локализация
Файл: assets/namespace/lang/en_us.json
{
"questlines.questline.namespace.questline_name": "Самая лучшая цепочка квестов!",
"questlines.quest.namespace.quest_name": "Потрогай траву",
"questlines.quest.namespace.quest_name.description": "Сломай 10 блоков травы и получи 10 каменных блоков.",
"questlines.objective.namespace.quest_name.objective_name.description": "Сломать блок травы"
}