核心命令与基础脚本框架
一键回收功能依赖服务端脚本命令 TakeBagItem,该命令支持批量回收指定物品并发放货币或经验。基础脚本需在NPC对话中配置,玩家点击后触发。
基础回收脚本示例(GOM/GEE引擎通用):
[@一键回收]
#ACT
MOV N2 0
TakeBagItem 木剑|布衣(男)|布衣(女)|青铜剑|轻型盔甲(男)|轻型盔甲(女) 46 0 0 0 10000 N2 0
#IF
LARGE N2 0
#ACT
MOV N1 <$STR(N2)>
MUL N1 10000
GAMEGOLD + <$STR(N1)>
SENDMSG 6 成功回收 <$STR(N2)> 件装备,获得 <$STR(N1)> 元宝
BREAK
• 参数说明:TakeBagItem 后的参数依次为:物品名称(支持|分隔)、收取数量(46代表全部)、元宝值、金币值、泡点值、经验值、数量变量、聚灵珠经验。
- 逻辑解析:脚本先初始化变量N2为0,执行回收命令后,实际回收数量存入N2。若N2大于0,则计算总收益(N1 = N2 × 单件价值)并发放元宝,最后发送提示消息。
进阶配置:分类回收与列表文件
为避免误删高级装备,通常采用分类回收或读取列表文件的方式。
1. 分类回收(沃玛/祖玛/赤月系列)
在NPC脚本中分标签设置,玩家可自主选择回收档次:
[@main]
<一键回收沃玛系列/@沃玛回收> <一键回收祖玛系列/@祖玛回收>
[@沃玛回收]
#ACT
MOV N2 0
TakeBagItem 沃玛号角|沃玛战刀|沃玛魔杖|沃玛道戒 46 0 0 0 5000 N2 0
...(后续发放奖励逻辑)
[@祖玛回收]
#ACT
MOV N2 0
TakeBagItem 祖玛雕像|祖玛卫士|祖玛裁决|祖玛骨玉 46 0 0 0 15000 N2 0
...(后续发放奖励逻辑)
2. 列表文件回收(推荐)
将垃圾装备名称写入文本文件,脚本读取文件进行回收,便于批量管理。
- 创建列表文件:在 QuestDiary 目录下新建 垃圾装备列表.txt,每行一个装备名(如:青铜头盔、魔法头盔、金项链)。
- 脚本调用(V8等新引擎支持):
[@垃圾回收]
#ACT
mov n0 0
mov n1 0
mov s1
#IF
CheckBagItems ..\QuestDiary\垃圾装备列表.txt s1 n1
#ACT
getdbitemfieldvalue <$STR(s1)> price
formulation <$STR(n0)> * 4 / 10 n2
takebagitem <$STR(s1)> <$STR(n1)> 0 <$STR(n2)> 0 0 n0 0
sendmsg 6 回收 <$STR(n1)> 个 <$STR(s1)>,单价 <$STR(n2)>
此方法通过 CheckBagItems 检查背包匹配项,并支持按数据库价格(price字段)的百分比(如40%)进行回收。
自动回收与定时清理配置
对于挂机版本,可配置定时器实现自动清包。
自动回收脚本示例:
[@开启自动回收]
#ACT
MOV N$自动回收 1
SETONTIMER 18 18 ;开启18号定时器,每18秒执行一次
MESSAGEBOX 自动回收已开启
[@OnTimer18]
#IF
EQUAL N$自动回收 1
#ACT
;此处插入上述TakeBagItem回收命令
QueryBag ;可选:整理背包
SENDMSG 6 自动回收整理完成
BREAK
[@关闭自动回收]
#ACT
MOV N$自动回收 0
SETOFFTIMER 18
MESSAGEBOX 自动回收已关闭
常见问题与避坑指南
1. 命令不生效:检查引擎是否支持 TakeBagItem 命令(GOM/GEE/V8均支持),确认物品名称与数据库完全一致,包括括号是否为全角。
2. 货币发放错误:确认脚本中的货币变量,GAMEGOLD 通常为元宝,GAMEGOLD? 可能为另一种货币;部分版本需使用 GAMEGIRD(灵符)或 GAMEDIAMOND(金刚石)。
3. 误删装备:务必在回收列表中排除顶级装备,或在回收前增加二次确认对话框(使用 MessageBox 命令)。
4. 数量统计不准:确保使用变量(如N2)接收回收数量,并在发放奖励前判断 LARGE N2 0,避免无物品时误发空奖励。
脚本部署流程
1. 定位文件:进入服务端 Mir200\Envir\Market_Def 目录,找到对应NPC脚本(如:盟重省-3.txt)。
2. 插入代码:在NPC的 [@main] 菜单中添加 <一键回收/@回收> 选项,并在文件末尾添加上述回收脚本段落。
3. 重载脚本:在游戏内使用 @reloadnpc(GM命令)或重启服务端使配置生效。
4. 测试:背包放入测试装备,点击NPC验证回收数量与货币到账情况。

