欢迎光临散文网 会员登陆 & 注册

Minecraft-目标选择器/bossbar/scoreboard/team/trigger-基础用法-1

2023-07-19 17:01 作者:一只llla鱼鸭  | 我要投稿

该教程仅限Java版

使用版本:Minecraft1.20.1                参考资料:MCwiki: https://minecraft.fandom.com/zh/wiki/

目标选择器

1.目标选择器变量

@a:所有玩家

@p:最近的玩家,如果在服务器控制台中输入,默认基准点为世界出生点。若有多个最近的玩家,与基准点距离完全相同,会选择其中最晚进入服务器的玩家。type参数不适用于@p

@r:随机玩家,type参数不适用于@r。(可以用@e[sort=random,limit=1,type=...]来代替)

@e:所有实体

@s:该命令的执行者,若命令执行者为命令方块或服务器控制台执行命令,则此选择器不会选中任何东西。

注:Java的玩家选择包括死亡玩家

2.目标选择器参数


在使用目标选择器之后,可以用参数限定所要选择的群组。当使用@a@e时,待选目标从全体筛选成特定的少数。当使用@p@r时,参数将从完整的待选列表缩小到被筛选后的待选列表。当使用@s时,命令执行者只有在所有参数都满足时才会被选择,否则命令将执行失败。

在目标选择器变量之后附加键值对构成的逗号分隔,并包含在方括号中

                                                       来自  Minecraft Wiki

下面是一些参数

参数      选择标准      参数        选择标准  

xyz=      坐标     distance=        距离

dx,dy,dz=   区域     scores={...=}    计分板分数

tag=      标签标签      team=        队伍名称

name=     实体名称      type=       实体类型

predicate   谓词       x/y_rotation=  垂直/水平旋转角度

nbt={}   实体的NBT标签    level=       经验等级

gamemode=   游戏模式     advancements=   进度

limit=    数量         sort=        排序

sort= 的用法

sort=nearest:将目标由近到远排序。

sort=furthest:将目标由远到近排序。

sort=random:将目标随机排序。

sort=arbitrary:将目标按生成时间由远到近排序。(@a@e的默认排序方式)

使用:

排序过后,可以用 limit= 进行选择 1 就是排序的第一个 2 就是第二个 以此类推

如: execute as @a at @s at @e[sort=nearest,limit=1,type=!player,type=!#minecraft:arrows,type=!minecraft:arrow,type=!minecraft:trident,type=!minecraft:potion,type=!minecraft:item,type=!minecraft:experience_orb,type=!minecraft:experience_bottle,distance=0..12] run particle minecraft:flame ~ ~ ~ 0.5 0 0.5 0.09 7 force @s

该指令的效果在这期视频

这个指令的效果是选择最近的生物并生成粒子,其中“sort=nearest,limit=1”就是选择最近的实体。

除此之外,还可以实现随机实体的效果

   @e[sort=random,limit=1]

/bossbar

add            添加bossbar

remove     移除bossbar

get              返回请求的指定设置

(max/players/value/visible)

list              显示现存的bossbar列表 

set              设置bossbar

(color|max|name|players|style|value|visible)

  • Color  bossbar的颜色

  • Max bossbar的最大值

  • Players   bossbar对谁显示

  • Style   bossbar的段数       

    (progress|notched_6|notched_10|notched_12|notched_20)

    看上去是这样的(... notched_6)

notched_6

          progress是不分段

  • Value    bossbar的当前值

  • visible   bossbar是否显示


/team

add                    添加队伍

remove             移除队伍

list                     列出所有队伍,同时列出显示名称与包含的实体。

empty              将所有队伍内的实体移出

join                   加入队伍,若未指定实体,则将执行者加入该队伍。

leave                离开队伍

modify             修改队伍,如下


  • displayName:设置队伍被显示时的名称。

  • color:决定队伍与玩家在聊天栏、头顶、Tab菜单、侧边栏的颜色,以及实体带有发光效果时的描边颜色。

  • friendlyFire:启用/禁用同队伍玩家互伤。不对队伍中的非玩家实体生效。

  • seeFriendlyInvisibles:决定玩家观察同队伍的隐身玩家时,显示为半透明还是完全不可见。

  • nametagVisibility:决定头上的名称标签是否可见。

  • deathMessageVisibility:控制玩家死亡消息的可见性。

  • collisionRule:控制队伍中实体的碰撞方式。

  • prefix:修改玩家名称前缀。

  • suffix:修改玩家名称后缀。

                                                 来自  Minecraft Wiki

  • nametagVisibility 

    never - 玩家头上的名称不被任何玩家看见。

    hideForOtherTeams - 玩家头上的名称只被同队伍的玩家看见。

    hideForOwnTeam - 玩家头上的名称只被不同队伍的玩家看见。

    always - (默认)玩家头上的名称能被任意玩家看见。

  • collisionRule

    never - 对所有玩家隐藏死亡消息。

    hideForOtherTeams - 对不同队伍的玩家隐藏死亡消息。

    hideForOwnTeam - 对同队伍的玩家隐藏死亡消息。

    always - (默认)死亡消息对所有玩家可见。

  • prefix:修改玩家名称前缀。

    suffix:修改玩家名称后缀。

    需用原始JSON文本

原始JSON文本-基本

{"text":"文本内容","color":"颜色"} "bold":false/true"italic":false/true,"underlined":false/true,"strikethrough":false/true,"obfuscated":false/true}

bold(粗体)、 italic(斜体)、 underlined(下划线)、 strikethrough(中划线)、obfuscated(乱码)

详见https://minecraft.fandom.com/zh/wiki/教程/原始JSON文本


/scoreboard

objectives (add/list/modify/remove/setdisplay)

  • add  记分项   准则  显示名称(原始JSON文本)         创建积分榜

  • list    列出所有存在的记分项、显示名称与准则。

  • modify      

    modify 准则 displayname 显示名称

    更改记分板的显示名称。被指定的准则必须存在。名称必须是JSON文本组件

    modify 记分项 rendertype (hearts/integer)

    在列表将记分项记分项的数值以爱心或数字显示。

  • remove    删除积分项

  • setdisplay     设置积分项显示区域

players(add/enable/get/list/operation/remove/reset/set)


  • add <目标> <记分项> <分数>

    往实体目标在记分项记分项上的分数增加数量分。如果没有分数则当作0分修改。*可用以代表所有正在被记分板追踪的实体。

    目标所指定的实体不必存在,可以使用自定义的名称,下同。

  • enable <目标> <触发器>

    使实体目标可以对指定触发型记分项触发器使用命令/trigger。在此操作完成前,实体目标对记分项使用/trigger时将会失败。一旦实体对记分项使用了/trigger,记分项将再次变得不可操作,需要再次使用此命令。*可用以代表所有正在被记分板追踪的实体。

  • get <目标> <记分项>

    显示该实体在记分项上的分数。仅可指定一个实体,且不能为*

  • list [<目标>]

    显示所有被记分板系统追踪的实体。可选的实体名称参数项可用以显示指定实体的所有分数,留空目标会显示所有正被记分板跟踪的实体。由于MC-136858,往目标填写*无法追踪到任何实体。

  • operation <目标> <目标记分项> <操作> <来源> <来源记分项>

    使用记分项实体来源在记分项名为来源记分项上的分数作为输入,进行运算操作后把结果作为记分项实体目标在记分项名为目标记分项上的分数。若来源的来源记分项未被赋值,则它会自动被设为0。 运算操作<操作> 可以是:

    • += 求和:把选择器的分数加到 目标名称的分数上。

    • -= 求差:在目标名称的分数上减去选择器的分数。

    • *= 求积:将目标名称的分数设为目标名称的分数与选择器分数的乘积。

    • /= 求商:将目标名称的分数设为被选择器的分数除后的结果。

    • %= 求余:将目标名称的分数设为被选择器的分数除后得到的余数。

    • = 赋值:把目标名称的分数设为选择器的分数。

    • < 取较小值:如果选择器的分数比目标名称的分数小,则把目标名称的分数设为选择器的分数。

    • > 取较大值:如果选择器的分数比目标名称的分数大,则把目标名称的分数设为选择器的分数。

    • >< 交换选择器与目标名称的分数。 除><外,选择器在记分项上的分数会保持不变。*可填在目标名称或选择器(但不能同时)用以代表所有正在被记分板追踪的实体。

  • remove <目标> <记分项> <分数>

    从实体目标在记分项记分项上的分数扣除数量分。如果没有分数则当作0分修改。*可用以代表所有正在被记分板追踪的实体。

  • reset <目标> [<记分项>]

    清空实体目标的一项或所有分数。如果指定了记分项记分项,只清空对应记分项的分数;否则删除实体所有记分项上的分数。需要注意这不仅仅是设分数为0:实体将会整个从记分板上被移除(或从给定的记分项)。星号(*)可用以代表所有正在被记分板追踪的实体。

  • set <目标> <记分项> <分数>

    将实体目标在记分项记分项上的分数设为数量分。*可用以代表所有正在被记分板追踪的实体。


    选自Minecraft Wiki   有改动

注意,operation的运算不改变"选择器的分数"

其中,trigger可以实现无op的指令操作,或者是解密。

/trigger

(太简单了,直接放语法)


  • trigger <objective>

  • trigger <objective> (add|set) <value>

objective:计分项

value:值

(必须用    /scoreboard plaayers enable 目标 计分项    才可以用)






                               下期再说和扩展     

                           给个赞吧(;´д`)ゞ





Minecraft-目标选择器/bossbar/scoreboard/team/trigger-基础用法-1的评论 (共 条)

分享到微博请遵守国家法律