本帖最后由 EmptyLava 于 2022-2-15 20:04 编辑 
我有一个朋友,他不懂一下问题,没有金粒,我就来帮他发了。(他搞得是数据包)
例如我想要实现特殊nbt的铁剑命中敌人 敌人获得减速的效果,function写出来也实现了这一效果,但是我只会把全部相关指令设置为每tick执行的,实在是太占用性能了,有什么办法可以尽可能降低指令触发的频率,只检测到命中后才触发后续指令
反正就这类似的,我也搞不懂。
整理一下大概就是以下逻辑
数据包如何检测某个事件触发之后再执行之后的操作
我有一个朋友,他不懂一下问题,没有金粒,我就来帮他发了。(他搞得是数据包)
例如我想要实现特殊nbt的铁剑命中敌人 敌人获得减速的效果,function写出来也实现了这一效果,但是我只会把全部相关指令设置为每tick执行的,实在是太占用性能了,有什么办法可以尽可能降低指令触发的频率,只检测到命中后才触发后续指令
反正就这类似的,我也搞不懂。
整理一下大概就是以下逻辑
数据包如何检测某个事件触发之后再执行之后的操作
检查玩家攻击敌人时手持的物品是否包含特殊nbt即可
每tick循环是必要的
或者弄一个dummy虚拟变量,每当玩家造成伤害的时候检查手上物品
如果是就执行你所说的下一步命令
每tick循环是必要的
或者弄一个dummy虚拟变量,每当玩家造成伤害的时候检查手上物品
如果是就执行你所说的下一步命令
在数据包的data\命名空间\advancements下面放个json,随便什么名字,英文名就行,然后这个json里面写复制代码,而那个要触发的函数,第一行要写advancement revoke @s only 命名空间:进度名,也就是把这个进度剥夺掉,这样才能接着触发,第二行再写真正起作用的指令
上面那种写法,是玩家拿着带有{qwq:3}标签的铁剑打别的玩家触发,触发成就的人,执行函数的人,都是拿剑的玩家,而下面这种写法,触发成就的人是被打的玩家复制代码你可能想问这是怎么写出来的,看这边https://minecraft.fandom.com/zh/ ... N%E6%A0%BC%E5%BC%8F
- {
 
-     "criteria": {
 
-         "asdfaesd": {
 
-             "trigger": "minecraft:player_hurt_entity",
 
-             "conditions": {
 
-                 "player": {
 
-                     "equipment": {
 
-                         "mainhand": {
 
-                             "item": "minecraft:iron_sword",
 
-                             "nbt": "{qwq:3}"
 
-                         }
 
-                     }
 
-                 },
 
-                 "entity": {
 
-                     "type": "minecraft:player"
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     "rewards": {
 
-         "function": "命名空间:函数名"
 
-     }
 
- }
上面那种写法,是玩家拿着带有{qwq:3}标签的铁剑打别的玩家触发,触发成就的人,执行函数的人,都是拿剑的玩家,而下面这种写法,触发成就的人是被打的玩家
- {
 
-     "criteria": {
 
-         "qwewrwqrdes": {
 
-             "trigger": "minecraft:entity_hurt_player",
 
-             "conditions": {
 
-                 "damage": {
 
-                     "direct_entity": {
 
-                         "type": "minecraft:player",
 
-                         "equipment": {
 
-                             "mainhand": {
 
-                                 "item": "minecraft:iron_sword",
 
-                                 "nbt": "{qwq:3}"
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     "rewards": {
 
-         "function": "命名空间:函数名"
 
-     }
 
- }
百度!啊!
模范菌 发表于 2022-2-15 11:40
百度!啊!
谁跟你讲什么都可以百度到的
雷霆嘎巴LT 发表于 2022-2-15 11:56
谁跟你讲什么都可以百度到的
那就去学编程
模范菌 发表于 2022-2-15 13:14
那就去学编程
你有毒是不是,我还真有学,学C++,只不过早就不学了。而且数据包几乎跟编程没有任何关系,写数据包完全不需要编程基础,我也不需要你在这边指指点点,我好歹也是写过数据包教程的