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

传奇幻境打宝每日限进三次脚本配置教程与NPC变量计数跨天自动重置实操

热度:
幻境限制每人每天三次,核心用个人变量记次数,再配一个日期变量判断跨天。玩家点NPC进幻境前先查次数,小于3就传图并把次数加1,等于3就拒传并提示。每天0点通过机器人脚本把次数变量清0,或者用日期变量对比实现自动跨天重置。下面按通用写法、GOM/GEE、Hero分别给可直接改的示例。

一、变量规划与文件位置

个人次数变量用普通[N]变量即可,例如[100]存幻境当日次数,[101]存上次进入日期。NPC脚本放在Mir200\Envir\QuestDiary\幻境限制\进入.txt,机器人重置脚本放在Mir200\Envir\RobotDef\RobotManage.txt,登录初始化可放QManage.txt的[@Login]。若用列表记录已进玩家,文本放Mir200\Envir\QuestDiary\幻境限制\幻境名单.txt。

二、通用NPC每日三次写法

QuestDiary\幻境限制\进入.txt内容:

[@Main]
IF

ACT

OPENMERCHANTBIGDLG18031400014208
SAY

幻境打宝每天可进入3次,当前剩余次数查看后进入\\
<查看剩余次数/@QueryCount><进入幻境/@EnterHJ><关闭/@close>

[@QueryCount]
IF

Check[101]当天日期
ACT

SAY

今日已进入:<[100]>次,剩余:<STR(3-[[100]])>次
<进入幻境/@EnterHJ><返回/@Main>

[@EnterHJ]
IF

Check[101]当天日期
Check[100]<3
ACT

INC[100]1
MAPMOVEHJMAP100100
SENDMSG7进入幻境成功,今日第<$STR([100])>次
ELSEACT

IF

Check[101]当天日期
ACT

SENDMSG6今日幻境3次已用完,明天再來
ELSEACT

SET[101]当天日期
SET[100]1
MAPMOVEHJMAP100100
SENDMSG7进入幻境成功,今日第1次

上面“当天日期”按引擎替换成获取日期命令。部分引擎可用系统日期变量直接比,不支持就用机器人0点强制清[100]。进入后只计主入口一次,幻境内部换层不要再次INC,否则三层来回就把3次耗光。

三、GOM/GEE用CALCVAR落盘写法

新建QuestDiary\幻境限制\次数.txt,NPC用人类计算变量:

[@Main]
IF

ACT

SAY

<进入幻境/@GoHJ><关闭/@close>

[@GoHJ]
IF

CALCVARHUMAN幻境日期=当天日期
CALCVARHUMAN幻境次数>=3
ACT

SENDMSG6今日幻境已进3次,无法再进
break

IF

CALCVARHUMAN幻境日期=当天日期
ACT

CALCVARHUMAN幻境次数=+1
MAPMOVEHJMAP100100
SENDMSG7进入幻境,今日第<$STR(幻境次数)>次
break

IF

ACT

CALCVARHUMAN幻境日期=当天日期
CALCVARHUMAN幻境次数=1
SAVEVARHUMAN幻境次数..\QuestDiary\幻境限制\次数.txt
SAVEVARHUMAN幻境日期..\QuestDiary\幻境限制\次数.txt
MAPMOVEHJMAP100100
SENDMSG7进入幻境,今日第1次

登录触发QManage.txt可初始化:

[@Login]
IF

CHECKVARHUMAN幻境日期=当天日期
ACT

ELSEACT

CALCVARHUMAN幻境次数=0
CALCVARHUMAN幻境日期=当天日期
SAVEVARHUMAN幻境次数..\QuestDiary\幻境限制\次数.txt
SAVEVARHUMAN幻境日期..\QuestDiary\幻境限制\次数.txt

机器人0点再保险重置,RobotManage.txt:

[@DailyReset]
IF

ACT

CLEARVARCALCULATE..\QuestDiary\幻境限制\次数.txt
SENDMSG0幻境每日次数已重置

CLEARVARCALCULATE路径按实际QuestDiary目录调整。

四、HeroM2个人变量加0点机器人写法

NPC脚本:

[@Main]
IF

ACT

SAY

<进入幻境/@HJIn><关闭/@close>

[@HJIn]
IF

Check[200]当天日期
Check[201]<3
ACT

INC[201]1
MAPMOVEHJMAP100100
SENDMSG7幻境进入成功,今日第<$STR([201])>次
break

IF

Check[200]当天日期
ACT

SENDMSG6今日已进3次幻境
break

IF

ACT

SET[200]当天日期
SET[201]1
MAPMOVEHJMAP100100
SENDMSG7幻境进入成功,今日第1次

RobotManage.txt加0点:

[@RobotRun]
IF

HOUR0
ACT

SETALLHUMANVAR2010

若Hero子版本不支持SETALLHUMANVAR,就用逐人登录判断日期;玩家上线时[200]不等于当天日期就把[201]设0。登录触发写QManage.txt[@Login]:

[@Login]
IF

Check[200]当天日期
ACT

ELSEACT

SET[200]当天日期
SET[201]0

五、用文本名单限制进入

不想用变量,可用AddTextListEx记录账号或角色ID,进入前CheckTextList判断。NPC示例:

[@Main]
IF

ACT

SAY

<进入幻境/@HJList><关闭/@close>

[@HJList]
IF

CheckTextList..\QuestDiary\幻境限制\幻境名单.txt
ACT

SENDMSG6今日已通过名单进入3次或已记录,无法再进
break
IF

ACT

AddTextListEx..\QuestDiary\幻境限制\幻境名单.txt角色ID3
MAPMOVEHJMAP100100
SENDMSG7进入幻境成功

文本名单适合只记“今天进过”但不方便按次数累加的场景;要严格三次,名单行要带计数,或者用变量更直观。机器人0点清空名单文件内容即可。

六、防重复计数与多层幻境处理

幻境若分一层二层三层,只在土城或主城总入口NPC计数。层间传送NPC只写MAPMOVE,不写INC、不加次数。若玩家可从地图内直接回城再进,回城后再次点主入口会再计数,这是正常限制;如允许“一次购票全天各层自由”,就把计数改成“进入总会话1次”,用进入标记[202]=1表示当天已开幻境,进图不按次数只按标记,出图不清除,0点清标记。

七、配合MapInfo做人数和停留

幻境地图在MapInfo.txt可附加人数、时间参数,和次数限制互补。例如限制某层最多50人、停留30分钟回城,写:

HJMAP幻境一层00000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[顶部]