第189章 ,/.

E[链][无][始]

F[链][无][始]

G[链][无][始]

H[链][无][始]

I[链][无][始]

J[链][无][始]

现在,我们系统的Beta3.0版本出来了,让我们测试一下BUG有无解决:

*按下按钮*

已为XXX添加了标签'registering'

请运行指令“/trigger password set <密码>“输入账户密码来注册

n个『已将XXX的[is_typed]分数设为0』

*输入密码*

已触发[password](数值已设置为)

已为XXX启用了触发器[password]

已为XXX添加了标签'registered'

注册成功,请记好你的密码哦!

已触发[password](数值已增加0)

已将XXX传送到 13.,-60.000000, 10.

已移除XXX的标签'registering'

n个『已将XXX的[is_typed]分数设为0』

解决了!!!

现在,我们已经完成了这个系统的大半部分,接下来我们将会尝试完成『检测玩家的密码是否符合要求,如果符合则通过检测并传送走玩家,如果不符合则返回错误信息,并再次为玩家打开触发器指示玩家填写』这个部分。

其实这个部分相当简单。比如我们想要玩家不能设定密码为0,就可以这么干:

在D命令方块后面插入两个新的命令方块,写入以下内容

execute as @a[tag=registering,scores={is_typed=1}] unless score @s password matches 0 run tag @s add correct_input

\\为密码不是0的玩家添加标签correct_input(正确输入)\\

execute as @a[tag=registering,scores={is_typed=1}] if score @s password matches 0 run tag @s add error_input

\\为密码是0的玩家添加标签error_input(错误输入)\\

修改E、F、G、H、I命令方块的内容为

execute as @a[tag=correct_input,tag=registering] run tag @s add registered

tellraw @a[tag=correct_input,tag=registering]{“text“:“注册成功,请记好你的密码哦!“,“color“:“green“}

execute as @a[tag=correct_input,tag=registering] run trigger password add 0

execute as @a[tag=correct_input,tag=registering] run tp @s 13 -60 10 180 0

execute as @a[tag=correct_input,tag=registering] run tag @s remove registering

在I后新增命令方块3个,内容为

execute as @a[tag=correct_input,tag=registered] run tag @s remove correct_input

execute as @a[tag=registering,tag=error_input] run tellraw @s {“text“:“请不要将0作为你的密码,请重新输入“,“color“:“red“}

execute as @a[tag=registering,tag=error_input] run tag @s remove error_input

让我们测试一下:

......

*输入密码*

已触发[password](数值已设置为0)

已为XXX启用了触发器[password]

已为XXX添加了标签'error_input'

请不要将0作为你的密码,请重新输入

已移除XXX的标签'error_input'

小主,

*再次输入密码*

已触发[password](数值已设置为1)

已为XXX启用了触发器[password]

已为XXX添加了标签'correct_input'

已为XXX添加了标签'registered'

注册成功,请记好你的密码哦!

已触发[password](数值已增加0)

已将XXX传送到 13.,-60.000000, 10.

已移除XXX的标签'registering'

已移除XXX的标签'correct_input'

OK,完美运行,这就是系统的Beta4.0版本。

只不过由于篇幅限制,我们就讲到这里。接下来对于『登录』功能甚至『登出』功能的实现,请你自己独立完成。这边有几个要求和提示:

①登录模块和注册模块要分开,但其实两者的原理都差不多

②创建一个新的触发器enter_password,用于登录密码的输入

③优化模块的运行,使得玩家在按下按钮后才会调用登录和注册模块,并在没有处于登录/注册中的玩家后停止模块运行(提示:setblock或fill红石块)

④创建一个新的触发器,已登录的玩家可以修改此触发器到一个特定的值来退出登录

⑤新玩家进来后必须要出生在注册/登录房里

⑥未追踪玩家的分数无法被比较。所以如果你拿未追踪玩家的分数来比较,由于没有分数,所以游戏总会返回false(假)

你可以加QQ群或通过作家的话中的网盘链接获取到我做的完整『注册/登录系统』的存档(Minecraft Java1.19版本,非网易版)。

本章到此为止。