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

传奇HERO引擎自动攻沙及NPC奖励脚本实操全解

热度:
本文针对HERO引擎,实现开区4天首次攻沙、后续每日攻沙机制,搭配NPC差异化奖励脚本(首攻10000元宝,后续3000元宝),全程无冗余步骤,可直接复制套用。

核心逻辑:通过全局变量记录开区天数,触发自动攻沙;攻沙结束后标记胜方行会,NPC脚本检测标记及开区天数,发放对应奖励,无需手动干预攻沙流程。

一、自动攻沙脚本配置(核心文件:AutoRunRobot.txt、RobotManage.txt)

需修改两处机器人文件,实现开区天数统计、固定时间攻沙触发及系统提示,适配HERO引擎命令格式。

1.AutoRunRobot.txt(定时触发配置)

该文件控制脚本定时执行,添加3条触发规则,分别实现天数统计、攻沙预告、攻沙开启,直接粘贴至文件末尾:

#AutoRunNPCRUNONDAY00:01@统计开区天数//每日凌晨00:01更新天数
#AutoRunNPCRUNONDAY19:00@攻沙预告//19:00发布攻沙提醒
#AutoRunNPCRUNONDAY19:55@开启自动攻沙//19:55正式开启攻沙

说明:时间可自行调整(如改为20:00开启攻沙),RUNONDAY表示每日执行,确保攻沙流程规律触发。

2.RobotManage.txt(攻沙逻辑脚本)

添加天数统计、预告、开启攻沙三个脚本段,用全局变量G1记录开区天数,避免与其他变量冲突:

//统计开区天数
(@统计开区天数)
#IF
#ACT
incG11//每日递增1,G1=1为开区第1天,G1=4为第4天
SAVEVARG1..\QuestDiary\变量保存.txt//保存变量,重启服务端不丢失

//攻沙预告
(@攻沙预告)
#IF
largeG13//G1>3即开区≥4天,满足首次攻沙条件后每日触发
#ACT
SENDMSG1【系统公告】今晚19:55开启沙巴克攻城战,所有行会可参与!250
SENDMSG1【系统公告】首攻胜方全员领10000元宝,后续胜方领3000元宝!250
SENDMSG1【系统公告】无需提交头像,加入行会即可参战,做好准备!250

//开启自动攻沙(HERO引擎专用命令)
(@开启自动攻沙)
#IF
largeG13//仅开区≥4天触发,避免前期误开启
#ACT
AddAttackSabukAll0//开启全服攻沙,沙巴克城堡编号默认0(HERO通用)
SENDMSG1【系统公告】沙巴克攻城战正式开启!占领城堡即可获得丰厚奖励!250
SENDMSG1【系统公告】攻城持续1小时,倒计时结束时占领者获胜!250
BREAK

关键说明:AddAttackSabukAll0为HERO引擎自动攻沙核心命令,城堡编号0为默认值,若修改过城堡编号,需对应替换数字;变量保存路径需与服务端QuestDiary文件夹对应,防止变量丢失。

二、攻沙奖励标记脚本(QFunction-0.txt)

攻沙结束后自动标记胜方行会,为NPC奖励脚本提供判断依据,添加至QFunction-0.txt末尾:

//攻沙结束标记胜方(HERO引擎自动触发此脚本)
(@沙巴克攻城结束)
#IF
#ACT
GETCASTLEOWNER0H1//获取沙巴克占领行会名,存入变量H1
SAVEVARH1..\QuestDiary\变量保存.txt//保存胜方行会名
//记录本次攻沙是否为首次(G2为首次攻沙标记,1=已发放首攻奖励)
#IF
equalG20//G2默认0,未发放过首攻奖励
largeG13//确保是开区≥4天的攻沙
#ACT
SETG21//标记首攻奖励已发放,后续攻沙按普通奖励执行
SAVEVARG2..\QuestDiary\变量保存.txt
SENDMSG0【沙巴克战报】%H1行会夺得首攻胜利,全员可至NPC领取10000元宝!250
#ELSEACT
SENDMSG0【沙巴克战报】%H1行会夺得胜利,全员可至NPC领取3000元宝!250
BREAK

说明:@沙巴克攻城结束为HERO引擎攻沙结束后自动调用的脚本名,无需手动触发;GETCASTLEOWNER0H1命令可精准获取胜方行会名,确保奖励仅发放给获胜行会成员。

三、NPC奖励脚本(自定义NPC脚本文件)

假设NPC名为“沙巴克奖励使者”,脚本直接写入对应NPC文件(如D:\MirServer\Mir200\Envir\NPCs\沙巴克奖励使者.txt),支持重复领取检测,避免多领:

//NPC对话入口
[@main]
#SAY
欢迎来到沙巴克奖励领取处!\
当前获胜行会:%H1\
#IF
ISGuildMember%H1//检测玩家是否为胜方行会成员
CHECKVARH2<1//H2为领取标记,0=未领取,1=已领取
#SAY
你可领取本次攻沙奖励,点击即可领取!\
<领取攻沙奖励>@领取奖励
#ELSEACT
#SAY
你并非胜方行会成员,或已领取过本次奖励!\
感谢参与攻沙,下次再接再厉!
BREAK

//奖励领取逻辑
[@领取奖励]
#IF
equalG21//G2=1,已发放过首攻奖励(后续攻沙)
ISGuildMember%H1
#ACT
give元宝3000//后续攻沙奖励3000元宝
SETH21//标记为已领取
SAVEVARH2..\QuestDiary\变量保存.txt
SENDMSG7你成功领取攻沙奖励3000元宝,请注意查收背包!250
BREAK
#ELSEIF
equalG20//G2=0,未发放首攻奖励(首次攻沙)
ISGuildMember%H1
#ACT
give元宝10000//首次攻沙奖励10000元宝
SETH21//标记为已领取
SAVEVARH2..\QuestDiary\变量保存.txt
SENDMSG7你成功领取首攻奖励10000元宝,请注意查收背包!250
BREAK
#ELSEACT
SENDMSG7你无法领取本次奖励,请勿重复尝试!250
BREAK

补充设置:NPC位置可在游戏中按F12调试面板查看坐标,在NPC文件开头添加“地图名X坐标Y坐标沙巴克奖励使者”,即可在指定位置刷新NPC。

四、变量初始化与脚本生效设置

1.变量初始化(避免首次运行异常)

在服务端QuestDiary文件夹新建“变量保存.txt”,写入以下内容,初始化全局变量:

G1=0//开区天数初始为0,开服后次日凌晨更新为1
G2=0//首攻奖励标记初始为0(未发放)
H1=//胜方行会名初始为空
H2=0//玩家领取标记初始为0(未领取)

2.脚本生效步骤

1.保存所有文件修改,将变量保存.txt放入QuestDiary文件夹;2.重启传奇服务端,确保变量和脚本加载成功;3.开服后系统会自动统计天数,第4天19:00发布预告,19:55开启首次攻沙;4.攻沙结束后,胜方行会成员可至NPC处领仍应元宝奖励。

五、常见问题排查(HERO引擎专属)

1.自动攻沙不触发

检查AutoRunRobot.txt命令格式是否正确,无多余空格;确认RobotManage.txt中“largeG13”条件,G1需≥4才触发;查看服务端日志,若提示命令错误,替换AddAttackSabukAll0为“GmexecuteAddAttackSabuk0”(部分HERO版本适配)。

2.奖励领取异常

若胜方无法领取,检查QFunction-0.txt中@沙巴克攻城结束脚本是否添加,H1变量是否保存成功;若重复领取,确认H2变量是否正确保存,NPC脚本中CHECKVARH2<1条件是否生效。

3.变量丢失

确保SAVEVAR命令中的路径正确,服务端QuestDiary文件夹有读写权限;重启服务端前备份变量保存.txt,避免文件损坏导致变量重置。

六、实操补充要点

1.攻沙时长可在服务端“沙巴克设置.txt”中调整,默认时长60分钟,按需修改;2.元宝物品名需与服务端“物品数据库”一致,若元宝名为“绑定元宝”,需替换脚本中“元宝”为对应名称;3.可在NPC脚本中添加奖励领取时限,如“CHECKTIME24”限制24小时内领取,超时失效;4.修改前备份所有涉及文件,避免脚本错误导致服务端异常。

综上,按上述脚本配置后,可实现HERO引擎全自动攻沙流程,搭配NPC差异化奖励发放,无需手动操作,精准匹配开区4天首攻及后续每日攻沙需求,脚本逻辑闭环,适配多数HERO引擎版本。
[顶部]