请选择 进入手机版 | 继续访问电脑版
查看: 1669|回复: 8

[命令方块] [1.13+]命令方块还原time is money插件

[复制链接]

11

主题

37

帖子

23

积分

攻略组-见习

UID
49109
小麦
2
金锭
71
下界之星
0
发表于 2019-12-27 19:52:21 | 显示全部楼层 |阅读模式
本帖最后由 Zai_Ge 于 2019-12-27 19:59 编辑

Time is money是一个老牌服务器插件,作为1.4~1.7的服务器插件,它承载了许多老玩家的回忆,今天我来展示如何用命令方块,来还原这个Time is money插件。
5.gif
首先我们首先要创建如下的计分板:
A:金钱。用于储存玩家在银行拥有的金钱。
  1. /scoreboard objectives add Money dummy {"text":"金钱"}
复制代码
B:在线时间。用于记录玩家在线的时长。
  1. /scoreboard objectives add OnlineTime dummy {"text":"在线时间"}
复制代码
C:每分钟可以获得的钱。可以通过设置这个数值来设置每分钟可以获得的钱。
  1. /scoreboard objectives add Muitply dummy {"text":"每分钟获得的钱"}
复制代码
D:准备加的钱。用于运算时暂时储存的金额,然后加到玩家的银行账户里。
  1. /scoreboard objectives add PrepareAddMoney dummy {"text":"准备加的钱"}
复制代码

紧接着,我们要设置一个虚拟玩家用于储存每分钟可以获得的钱的额度,就取名叫System好了,设置每分钟可以领取2块钱。
  1. /scoreboard players set System Muitiply 2
复制代码

随后我们需要搭建一个计时器,每到一分钟就把在线所有人的在线时间加上 1
这里需要用到比较器,漏斗,粘性活塞,红石,红石块,任意最大堆叠为64的物品75个(1组11个)
2019-12-27_18.59.53.png
注意漏斗要互相对接,然后往其中一个里面放入那75个物品。为什么是75个呢?因为根据漏斗的特性,每秒可以流动2.5个物品,那一分钟则需要60 × 2.5 = 150(个)漏斗。但由于有两个漏斗,所以实际需要150 ÷ 2 =75(个)物品。
2019-12-27_19.00.57.png
接着在红石块上方搭建一个命令方块,并在里面输入如下指令。
2019-12-27_19.01.34.png
  1. /scoreboard players add @a OnlineTime 1
复制代码
这个指令的作用就是把在线的玩家,计分板 “在线时间” 的分数加上 1。每过半分钟,活塞就会运动一次,到了两分钟的时候红石块恰好就运动到命令方块下面,然后就执行命令方块里面的指令,实现了每过一分钟,把所有人的在计分板上的分数 “在线时间” 加上1。
然后就是取款机的建造了,首先我们要搭出这个框架
2019-12-27_19.17.38.png
然后压力板地下放命令方块,并输入指令
2019-12-27_19.18.05.png
F:清除告示牌的内容(X Y Z为告示牌的坐标
  1. /data merge block X Y Z {Text1:'{"text":""}',Text2:'{"text":""}',Text3:'{"text":""}',Text4:'{"text":""}'}
复制代码
G:使告示牌展示玩家名字,以及在线时间
  1. data merge block X Y Z {
  2. Text1:'{"text":"你好 ","color":"dark_blue","extra":[{"selector":"@p"}]}',
  3. Text2:'{"text":"在线时间:","color":"dark_blue"}',
  4. Text3:'{"score":{"name":"@p","objective":"OnlineTime"},"color":"dark_blue","extra":[{"text":" min."}]}',
  5. Text4:'{"text":"<-给予的钱->","color":"dark_blue"}'
  6. }
复制代码

2019-12-27_19.24.51.png
紧接着在按钮后面这样搭上红石,脉冲命令方块以及5个连锁方块,注意命令方块的方向要正确!输入指令
H:把玩家的 “在线时间” 存入 “准备加的钱之中”
  1. /scoreboard players operation @p PrepareAddMoney = @p OnlineTime
复制代码
I:设置玩家的 “在线时间” 为 0,以免无限刷钱
  1. /scoreboard players set @p OnlineTime 0
复制代码
J:用虚拟玩家——System的 “每分钟获得的金钱” 分数与玩家的 “准备加的钱” 的分数相乘,乘到玩家 “准备加的钱”里
  1. /scoreboard players operation @p PrepareAddMoney *= System Muitiply
复制代码
K:用玩家 “准备加的钱” 的分数加到玩家的 “金钱” 里
  1. /scoreboard players operation @p Money += @p PrepareAddMoney
复制代码
L:把玩家 “准备加的钱”的分数清零
  1. /scoreboard players set @p PrepareAddMoney 0
复制代码
M:使告示牌显示玩家余额
  1. data merge block X Y Z {
  2. Text1:'{"text":"谢谢!","color":"dark_blue","extra":[{"selector":"@p"}]}',
  3. Text2:'{"text":"现在你有 :","color":"dark_blue"}',
  4. Text3:'{"score":{"name":"@p","objective":"Money"},"color":"dark_blue","extra":[{"text":"元"}]}',
  5. Text4:'{"text":"","color":"dark_blue"}'
  6. }
复制代码
最后提前祝大家有一个开心的新年啦!
2019-12-27_19.24.51.png

34

主题

212

帖子

84

积分

Lv.3 矿物能手

UID
5345298
小麦
-3
金锭
438
下界之星
0
发表于 2019-12-27 23:00:40 来自手机 | 显示全部楼层
产品质量很好,孩子很喜欢(划掉)
排版很清晰,讲得也很透彻,或许加个OOC很大火?
不过我有小建议,关于计时的,有些人不会红石(比如我)
可以另外添加一个计分板,利用循环命令方块每秒运行20次来计时,并召唤盔甲架做完检测的实体,检测到该实体为1200(20x60)分时,则清空它的分数,这样可以脱离红石,可以用OOC就实现。

11

主题

37

帖子

23

积分

攻略组-见习

UID
49109
小麦
2
金锭
71
下界之星
0
 楼主| 发表于 2019-12-28 00:46:20 | 显示全部楼层
决心丶羊驼 发表于 2019-12-27 23:00
产品质量很好,孩子很喜欢(划掉)
排版很清晰,讲得也很透彻,或许加个OOC很大火?
不过我有小建议,关于 ...

OOC不太了解是什么哎,有这个文件不知道怎么用

72

主题

3万

帖子

9533

积分

Lv.9 终界行者

Lv.9 高压水泵

UID
876177
小麦
236
金锭
7589
下界之星
0

二周年纪念勋章

发表于 2019-12-28 10:19:20 | 显示全部楼层
这是本人的在线时间OOC,红石计时不准确
可以参考,严禁魔改,版权所有(XD)
  1. summon falling_block ~ ~1.5 ~ {Time:1,Block:"minecraft:redstone_block",Motion:[0d,-1d,0d],Passengers:[{id:falling_block,Time:1,Block:"minecraft:activator_rail",Passengers:[{id:commandblock_minecart,Command:"blockdata ~ ~-2 ~ {auto:0b,Command:""}"},{id:commandblock_minecart,Command:"setblock ~2 ~10 ~0 chain_command_block 1 replace {Command:"fill ~ ~ ~ ~ ~-5 ~ air",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~9 ~0 chain_command_block 1 replace {Command:"tellraw  @a {\\"text\\":\\"欢迎使用坑触可专门定制的一款显示在线时间\\",\\"color\\":\\"green\\",\\"bold\\":\\"true\\"}",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~8 ~0 chain_command_block 1 replace {Command:"scoreboard objectives add time:h dummy",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~7 ~0 chain_command_block 1 replace {Command:"scoreboard objectives add time:min dummy",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~6 ~0 chain_command_block 1 replace {Command:"scoreboard objectives add time:s dummy",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~5 ~0 chain_command_block 1 replace {Command:"scoreboard objectives add time:k stat.playOneMinute",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~4 ~0 chain_command_block 1 replace {Command:"title @a actionbar [{\\"text\\":\\"你在该存档的现实时间为\\",\\"color\\":\\"dark_green\\",\\"bold\\":\\"true\\"},{\\"score\\":{\\"name\\":\\"*\\",\\"objective\\":\\"time:h\\"}},{\\"text\\":\\":\\"},{\\"score\\":{\\"name\\":\\"*\\",\\"objective\\":\\"time:min\\"}},{\\"text\\":\\":\\"},{\\"score\\":{\\"name\\":\\"*\\",\\"objective\\":\\"time:s\\"}}]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~3 ~0 chain_command_block 1 replace {Command:"scoreboard players set @a[score_time:min_min=60] time:min 0",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~2 ~0 chain_command_block 1 replace {Command:"scoreboard players add @a[score_time:min_min=60] time:h 1",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~1 ~0 chain_command_block 1 replace {Command:"scoreboard players set @a[score_time:s_min=60] time:s 0",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~0 ~0 chain_command_block 1 replace {Command:"scoreboard players add @a[score_time:s_min=60] time:min 1",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~-1 ~0 chain_command_block 1 replace {Command:"scoreboard players set @a[score_time:k_min=20] time:k 0",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~-2 ~0 repeating_command_block 1 replace {Command:"scoreboard players add @a[score_time:k_min=20] time:s 1",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~ ~1 ~ command_block 0 replace {auto:1b,Command:"fill ~ ~ ~ ~ ~-3 ~ air"}"},{id:commandblock_minecart,Command:"kill @e[type=commandblock_minecart,r=1]"}]}]}
复制代码

如果无法使用,肯定是论坛吞字符了,游戏版本1.12.2

34

主题

212

帖子

84

积分

Lv.3 矿物能手

UID
5345298
小麦
-3
金锭
438
下界之星
0
发表于 2019-12-28 11:25:28 来自手机 | 显示全部楼层
Zai_Ge 发表于 2019-12-28 00:46
OOC不太了解是什么哎,有这个文件不知道怎么用

OOC是一键命令
大致原理是用summon召唤实体,召唤下落的沙子实体,将沙子替换为命令方块,并设置命令方块的模式和内置指令即面向方向而形成的命令方块组。

0

主题

1

帖子

0

积分

Lv.1 新手木匠

UID
5341793
小麦
0
金锭
9
下界之星
0
发表于 2019-12-31 16:09:22 来自手机 | 显示全部楼层
挺好的,希望还有其他的

2

主题

3

帖子

3

积分

Lv.1 新手木匠

UID
5756630
小麦
0
金锭
11
下界之星
0
发表于 2020-1-1 15:27:10 来自手机
我阿豪礼啊啊啊啊啊

26

主题

958

帖子

1152

积分

Lv.7 下界居民

UID
1889
小麦
877
金锭
4586
下界之星
0
发表于 2020-1-1 23:19:19 来自手机 | 显示全部楼层
可以 很帅 ! 支持!

5

主题

75

帖子

22

积分

Lv.2 石器学徒

UID
6974157
小麦
-2
金锭
94
下界之星
0
发表于 2020-1-10 09:05:47 来自手机 | 显示全部楼层
可以

20

主题

261

帖子

122

积分

Lv.4 怪物猎人

UID
248036
小麦
37
金锭
686
下界之星
0
发表于 2020-1-21 08:34:58 来自手机 | 显示全部楼层
虽然看不懂,但是帅就完了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部