Справочник условий и действий
Условия
Условия нужны для того что бы могли контролировать появления квеста, вы же не хотите написать квест в зимней тематике, и потом увидеть что его выдаст житель из пустыни? Потому и были придуманы условия, вы можете комбинировать их добавляя их в массив в квесте. Ну и со временем думаю что данный список будет увеличиваться.
thequestforge:entity_is
Например :
"requirement": ["thequestforge:entity_is:minecraft:zombie"]
Если НПС это зомби, то разрешить генерацию этого квеста.
thequestforge:entity_is_not
Например :
"requirement": ["thequestforge:entity_is_not:minecraft:zombie"]
Если НПС это НЕ зомби, то разрешить генерацию этого квеста.
thequestforge:entity_tag_is
Например :
"requirement": ["thequestforge:entity_tag_is:minecraft:skeletons"]
Если НПС есть тег skeletons, то разрешить генерацию этого квеста.
thequestforge:entity_tag_is_not
Например :
"requirement": ["thequestforge:entity_tag_is_not:minecraft:skeletons"]
Если НПС нету тега skeletons, то разрешить генерацию этого квеста.
thequestforge:is_baby
Например :
"requirement": ["thequestforge:is_baby:true"]
Если НПС ребёнок, то разрешить генерацию этого квеста.
Тут можно поставить значение true/false (true - если НПС ребёнок, false - не ребёнок).
thequestforge:biome_is
Например :
"requirement": ["thequestforge:biome_is:minecraft:plains"]
Если НПС сейчас находится биоме равнины, то разрешить генерацию этого квеста.
thequestforge:biome_is_not
Например :
"requirement": ["thequestforge:biome_is_not:minecraft:plains"]
Если НПС сейчас находится НЕ биоме равнины, то разрешить генерацию этого квеста.
thequestforge:biome_tag_is
Например :
"requirement": ["thequestforge:biome_tag_is:minecraft:is_desert"]
Если НПС сейчас находится биоме у которого есть тег is_desert, то разрешить генерацию этого квеста.
thequestforge:biome_tag_is_not
Например :
"requirement": ["thequestforge:biome_tag_is_not:minecraft:is_desert"]
Если НПС сейчас находится биоме у которого НЕТУ тега is_desert, то разрешить генерацию этого квеста.
thequestforge:is_biome_nearby
Например :
"requirement": ["thequestforge:is_biome_nearby:minecraft:desert-200"]
"requirement": ["thequestforge:is_biome_nearby:#minecraft:is_forest-200"]
Данное условие проверяет есть ли нужный биом (или тег биома через #) в заданном радиусе.
Точка начала поиска координаты НПС, радиус задаётся вручную (в примере стоит 200 блоков)
thequestforge:is_structure_nearby
Например :
"requirement": ["thequestforge:is_structure_nearby:minecraft:desert_pyramid-2000"]
"requirement": ["thequestforge:is_structure_nearby:#minecraft:village-2000"]
Данное условие проверяет есть ли нужная структура (или тег структуры через #) в заданном радиусе.
Точка начала поиска координаты НПС, радиус задаётся вручную (в примере стоит 2000 блоков)
thequestforge:dimension_is
Например :
"requirement": ["thequestforge:dimension_is:twilightforest:twilight_fores"]
Если НПС сейчас находится в измерении twilightforest:twilight_fores , то разрешить генерацию этого квеста.
thequestforge:dimension_is_not
Например :
"requirement": ["thequestforge:dimension_is_not:twilightforest:twilight_fores"]
Если НПС сейчас находится НЕ в измерении twilightforest:twilight_fores , то разрешить генерацию этого квеста.
Плейсхолдеры
Плейсхолдеры используются для динамичной замены строковых элементов, чтобы увеличить имерсивность происходящего, их можно вставлять во все строковые элементы которые будут рендерится.
%player%
Меняется на имя игрока (только ваш никнейм, не других игроков)
%npc_name%
Данный плейсхолдер поддерживает один строковой модификатор `%npc_name-no_hide%
- С
no_hideон поменяется на кастомное имя сущности, если такового нету то вернёт просто название сущности. - Без
no_hideон поменяется на кастомное имя сущности, если такового нету, то вернёт "" (то есть ничего)
%target-№%
Меняется на количество и название объекта, который нужный для задания
Для грамотного использования нужно учесть сколько заданий ваш квест сможет выдать заданий максимум. Например квест может выдать от 2 до 4 заданий, для получения следующего текста :
Мне нужно 3 песка, 4 яблока, 13 палок, сможеш достать?, то исходник должен выглядеть так :Мне нужно %target-1%%target-2%%target-3%%target-4% сможеш достать?%плейсхолдеров 4 как и максимум заданий в квесту, лишнее само уберётся и всё будет красиво.
%reward-№%
Меняется на количество и название награды, действует аналогично с %target-№%
%direction%
Меняется на названия сторон света, для того чтобы указать где находится определённый объект, используется в квестах которые ищут биом или структуру.
Данный плейсходер можно использовать только в квестах которые используют
thequestforge:is_structure_nearby,thequestforge:is_biome_nearby, в другом случае выдастDirection not found.
%time%
Поменяется на время которое дано на выполнения квеста.
Действия
Действия это своеобразные скрипты, которые выполняют некое действие, принять квест, сдать и т.д.
Close
"actions": ["thequestforge:close"]
Данное действие закрывает GUI диалога.
Данное действие выполняется в приоритете, и отменяет остальные действия, единственное исключение "save".
Save
"actions": ["thequestforge:save"]
Данное действие сохранят этап диалога для игрока, что бы при следующем взаимодействие НПС начать с сохранённым этапом, а не со start.
Accept
"actions": ["thequestforge:accept"]
Данное действие добавит квест к активным квестам игрока.
Complete
"actions": ["thequestforge:complete"]
Данное действие завершает квест если он выполнен. Также если квест не выполнен и в кнопке есть поле "alt_to_go" то перейдём по нём.
Next_quest
"actions": ["thequestforge:next_quest"]
Данное действие переключает квест на следующий.
Команды
В моде есть команды которые помогут при отладке квестов, или создание базы данных.
Начало команд /questforge
reset
Сбрасывает квесты у игрока, или если это сущность то у неё.
registry export
Создаёт файл в корневой папке игры, со всеми :
- ID предметов
- ID сущностей
- Тегами сущностей
- ID зачарований
- ID биомов
- Тегами биомов
- ID структур
- Тегами структур
- ID заданий
- ID Действий
- ID условий
spawn
Позволяет призвать НПС из списка добавленных, с конкретным квестом игнорируя условия.