传奇服务端添加元宝充值NPC脚本教程

来源: 作者: 点击:
添加充值NPC需修改NPC配置文件并编写检测发放脚本。核心逻辑是检测玩家的充值凭证(金币、充值点或外部变量),满足条件后执行GAMEGOLD+指令。

一、创建NPC配置文件

服务端的NPC列表存储在MirServer\Mir200\Envir\MerChant.txt。在此文件末尾新增一行,定义NPC的外观与位置。

配置格式示例(GOM/GEE引擎):

元宝充值3330320元宝充值使者08000

参数说明:
•元宝充值:NPC唯一标识,需与脚本文件名对应。

•3:地图编号(3通常代表盟重省)。

-330320:地图坐标。
•元宝充值使者:玩家看到的NPC名称。

•08000:方向、外观形象、是否属沙城等属性。

保存后,在M2引擎控制器点击“重读NPC配置”,游戏内对应坐标即出现该NPC。

二、编写充值功能脚本

脚本文件需放在MirServer\Mir200\Envir\Market_Def目录,文件名必须与MerChant.txt中的标识一致(如元宝充值-3.txt)。

1.基丛话脚本(@Main)

脚本以Main段开始,显示充值选项。
(@Main)
#SAY
欢迎使用元宝充值服务。\
请选择充值档位:\
\
<充值1000元宝/@Pay1000>\
<充值5000元宝/@Pay5000>\
<充值10000元宝/@Pay10000>\
<关闭/@Exit>


2.充值检测与发放脚本(@Pay)

以1000元宝档位为例,逻辑为“检测金币→扣除金币→发放元宝”。
[@Pay1000]
#IF
CheckGold1000000;检测玩家是否拥有100万金币
#ACT
TakeGold1000000;扣除100万金币
GAMEGOLD+1000;增加1000元宝
SendMsg6充值成功!获得1000元宝。
Break
#ELSEACT
SendMsg6金币不足,无法充值。
Break

关键指令说明:
•CheckGold:检测金币数量。若改用CheckGamePoint则检测充值点。

-GAMEGOLD+:增加元宝的核心指令(GOM/GEE/HERO引擎通用)。
•SendMsg:发送提示信息。

其他档位复制此段,修改金额和元宝数量即可。

三、多引擎指令差异与适配

不同引擎的指令略有不同,若脚本报错需检查以下差异:

引擎类型检测货币指令增加元宝指令备注

GOM/GEECheckGold/CheckGamePointGAMEGOLD+主流引擎

HERO/BlueCheckGoldGAMEGOLD+老版本常用

LEGENDCheckGoldGameGold+注意指令大小写

若使用“充值点”而非金币作为凭证,需将CheckGold改为CheckGamePoint,TakeGold改为TakeGamePoint。

四、高级功能:变量与自动发货

1.使用变量记录充值总额

利用私人变量记录玩家累计充值,用于VIP等级判断。
#IF
CheckGold1000000
#ACT
TakeGold1000000
GAMEGOLD+1000
CALCVARHUMAN累计充值+1000;HUMAN变量下线保存
SAVEVARHUMAN累计充值..\QuestDiary\充值记录.txt
SendMsg6充值成功,累计充值:<$HUMAN(累计充值)>元宝。


2.对接第三方支付平台

商业开服通常不直接扣游戏币,而是检测外部支付平台回调的文本标记。
#IF
CheckAccountList..\QuestDiary\支付成功\1000.txt;检测是否存在支付标记文件
#ACT
GAMEGOLD+1000
DelAccountList..\QuestDiary\支付成功\1000.txt;删除标记,防止重复领取
SendMsg1玩家【%s】充值1000元宝成功!

此方式需配合网站支付接口,支付成功后由接口脚本生成对应的TXT文件。

五、常见脚本错误排查

1.NPC点击无反应:检查MerChant.txt中的NPC标识与Market_Def下的脚本文件名是否完全一致(包括横杠和地图编号)。
2.提示“命令错误”:确认引擎类型,检查GAMEGOLD指令拼写及符号(如GOM引擎需用+号)。
3.重读不生效:修改脚本后,必须在M2的“管理→重新加载→NPC脚本”中刷新,或重启服务端。
4.元宝未到账:优先检查检测条件(如CheckGold)是否严格满足,以及Take扣除指令是否执行成功。
[顶部]