在线计时发元宝分两种做法,一种是玩家找NPC点领,脚本用在线分钟变量判断档位;一种是机器人或定时器按分钟累加角色在线秒数,到档位自动发。Hero里常用ONLINELONGMIN读累计在线分钟,配合CHECKLEVELEX卡等级,用GAMEGOLD加元宝;若本服把元宝做成背包物品,就把GAMEGOLD改成GIVE 元宝 数量。
一、NPC注册与文件位置
对话型NPC放Mir200\Envir\npc_def,名字和npcs.txt对应;若走商人型放Mir200\Envir\Market_Def,并在merchant.txt注册。计时奖励建议用普通对话NPC,避免和商店交易混淆。
npcs.txt示例:
在线奖励官 0 3 330 330 0 8
字段按本服npcs规则核对,通常含名称、功能码、地图号、X、Y、范围、头像。土城地图号按MapInfo实际填,坐标取安全区无人站位。脚本建npc_def\在线奖励官.txt,首标签[@main]。改完重载NPC或重启M2。
二、基础分档领取脚本
按在线60分钟、120分钟、180分钟、240分钟发不同元宝,并做等级限制,避免新号挂机即薅。
[@main]
在线计时元宝奖励\ \
当前在线时长由系统统计,分档领取\ \
1. 在线满60分钟领2000元宝 /@ling1\ \
2. 在线满120分钟领4000元宝 /@ling2\ \
3. 在线满180分钟领8000元宝 /@ling3\ \
4. 在线满240分钟领12000元宝 /@ling4\ \
[@ling1]
IF
CHECKLEVELEX >79
ONLINELONGMIN >59
ACT
GAMEGOLD +2000
SENDMSG 1 恭喜在线满60分钟,获得2000元宝
SENDMSG 5 已发放2000元宝,请查收
GOTO @main
ELSEACT
MESSAGEBOX 等级需80级且在线满60分钟才可领取
[@ling2]
IF
CHECKLEVELEX >79
ONLINELONGMIN >119
ACT
GAMEGOLD +4000
SENDMSG 1 恭喜在线满120分钟,获得4000元宝
SENDMSG 5 已发放4000元宝,请查收
GOTO @main
ELSEACT
MESSAGEBOX 等级需80级且在线满120分钟才可领取
[@ling3]
IF
CHECKLEVELEX >79
ONLINELONGMIN >179
ACT
GAMEGOLD +8000
SENDMSG 1 恭喜在线满180分钟,获得8000元宝
SENDMSG 5 已发放8000元宝,请查收
GOTO @main
ELSEACT
MESSAGEBOX 等级需80级且在线满180分钟才可领取
[@ling4]
IF
CHECKLEVELEX >79
ONLINELONGMIN >239
ACT
GAMEGOLD +12000
SENDMSG 1 恭喜在线满240分钟,获得12000元宝
SENDMSG 5 已发放12000元宝,请查收
GOTO @main
ELSEACT
MESSAGEBOX 等级需80级且在线满240分钟才可领取
ONLINELONGMIN在部分Hero资料里按累计在线分钟判断,60分钟写>59、120分钟写>119,可避免刚好整点边界问题。 若所用小版本不支持ONLINELONGMIN,改用在线秒变量或自建HUMAN秒数累加,见第四节。
三、每日每档防重复领取
上面脚本只判在线时长,不判当天是否领过,玩家可小退再上、反复点。加HUMAN每日标记,用日期变量做零点重置。
先在M2或变量配置把以下HUMAN数字变量建成可保存:YB60、YB120、YB180、YB240、LASTDATE。
[@ling1]
IF
CHECKLEVELEX >79
ONLINELONGMIN >59
CHECKVAR HUMAN YB60 =0
ACT
GAMEGOLD +2000
CALCVAR HUMAN YB60 =1
SENDMSG 1 恭喜在线满60分钟,获得2000元宝
GOTO @main
ELSEACT
IF
CHECKVAR HUMAN YB60 =1
ACT
MESSAGEBOX 今日60分钟档已领取
ELSEACT
MESSAGEBOX 等级或在线时长不足
其余档把YB60换成YB120、YB180、YB240,分钟条件对应119、179、239。CHECKVAR和CALCVAR写法按本服Hero变量规则调整;老版本若用MOV/INC而不是CALCVAR,就把CALCVAR HUMAN YB60 =1改成MOV HUMAN YB60 1。
零点清标记可用Robot做。AutoRunRobot.txt:
AutoRun NPC RUNONDAY 00:00:00 @清在线领元宝
RobotManage.txt:
[@清在线领元宝]
IF
ACT
MOV HUMAN YB60 0
MOV HUMAN YB120 0
MOV HUMAN YB180 0
MOV HUMAN YB240 0
若本服HUMAN变量不支持在RobotManage直接批量清,改放QuestDiary定时脚本或用CLEARNAMELIST/名单方案。部分版本支持CHECKDAYREWARD、SETDAYREWARD,则可不建四个变量,直接在每档写CHECKDAYREWARD 1 60、SETDAYREWARD 1 60之类,编号按本服命令表来。
四、机器人自动计时发放
不想让玩家手动点,用定时器每分钟给在线角色加秒,到档自动发。QuestDiary建在线奖励.txt,OnTimer调用或AutoRunRobot每分钟触发。
AutoRunRobot.txt:
AutoRun NPC SEC 60 @在线秒累加
RobotManage.txt或QuestDiary标签:
[@在线秒累加]
IF
ISONLINE
ACT
CALCVAR HUMAN ONTIMESEC +60
GOTO @发60
GOTO @发120
GOTO @发180
GOTO @发240
[@发60]
IF
LARGE HUMAN ONTIMESEC 3599
SMALL HUMAN ONTIMESEC 4200
CHECKVAR HUMAN YB60 =0
CHECKLEVELEX >79
ACT
GAMEGOLD +2000
CALCVAR HUMAN YB60 =1
SENDMSG 5 系统发放60分钟在线元宝2000
[@发120]
IF
LARGE HUMAN ONTIMESEC 7199
SMALL HUMAN ONTIMESEC 7800
CHECKVAR HUMAN YB120 =0
CHECKLEVELEX >79
ACT
GAMEGOLD +4000
CALCVAR HUMAN YB120 =1
SENDMSG 5 系统发放120分钟在线元宝4000
[@发180]
IF
LARGE HUMAN ONTIMESEC 10799
SMALL HUMAN ONTIMESEC 11400
CHECKVAR HUMAN YB180 =0
CHECKLEVELEX >79
ACT
GAMEGOLD +8000
CALCVAR HUMAN YB180 =1
SENDMSG 5 系统发放180分钟在线元宝8000
[@发240]
IF
LARGE HUMAN ONTIMESEC 14399
SMALL HUMAN ONTIMESEC 15000
CHECKVAR HUMAN YB240 =0
CHECKLEVELEX >79
ACT
GAMEGOLD +12000
CALCVAR HUMAN YB240 =1
SENDMSG 5 系统发放240分钟在线元宝12000
ONTIMESEC按秒累计,60分钟≈3600秒,用LARGE大于3599且SMALL小于4200做单档区间,避免每次60秒循环都重复命中。若本服Hero自带CHECKONLINELONG或ONLINELONGMIN且稳定,自动发也可直接读原生在线时长,不自建ONTIMESEC。
五、防小号与小退重领
等级门槛:CHECKLEVELEX按版本设定,80级太高压新手服可改30、40;打金服可改100以上才发。
在线真实性:ONLINELONGMIN通常是角色累计在线,小退重上是否继续算看引擎;自建ONTIMESEC只在角色在线且定时器触发时加,小退期间不加,更防挂机假在线。若发现小退清零,检查HUMAN变量是否落地保存,Robot或QuestDiary重载是否清变量。
同账号多角色:HUMAN变量跟角色不跟账号,想一个账号只领一次要用账号变量。Hero部分版本用U开头账号变量、I开头IP变量、G全局变量;限制同IP多号可用IP标签或IP变量计数。 示例账号级60分钟限领:
IF
CHECKLEVELEX >79
ONLINELONGMIN >59
CHECKVAR U YB60ALL =0
ACT
GAMEGOLD +2000
MOV U YB60ALL 1
若本服U变量命令名不同,按变量管理改成账号作用域变量。IP级限制用GETIP加IP名单或IP变量,同一局域网会互相影响,需放宽到每IP每日N次而不是1次。
机器码限制:部分Hero配合专用登录器可取机器码,写入文本名单,NPC领取前比对;适合严重被小号刷时加一层。普通计时发元宝先做好HUMAN每日+等级+在线分钟三条件即可。
六、元宝是物品不是游戏币的处理
很多Hero版本元宝是StdItems里的“元宝”物品,GAMEGOLD发的是游戏金币或游戏点,不等于元宝物品。确认后改:
GAMEGOLD +2000 改为 GIVE 元宝 2000
若元宝物品名是“绑定元宝”,写GIVE 绑定元宝 2000;若用绑定命令,按本服GIVEBINDYUANBAO或GiveBind类命令替换。数据库物品名、脚本物品名、背包显示名三者必须一致,包括空格和全半角,否则CHECKITEM和GIVE都会失败。
七、地图与挂机场景限制
挂机地图无限发元宝会被工作室利用,可加地图判断:
IF
CHECKLEVELEX >79
ONLINELONGMIN >59
CHECKMAPLIST 安全地图列表.txt
CHECKVAR HUMAN YB60 =0
ACT
GAMEGOLD +2000
安全地图列表放土城、盟重、安全区地图号;挂机地图、泡点地图不放入。若做泡点服反向处理,只允许泡点地图发,就把CHECKMAPLIST换成泡点地图名单。机器人自动发同理,在[@发60]等标签加CHECKMAP或地图名单。
八、完整NPC可抄模板
npc_def\在线奖励官.txt
[@main]
在线计时元宝奖励\ \
1. 满60分钟2000元宝 /@ling1\ \
2. 满120分钟4000元宝 /@ling2\ \
3. 满180分钟8000元宝 /@ling3\ \
4. 满240分钟12000元宝 /@ling4\ \
[@ling1]
IF
CHECKLEVELEX >79
ONLINELONGMIN >59
CHECKVAR HUMAN YB60 =0
ACT
GAMEGOLD +2000
CALCVAR HUMAN YB60 =1
SENDMSG 1 在线60分钟元宝已发2000
GOTO @main
ELSEACT
MESSAGEBOX 80级以上、在线满60分钟且当日未领才可领取
[@ling2]
IF
CHECKLEVELEX >79
ONLINELONGMIN >119
CHECKVAR HUMAN YB120 =0
ACT
GAMEGOLD +4000
CALCVAR HUMAN YB120 =1
SENDMSG 1 在线120分钟元宝已发4000
GOTO @main
ELSEACT
MESSAGEBOX 80级以上、在线满120分钟且当日未领才可领取
[@ling3]
IF
CHECKLEVELEX >79
ONLINELONGMIN >179
CHECKVAR HUMAN YB180 =0
ACT
GAMEGOLD +8000
CALCVAR HUMAN YB180 =1
SENDMSG 1 在线180分钟元宝已发8000
GOTO @main
ELSEACT
MESSAGEBOX 80级以上、在线满180分钟且当日未领才可领取
[@ling4]
IF
CHECKLEVELEX >79
ONLINELONGMIN >239
CHECKVAR HUMAN YB240 =0
ACT
GAMEGOLD +12000
CALCVAR HUMAN YB240 =1
SENDMSG 1 在线240分钟元宝已发12000
GOTO @main
ELSEACT
MESSAGEBOX 80级以上、在线满240分钟且当日未领才可领取
若ONLINELONGMIN在本服返回的是其他单位,统一替换:秒单位用大于3599/7199/10799/14399;小时单位用大于0/1/2/3。不要混用不同资料里的CHECKONLINELONG、CHECKONLINEHOUR、CheckOnlineTime,先在本服M2命令说明里搜在线时长命令名再套。
九、零点重置完整方案
方案A用HUMAN变量:Robot或QuestDiary零点执行MOV HUMAN YB60 0、YB120 0、YB180 0、YB240 0。优点简单;缺点变量作用域和保存机制因版本而异,重做人物数据可能丢标记。
方案B用名单文件:QuestDiary建Yuanbao60.txt、Yuanbao120.txt等,领取成功ADDNAMELIST,零点CLEARNAMELIST。NPC判断用CHECKNAMELIST,已存在就拒发。 示例:
[@ling1]
IF
CHECKLEVELEX >79
ONLINELONGMIN >59
CHECKNAMELIST ..\QuestDiary\Yuanbao60.txt
ACT
MESSAGEBOX 今日60分钟档已领取
ELSEACT
IF
CHECKLEVELEX >79
ONLINELONGMIN >59
ACT
GAMEGOLD +2000
ADDNAMELIST ..\QuestDiary\Yuanbao60.txt
SENDMSG 1 在线60分钟元宝已发2000
GOTO @main
AutoRunRobot零点:
AutoRun NPC RUNONDAY 00:00:00 @清元宝名单
RobotManage:
[@清元宝名单]
IF
ACT
CLEARNAMELIST ..\QuestDiary\Yuanbao60.txt
CLEARNAMELIST ..\QuestDiary\Yuanbao120.txt
CLEARNAMELIST ..\QuestDiary\Yuanbao180.txt
CLEARNAMELIST ..\QuestDiary\Yuanbao240.txt
名单文件先建空txt,路径按本服QuestDiary相对目录调整。
十、排错顺序
NPC点开没反应:看npcs.txt坐标是否在地图可站立点,脚本名和NPC名是否一致,[@main]是否存在,文件是否ANSI。
一直提示时长不足:M2命令窗搜ONLINELONGMIN,确认单位;用GM工具或脚本SENDMSG输出在线变量值,再决定用分钟、秒、小时。部分资料用CHECKONLINELONG按分钟、CHECKONLINEHOUR按小时、CheckOnlineTime按秒,命令名不通用。
发了元宝但背包没有:确认GAMEGOLD发的是游戏币还是元宝;元宝物品要用GIVE,且数据库物品名一致。
当天领完还能再领:HUMAN变量没保存,或零点清理脚本没执行;换名单方案更稳。机器人自动发重复发,检查YB标记、名单、区间条件,SEC 60别设成SEC 1导致同一档多次过条件。
小号批量刷:加CHECKLEVELEX、地图名单、账号U变量、IP变量或机器码名单;同IP局域网场景别设IP限1次,改每IP每日限N次。
M2报变量未知:CALCVAR、CHECKVAR、MOV按本服支持情况换;部分Hero老版用MOV HUMAN VAR 1、CHECKLEVELEXOK等替代命令,以所用小版本命令表为准。
按NPC分档加每日标记、机器人自动累加加区间发放、零点清标记或清名单这三层做,Hero在线计时元宝可以同时兼顾自动福利和防刷;若只做NPC不接点自动脚本,玩家不点就不发,适合低奖励长在线服;若做自动发不加等级和地图限制,工作室挂机领取速度会远高于正常玩家。
Hero引擎传奇在线累计计时自动发元宝NPC脚本与机器人定时档位防重复领取教程
来源:
作者:
点击:

