观前提示:标题所指的新版本是1.19.4及以上版本@『南南』 @骰出的名字
rt,这篇帖子是我心血来潮的经验总结,另一方面也因为1.19.4之后,bugjump似乎改了部分指令写法和进度触发的条件,而wiki还没有做出相应的更新
有一定数据包基础的人都知道,数据包执行右键检测有很多方法,包括村民互动法,盔甲架拿物品法以及计分板法
但以上所有的方法都只局限在函数层面,只适用于一些简单武器技能的制作,当我们需要制作比较复杂的技能,例如概率触发,如果用函数来完成计算就需要引入新实体和计分板,指令更复杂,同时也无法胜任过多的概率计算
的确,最好的方法是使用进度中的player字段,直接定义技能触发的概率,而1.19.4以前也有一个方法是弩检测法,玩家使用带有快速装填6的弩,虽然无法装填但仍然可以触发进度的using item判据,但我在1.19.4实践证明,如果弩无法进入装填进度,是无法触发判据的
那么就有了以下经过改进的方法
首先仍然给玩家一个快速装填6的弩,使玩家无法装填,但要在弩的nbt里定义一个装填物为空气,这样玩家可以使用弩进行射击动作,并可以触发crossbow_shot进度
{
"criteria": {
"example": {
"trigger": "minecraft:shot_crossbow",
"conditions": {
"item": {
"item": "minecraft:crossbow"
"nbt": "{}"
},
"player": [
{
"condition": "random_chance",
"chance":概率
}
]
}
}
},
“rewards”: {
“function”:函数文件
}
}复制代码这样玩家只要右键就有概率触发进度来执行函数,而且还很方便制作cd,只要延迟执行一个函数把玩家手里的弩重新装上空气就行了
嘉宾席
@Stone_ingot @施贱客 @滑稽蜗 @幻心飞小骥
rt,这篇帖子是我心血来潮的经验总结,另一方面也因为1.19.4之后,bugjump似乎改了部分指令写法和进度触发的条件,而wiki还没有做出相应的更新
有一定数据包基础的人都知道,数据包执行右键检测有很多方法,包括村民互动法,盔甲架拿物品法以及计分板法
但以上所有的方法都只局限在函数层面,只适用于一些简单武器技能的制作,当我们需要制作比较复杂的技能,例如概率触发,如果用函数来完成计算就需要引入新实体和计分板,指令更复杂,同时也无法胜任过多的概率计算
的确,最好的方法是使用进度中的player字段,直接定义技能触发的概率,而1.19.4以前也有一个方法是弩检测法,玩家使用带有快速装填6的弩,虽然无法装填但仍然可以触发进度的using item判据,但我在1.19.4实践证明,如果弩无法进入装填进度,是无法触发判据的
那么就有了以下经过改进的方法
首先仍然给玩家一个快速装填6的弩,使玩家无法装填,但要在弩的nbt里定义一个装填物为空气,这样玩家可以使用弩进行射击动作,并可以触发crossbow_shot进度
{
"criteria": {
"example": {
"trigger": "minecraft:shot_crossbow",
"conditions": {
"item": {
"item": "minecraft:crossbow"
"nbt": "{}"
},
"player": [
{
"condition": "random_chance",
"chance":概率
}
]
}
}
},
“rewards”: {
“function”:函数文件
}
}复制代码这样玩家只要右键就有概率触发进度来执行函数,而且还很方便制作cd,只要延迟执行一个函数把玩家手里的弩重新装上空气就行了
嘉宾席
@Stone_ingot @施贱客 @滑稽蜗 @幻心飞小骥