会员登录 立即注册

搜索

墨山游侠之ATM机

[复制链接]
崎山小鹿 发表于 2025-2-24 14:13:10 | 显示全部楼层 |阅读模式
崎山小鹿
2025-2-24 14:13:10 700 4 看全部
微信截图_20250224212711.png ###

在 Minecraft 基岩版 里,你可以使用 命令方块 来制作一个 ATM 机,实现绿宝石存取功能。以下是完整的实现步骤:

实现思路
存款:玩家将绿宝石存入 ATM,系统会记录数量,并从玩家物品栏移除绿宝石。
取款:玩家可以取出之前存入的绿宝石,系统会返还等量的绿宝石。
显示存款余额:ATM 会显示玩家的绿宝石存款余额。
所需物品
命令方块(/give @p command_block)
按钮或拉杆(用于触发存款/取款)
命令执行者(@p 或 @a)
计分板(用于存储玩家余额)
第一步:创建计分板
在聊天框输入以下命令,创建一个计分板来存储绿宝石余额:


/scoreboard objectives add money dummy 绿宝石存款


### **🌟 解决方案逻辑**
1. **先用 `/clear` 仅检测是否有 64 颗绿宝石**(不移除)。
2. **如果检测通过**,才真正移除绿宝石并增加存款。
3. **如果检测失败**,则不会移除绿宝石,也不会增加存款,直接显示存款失败消息。

---

## **🛠️ 具体命令**
### **🔹 1️⃣ 先检测玩家是否有 ≥64 颗绿宝石(脉冲命令方块,需要红石)**
```mcfunction
/execute if entity @p[hasitem={item=minecraft:emerald,quantity=64}] run tag @p add can_deposit
```
- **作用**:
  - 检查玩家**是否至少有 64 颗绿宝石**。
  - 如果玩家**有** 64 颗绿宝石,则给玩家**添加 `can_deposit` 标签**。
  - **如果没有绿宝石,不会添加标签**。

---

### **🔹 2️⃣ 真的移除 64 颗绿宝石(链命令方块,保持开启)**
```mcfunction
/execute if entity @p[tag=can_deposit] run clear @p minecraft:emerald 0 64
```
- **作用**:
  - **只有当 `can_deposit` 标签存在**时,才会执行 `/clear` 移除绿宝石。

---

### **🔹 3️⃣ 增加存款余额(链命令方块,保持开启)**
```mcfunction
/execute if entity @p[tag=can_deposit] run scoreboard players add @p money 64
```
- **作用**:
  - **仅在绿宝石被成功清除后** 才会增加 `money` 余额。

---

### **🔹 4️⃣ 存款成功提示(链命令方块,保持开启)**
```mcfunction
/execute if entity @p[tag=can_deposit] run tellraw @p {"rawtext":[{"text":"✅ 存款成功!你的余额已增加 64 颗绿宝石!"}]}
```

---

### **🔹 5️⃣ 存款失败提示(链命令方块,保持开启)**
```mcfunction
/execute unless entity @p[tag=can_deposit] run tellraw @p {"rawtext":[{"text":"❌ 存款失败!你至少需要 64 颗绿宝石!"}]}
```
- **作用**:
  - **只有当玩家没有 `can_deposit` 标签**时,才会触发失败提示。

---

### **🔹 6️⃣ 清除 `can_deposit` 标签(链命令方块,保持开启)**
```mcfunction
/tag @p remove can_deposit
```
- **作用**:
  - 确保下次存款时,不会误触 `can_deposit` 标签,防止错误。

---

## **📌 最终效果**
✅ **玩家有 64 颗绿宝石** → **存款成功,扣除 64 颗绿宝石,余额增加 64**  
✅ **玩家少于 64 颗绿宝石** → **不会移除绿宝石,不会增加余额,仅显示失败提示**  
✅ **不会同时出现成功和失败消息** 🚀  
✅ **`/clear` 不会导致余额错误增加** 🎉  
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2025-2-24 14:13:25 | 显示全部楼层
崎山小鹿
2025-2-24 14:13:25 看全部
### **🛠️ 取款系统命令方块**
#### **🔹 1️⃣ 先检测余额(脉冲命令方块,需红石)**
```mcfunction
/execute if score @p money matches 64.. run tag @p[r=2] add can_withdraw
```
- **作用**:  
  - 如果 `money ≥ 64`,给玩家添加 `can_withdraw` 标签。
  - 这样,我们可以在后续命令中 **仅对有该标签的玩家执行取款操作**。

---

#### **🔹 2️⃣ 执行扣款(链命令方块,保持开启)**
```mcfunction
/execute if entity @p[tag=can_withdraw] run scoreboard players remove @p[tag=can_withdraw] money 64
```
- **作用**:
  - **仅** 对 `can_withdraw` 组的玩家扣 64 余额。
  - **如果余额 < 64**,这个命令不会执行。

---

#### **🔹 3️⃣ 给予绿宝石(链命令方块,保持开启)**
```mcfunction
/execute if entity @p[tag=can_withdraw] run give @p[tag=can_withdraw] minecraft:emerald 64
```
- **作用**:
  - **仅** 对 `can_withdraw` 组的玩家给予 64 颗绿宝石。

---

#### **🔹 4️⃣ 成功取款提示(链命令方块,保持开启)**
```mcfunction
/execute if entity @p[tag=can_withdraw] run tellraw @p[tag=can_withdraw] {"rawtext":[{"text":"✅ 取款成功!当前余额:"},{"score":{"name":"@p","objective":"money"}}]}
```

---

#### **🔹 5️⃣ 取款失败提示(链命令方块,保持开启)**
```mcfunction
/execute unless entity @p[tag=can_withdraw] run tellraw @p {"rawtext":[{"text":"❌ 取款失败!你的存款不足 64 颗绿宝石!"}]}
```
- **作用**:
  - 只有**没有** `can_withdraw` 标签的玩家(余额 < 64)才会看到失败提示。
  - 这样就不会让 **成功和失败提示同时出现**。

---

#### **🔹 6️⃣ 清除 `can_withdraw` 标签(链命令方块,保持开启)**
```mcfunction
/tag @p remove can_withdraw
```
- **作用**:
  - 确保下次运行时不会残留 `can_withdraw` 标签,防止错误。

---

### **📌 最终效果**
✅ **余额 ≥ 64** → **正常取款、扣 64 余额、给 64 颗绿宝石、显示成功提示**  
✅ **余额 < 64** → **不会扣钱、不发绿宝石、仅显示失败提示**  
✅ **不会同时出现成功和失败消息** 🎯  

---

### **⚡ 为什么这样能解决问题?**
- **通过 `tag` 先判断玩家是否能取款**,再执行后续操作,避免取款成功后仍然触发失败提示。  
- **`unless entity @p[tag=can_withdraw]` 确保仅当余额不足时才显示失败提示**。  
- **最后清除 `can_withdraw` 标签,防止影响下一次操作**。  

这样,你的 ATM **绝对不会再同时出现成功和失败消息**!🎉
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2025-2-24 15:08:40 | 显示全部楼层
崎山小鹿
2025-2-24 15:08:40 看全部
查询余额
/execute as @p run tellraw @p {"rawtext":[{"text":"💰 你的余额是:"},{"score":{"name":"@p","objective":"money"}}]}

使用 /title 显示余额,岩版 不支持 JSON 变量,所以要 用 /execute 搭配 scoreboard 来拼接文本,但是依然无法输出数字。

天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2025-2-24 16:04:56 | 显示全部楼层
崎山小鹿
2025-2-24 16:04:56 看全部
/execute if entity @p[hasitem={item=minecraft:emerald,quantity=64}] run tag @p add can_deposit
这段代码被网易屏蔽,只能换个方法,用两个命令方块

/clear @p minecraft:emerald 0 64 0
这个代码也不能执行,
提示语法错误,意外的0

/clear @p minecraft:emerald 0 64
这条命令如果玩家的绿宝石不足64个,依然会获得执行成功提示
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2025-2-24 18:33:16 | 显示全部楼层
崎山小鹿
2025-2-24 18:33:16 看全部
利用循环扣除,存款增加的方法实现了存绿宝石

移除一个绿宝石,循环,红石激活
clear @p[r=1] minecraft:emerald 0 1

如果成功则增加标签
tag @p[r=1] add can_deposit

账户增加
execute if entity @p[tag=can_deposit,r=1] run scoreboard players add @p[tag=can_deposit,r=1] money 1

提示
execute if entity @p[tag=can_deposit] run tellraw @p {"rawtext":[{"text":"✅ 存款进行中... 您的余额:"},{"score":{"name":"@p[r=1]","objective":"money"}}]}

存款完成:
execute unless entity @p[tag=can_deposit] run tellraw @p {"rawtext":[{"text":"✅ 存款完成!您的余额:"},{"score":{"name":"@p[r=1]","objective":"money"}}]}

重置
tag @p[r=7] remove can_deposit

距离要调整一下
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

管理员给TA私信
以墨运商,以商助墨。

查看:700 | 回复:4

  • 墨山游侠的服装(未完)

    通常系统的皮匠的皮革盔甲样式是有限的 如何定制自己的服装图案呢? 我们看看deepse

    阅读:202|2025-03-07
  • 墨山游侠生存2区

    生存1区已经越来越挤了,打算开辟第二个生存区。依然是200*200格范围。 一、主传送

    阅读:590|2025-02-26
  • 墨山游侠之ATM机

    ### 在 Minecraft 基岩版 里,你可以使用 命令方块 来制作一个 ATM 机,实现绿宝石

    阅读:657|2025-02-24
  • 我的世界颜色代码符号怎么打

    1、例如我们可以进入告示牌,输入§4红色,然后字体颜色就会变成红色了;2、其余字体

    阅读:652|2025-02-23
  • 墨山游侠职务认领

    我们的巡逻队队长 以上职位职务薪贴每小时9个绿宝石

    阅读:581|2025-02-21
  • 墨山游侠给玩家在线奖励和职务薪贴

    用命令方块实现,每隔20分钟给所有玩家一个绿宝石 在 **基岩版(Minecraft Bedrock

    阅读:657|2025-02-20
  • 墨山游侠之生存区的农场

    有玩家一直说饿,现在有农场了就能提供源源不断的面包,希望能供养整个城市! 招聘

    阅读:945|2025-02-11
  • 墨山游侠之熊孩子侦测器

    熊孩子在创造区拿了岩浆就会被困在传送点,房主会收到警报立刻远程处理。 第一个命

    阅读:1014|2025-02-10
  • 墨山游侠之熊孩子岛

    给了玩家一个创造区,同时也给系统带来了沉重的压力 为了让熊孩子在墨山游侠中获得

    阅读:1024|2025-02-09
  • 我的世界命令方块执行多条指令

    在《我的世界》(Minecraft)的 命令方块 里,不能直接换行执行多条指令,但有几种方

    阅读:1303|2025-02-04
金双石科技,软件开发20年,技术行业领先,您的满意,就是我们的目标,认真负责,开拓进取,让成品物超所值
关于我们
公司简介
发展历程
联系我们
本站站务
友情链接
新手指南
内容审核
商家合作
广告合作
商家入驻
新闻合作

手机APP

官方微博

官方微信

联系电话:15876572365 地址:深圳市宝安区西乡街道宝民二路宝民花园 ( 粤ICP备2021100124号-1 ) 邮箱:qishanxiaolu@qq.com
QQ|Powered by Discuz! X3.5 © 2001-2024 Discuz! Team.
快速回复 返回顶部 返回列表