当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇进入地图自动扣游戏币或元宝完整配置教程含MapInfo参数NPC预扣定时器按秒扣费

热度:
进图自动扣钱分三种做法。第一种在MapInfo给地图加自动减货币参数,玩家一进图就按间隔扣,不需要NPC脚本。第二种在传送NPC点进入时先扣一次,适合买票进图。第三种进图后用定时器按秒、按分钟循环扣,钱不够自动传回安全区。游戏币和元宝只是变量命令不同,逻辑完全一样。

一、MapInfo地图参数直接扣

打开Mir200\Envir\MapInfo.txt,找到目标地图行。普通格式类似:

(地图名|编号参数1参数2)

在行尾加自动减钱参数。部分引擎支持DECMONEY,格式:

DECMONEY(货币名或ID/间隔秒/每次数量/@QF标签)

例子:

(经验房|D515安全区DECMONEY(游戏币/1/10/@扣币))

意思为进入D515后每1秒扣10个游戏币,触发QFunction-0.txt里的[@扣币]。若扣元宝,把货币名换成版本里元宝对应名称,例如部分端写元宝,部分端GAMEGOLD体系直接写元宝;不确定就在M2用GM命令发元宝看变量名。

对应QF写接收标签:

[@扣币]
IF

CHECKGAMEGOLD>10
ACT

GAMEGOLD-10
ELSEACT

MAPMOVE3330330
SENDMSG6元宝不足已被送出地图

如果只用MapInfo自动扣、不写QF标签,有些引擎可只填数量和间隔;需要自定义提示、回城、扣不同货币时再把QF标签补齐。GOM类演示里进图自动减元宝可直接在地图行加对应参数,进图后按间隔每秒减,元宝为0会按地图NORECONNECT或脚本强传。

只扣一次不要循环,不在MapInfo写间隔参数,改走NPC进入前扣,见第二节。

二、NPC传送前扣游戏币或元宝

最常用,玩家点NPC才扣,不点不扣。Market_Def里新建或编辑传送NPC,脚本结构:

[@main]
进入高级图需要1000游戏币\
[@进图]
IF

CHECKGAMEGOLD>999
ACT

GAMEGOLD-1000
MAPMOVED5151010
GIVE回城卷1
SENDMSG0玩家进入高级图
ELSEACT

MESSAGEBOX游戏币不足,无法进入
CLOSE

扣元宝把CHECKGAMEGOLD和GAMEGOLD换成版本元宝检测命令;部分Hero、Blue用CHECKGAMEGOLD、GAMEGOLD体系,GOM部分端元宝也走GAMEGOLD,具体看M2货币设置。扣普通游戏币若服务端用CHECKGAOLD/TAKE,可写:

IF

CHECKGOLD>999
ACT

TAKE金币1000
MAPMOVED5151010

NPC买卖型杂货不适用这个逻辑,传送员用普通对话NPC即可。进入前还可叠等级、转生、会员判断,例如:

IF

CHECKLEVELEX>44
CHECKGAMEGOLD>1499
ACT

GAMEGOLD-1500
MAPMOVEXA11424
GIVE回城卷1
ELSEACT

MESSAGEBOX需要45级且1500元宝

这类写法适合挑战图、BOSS图、会员图,玩家每次点进入扣一次,不会在图里持续扣。

三、进图后按秒循环扣,钱不够回城

适合泡点、闭关、经验房、元宝挂机图。分两处:传送NPC开定时器,QManage写定时扣费。

传送NPC:

[@进闭关]
IF

ACT

MAPMOVESG0081010
GIVE回城卷1
SETONTIMER11
SENDMSG0进入闭关,每秒扣元宝
ELSEACT

MESSAGEBOX进入失败

SETONTIMER11表示开1号定时器,每1秒执行一次。若想每5秒扣一次,写SETONTIMER15;每60秒扣一次写SETONTIMER160。

QManage.txt加:

[@OnTimer1]
IF

ISONMAPSG008
CHECKGAMEGOLD>9
ACT

GAMEGOLD-10
CHANGEEXP+100000
ELSEACT

GOTO@闭关回城

[@闭关回城]
IF

ISONMAPSG008
ACT

SETOFFTIMER1
MESSAGEBOX元宝不足,已传出
MAPMOVE3330333
ELSEACT

SETOFFTIMER1

上面逻辑为:在SG008且元宝大于9,每秒扣10元宝并给经验;不满足就关定时器、弹窗、传回3号地图330333。若只扣游戏币不扣元宝,把CHECKGAMEGOLD、GAMEGOLD换成CHECKGOLD、TAKE或对应游戏币命令。

Hero按秒扣金币可简写循环:

IF

ISONMAP地图号
ACT

GAMEGOLD-数量
DELAY1000
GOTO@本标签

不足处理单独写:

IF

ISONMAP地图号
CHECKGAMEGOLD<数量
ACT

SENDMSG6金币不足即将回城
MAPMOVE3330330

DELAY1000为1秒,改DELAY5000为5秒。这种写法适合Hero自定义NPC定时标签,不和QManage定时器混用也行。

四、按分钟或按次数扣费

不想每秒扣,改间隔即可。定时器法把SETONTIMER11改成160,就是每60秒触发一次;MapInfo法把DECMONEY间隔改60。NPC买票法不改,本身只进图扣一次。

按分钟扣元宝示例:

[@OnTimer2]
IF

ISONMAPVIP001
CHECKGAMEGOLD>99
ACT

GAMEGOLD-100
SENDMSG6已扣除本分钟元宝100
ELSEACT

SETOFFTIMER2
MAPMOVE3330330
SENDMSG6元宝不足请续费

进图NPC写:

MAPMOVEVIP00155
SETONTIMER260

这样玩家在VIP001每60秒扣100元宝,断了自动回城。

五、游戏币和元宝命令对照

不同引擎变量名差异很大,配错会扣不到或扣错货币。

GOM/GEE常用:元宝检测CHECKGAMEGOLD,扣元宝GAMEGOLD-数量;游戏币检测CHECKGOLD,扣游戏币TAKE金币数量或直接用GAMEGOLD体系若版本把游戏币映射过去。部分端绑定元宝用GAMEGOLD_BIND。

Hero常用:元宝CHECKGAMEGOLD、GAMEGOLD-;游戏币CHECKGOLD、TAKE金币;也有用CHECKGAMEPOINT扣点券的情况,按M2货币类型换。

Blue/老版:元宝多走GAMEGOLD,游戏币走CHECKGOLD、TAKE;部分版本元宝名实际是“元宝”道具,需要用CHECKGAMEGOLD检测账户元宝,而不是背包道具。

不确定变量,用GM账号发1次元宝、1次游戏币,看角色面板哪个数字变,再反推脚本命令。QF、QM、NPC三处用同一套变量,别QM用GAMEGOLD、NPC用TAKE元宝。

六、进图即扣一次+在图里持续扣组合

买票+按时扣一起做,防止白嫖。NPC先扣门票,进图再开定时器:

[@进付费图]
IF

CHECKGAMEGOLD>199
ACT

GAMEGOLD-200
MAPMOVEPAY0011010
GIVE回城卷1
SETONTIMER35
SENDMSG0已扣200元宝门票,每5秒再扣50
ELSEACT

MESSAGEBOX元宝不足,需200门票

QManage:

[@OnTimer3]
IF

ISONMAPPAY001
CHECKGAMEGOLD>49
ACT

GAMEGOLD-50
ELSEACT

SETOFFTIMER3
MAPMOVE3330333
SENDMSG6持续费用不足已回城

门票扣一次,定时器每5秒扣50。若玩家中途用回城卷离开,QM定时器仍可能触发,需要在地图退出脚本或OnTimer里再判断ISONMAP,不在图就SETOFFTIMER,避免回城后继续扣。

七、地图退出自动关定时器

在QFunction-0.txt或MapQuest对应退出触发写:

[@MapExit_地图号]
ACT

SETOFFTIMER1
SETOFFTIMER2
SETOFFTIMER3

不同引擎地图退出标签名不同,部分用[@LeaveMap_编号]、部分用QF地图事件。只要玩家从付费图走到别的图、回城、随机出去,都执行SETOFFTIMER对应编号。不写这个,玩家回城后定时器还在跑会继续扣元宝。

用MapInfoDECMONEY参数则不用管定时器退出,引擎按是否在该地图判定;但自定义回城、不足处理最好仍写QF,提示更友好。

八、机器人轮询扣费替代定时器

不想用SetOnTimer,可用Robot_def自动跑。AutoRunRobot.txt:

AutoRunNPCSEC5@地图扣费

RobotManage.txt:

[@地图扣费]
IF

ISONMAPPAY001
CHECKGAMEGOLD>49
ACT

GAMEGOLD-50
ELSEACT

IF

ISONMAPPAY001
ACT

MAPMOVE3330333
SENDMSG6元宝不足已被传出

SEC5表示每5秒全服轮询一次。人多的服机器人太频繁会占资源,按秒扣改用SetOnTimer更准;按分钟扣用机器人更简单。多张付费图分别写ISONMAP判断,或每个图一个机器人标签。

九、常见不扣钱排查

进图不扣:MapInfo参数先看地图行是否真加载,参数名拼错、半角括号错、地图行被注释都不会生效。DECMONEY若带QF标签,QF标签名要和MapInfo一致,QFunction-0.txt重新加载后再进图。

NPC点了不扣:检查CHECKGAMEGOLD或CHECKGOLD变量名,元宝和游戏币用错命令会直接跳过扣费进图。可临时把扣费命令注释,只留MAPMOVE,确认能进图后再加扣费;能进但不扣就是命令变量问题。

定时器不触发:QManage.txt是否加载,SetOnTimer编号和OnTimer编号是否一致。搜全部脚本@OnTimer1看有没有重复占用,1号被泡点用了就换2、3、4号。GOM/QM改完重载登录脚本或重启M2。

扣了钱不还传:不足分支必须SETOFFTIMER再MAPMOVE,先关定时器再传,否则下一秒又扣一次再传。Hero循环DELAY写法没有SETOFF会一直弹扣费,需要在不足判断里BREAK或跳回城标签。

扣游戏币变成扣元宝:M2货币设置里GAMEGOLD可能绑定元宝也可能绑定游戏币,看版本。NPC用TAKE金币最不容易扣错元宝;用GAMEGOLD前先小号测试扣1看哪个面板变。

回城坐标错误:MAPMOVE后面地图号和XY按自己MapInfo来,别照抄3330330。部分版本土城不是3,盟重不是0,先查MapInfo再写回城。

十、运营参数建议

按秒扣适合小数值体验图,例如每秒1到10游戏币、1到2元宝;按分钟扣适合长期挂机,例如每分钟50到200元宝。门票加持续费分开设,门票挡白嫖,持续费控停留时长。免费新手图不要开DECMONEY,避免玩家进图瞬间没钱被强传。付费打宝图可用NPC门票+MapInfo按秒扣,减少脚本维护;闭关经验图用NPC开定时器,方便同时发经验、内功、成就。所有扣费地图给进入前弹MESSAGEBOX告知单价和回城规则,避免玩家进图后投诉不明扣款。改完用新号带少量钱进图测一次不足回城,再用满钱号进图测持续扣费、回城关定时器、重新进图重新计费三遍再对玩家开放。
[顶部]