我的世界用kubejs来添加类似于”字符魔法师”中的咒语与魔法书
观前提示
教程作者本人魔改水平不高,有可以改进的地方请在评论区中指正
教程中的例子真的只是简单的例子,请不要拿来正常的魔改使用
本教程使用的mod版本均为1.19.2
主要mod为kubejs,其余mod非必要
关于本教程的脚本,存放于.minecraft\kubejs\server_scripts之中
正文
总所周知,字符魔法师有两种手段施展魔法。
其一,通过在聊天栏输入咒语——以吟唱的方式施法。
其二,通过使用法术书——以书本的力量进行施法。
而恰巧,kubejs就能对这两种施法方式进行检测。检测到了,那便能够进行修改。
吟唱魔法
kubejs以下简称kjs,kjs可以检测玩家的聊天事件,具体代码如下
PlayerEvents.chat(event => {
//这里是之后代码要写的地方
})
接下来我们就可以写咒语的检测了,检测代码如下,在引号中填入自己想要检测的咒语
event.message.match("")
之后就是用if来检测我们的咒语了,我这里就将”女仆我爱你”定为咒语
PlayerEvents.chat(event => {
if (event.message.match("女仆我爱你")) {
//这里是写我们念完咒语后的代码
}
})
之后就仍由大家发挥了,我这里简单举一个例子
由于教程作者水平原因,其中效果的部分实现由原版指令替代
PlayerEvents.chat(event => {
if (event.message.match("女仆我爱你")) {//玩家念出对应咒语后执行以下代码
if (!event.player.hasEffect("scriptor:hoarse")) {//如果玩家没有对应buff,则执行以下代码
//对所有女仆实体施加10秒力量I的效果
event.server.runCommandSilent('effect give @e[type=littlemaidrebirth:little_maid_mob] minecraft:strength 10')
//给予对应buff,时间为300tick
event.player.potionEffects.add("scriptor:hoarse", 300)
//取消玩家的信息发送,以免刷屏
event.cancel()
//发送对应消息
event.server.tell("女仆受到了鼓舞!")
}
}
})
效果图
注:嘶哑buff是我在例子中使用的”scriptor:hoarse”效果
魔法书
关于魔法书的实现,mod中的魔法书,是有着对应咒语的nbt的
也就是说,我们检测手中法术书的nbt,就能制作一些简单的法术,以下代码是检测玩家右键物品事件
ItemEvents.rightClicked(event => {
//这里写使用之后要用的代码
})
接下来就是检测玩家手中的物品以及物品所拥有的nbt了
//获取玩家主手物品,并与法术书进行比对
event.player.getMainHandItem() == 'scriptor:spellbook'
//将手中物品的nbt字符串化,并检查是否有对应咒语
event.item.nbtString.match("女仆我爱你")
最后就是例子了,与刚刚吟唱魔法的代码类似
ItemEvents.rightClicked(event => {
if (event.player.getMainHandItem() == 'scriptor:spellbook') {//检测手中物品是否为法术书
if (event.item.nbtString.match("女仆我爱你")) {//检测咒语是否包含
//发送对应消息
event.server.tell("女仆受到了鼓舞!")
//对所有女仆实体施加10秒力量I的效果
event.server.runCommandSilent('effect give @e[type=littlemaidrebirth:little_maid_mob] minecraft:strength 10')
//给法术书添加100tick的冷却
event.player.addItemCooldown('scriptor:spellbook', 100)
}
}
})
效果图
结语
本教程就到此结束了,我写这篇教程只是因为想要分享我的灵感
希望大家能够更多的开脑洞做出更多好玩的整合包给我玩
谢谢大家能够看到最后,最后再提醒一下,教程中的代码并非完善,请不要直接拿来使用