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

[命令方块] [新人贴][命令方块]无需op权限也能用的原版木牌商店!

  [复制链接]

4

主题

28

帖子

19

积分

Lv.1 新手木匠

UID
8472
小麦
8
金锭
51
下界之星
0
发表于 2018-8-22 12:01:30 | 显示全部楼层 |阅读模式
本帖最后由 Exciting! 于 2018-8-30 19:20 编辑

发现重大问题!请各位服主最好不要在服务器里做,这样做会大量消耗服务器资源!
未来将把修改后的教程放出,这里向大家说一声抱歉!
感谢@Roach_123 大佬的指正!


当然,如果你是局域网玩家或者maper,那么下面的教程或许暂时可以凑合着看一下:

=======================================================

今天给大家带来原版实现木牌商店教程
在教程开始之前我们先来看一个小故事:
一天,史蒂夫像往常一样出门探险,突然,他发现了一个木牌
GIF1.gif
史蒂夫心想:既然我有10个硬币,那就来买买看吧
当史蒂夫右键木牌时,神奇的事情发生了:
GIF2.gif
当史蒂夫再次右键时,却因为硬币不够而被阻止了:
GIF3.gif
那么究竟是怎么做到的呢?让我们进入教程:
准备材料:
①一台能玩mc的电脑
②n个命令方块
③一个脑子
原理:
原理很简单,即木牌执行命令+trigger+乱七八糟
没人看的步骤:
①根据原理,我们需要先创建一个可以使用trigger指令修改的计分板:
/scoreboard objectives add shop trigger
但我们还得给玩家使用trigger修改的权限:
/scoreboard players enable @a shop
②创建货币计分板,这里使用的是击杀生物判据,可以根据需要自行修改:
/scoreboard objectives add coin totalKillCount
我们需要判断购买商品的玩家是否符合购买该物品的条件,则需要再创建一个计分板:
/scoreboard objectives add sp dummy
③核心部分,创建一个右键触发trigger的告示牌:
/setblock ~ ~1 ~ minecraft:wall_sign 3 replace {Text1:"{\"text\":\"\",\"extra\":[{\"text\":\"[商店]\",\"color\":\"green\",\"bold\":true}]}",Text2:"{\"text\":\"\",\"extra\":[{\"text\":\"神奇的木剑\",\"color\":\"red\",\"bold\":true}]}",Text3:"{\"text\":\"\",\"extra\":[{\"text\":\"价格:8硬币\",\"color\":\"aqua\",\"bold\":true}]}",Text4:"{\"text\":\"\",\"extra\":[{\"text\":\"<右键购买>\",\"color\":\"white\",\"bold\":true}],\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger shop set 1\"}}"}
④这时玩家右键牌子就会发现你的shop计分板分数变成了1,我们需要判断玩家是否符合购买的条件(即硬币>8且shop分数为1),若符合将该玩家sp计分板分数设置为1
/scoreboard players set @a[score_shop_min=1,score_shop=1,score_coin_min=8] sp 1
⑤这时我们需要将物品给予该玩家并给玩家一个title提示:
/give @a[score_sp_min=1,score_sp=1] minecraft:wooden_sword 1 0 {display:{Name:"神奇的木剑"},Unbreakable:1}
/title @a[score_sp_min=1,score_sp=1] title {"text":"","extra":[{"text":"购买成功","color":"green","bold":true}]}
/title @a[score_sp_min=1,score_sp=1] subtitle {"text":"","extra":[{"text":"神奇的木剑","color":"red","bold":true},{"text":" 已发送到背包","color":"yellow"}]}
⑥若玩家不符合购买条件(即硬币≤7且shop分数为1)则直接给一个title提示:
/title @a[score_shop_min=1,score_sp=1,score_coin=7] title {"text":"","extra":[{"text":"购买失败","color":"red","bold":true}]}
/title @a[score_shop_min=1,score_shop=1,score_coin=7] subtitle {"text":"","extra":[{"text":"请检查硬币是否充足","color":"gray","bold":true}]}
⑦当玩家购买成功时,我们需要清空该玩家的sp积分并且扣除硬币防止无限给物品:
/scoreboard players set @a[score_sp_min=1,score_sp=1] sp 0
/scoreboard players remove @a[score_sp_min=1,score_sp=1] coin 8
不管有没有购买成功,我们都需要清除玩家的shop积分防止出现各种奇怪的问题:
/scoreboard players set @a[score_shop_min=1,score_shop=1] shop 0
至此,一个木牌商店就做好了。
纯命令懒人教程(回复可见):
游客,如果您要查看本帖隐藏内容请回复

拓展:
本教程set而不是add计分板shop和sp分数的目的是判断购买的商品,将shop和sp都改为其他数字可以做多个木牌商店
因为trigger可以通过指令修改的关系,所以会出现随时随地输入/trigger shop set 1指令就能购买的bug,解决办法就是将shop分数自定义为一个麻烦的数字,比如2001,不易被发现即可


以上就是本次教程全部内容,祝大家游戏愉快









评分

参与人数 6 小麦 +3 金锭 +7 收起 理由
可爱小仙猪 + 2 感谢分享
WJK123456789 + 1 + 3 优秀作品
钻石键 + 1 感谢分享
1787620685 + 1 优秀作品
路人甲0813号 + 1 优秀作品
Dnir + 1 优秀作品

查看全部评分

4

主题

28

帖子

19

积分

Lv.1 新手木匠

UID
8472
小麦
8
金锭
51
下界之星
0
 楼主| 发表于 2018-8-22 13:02:46 来自手机 | 显示全部楼层
没人看吗

2

主题

61

帖子

22

积分

Lv.2 石器学徒

UID
43227
小麦
4
金锭
106
下界之星
0
发表于 2018-8-22 13:06:05 | 显示全部楼层
木牌的JSON可以讲解一下会很充实

4

主题

28

帖子

19

积分

Lv.1 新手木匠

UID
8472
小麦
8
金锭
51
下界之星
0
 楼主| 发表于 2018-8-22 15:55:31 | 显示全部楼层
luobojun 发表于 2018-8-22 13:06
木牌的JSON可以讲解一下会很充实

这种东西讲解起来才是真正麻烦的

点评

1.12版本的话可以直接在函数里添加颜色符号,游戏里获取  发表于 2018-8-29 12:12
其实我觉得用转义才真正简单,一个\u00a7搞定Color和奇奇怪怪的东西(除了Score不能搞定)  发表于 2018-8-24 22:12

2

主题

18

帖子

8

积分

Lv.1 新手木匠

UID
122806
小麦
1
金锭
42
下界之星
0
发表于 2018-8-22 19:37:25 | 显示全部楼层
来来来来看一看

14

主题

828

帖子

246

积分

Lv.5 农牧专家

UID
210415
小麦
23
金锭
789
下界之星
0
发表于 2018-8-22 20:30:04 | 显示全部楼层
好吧,顶一下

0

主题

54

帖子

14

积分

Lv.1 新手木匠

UID
862885
小麦
0
金锭
2
下界之星
0
发表于 2018-8-22 21:08:13 | 显示全部楼层
。。。

评分

参与人数 1 金锭 -3 收起 理由
WJK123456789 -3 内容空洞

查看全部评分

0

主题

75

帖子

21

积分

Lv.2 石器学徒

UID
243865
小麦
1
金锭
64
下界之星
0
发表于 2018-8-22 22:10:29 | 显示全部楼层
求隐藏内容

10

主题

86

帖子

38

积分

Lv.2 石器学徒

UID
27266
小麦
4
金锭
192
下界之星
0
发表于 2018-8-23 09:21:00 | 显示全部楼层
木牌的执行者是木牌,所以不需要用到trigger,建议在木牌里写3条命令,第一条给点击者(@p就行)添加一个tag,第二条第三条用blockdata来开关下面的命令方块,命令方块最后记得去掉tag,网易的服务器能少一个循环就少一个,对不

点评

木牌可以用summon来执行一大堆命令  发表于 2018-8-24 22:14
一个牌子有四行test,每行可以加一个clickEvent,楼上的先去学明白了,别来误导新人  发表于 2018-8-23 18:13
一个木牌只能弄一个命令  发表于 2018-8-23 11:47
一个小小的陶森特

0

主题

5

帖子

2

积分

Lv.1 新手木匠

UID
5676868
小麦
1
金锭
13
下界之星
0
发表于 2018-8-23 10:05:13 | 显示全部楼层
为了看懒人教程而回复!!!

1

主题

32

帖子

9

积分

Lv.1 新手木匠

UID
4969772
小麦
0
金锭
7
下界之星
0
发表于 2018-8-23 10:23:05 | 显示全部楼层
66

0

主题

21

帖子

5

积分

Lv.1 新手木匠

UID
4726873
小麦
0
金锭
16
下界之星
0
发表于 2018-8-23 12:04:24 | 显示全部楼层
what

0

主题

14

帖子

4

积分

Lv.1 新手木匠

UID
5237348
小麦
0
金锭
81
下界之星
0
发表于 2018-8-23 14:59:06 来自手机 | 显示全部楼层
66666666666666666666666666666

9

主题

550

帖子

151

积分

Lv.4 怪物猎人

UID
5132350
小麦
4
金锭
498
下界之星
0
发表于 2018-8-23 15:08:09 | 显示全部楼层
虽然我不用,但是看着不错诶

4

主题

27

帖子

11

积分

Lv.1 新手木匠

UID
5258037
小麦
0
金锭
46
下界之星
0
发表于 2018-8-23 15:39:17 来自手机 | 显示全部楼层
很不错谢谢楼楼
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部