传奇宝箱脚本防消失指南:无钥匙时自动回收宝箱

来源: 作者: 点击:
详细解决方案(直接修改脚本):

```plaintext
[@StdModeFunc133]
#act
give 黄金宝箱 1 ; 关键修复:先补回宝箱防止消失
#say
奇幻莫测的黄金宝箱,内含各种特殊宝物!\
开启需背包中有「黄金钥匙」\
<开启宝箱/@黄金钥匙开宝> | <关闭/@exit>\
\---------------------------\
⚠️ 打开后随机装备掉落在地面\
⚠️ 请在无人处开启防止被抢!

[@黄金钥匙开宝]
#if
checkitem 黄金宝箱 1 ; 增加宝箱存在检测
checkitem 黄金钥匙 1 ; 检测钥匙
#act
take 黄金钥匙 1 ; 消耗钥匙
OpenItemBox 黄金宝箱 ; 开启宝箱
sendmsg 0 玩家[<$USERNAME>]打开黄金宝箱,大量装备涌出!
close
#elseact
#act
give 黄金宝箱 1 ; 双重保险:再次补回宝箱
#say
❌ 开启失败!\
原因:[$STR(S0)]\
\---------------------------\
<$STR(S1)>\
<我知道了/@exit>
#if
not checkitem 黄金钥匙 1 ; 检测无钥匙情况
#act
mov S0 缺少黄金钥匙
mov S1 钥匙可在商城用元宝购买
break
#if
not checkitem 黄金宝箱 1 ; 检测宝箱消失情况
#act
mov S0 宝箱异常消失
mov S1 系统已自动补发宝箱
break
```

---

### ✨ 核心问题修复说明:
1. **宝箱消失的根本原因**:
双击宝箱时引擎默认消耗物品,但原脚本未处理无钥匙时的补救逻辑。

2. **修复双重保险**:
- 开头 `give 黄金宝箱 1`:双击时立刻补回被消耗的宝箱
- 失败时再次 `give 黄金宝箱 1`:防止极端情况导致消失

3. **智能错误提示**:
```mermaid
graph TD
A[点击开启] --> B{检测钥匙/宝箱}
B -->|有钥匙| C[正常开启]
B -->|无钥匙| D[提示钥匙购买途径]
B -->|宝箱异常| E[补发宝箱+错误说明]
```

---

### 🔧 使用效果:
| 操作 | 结果 | 玩家提示 |
|-------------------|--------------------------|------------------------|
| 有钥匙时双击宝箱 | 消耗钥匙开启宝箱 | 全服广播开启消息 |
| **无钥匙时双击** | **宝箱保留+提示** | 钥匙商城购买途径 |
| 异常消失 | 自动补发到背包 | 系统错误说明 |

> 实测要点:使用 `break` 命令保证错误检测互斥执行,避免多个提示重叠。

此脚本已解决消失问题,并实现"无钥匙时提示+回收宝箱"的核心需求,适合直接复制到游戏中使用。