Перейти к основному содержимому

Vanilla

346 ванильных действий, событий, целей, фактов, фильтров аудитории и активностей NPC Minecraft.

Бесплатныеv1.4Утилиты
ТребуетсяTypeWriter0.9Basic extension (TypeWriter)Quest extension (TypeWriter)Entity extension (TypeWriter)RoadNetwork extension (TypeWriter)PlaceholderAPIнеобязательно

Обзор​

Vanilla подключает стандартные механики Minecraft к TypeWriter. Это библиотека из 346 записей: действия, изменяющие игрока (атрибуты, здоровье, опыт, режим игры, скорость...), события, срабатывающие, когда что-то происходит в игре (прозвенел колокол, совершена сделка, наполнено ведро...), цели, считающие эти события для квестов, факты, читающие состояние игрока, фильтры аудитории, сопоставляющие состояние игрока, и активности NPC, заставляющие NPC реагировать на окружающих.

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

Возможности​

  • Атрибуты игрока — 26 действий, каждое из которых задаёт один атрибут Minecraft (скорость движения, максимальное здоровье, масштаб, гравитация, дальность досягаемости...).
  • Действия над состоянием игрока — лечение, кормление, урон, задание воздуха, огня, полёта, режима бога, режима игры, опыта и уровня, точки возрождения.
  • Действия с инвентарём и вспомогательные — очистка инвентаря, открытие верстака, наковальни, сундука Края, мусорки, починка или уплотнение руды.
  • События игры — 105 событий: от взаимодействия с блоками и контейнерами до торговли, рыбалки, рейдов и ввода игрока.
  • Цели — 73 цели квестов, считающие игровые действия с помощью факта-счётчика.
  • Факты — 26 фактов только для чтения: здоровье, сытость, уровень, время, погода, измерение, уровень освещённости и другие.
  • Фильтры аудитории — 48 фильтров, оставляющих игроков по состоянию: приседание, движение, нахождение в воде, время суток, координаты, инструмент в руке...
  • Активности NPC — 20 активностей для NPC: следовать за игроками или избегать их, патрулировать, обходить по орбите, обнаруживать игроков по зрению, слуху или запаху.
  • Привязка камеры к NPC — фиксация камеры игрока на NPC во время взаимодействия.

Установка​

  1. Установите официальные расширения TypeWriter Basic, Quest, Entity и RoadNetwork (они объявлены как зависимости Vanilla).
  2. Скачайте VanillaExtension из релизов GitHub (кнопка выше) и положите JAR-файл в plugins/Typewriter/extensions/.
  3. Перезапустите сервер. В логе появится VanillaExtension has been successfully initialized.

Расширение рассчитано на Paper и Folia. PlaceholderAPI не обязателен; он используется только тогда, когда текстовое поле содержит %placeholders%.

Быстрый старт​

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

  1. В веб-панели TypeWriter откройте страницу sequence и добавьте действие, например Set Max Health. Задайте amount равным 30 (атрибуту присваивается именно это значение, оно не прибавляется к текущему).
  2. Свяжите его из диалога или другой записи через triggers, чтобы оно выполнялось, когда игрок доходит до этого шага.
  3. Чтобы реагировать на игровое событие, добавьте событие на странице manifest, например Bell Ring Event, и поместите записи для выполнения в его triggers.
  4. Для считающей цели сначала создайте факт-счётчик (например постоянный факт из расширения Basic), затем добавьте Barrel Objective на странице manifest. Задайте quest, fact — счётчик, amount равным 5 и display — строку, показываемую в трекере квестов.
  5. Свяжите onComplete с последовательностью наград или заполните onCompleteModifiers, чтобы изменять факты, когда цель выполнена.
  6. Нажмите Publish и проверьте.
Действия с атрибутами абсолютны

Действие с атрибутом задаёт базовое значение атрибута. Оно не суммируется с предыдущим вызовом и само не сбрасывается. Чтобы отменить его, используйте ванильные значения по умолчанию: например, скорость движения — 0.1, максимальное здоровье — 20, масштаб — 1.

Как это работает​

  • События — это обычные триггеры: добавьте событие на странице manifest и заполните triggers. У большинства из них вообще нет полей, и они срабатывают на каждое подходящее событие каждого игрока. У некоторых есть фильтры (например, у weather_event есть world и condition, у on_player_input — inputType и heldItem).
  • Цели требуют в fact факт-счётчик. Каждый раз, когда игровое событие происходит у игрока с активным квестом, факт увеличивается на единицу. Цель считается выполненной, когда факт достигает amount. Поскольку прогресс хранится в факте, его можно изменять и из любого другого места.
  • Факты доступны только для чтения: используйте их в criteria, целях и условиях диалогов. Записывать в них нельзя.
  • Фильтры аудитории оставляют игрока в аудитории, пока состояние истинно, и могут быть инвертированы. Размещайте записи под ними, чтобы показывать их только этим игрокам.
  • Активности работают на экземпляре NPC и описаны ниже.

Что входит​

Атрибуты​

26 действий, каждое из которых задаёт один атрибут игрока равным указанному вами amount. Движение и бой: Movement Speed, Sneaking Speed, Attack Damage, Attack Speed, Knockback Resistance. Тело и мир: Max Health, Scale, Gravity, Step Height, Block Reach, Camera Distance.

Здоровье, сытость и опыт​

Heal, Heal All, Damage, Feed, Set Hunger, Set Saturation, Set Absorption, Set Air, Set Fire, Freeze, Add Experience, Set Level, Suicide.

Движение, физика и режимы​

Set Velocity (абсолютно или добавляется к текущей скорости), Flight, God Mode, Gamemode, Mount Vehicle, Dismount, Eject Vehicle, Wake Up, Set Spawn Point, Top.

Инвентарь и предметы​

Clear Inventory, Repair, Durability (предмет в основной руке), Hat, Condense Ores (превращает 9 слитков, сырых руд, самоцветов или угля в соответствующий блок), Ender Chest, Disposal (открывает мусорку на 54 слота), Craft, Anvil, а также Inventory See / Ender Chest See, чтобы открыть инвентарь другого игрока по точному имени.

Мир, эффекты и интерфейс​

Create Explosion, Spawn Lightning, Launch Firework, Spawn Tree, Start Raid, Set World Time, Open Book, Open Sign, Clear Title, Grant Advancement и Revoke Advancement.

События​

105 триггеров игры: станции (Anvil Repair, Enchant, Smelt, Brewing Stand Brew), контейнеры и блоки (Barrel Open, Bell Ring, Jukebox Play, Sign Change), игрок (Player Teleport, Player Respawn, Toggle Sneak, Player Input), животные и торговля (Entity Breed, Villager Trade, Piglin Barter), транспорт, рейды, рыбалка, предметы и мир (Weather).

Цели​

73 цели, повторяющие события: Gather (предметы в инвентаре), Craft, Consume Item, Villager Trade, Harvest Crop, Statistic Reach, Level Reach, Tame Entity, Sleep, Raid Complete и проверки факта: Cachable Fact Check и Readable Fact Check.

Факты​

Player Health, Player Hunger, Player Level, Game Mode, Armor Value, Current Dimension, Time of Day, Weather, Light Level, Total Play Time, Time Since Death, а также признаки горения, нахождения в воде, сна, замерзания и нахождения в рейде.

Фильтры аудитории​

Состояние игрока: Sneaking, Sprinting, Moving, Swimming, Gliding, Riding, On Fire, Low Health, Has Effect, Has Armor, Tool in Hand, Weapon in Hand. Место и время: Coordinate, In Specific Dimension, Daytime, Nighttime, Time Period, During Rain, Near Beacon. Взгляд: Looking At Entity, Looking Up, Looking Down, а также фильтры клавиш Forward, Backward, Left и Right.

Активности NPC​

Follow Player, Avoid Player, Orbit, Hearing, Smell, Equipment Detection, Health Detection, Line of Sight Obstructed, и семейство поля зрения: Visibility Detection, Look Close, Patrol, Random Patrol, Spin.

Привязка камеры​

Lock NPC Camera удерживает взгляд игрока на NPC, пока выполняется взаимодействие (диалог).

Конфигурация​

У Vanilla нет файла конфигурации. Считающие цели (большинство записей *_objective) показывают свой прогресс в трекере квестов с помощью сниппетов TypeWriter advancedQuest.display и advancedQuest.completed, а Gather использует quest.gather_objective.display и quest.gather_objective.completed. Они используют плейсхолдеры <display>, <current> и <required>.

Записи​

Ниже приведены все записи расширения, сгруппированные по видам.

Записей: 346, сгенерированы из исходного кода расширения.

Действия73
События105
Цели73
Факты26
Аудитории48
Активности20
Границы взаимодействия1

Устранение неполадок​

Действие с атрибутом, кажется, ничего не делает, либо эффект остаётся навсегда. Действие записывает базовое значение атрибута, и ничто его не сбрасывает. Выполните то же действие со значением по умолчанию (например 0.1 для скорости движения), чтобы отменить его. Minecraft ограничивает некоторые атрибуты (например масштаб), а значение вне допустимого диапазона отклоняется с ошибкой в логе сервера.

Цель никогда не выполняется. Ей нужен fact, являющийся счётчиком (записываемый кэшируемый факт, например постоянный или сессионный), quest, активный у игрока, и подходящие criteria. Факты только для чтения (любая запись в папке fact) нельзя использовать как счётчик.

Событие повторяющейся проверки кэшируемого факта срабатывает снова и снова. Cachable Fact Check Event перепроверяет каждые checkIntervalSeconds (по умолчанию 10) и срабатывает каждый раз, пока факт всё ещё подходит. Задайте модификатор, меняющий факт, или используйте его с одноразовой защитой. Значение 0 отключает периодическую проверку, а отрицательный интервал отклоняется с ошибкой в логе.

Активность видимости никогда не обнаруживает игрока. NPC должен восприниматься как экземпляр сущности с заданной активностью, игрок должен находиться в пределах radius (или visionRadius) и внутри fov относительно направления взгляда NPC, и между ними не должно быть блоков. Обнаружение срабатывает один раз, когда игрок входит в поле зрения, и снова только после того, как он выйдет и вернётся. Включите showDisplay, чтобы увидеть конус в виде частиц пламени.

Событие срабатывает для всех. События без полей (большинство из них) не фильтруются: каждое подходящее событие запускает связанные записи для игрока, который его совершил. Используйте criteria в запускаемых ими записях, чтобы ограничить их.

Открытие инвентаря другого игрока ничего не делает. Inventory See и Ender Chest See требуют в target точное имя игрока, находящегося в сети. Пустое значение открывает собственный инвентарь игрока, а неизвестное имя ничего не делает.