伪多玩我的世界盒...吧 关注:10贴子:122
  • 3回复贴,共1

【水贴】简易记分板商店

只看楼主收藏回复

为了让贴吧更充实,我决定来水贴(bushi)
注:贴中的@,都有一个逗号,逗号是应该删去的,但是我害怕@,到人
.
弄一个记分板商店,首先要做的就是创建一个记分板了。
创建记分板格式:
scoreboard objectives add 记分板名字 dummy
.
scoreboard objectives add 金币 dummy(聊天框输入)
我这里创建的记分板名字就叫'金币'了
然后先是出售商店(模型图1)
首先我们要检测玩家的'金币'是否足够购买这样物品
execute ap ~~~ scoreboard players add @,s[scores={金币=50..}] 金币 -50(图2)
-------------
execute @,p ~~~是选择了最近的玩家
.
scoreboard players add @,s[scores={金币=50..}] 金币 -50是让被选择的玩家增加-50的金币,就是扣除50的金币了(50可以改为其他的数值)
.
@,s[scores={金币=50..}]是选择器的参数,scores就是记分板了,里面的'金币'就是记分板的名字,'50..'意思是大于或等于50
-------------
那么这一条指令的意思就是:检测最近玩家的'金币'是否大于或等于50,若满足了条件就扣除50金币,不满足就无事发生了
.
那么第二条指令就是给予玩家物品了
首先命令方块的模式改为链模式,链模式就是它最前面的命令方块触发后就会触发
然后改为有条件,有条件就是只有它上一个命令方块执行'成功'了才会触发,如果没有执行成功就不会触发了
然后就是保持开启,保持开启就是这个命令方块是一起开启着的状态
.
例:give @,p apple(图3)
因为这个是有条件命令方块,所以上一个命令方块执行成功了才会触发给予最近玩家一个苹果(apple可以改为其他的物品)
我们的这个命令方块的上一个命令方块的指令是检测玩家金币然后扣金币,所以当检测玩家金币足够并扣除金币后就会给予一个苹果了
.
这里用@,p的话有些不稳定,可能会给予错玩家,因为这是选择最近玩家,如果把这两个命令方块封闭得好的话就可以不用看接下来的了
.
为了防止判断错误(模型图4),我们的第一个命令方块的指令改为(图5)
.
tag @,p add 检
给最近玩家一个标签'检'
.
第二个命令方块的指令为(链,无条件,保持开启,图6)
scoreboard players add @,p[tag=检,scores={金币=50..}] 金币 -50
检测最近有标签'检'的玩家且金币大于或等于50的话就扣除50金币
.
第三个命令方块的指令为(链,有条件,保持开启,图7)
give @,p[tag=检] apple
给最近有标签'检'的玩家一个苹果,这里为有条件,所以上一个命令方块执行成功了才会执行
.
第四个命令方块的指令为(链,无条件,保持开启,图8)
tag @,p[tag=检] remove 检
清除最近有标签'检'的玩家的标签'检',这样'检'这个标签就是临时确认购买物品的玩家了
.
这样一种精简的出售商店和一种具有防误判的出售商店就完成了









来自Android客户端1楼2021-08-25 02:19回复
    图片不够用啦,接下来是粗糙的回收商店
    .
    第一个
    clear @,p diamond -1 1
    清除最近玩家的一颗钻石,-1的位置是特殊值,-1代表所有的特殊值
    .
    第二个命令方块就是给予分数了(链,有条件,保持开启)
    scoreboard players add @,p 金币 20000
    这是有条件链命令方块,所以当清除一颗钻石成功后就会给予最近玩家20000的金币
    .
    之所以说这是粗糙的,是因为一种的回收商店一次只能回收一个物品,如果多了会导致bug




    来自Android客户端2楼2021-08-25 02:21
    回复
      支持


      IP属地:山东来自Android客户端3楼2021-08-25 11:36
      回复
        +3
        告辞


        IP属地:山东来自Android客户端4楼2021-08-25 16:22
        回复