雪颜の顾
如题,1.14怎么检测玩家背包中正在拖动的物品


爱心魔王FHC
本帖最后由 FHC红石 于 2019-9-5 09:19 编辑

不能
请问你想做啥
如果玩家背包物品固定不变的话,可以检测玩家拿起物品时背包物品变化了
探测玩家背包:https://www.mcbbs.net/thread-244552-1-1.html
1.8指令升级到1.14:https://spu.spgoding.com/

挼rua
如果仅仅检测鼠标拿起的物品,还可以用clear检测数量,加上探测背包内拥有的用数量,并比较来处理

雪颜の顾
FHC红石 发表于 2019-9-4 22:07
不能
请问你想做啥
如果玩家背包物品固定不变的话,可以检测玩家拿起物品时背包物品变化了

检测背包物品固定不变的,我也会啊....
我就是要检测玩家拖动不固定物品
就比如某玩家从地上捡起了几本不同的附魔书(附魔属性完全随机,几本中也可能有相同附魔的),然后拖动其中一本,检测他拖动的是哪种附魔的附魔书,如果符合就执行后续|命令。

爱心魔王FHC
468920730 发表于 2019-9-5 10:56
检测背包物品固定不变的,我也会啊....
我就是要检测玩家拖动不固定物品
就比如某玩家从地上捡起了几本不 ...

你要是同种附魔书只有一本还好弄,如果同种的有好几本就没法检测了
因为附魔书不能叠加,没法检测玩家拿起来的时候数量变少了‘
做不到做不到,你最好换个检测方式

雪颜の顾
FHC红石 发表于 2019-9-5 11:08
你要是同种附魔书只有一本还好弄,如果同种的有好几本就没法检测了
因为附魔书不能叠加,没法检测玩家拿 ...

那我换个问题,怎么让背包里的物品无法拖动
就是左键点一下物品,物品立刻回到原位

爱心魔王FHC
468920730 发表于 2019-9-5 14:01
那我换个问题,怎么让背包里的物品无法拖动
就是左键点一下物品,物品立刻回到原位 ...

那你直接高频
/replaceitem entity @a container.格子 物品
一直替换玩家背包物品为你想要的,玩家拿起来也没用
其他地方可以替换为空气,防止玩家刷物品

雪颜の顾
本帖最后由 468920730 于 2019-9-5 15:24 编辑
FHC红石 发表于 2019-9-5 15:05
那你直接高频
/replaceitem entity @a container.格子 物品
一直替换玩家背包物品为你想要的,玩家拿起来 ...

这个一直替换的话,玩家可以一直QQQQQ刷东西呀,而且也可以拿起来拖动

爱心魔王FHC
468920730 发表于 2019-9-5 15:22
这个一直替换的话,玩家可以一直QQQQQ刷东西呀,而且也可以拿起来拖动

如何设置无法丢弃物品
https://www.mcbbs.net/thread-818385-1-1.html
1.8指令升级到1.14:https://spu.spgoding.com/

刷物品的话你设置背包其他格子一直替换成空气就行了

拿起来拖动没办法,鼠标点击的这个物品没有被存储的,也不需要被储存,所以也没有NBT可以探测

Karlatemp
(以删除)

MC深坑不回头
先前做1.12.2的地图时有做类似功能,下面是我转到1.14的指令你看下:

#固定显示大刀,不可拿下或换到别的格子,这样的大刀占了我最上一整排(9b~17b)
replaceitem entity @p[可加变数或标签] inventory.0 minecraft:iron_sword{display:{Name:"{\"text\":\"§3大刀\"}",Lore:["{\"text\ ":\"§f随身的锋利大刀。 \"}","{\"text\":\"§7(无法移除或丢弃,如于此格放入物品,该物将消失!)\"}"]},HideFlags:63,Unbreakable :1,Tags:["kn"],Damage:30s} 1


#大刀放到格子里时加个标签testforitem0(如此做0b~8b)
tag @a[nbt={Inventory:[{id:"minecraft:iron_sword",Slot:0b}]}] add testforitem0
#有标签testforitem0时删除该物品
replaceitem entity @p[tag=testforitem0] hotbar.0 minecraft:air
#去除该标签
tag @p[tag=testforitem0] remove testforitem0


#大刀若是放到物品栏的其他格子(18b~35b,全部都要列),加个标签
tag @a[nbt={Inventory:[{id:"minecraft:iron_sword",Slot:18b}]}] add testforitem18
#将有该标签的大刀清除,防止玩家重复拿
replaceitem entity @p[tag=testforitem18] inventory.9 minecraft:air
#去除该标签
tag @p[tag=testforitem18] remove testforitem18
以上皆要列出,楼主可看你具体要固定哪些格子变通


最后两个:
#大刀被丢到地上时立马加标签
tag @e[type=minecraft:Item,nbt={Item:{id:"minecraft:iron_sword"}}] add killdropis
#有该标签的掉落物立即删除
kill @e[tag=killdropis,type=minecraft:Item]



以上这些指令缩在一个高频检测的function内即可。

2508466234
这个好像是不能实现的

第一页 上一页 下一页 最后一页