我的世界金币系统

58次阅读
没有评论

在我的世界服务器中,服主会希望为服务器添加金币系统,用来进行交易。

scoreboard记分板介绍

创建记分板:scoreboard objectives add <objective: string> dummy [displayName: string]

<objective: string>是记分板的名字,可以是中文、英文等。[displayName: string]是记分板的显示名字,如果未指定,默认为记分板的名字。

删除记分板:scoreboard objectives remove <objective: string>

显示记分板:scoreboard objectives setdisplay <list|sidebar> [objective: string] [ascending|descending]

list是显示在游戏暂停界面的右边。sidebar的显示在侧边栏。list与sidebar可以填写ascending(从小到大排列)或descending(从大到小排列)

操作两个记分板之间的数值:scoreboard players operation <player: target> <targetObjective: string> <operation: operator> <selector: target> <objective: string>

<player: target>、<selector: target>是目标选择器,<targetObjective: string>、<objective: string>是记分板名字,<operation: operator>是运算符。

创建虚拟金币

服务器的金币是用记分板来实现的。我们先创建一个名为money的记分板:

scoreboard objectives add money dummy

为了方便玩家获取自己的金币信息,我们可以将该记分板显示出来,这里演示为将记分板显示在侧边栏上:

scoreboard objectives setdisplay sidebar money descending

这样简单的金币系统就完成了,服主想为服务器添加商店可以参考这篇文章:https://mc.ziyueyoushang.com/minecraft-instruction-store-scoreboard-usage.html

但是服主也许会观察到:当玩家下线后,玩家的数据仍然会显示在记分板上。这样当服务器的玩家人数过多之后,玩家下线会很影响在线的玩家观察自己的金币数量。所以我们可以想办法消除记分板上的玩家下线。

原理介绍

我们可以创建另一个记分板,让这个记分板上玩家金币数等于本来记分板的金币数,移出这个记分板。一直重复这个过程,以实现刷新的效果。

指令实践

移出用来刷新的记分板。放置一个循环命令方块,无条件,保持开启。

scoreboard objectives remove money2

创建用来刷新的记分板。接着放置一个连锁命令方块,有条件,保持开启。

scoreboard objectives add money2 dummy 金币数

让该记分板显示在侧边栏。接着放置一个连锁命令方块,有条件,保持开启。

scoreboard objectives setdisplay sidebar money2 descending

让用来刷新的记分板数值等于金币数。接着放置一个连锁命令方块,有条件,保持开启。

execute as @a at @s run scoreboard players operation @s money2 = @s money

为了使这些命令方块能够在附近没有人的情况下继续允许,服主可以站在命令方块旁边输入以下指令将该区块变为常加载区块。

/tickingarea add circle ~ ~ ~ 1 money
我的世界金币系统
命名方块摆放展示

服主可以输入以下指令手动启动该系统。

scoreboard objectives add money2 dummy 金币数

好了,以上就是我的世界服务器简单的金币系统的介绍了。

正文完
 0
评论(没有评论)