跳到主要内容

Vanilla

346 个原版 Minecraft 动作、事件、目标、事实、受众过滤器和 NPC 活动。

免费v1.4实用工具
依赖TypeWriter0.9Basic extension (TypeWriter)Quest extension (TypeWriter)Entity extension (TypeWriter)RoadNetwork extension (TypeWriter)PlaceholderAPI可选

概述​

Vanilla 将标准的 Minecraft 机制连接到 TypeWriter。它是一个包含 346 个条目的库:改变玩家的动作(属性、生命值、经验、游戏模式、速度等)、在游戏中发生某件事时触发的事件(敲钟、完成交易、装满桶等)、为任务统计这些事件的目标、读取玩家状态的 fact、匹配玩家状态的 audience 过滤器,以及让 NPC 对周围的人做出反应的 NPC 行为(activity)。

无需在文件中配置任何内容:你在网页面板中添加需要的条目,并像链接任何其他 TypeWriter 条目一样链接它们。大多数条目都很小、字段很少,因此各个条目页面主要是一份目录;本页则讲解各个类别,以及许多条目共用的少数概念。

功能​

  • 玩家属性 — 26 个动作,每个设置一个 Minecraft 属性(移动速度、最大生命值、缩放、重力、触及距离等)。
  • 玩家状态动作 — 治疗、喂食、伤害、设置空气、着火、飞行、无敌模式、游戏模式、经验和等级、出生点。
  • 物品栏和实用动作 — 清空物品栏、打开工作台、铁砧、末影箱、垃圾桶、修复或压缩矿石。
  • 游戏事件 — 105 个事件,从方块和容器交互到交易、钓鱼、袭击和玩家输入。
  • 目标 — 73 个任务目标,通过计数器 fact 统计游戏内行为。
  • Fact — 26 个只读 fact,涵盖生命值、饥饿值、等级、时间、天气、维度、光照等级等。
  • Audience 过滤器 — 48 个按状态筛选玩家的过滤器:潜行、移动、在水中、一天中的时间、坐标、手持工具等。
  • NPC 行为 — 20 个 NPC 行为:跟随或躲避玩家、巡逻、环绕,以及通过视觉、听觉或嗅觉发现玩家。
  • NPC 镜头绑定 — 在交互期间把玩家的镜头锁定在某个 NPC 上。

安装​

  1. 安装 TypeWriter 官方扩展 Basic、Quest、Entity 和 RoadNetwork(它们被声明为 Vanilla 的依赖)。
  2. 从 GitHub releases 下载 VanillaExtension(上方的按钮),并将 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. 对于计数型目标,先创建一个计数器 fact(例如 Basic 扩展中的永久 fact),然后在 manifest 页面上添加 Barrel Objective。设置 quest,将 fact 设为该计数器,amount 设为 5,display 设为任务追踪器中显示的文字。
  5. 将 onComplete 链接到奖励 sequence,或填写 onCompleteModifiers,以便在目标完成时修改 fact。
  6. Publish(发布)并测试。
属性动作是绝对值

属性动作设置的是该属性的基础值。它不会与之前的调用叠加,也不会自行重置。请使用原版的默认值来撤销它:例如移动速度为 0.1,最大生命值为 20,缩放为 1。

工作原理​

  • 事件是普通的触发器:在 manifest 页面上添加一个,并填写 triggers。其中大多数没有任何字段,会针对每位玩家的每个匹配事件触发。有些带有过滤器(例如 weather_event 有 world 和 condition,on_player_input 有 inputType 和 heldItem)。
  • 目标需要在 fact 中填写一个计数器 fact。每当处于激活任务中的玩家发生该游戏事件时,该 fact 就会加一。当该 fact 达到 amount 时,目标即完成。由于进度保存在 fact 中,你也可以从其他任何地方修改它。
  • Fact 是只读的:可用于条件(criteria)、目标和对话条件。无法向它们写入数据。
  • Audience 过滤器会在状态为真时让玩家保持在某个 audience 中,也可以反转。把条目放在它们之下,即可只向这些玩家显示。
  • **行为(activity)**运行在 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,以及针对 fact 的检查:Cachable Fact Check 和 Readable Fact Check。

Fact​

Player Health、Player Hunger、Player Level、Game Mode、Armor Value、Current Dimension、Time of Day、Weather、Light Level、Total Play Time、Time Since Death,以及着火、在水中、睡眠、冰冻和处于袭击中的标志。

Audience 过滤器​

玩家状态: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,以及前进、后退、向左和向右的按键过滤器。

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(可写的可缓存 fact,例如永久或会话 fact)、一个对该玩家处于激活状态的 quest,以及匹配的 criteria。只读 fact(fact 文件夹中的每个条目)不能用作计数器。

重复执行的 cachable fact 检查事件不断触发。 Cachable Fact Check Event 每隔 checkIntervalSeconds(默认 10)重新检查一次,只要该 fact 仍然匹配就会每次触发。请设置一个会改变该 fact 的修改器,或配合一次性的保护机制使用。值为 0 会禁用周期性检查,负数间隔会被拒绝,并在日志中给出错误。

视野类行为始终检测不到玩家。 NPC 必须以设置了该行为的实体实例的形式被看到,玩家必须位于 radius(或 visionRadius)之内,并处于 NPC 朝向的 fov 范围内,且中间不能隔着任何方块。检测会在玩家进入视野时触发一次,只有在他们离开后再回来时才会再次触发。开启 showDisplay 可以用火焰粒子看到视锥。

事件对所有人触发。 没有字段的事件(大多数)不会被过滤:每个匹配的事件都会为触发它的玩家触发所链接的条目。请在它们所触发的条目上使用 criteria 来加以限制。

打开另一位玩家的物品栏没有反应。 Inventory See 和 Ender Chest See 需要在 target 中填写在线玩家的精确名称。目标为空时会打开玩家自己的物品栏,名称未知则什么也不会发生。