奶糖也不是很甜 发表于 2024-8-21 15:25:58

ScriptAPI自定义组件教程

阅读该教程需要一定的JavaScript基础,若没有请退出,谢谢。
教程禁止水评论,若对你有用请回复一个“有用”。

教程开始。
官方教程:
TypeScript
import { ItemComponentConsumeEvent, world } from "@minecraft/server";

world.beforeEvents.worldInitialize.subscribe(initEvent => {
initEvent.itemComponentRegistry.registerCustomComponent('example:add_night_vision_on_consume', {
    onConsume(arg: ItemComponentConsumeEvent) {
      arg.source.addEffect('minecraft:night_vision', 600);
    }
});
});

1.导入必要模块
JavaScript:
import { ItemComponentConsumeEvent, world } from "@minecraft/server";

2.监听 worldInitialize 事件
JavaScript
world.beforeEvents.worldInitialize.subscribe((initEvent) => {
// 这里将添加自定义组件的代码
});

3.注册自定义物品组件
说明:在 worldInitialize 事件的处理函数中,我们可以使用 itemComponentRegistry 来注册自定义组件。
initEvent.itemComponentRegistry.registerCustomComponent('example:add_night_vision_on_consume', {
onConsume(arg) {
    arg.source.addEffect('minecraft:night_vision', 600);
}
});
其他说明:arg返回的是ItemComponentConsumeEvent 类
链接:ItemComponentConsumeEvent

创建完成后在JSON中的components对象中写入以下代码
"minecraft:custom_components": [
    "example:add_night_vision_on_consume"
]
4.实现功能
world.beforeEvents.worldInitialize.subscribe((initEvent) => {
initEvent.itemComponentRegistry.registerCustomComponent('example:add_night_vision_on_consume', {
    onConsume: (arg) => {
      arg.source.addEffect('minecraft:night_vision', 600);//实现夜视药水效果
    }
});
});
说明:
onConsume为物品被吃掉后调用
详细页ItemCustomComponent Interface

Занима 发表于 2024-8-22 06:39:04

                        有用

yi个NPC 发表于 4 天前


import { world, system } from "@minecraft/server";

world.beforeEvents.worldInitialize.subscribe((event) => {
    event.itemComponentRegistry.registerCustomComponent("<自定义组件的标识符>", {
      onUse(E) {
            system.runJob(Tigger(E.source))
      }
    })
})

function* Tigger(player) {
    player.addEffect("night_vision",100,{amplifier:255,showParticles:false})
    yield;
}
页: [1]
查看完整版本: ScriptAPI自定义组件教程