⭐✔️
本帖最后由 贰逼 于 2018-10-26 00:10 编辑

/drop命令目前还属于预览内容,并且存在bug,本帖会持续更新。
大致的讲解一下目前的用法:
语法
  1. /drop <target> <source>
复制代码
target就是掉落的对象,简单来说就是谁会得到掉落的物品。目前有:block、entity、player、world。
source就是掉落,就是(通过某种方式让)谁掉了物品。目前有:award、fish、kill、loot、mine。

target和source可以随意排列组合,具体用法点击索引跳转。


总的来说/drop命令现在只是用于灵活地调用loottable。

2021.12 数据,可能有更多内容/drop命令目前还属于预览内容,并且存在bug,本帖会持续更新。

大致的讲解一下目前的用法:
语法

代码:

  1. /drop <target> <source>
target就是掉落的对象,简单来说就是谁会得到掉落的物品。目前有:block、entity、player、world。
source就是掉落,就是(通过某种方式让)谁掉了物品。目前有:award、fish、kill、loot、mine。
target和source可以随意排列组合,具体用法点击索引跳转。



总的来说/drop命令现在只是用于灵活地调用loottable。
target - 对象

对象目前有:block、entity、player、world。
(看着是不是感觉眼熟,世界上block和entity的表现和在replaceitem中差不多)

  • block - 方块容器

    代码:

    1. /drop block [x] [y] [z] <distribute|insert>
    [xyz]用于选中一个容器的坐标,关于如何在容器内放置物品有两种模式:
    • distribute
    自动分配物品,类比漏斗。
    • insert
    插入物品,类比/replaceitem。

  • entity - 实体

    代码:

    1. /drop entity [target] [slot]
    [target]就是实体选择器,[slot]就是物品栏Id:

    可以说与/replaceitem中的entity毫无差别,就是替换物品栏
  • player - 玩家

    代码:

    1. /drop player [target]
    [target]就是实体选择器。
    如果说entity可以类比block中的&quot;insert&quot;模式,那么player就可以类比block中的&quot;distribute&quot;模式了,根据实体(多数是玩家)物品栏的情况自动分配物品
  • world - 世界

    代码:

    1. /drop world [x] [y] [z]
    直接在世界坐标[xyz]处掉落物品。简单粗暴。
source - 源

目前源有:award、fish、kill、loot、mine。
(都与loottable相关联)

  • award, loot - 奖励/掉落

    代码:

    1. /drop <target> <award|loot> [loottable]
    直接将一个loottable作为源。
  • fish - 钓鱼掉落

    代码:

    1. /drop <target> fish [loottable] [x] [y] [z] [tool|offhand|mainhand]
    也是直接将一个loottable作为源,不同的是[xyz]&quot;应该&quot;表示钓得物品坐标(也许存在Bug),[tool|offhand|mainhand]表示工具和手持方式
  • kill - 击杀掉落

    代码:

    1. /drop <target> kill [target]
    [target]就是被击杀目标(必须limit=1),但是实际上所选择的实体并没有被击杀,只是调用了其死亡loot。
  • mine - 挖掘掉落

    代码:

    1. /drop <target> mine [x] [y] [z] [tool|offhand|mainhand]
    [xyz]是世界坐标,而非&lt;target&gt;中的坐标。表示挖掘[xyz]所得的掉落物,[tool|offhand|mainhand]表示工具和手持方式。
    挖掘掉落物是loottable中所规定的物品,比如挖掘煤矿,掉落煤;挖掘树叶,概率性掉落树苗。

    本质上mine就是调用了方块的loot。
目前bug
1.部分loottable表现不正常,例如&quot;minecraft:blocks/acacia_door&quot;,这可能是个老牌bug,挖掘技术性方块没有掉落?
2.当对象为entity时,&lt;source&gt;前会多出一个[count]的附加选项,推测是掉落次数?目前没有用处


可能更新方向
根据wiki-command/drop,drop命令最初的设计是使物品栏物品沿某一方向,显然1.14的更新和wiki上的企划不相符。
示例1 - 挖掘工的梦

代码:

  1. /drop player @a mine ~ ~-1 ~ minecraft:diamond_pickaxe{Enchantments:[{id:"minecraft:efficiency",lvl:90000},{id:"minecraft:unbreaking",lvl:90000},{id:"minecraft:fortune",lvl:90000}]}

示例2 - 海之眷顾

代码:

  1. /drop entity @a hotbar.0 fish minecraft:gameplay/fishing/treasure ~ ~ ~ mainhand

示例3 - 填满宝藏

代码:

  1. /drop block ~ ~ ~ distribute award minecraft:chests/jungle_temple

chyx
本帖最后由 chyx 于 2018-10-26 01:43 编辑

我试着补充几点
1 似乎/drop <target> mine [x] [y] [z] [tool|offhand|mainhand]
在使用手(而不是一个物品)时 必须由一位实体来执行

2 "minecraft:blocks/acacia_door"无法使用是否是因为这个loottable里对方块的状态进行了判断(只有下半截掉落)
指令执行时没有传入相关信息?

3 wiki上的企划/drop疑似agent的指令
这个是教育版里用于教学编程的小机器人 可以执行学生写的简单动作 比如前进 转身等
drop是agent页面里列出的指令之一
https://minecraft.gamepedia.com/Commands/drop里也提到了agent
这样正好吻合了
所以说只是撞指令了
4 经过询问 查阅等一系列操作后 我确认了钓鱼指令里确实需要一个坐标。
这个版本的默认数据包里 钓鱼的垃圾会受biome的影响了。
节选自junk.json
里面要求必须是竹林或丛林里才能钓鱼得到竹子。
因此确实需要一个钓鱼的坐标
至于这个坐标到底是鱼漂的位置还是人的位置,我询问的结果是模拟钓鱼时的水方块的位置
我还没有验证

ruhuasiyu
award应该是用进度的reward的loot吧?