Extended Scripts

Extended Scripts

Kamkeel的CustomNpcs+的一个附加组件,为脚本编写者提供新功能和便捷快捷方式。

扩展脚本是 Kamkeel 的 CustomNpc+ 的一个附加组件。这个模组旨在增强脚本功能,使其更简单,并允许脚本编写者创建原本无法实现的脚本。扩展脚本还在脚本功能之外增加了一些特性。

如果您有任何问题、想要请求新功能,或者只是想聊聊,欢迎加入我们的 discord。

请注意,目前该模组旨在与 CustomNpc+ 的 1.11.1 版本一起使用。在其他版本中可能会出现问题。

请务必在此处查看 CustomNpc+ here,因为它是此模组的前置。您还应该下载 UniMixins。没有它,模组大部分功能仍能正常运行,但有少数功能需要它。

您可以在此处查看添加了哪些脚本:https://loomingveil.github.io/Extended-Scripts/ (少数类没有显示,但组合源可以正常工作)

这是 Kamkeel 的 Javadoc 和扩展脚本的组合 Javadoc,方便函数查询:https://loomingveil.github.io/Extended-Scripts-Combined-API/

如果您不想查看所有这些,以下是一些新增的更有用的函数和类:

  • 新的 extAPI(Extended API 的缩写)关键字,您可以使用它来访问所有新的杂项函数。一些有用的包括

a. createIEntity(String name) 用于创建实体,如火球、箭矢和其他非生物实体。

b. createCustomParticlePreset(int particleIndex) 用于使用 CustomNpc+ 的自定义粒子系统以及一些 Minecraft 的粒子纹理,提供简便方法。

c. registerAttribute(String key, String displayName, char colorCode, int attributeType, int section) 用于创建您自己的(仅视觉)自定义属性。

d. getStringPixelWidth():此函数返回一个数字,可用于使您的文本居中。

  • 几个枚举,最有用的是 Key。在 keyPressed 事件中,您现在可以编写如 if (event.key == Key.K_V) /* 执行某些操作 */ 之类的语句来检查是否按下了 V 键。您可以在 javadocs 中查看这些键和其他枚举的完整列表。
  • 自定义覆盖层增强。使用 IPlayer.getScreenResolution(),您现在可以访问有关玩家屏幕缩放分辨率的数据。这对于缩放您的覆盖层非常有用。
  • 自定义弹射物。您可以创建具有自定义渲染、自定义粒子轨迹、重力等的自定义弹射物。这与 npc 发射弹射物的方式非常相似,只不过现在您也可以发射弹射物。这些新弹射物还附带了 on tick 和 on impact 事件。
  • 新的 ShapeMaker 类。此类添加了几个函数,用于获取形状内的所有点。它还添加了一些用于绘制精美粒子形状的函数。
  • SetHarvestLevel(String toolClass, int level) 用于将您的脚本物品变成真正的工具。如果没有镐的挖掘等级,石头、矿石等方块在破坏时将不会掉落。
  • hotbarSlotChanged(event) 在您切换快捷栏槽位时触发。这对于自定义物品非常有用,当您停止手持它时,需要立即禁用其效果。

非脚本功能详情如下:

自定义属性

扩展脚本添加了自己的自定义属性。其中一些包括重力、游泳加速和飞行速度。此外,通过脚本或命令 /veil attribute apply-player,您可以给予玩家不依赖于手持/装备物品的属性。

如果您想添加自己的属性,现在可以了。尽管它们的工作原理逻辑需要由您自己的脚本处理。这些属性纯粹是可见的,但已完全集成。您可以像检查 CustomNpc+ 自定义属性一样检查它们,并且当您按下属性显示键时,它们会与您的其他属性一起显示。您可以通过两种方式之一添加自己的属性。第一种是通过使用 extAPI.registerAttribute() 编写脚本。有关更多信息,请参阅 javadocs。第二种方式是使用命令 /veil attribute。在游戏内使用该命令将向您展示如何使用它。使用 Tab 键查看可用选项对多个参数也会有所帮助。目前,属性是按世界添加的。请记住,如果删除了某个属性,任何具有该属性的物品都将失去该属性。

通常,计算您的属性时,会使用四个盔甲槽和您手持的物品。但是,如果您安装了 Baubles 模组,这些槽位也会被计入。此外,只要这些槽位存在于您的玩家数据中,您就可以添加更多槽位。要添加额外的槽位,您可以使用配置文件或 /veil attribute slot add 命令。您还可以使用 /veil attribute slot verify [path] 来检查路径是否指向有效的槽位。省略路径将检查配置中当前的所有路径。这些槽位适用于所有世界。

世界剪刀和 /inspect

扩展脚本添加了一个新物品,世界剪刀,可以在 CustomNpcs 的工具选项卡中找到。使用世界剪刀,您可以左/右键点击任何生物或方块,将世界剪刀绑定到该生物或方块。

手持世界剪刀并使用命令 /inspect target 时,您可以查看目标拥有的所有 nbt 数据。这对于调试非常有用。此外,您可以使用 /inspect tp 传送到目标,或使用 /tphere 执行相反操作。

要检查物品,您可以使用 /inspect hand 查看与您手持物品相关的数据。

要检查自己,您可以使用 /inspect self。

生物和脚本物品通常带有大量数据,因此可能无法总是在聊天中完整显示,因此您可以使用 /inspect <subcommand> <subtag1> <subtag2> ... 来指定您想查看的标签。要找到这些子标签的名称,您可以在命令中添加 -k 以仅显示子标签名称。此数据也是分页的,因此您可以在命令中的任何位置使用 -p <page> 来查看特定页面。

全局文件复制

现在,在您的 customnpcs 文件夹中(与您的全局克隆存储在同一位置),将出现一个名为 global 的新文件夹。创建新世界时,global 文件夹中的任何文件都将被复制到您新世界的本地 customnpcs 文件夹中。因此,任何任务、对话、动画、脚本等都可以自动包含在您的新世界中。

脚本按键绑定

如果您曾经制作过脚本物品,您可能知道每次想要编辑脚本时它都会激活的痛苦,因为它有 rightClick(event) 事件,那么扩展脚本为您提供了解决方案。扩展脚本添加了一个新的按键绑定(默认为反斜杠 \),只需按下即可打开脚本物品的脚本界面。

脚本盔甲

通常,脚本物品在制作盔甲方面不是最好的,但扩展脚本改变了这一点。现在,如果您手持一个具有有效盔甲类型的物品并点击,就像普通盔甲一样,它将被装备。在物品栏中按住 Shift 点击也是如此。扩展脚本还添加了一个新属性:armor_value,它为您的盔甲/手持物品增加盔甲值。通过此属性,您的物品可以提供真正的保护。脚本物品现在也默认显示玩家穿戴盔甲。如果您愿意,可以更改颜色和纹理。为了进一步自定义,您可以应用一个不随颜色变化的盔甲覆盖纹理,以制作类似于可染色皮革盔甲的盔甲。最后,还添加了一个事件 armorDamaged,当您受到攻击且物品已装备或在您的手中时触发。