在传奇私人服务器中,实物回收脚本通常会搭配对话框使用,方便玩家选择要回收的装备并查看回收奖励。而有时玩家或管理员需要关闭这个对话框,比如简化操作流程或调整界面显示。下面就来说说如何编写带对话框的实物回收脚本,以及如何关闭回收装备的对话框。
先看如何编写带对话框的实物回收脚本。这类脚本的核心是通过 NPC 对话界面列出可回收的装备,玩家点击对应选项后,系统检测是否持有该装备,再执行回收并发放奖励。
第一步,确定 NPC 和对话框样式。选择一个合适的 NPC(比如 “装备回收员”),放在土城等玩家集中的地图。对话框通常包含装备名称、回收条件和奖励说明,基础结构如下:
[@Main]
欢迎来到装备回收处!以下装备可兑换奖励:
<屠龙刀(回收得 1000 元宝)/@Recycle1>
<裁决之杖(回收得 500 元宝)/@Recycle2>
<退出 /@Exit>
这段代码会让 NPC 显示一个对话列表,玩家点击 “屠龙刀” 选项后,会触发 [@Recycle1] 标签的脚本。
第二步,编写具体的回收逻辑。以回收屠龙刀为例,[@Recycle1] 的脚本需要检测玩家是否持有屠龙刀,若有则删除装备并发放元宝,同时提示回收成功:
[@Recycle1]
#IF
CheckItem 屠龙刀 1
#ACT
TakeItem 屠龙刀 1
GiveYuanBao 1000
SendMsg 6 成功回收屠龙刀,获得 1000 元宝!
Goto @Main
#ELSE
SendMsg 6 你没有屠龙刀可回收哦!
Goto @Main
“CheckItem 屠龙刀 1” 用于检测玩家是否有 1 把屠龙刀,“TakeItem” 删除装备,“GiveYuanBao” 发放奖励,“Goto @Main” 让玩家操作后返回主对话框,方便继续回收其他装备。
接下来说说如何关闭回收装备的对话框。关闭对话框的需求通常有两种:一是让回收操作无需对话框,直接通过命令触发;二是保留功能但隐藏对话框界面。
第一种情况,取消对话框,改用命令回收。可以在玩家输入特定命令(比如 “@回收 屠龙刀”)时执行回收逻辑,无需 NPC 对话。脚本编写如下:
[@CommandRecycle]
#ACT
; 获取玩家输入的装备名称,比如 “@回收 屠龙刀” 中的 “屠龙刀”
GetParam 0 = 装备名称
; 检测并回收对应装备
If 装备名称 = 屠龙刀
CheckItem 屠龙刀 1
TakeItem 屠龙刀 1
GiveYuanBao 1000
SendMsg 6 回收成功!
ElseIf 装备名称 = 裁决之杖
...(其他装备的回收逻辑)
EndIf
将这段脚本添加到命令处理文件(如 Cmd.txt)中,玩家输入命令即可直接回收,无需打开对话框。
第二种情况,保留功能但隐藏对话框。有些引擎支持 “隐藏对话框” 命令,比如在主对话框脚本中添加 “HideDialog”:
[@Main]
#ACT
HideDialog
SendMsg 6 装备回收功能已开启,输入 “@回收 装备名” 即可操作!
这样玩家点击 NPC 后,不会显示对话列表,而是直接收到提示信息,通过命令进行回收。
另外,如果是想临时关闭对话框(比如维护期间),可以在主对话框脚本中添加条件判断,让特定时间段不显示对话框:
[@Main]
#IF
CheckTime 23:00 00:00
#ACT
SendMsg 6 当前时段不支持装备回收,请稍后再来。
break
#ELSE
; 显示正常的回收对话框
...(原有对话列表代码)
“CheckTime 23:00 00:00” 表示每天 23:00 到 00:00 不显示对话框,直接提示无法回收。
需要注意的是,不同引擎对 “关闭对话框” 的支持不同。如果 “HideDialog” 命令无效,可以尝试删除对话框相关的代码(如 [@Main] 中的对话列表),仅保留后台回收逻辑,玩家点击 NPC 时直接提示操作方式,间接实现 “关闭” 效果。
测试关闭效果时,可登录游戏点击 NPC,观察是否还会弹出对话列表,或输入回收命令是否能正常执行。若发现回收功能失效,检查是否误删了核心回收逻辑(如 “TakeItem”“GiveYuanBao” 等命令),确保仅移除对话框相关代码。
总的来说,编写带对话框的实物回收脚本,需通过 NPC 对话列表关联回收逻辑;关闭对话框则可通过命令触发回收或隐藏界面实现,具体根据需求选择合适的方式调整脚本即可。

