白日门书店作为传奇外传经典功能NPC,主要用于技能书售卖、技能遗忘、职业技能学习、书页兑换,脚本适配MAX引擎,代码为明文格式,可直接修改文本内容、兑换比例与道具条件,复制保存后即可加载使用。书店NPC功能分为商店买卖、技能学习、书页兑换技能书、遗忘已学技能四个模块,可按需删减功能分支,脚本语法遵循引擎标准指令,修改后重载NPC就能生效。
[@main]
#ACT
MESSAGEBOX \
【白日门书店】\
欢迎来到白日门书店,这里收录玛法各类职业技能秘籍。\
<购买技能书/@BuySkillBook>\
<书页兑换秘籍/@ExchangeSkill>\
<遗忘已有技能/@DelSkill>\
<离开/@Close>
[@BuySkillBook]
#ACT
OPENSHOP 白日门书店
#ENDACT
[@ExchangeSkill]
#IF
HASITEM 书页 5
#ACT
MESSAGEBOX 你拥有足够书页,可以兑换基础技能书。\
<战士技能书/@ExchangeZS>\
<法师技能书/@ExchangeFS>\
<道士技能书/@ExchangeDS>\
<返回/@main>
#ELSEACT
MESSAGEBOX 书页数量不足,兑换基础技能书需要5张书页。
RETURN
#ENDIF
[@ExchangeZS]
#IF
HASITEM 书页 5
#ACT
TAKE 书页 5
GIVE 基本剑术 1
SENDMSG 5 消耗5张书页,成功兑换【基本剑术】。
#ELSEACT
MESSAGEBOX 书页不足,兑换失败。
RETURN
#ENDIF
[@ExchangeFS]
#IF
HASITEM 书页 5
#ACT
TAKE 书页 5
GIVE 火球术 1
SENDMSG 5 消耗5张书页,成功兑换【火球术】。
#ELSEACT
MESSAGEBOX 书页不足,兑换失败。
RETURN
#ENDIF
[@ExchangeDS]
#IF
HASITEM 书页 5
#ACT
TAKE 书页 5
GIVE 治愈术 1
SENDMSG 5 消耗5张书页,成功兑换【治愈术】。
#ELSEACT
MESSAGEBOX 书页不足,兑换失败。
RETURN
#ENDIF
[@DelSkill]
MESSAGEBOX 遗忘技能会清除选中技能,慎重操作。\
<战士遗忘技能/@DelZSSkill>\
<法师遗忘技能/@DelFSSkill>\
<道士遗忘技能/@DelDSSkill>\
<返回/@main>
[@DelZSSkill]
#IF
ISADJUSTCLASS 战士
#ACT
DELSKILL 基本剑术
SENDMSG 5 已遗忘基本剑术。
#ELSEACT
MESSAGEBOX 你不是战士,无法执行该操作。
RETURN
#ENDIF
[@DelFSSkill]
#IF
ISADJUSTCLASS 法师
#ACT
DELSKILL 火球术
SENDMSG 5 已遗忘火球术。
#ELSEACT
MESSAGEBOX 你不是法师,无法执行该操作。
RETURN
#ENDIF
[@DelDSSkill]
#IF
ISADJUSTCLASS 道士
#ACT
DELSKILL 治愈术
SENDMSG 5 已遗忘治愈术。
#ELSEACT
MESSAGEBOX 你不是道士,无法执行该操作。
RETURN
#ENDIF
[@Close]
#ACT
CLOSE
#ENDACT
脚本部署操作,将全部脚本内容复制,新建文本文档,粘贴代码,保存文件编码选择ANSI,文件命名为白日门书店.txt,放置在Envir\Market_Def目录。打开NPC注册列表,新增NPC记录,填写白日门地图编号、NPC坐标、脚本文件名,保存注册文件。在引擎控制台执行重载NPC指令,无需重启服务端,NPC功能即可加载。商店售卖功能需要提前在Envir\Shop目录新建白日门书店商店配置,写入待售卖技能书名称、售价,商店内技能书可以自由增减,对应传奇外传原版白日门书店出售的各类低级、中级技能秘籍。
脚本内参数可以自由调整,书页兑换数量可修改HASITEM与TAKE后的数值,调高兑换书页消耗,适配版本经济节奏。兑换产出技能书,修改GIVE后面的技能书名称,名称必须和物品数据库内技能书原名完全一致,文字错误会导致兑换之后无法获得道具。遗忘技能模块,DELSKILL后面填写对应技能数据库名称,可增加多条指令一次性清除多个技能,也可以增加等级判定,设置达到指定等级才允许遗忘技能。
功能逻辑校验,玩家点击购买技能书,自动打开商店面板,浏览并购买技能秘籍。书页兑换分支会先检测背包书页,书页数量达标才会弹出三职业兑换选项,扣除书页之后发放对应技能书,背包空间不足时,GIVE指令发放道具失败,不会扣除书页。遗忘技能功能增加职业判定,战士只能清除战士技能,法师、道士同理,避免跨职业误删技能。
调试测试需要覆盖全部交互分支,点击NPC打开主对话界面,验证菜单选项跳转正常。书页不足时点击兑换,确认不会扣除道具,提示文字正常弹出。书页充足兑换,核对书页扣除,背包生成对应技能书。测试遗忘技能,对应职业执行命令,确认技能列表移除目标技能,非对应职业点击,提示无权限操作。打开商店,检查商店内技能书展示、购买、回收功能正常。
常见故障排查,点击NPC无弹窗,检查脚本存放目录、NPC注册路径、脚本文件编码,UTF编码会出现中文乱码,菜单点击失效。书页兑换扣掉书页却没有技能书,核对技能书物品数据库,确认物品名称拼写无误,检查背包剩余格子,空间不足无法生成道具。遗忘技能指令无效,核对引擎技能指令写法,确认技能名称和技能数据库名称匹配。商店打不开,检查Shop目录下商店文件是否存在,商店文件内格式无空行、非法字符。
扩展修改方向,可以增加高级技能书页兑换分支,设置更高书页消耗兑换烈火、冰咆哮、召唤神兽这类高级秘籍。增加技能学习判定,玩家身上已有该技能,兑换时给出提示,防止重复兑换。增加金币兑换书页功能,消耗金币换取书页,丰富书店玩法。所有修改完成后,多次测试对话跳转、道具扣取、道具发放、技能删除全流程,确认不会出现道具扣除不发放、菜单卡死、技能误删除等异常情况。

