在传奇服务端中添加元宝充值NPC,核心流程分为脚本编写与NPC挂载两步。针对“每日充值土豪排行”这类活动,则需引入变量统计与定时清零机制。
一、元宝充值NPC基础脚本(Hero/GameOfMir引擎)
以HERO引擎为例,在Mir200\Envir\QuestDiary\目录下新建元宝充值.txt文件,写入以下内容:
[@main]
#SAY
欢迎使用元宝充值服务。\\
<充值1000元宝/@充值1000>\
<充值5000元宝/@充值5000>\
<查看土豪排行/@土豪排行>\
[@充值1000]
#IF
;此处可加入支付检测(如CHECKGAMEGOLD检测充值点)
#ACT
GIVE元宝1000
SENDMSG6充值成功,1000元宝已到账。
;记录充值金额到个人变量(用于排行)
CALCVARHUMAN今日充值+10
SAVEVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt
CLOSE
[@充值5000]
#IF
#ACT
GIVE元宝5000
SENDMSG6充值成功,5000元宝已到账。
CALCVARHUMAN今日充值+50
SAVEVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt
CLOSE
GOM引擎差异:GOM引擎脚本通常存放在Market_Def目录,发放元宝的命令多为GAMEGOLD+1000或AddYuanBao1000,且需在MerChant.txt中配置NPC。
二、挂载NPC到游戏地图
编辑服务端的Mir200\Envir\Npc.txt(HERO)或MerChant.txt(GOM),添加一行配置:
元宝充值使者3013330320元宝充值.txt@main
参数说明:301为NPC外观编号,3为地图编号(盟重),330320为坐标。保存后重启M2Server或重载NPC,NPC即出现在游戏中。
三、每日充值土豪排行脚本(自动清零)
土豪脚本的核心是利用全局变量记录每日充值总额,并在次日零点自动重置。在NPC脚本中增加排行逻辑:
[@土豪排行]
#IF
#ACT
;读取并排序变量文件
SORTVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt1..\QuestDiary\数据\临时排行.txt
#SAY
【今日土豪排行榜】\\
第一名:<$STR(S1)>-<$STR(N1)>点\
第二名:<$STR(S2)>-<$STR(N2)>点\
第三名:<$STR(S3)>-<$STR(N3)>点\\
<领取第一名奖励/@领奖1>(需本人点击)\
[@领奖1]
#IF
EQUALS1<$USERNAME>
#ACT
GIVE屠龙1
SENDMSG0恭喜【<$USERNAME>】获得今日充值排行第一名奖励!
CLOSE
#ELSESAY
你不是今日第一名,无法领取。
关键点:为了实现“每日”清零,需要在QManage.txt(登录脚本)中加入以下逻辑,在每日零点重置所有玩家的变量:
[@Login]
#IF
HOUR00
MIN00
#ACT
MOVHUMAN今日充值0
SAVEVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt
这样每天服务器时间到达00:00时,所有玩家的充值记录归零,实现真正的每日排行。
四、常见问题与排查
1.NPC不显示:检查Npc.txt中的地图编号和坐标是否有效,以及脚本文件名是否拼写错误。
2.脚本报错:确认命令与引擎匹配(如HERO用GIVE,GOM用GAMEGOLD),文件编码保存为ANSI。
3.变量不保存:确认QuestDiary\数据目录存在且有写入权限,建议先在脚本中手动创建变量文件。
通过上述步骤,即可在服务端实现带自动排行功能的充值NPC,无需依赖外部平台即可运行土豪活动。
一、元宝充值NPC基础脚本(Hero/GameOfMir引擎)
以HERO引擎为例,在Mir200\Envir\QuestDiary\目录下新建元宝充值.txt文件,写入以下内容:
[@main]
#SAY
欢迎使用元宝充值服务。\\
<充值1000元宝/@充值1000>\
<充值5000元宝/@充值5000>\
<查看土豪排行/@土豪排行>\
[@充值1000]
#IF
;此处可加入支付检测(如CHECKGAMEGOLD检测充值点)
#ACT
GIVE元宝1000
SENDMSG6充值成功,1000元宝已到账。
;记录充值金额到个人变量(用于排行)
CALCVARHUMAN今日充值+10
SAVEVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt
CLOSE
[@充值5000]
#IF
#ACT
GIVE元宝5000
SENDMSG6充值成功,5000元宝已到账。
CALCVARHUMAN今日充值+50
SAVEVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt
CLOSE
GOM引擎差异:GOM引擎脚本通常存放在Market_Def目录,发放元宝的命令多为GAMEGOLD+1000或AddYuanBao1000,且需在MerChant.txt中配置NPC。
二、挂载NPC到游戏地图
编辑服务端的Mir200\Envir\Npc.txt(HERO)或MerChant.txt(GOM),添加一行配置:
元宝充值使者3013330320元宝充值.txt@main
参数说明:301为NPC外观编号,3为地图编号(盟重),330320为坐标。保存后重启M2Server或重载NPC,NPC即出现在游戏中。
三、每日充值土豪排行脚本(自动清零)
土豪脚本的核心是利用全局变量记录每日充值总额,并在次日零点自动重置。在NPC脚本中增加排行逻辑:
[@土豪排行]
#IF
#ACT
;读取并排序变量文件
SORTVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt1..\QuestDiary\数据\临时排行.txt
#SAY
【今日土豪排行榜】\\
第一名:<$STR(S1)>-<$STR(N1)>点\
第二名:<$STR(S2)>-<$STR(N2)>点\
第三名:<$STR(S3)>-<$STR(N3)>点\\
<领取第一名奖励/@领奖1>(需本人点击)\
[@领奖1]
#IF
EQUALS1<$USERNAME>
#ACT
GIVE屠龙1
SENDMSG0恭喜【<$USERNAME>】获得今日充值排行第一名奖励!
CLOSE
#ELSESAY
你不是今日第一名,无法领取。
关键点:为了实现“每日”清零,需要在QManage.txt(登录脚本)中加入以下逻辑,在每日零点重置所有玩家的变量:
[@Login]
#IF
HOUR00
MIN00
#ACT
MOVHUMAN今日充值0
SAVEVARHUMAN今日充值..\QuestDiary\数据\今日充值.txt
这样每天服务器时间到达00:00时,所有玩家的充值记录归零,实现真正的每日排行。
四、常见问题与排查
1.NPC不显示:检查Npc.txt中的地图编号和坐标是否有效,以及脚本文件名是否拼写错误。
2.脚本报错:确认命令与引擎匹配(如HERO用GIVE,GOM用GAMEGOLD),文件编码保存为ANSI。
3.变量不保存:确认QuestDiary\数据目录存在且有写入权限,建议先在脚本中手动创建变量文件。
通过上述步骤,即可在服务端实现带自动排行功能的充值NPC,无需依赖外部平台即可运行土豪活动。

