一、MerChant.txt 注册NPC坐标
在服务端 Mir200\Envir\MerChant.txt 文件末尾新增一行,定义NPC在地图中的位置。
元宝充值 3 330 320 元宝充值使者 0 8 0 0 0 0 0
参数说明:元宝充值为脚本文件名;3为地图编号(盟重);330 320为坐标;元宝充值使者为显示名称;8为外观代码。
二、Market_Def 编写主交互脚本
在 Mir200\Envir\Market_Def 目录创建 元宝充值-3.txt(注意:文件名必须与MerChant.txt中的定义一致,且以“-地图编号”结尾)。
写入以下基础脚本框架:
[@main]
<$USERNAME> 你好!当前持有元宝:<$GAMEGOLD>\
请选择充值档位:\
<1000元宝/@充值1000> <5000元宝/@充值5000>\
<10000元宝/@充值10000> <关闭/@exit>
[@充值1000]
#IF
;此处可添加条件,如CHECKGOLD检测金币是否足够
#ACT
GAMEGOLD + 1000
;GAMEGOLD是元宝变量,+1000表示增加1000元宝
SENDMSG 6 充值成功!获得1000元宝。
#ELSESAY
条件不满足或金币不足。
;[@充值5000] 和 [@充值10000] 同理,修改GAMEGOLD + 后的数值即可
此脚本实现了点击按钮直接增加元宝,是最基础的测试逻辑。
三、进阶:金币兑换元宝逻辑
若需实现“金币购买元宝”,需在 [@充值1000] 标签内修改逻辑:
[@充值1000]
#IF
CHECKGOLD 500000
;检查背包金币是否≥50万
#ACT
TAKE 金币 500000
;扣除50万金币
GAMEGOLD + 1000
;增加1000元宝
SENDMSG 1 玩家【%s】通过金币兑换了1000元宝!
#ELSESAY
金币不足50万,无法兑换。
此逻辑实现了货币兑换,CHECKGOLD和TAKE命令必须配对使用。
四、外部调用与卡券系统
对于复杂的在线充值(如读取第三方平台生成的TXT记录),需使用 #CALL 引用外部脚本。
[@领取元宝]
#CALL [\充值系统\在线充值.txt] @领取
外部脚本 QuestDiary\充值系统\在线充值.txt 通常包含 CheckAccountList 命令,用于检测账号是否在充值白名单中,检测通过后执行 GAMEGOLD + 操作。
五、生效与调试命令
脚本修改后,必须在M2Server中重载才能生效:
1. 打开M2 → 管理 → 重新加载所有NPC。
2. 若NPC显示但点击无反应,检查脚本语法(如缺少 #IF 或括号不匹配)。
3. 若NPC不显示,检查MerChant.txt中的地图编号和坐标是否有效。
注意:GAMEGOLD 是通用元宝变量,若版本使用自定义变量(如 GAMEDIAMOND),需在脚本中相应修改。
传奇服务端添加元宝充值NPC脚本技术详解
来源:
作者:
点击:

