AI 速览
命令方块进阶教程:用标签与计分板为每位玩家分配唯一UID
这是麦仁丝课堂第一期教程,讲解如何用命令方块搭建玩家序数统计系统,为每个进入服务器的玩家分配一个各不相同的数字,也就是常说的UID。教程给出循环加连锁有条件的命令方块组结构,分跟踪未统计玩家、递增虚拟实体分数并赋值、添加已统计标签并取消跟踪三步,并汇总了所用指令、计分板与实体标签。适合已了解命令方块基础、想为服务器做玩家编号的玩家阅读。
论坛附件
帖内链接
获取方式
- 需要掌握命令方块与计分板基础
- 教程基于命令方块循环加连锁有条件结构
- 原发布于网易论坛,作者已转驻苦力怕论坛
- 视频版教程尚未发布
本卡片由 AI 阅读本帖后生成,可能存在疏漏,请以帖子正文为准。
|
本帖最后由 Mirence 于 2024-6-15 18:46 编辑 命令方块进阶教程之 玩家序数统计系统 导语:玩家序数统计系统的功能是给予每一个玩家对应的数字,也就是很多服务器中所说的UID,有利于更好地分辨和定位玩家。
玩家序数统计系统的简要内容如下表:
玩家序数统计系统的主要流程如下图: 【麦仁丝课堂】玩家序数统计系统 思维导图
正文: 这里的命令方块组结构采用的是简单的“循环开启+若干连锁有条件”类型。 第一步:跟踪一个未被统计过的玩家。 我们可以随机为一个未被统计过的玩家添加一个实体标签t1,用于跟踪这个玩家*。因为一次只能给予一个玩家一个序数,所以为避免两个未被统计过的玩家同时上线,这里采用随机玩家@r作为目标选择器的变量。 可以将以下指令写入第一个“循环 开启”命令方块中(t2是已统计的玩家拥有的标签):
第二步:给予跟踪的玩家玩家序数(UID) 首先,我们需要一个虚拟实体来记录当前玩家拥有的最高的序数,即上一次给予玩家的序数。当第一个命令方块成功执行后(也就是当游戏中存在未被统计过的玩家时),在给予序数之前,我们可以为虚拟实体e1在计分板se(专门统计虚拟实体分数的计分板,无初始分数)上的分数加1分,然后再将e1在se上的分数赋值给被跟踪玩家在计分板s1上的分数(即让被跟踪玩家在s1上的分数等于e1在se上的分数)。s1就是专门用来统计各个玩家的玩家序数的计分板。此时这个被跟踪玩家的玩家序数就能比上一个玩家高一分了,实现了每一个玩家在s1的分数各不相同。 我们可以将以下指令写入第二个“连锁 有条件”命令方块中:
第三步:取消跟踪玩家 给予了被跟踪玩家序数之后,这个玩家已经成为被统计过的玩家(可以理解为注册过的玩家),最后我们只要在给予被跟踪玩家一个表示已统计的标签t2,再去掉被跟踪玩家的跟踪标签t1,所有命令就执行结束了。 我们可以将以下指令写入第四个“连锁 有条件”命令方块中:
玩家序数统计系统 思维流程图: 【麦仁丝课堂】玩家序数统计系统 流程图
思维导图注释: 循环:第一个命令方块为重复命令方块 添加: 添加实体标签 删除:删除实体标签 设置:计分板指令 e:s:(虚拟)实体e在计分板s上的分数 玩家序数统计系统 指令内容汇总: 【麦仁丝课堂】玩家序数统计系统 指令内容汇总
①tag @r[tag=!t2] add t1 循环 开启 ②scoreboard players add e1 se 1 连锁 有条件 ③scoreboard players operation @a[tag=t1] s1 = e1 se 连锁 有条件 ④tag @a[tag=t1] add t2 连锁 有条件 ⑤tag @a[tag=t1] remove t1 连锁 有条件 玩家序数统计系统 事物名称汇总:
那么,本期教程就到这里结束了。如果真正掌握了玩家序数统计系统并且能够灵活运用命令方块的话,实际上可以发现教程中的一些内容仍然是可以简化和调整的。但麦仁丝更加喜欢清晰地表达,也就是清晰在前,简化在后。本期教程作为命令方块进阶教程的第一期教程,也是一次试验,所以内容是比较简单的,以后还会有许多比较复杂的内容,希望这种教学方式能够让大家更好地理解教程的内容。 感谢大家的支持!!! (本期教程最早于2021年8月9日发布于网易我的世界论坛,现麦仁丝已转驻苦力怕论坛,将停止在网易我的世界论坛上的发布教程) 点此前往 麦仁丝课堂 目录 点此前往 命令方块进阶教程 食用指南 (本期视频版教程尚未发布) |
-
-
星河***
铁粒 +40
原创奖励
-

提升卡
观察者
来自 6#