“群魔王崛起之群魔乱舞”并不是HERO引擎自带固定脚本,而是活动类脚本名称。实现思路是在HERO引擎里用QManage.txt、QFunction-0.txt、NPC脚本和地图参数配合,完成活动开启、怪物刷新、玩家击杀统计、奖励发放、活动结束清理。下面按HERO引擎常用写法演示完整流程。
活动主NPC脚本
NPC放在Market_Def目录下,负责开启活动、查看状态、领取奖励。
[@main]
IF
SAY
\
当前状态:>\
剩余时间:>秒\
已刷新波数:>\
\
\
\
\
<关闭/@exit>
[@start]
IF
EQUAL G1 0
ACT
MOV G1 1
MOV G2 1800
MOV G3 0
SENDMSG 0 [群魔乱舞]活动已开启,群魔王即将降临!
CALL [@SpawnWave]
ELSESAY
[@stop]
IF
EQUAL G1 1
ACT
MOV G1 0
MOV G2 0
MOV G3 0
SENDMSG 0 [群魔乱舞]活动已关闭。
ELSESAY
[@reward]
IF
LARGE P0 0
ACT
GIVE 屠龙 1
SENDMSG 5 你获得了奖励:屠龙
MOV P0 0
ELSESAY
活动状态变量
G1用来记录活动是否开启,0为关闭,1为开启。G2记录剩余秒数,G3记录当前波数。P0记录玩家个人击杀数。全局变量需要确认当前HERO版本是否支持保存,不能保存的版本可用文件记录或重启后重置。
怪物波次刷新脚本
波次刷新可放在QFunction-0.txt或NPC脚本段中调用。
[@SpawnWave]
IF
EQUAL G1 1
ACT
INC G3 1
SMALL G3 10
MONGEN 群魔地图 200 200 群魔王 5
MONGEN 群魔地图 210 210 群魔卫士 10
SENDMSG 0 [群魔乱舞]第<STR(G3)>波怪物已刷新!
CALL [@StartTimer]
这里MONGEN用于在指定地图坐标刷新怪物,坐标和怪物名称需要替换为实际配置。如果引擎使用Mongen.txt管理刷新,也可以通过脚本触发对应刷新组。
倒计时脚本
倒计时通常由机器人脚本或定时器触发,每秒执行一次。
[@TimerTick]
IF
EQUAL G1 1
LARGE G2 0
ACT
DEC G2 1
SMALL G2 1
CALL [@EndActivity]
[@EndActivity]
IF
EQUAL G1 1
EQUAL G2 0
ACT
MOV G1 0
SENDMSG 0 [群魔乱舞]活动结束,请尽快领取奖励。
MONCLR 群魔地图
MOV G3 0
MONCLR用于清理活动地图中的怪物,避免活动结束后残留大量怪物。
击杀统计脚本
玩家击杀怪物后,在QFunction-0.txt的杀怪触发段中统计。
[@KILLMON]
IF
EQUAL G1 1
CHECKMONMAP 群魔地图
ACT
INC P0 1
SENDMSG 5 你已击杀<STR(P0)>只群魔怪物
CHECKMONMAP需要替换为当前引擎实际支持的地图判断命令。如果版本不支持该命令,可以改用地图进入、地图离开或怪物死亡触发配合变量判断。
奖励判断脚本
奖励可以在NPC领取,也可以击杀达标后自动发放。
[@AutoReward]
IF
EQUAL G1 1
LARGE P0 49
ACT
GIVE 裁决之杖 1
SENDMSG 5 击杀达标,获得奖励:裁决之杖
MOV P0 0
自动发放奖励时要注意背包空间检测,避免背包满时奖励丢失。
[#IF]
CHECKBAGSPACE 1
ACT
GIVE 裁决之杖 1
SENDMSG 5 奖励已发放
ELSEACT
SENDMSG 5 背包空间不足,请清理背包
活动地图配置
群魔乱舞活动建议使用独立地图,避免影响正常刷怪图。地图需要在MapInfo.txt中配置,设置禁止安全区挂机、禁止回城卷、禁止传送等参数,防止玩家随意进出影响活动统计。活动开始前可先清理地图怪物,活动结束后再次清理。
常见问题排查
活动开启后不刷新怪物,检查MONGEN地图名、坐标、怪物名是否正确。倒计时不减少,检查机器人脚本是否挂载,定时器标签是否正确。击杀不统计,检查QFunction-0.txt是否重新加载,触发段名是否与引擎版本匹配。奖励不发放,检查背包空间和变量条件。活动关闭后怪物未清除,检查MONCLR是否生效,地图名是否写对。
HERO引擎版本较多,部分命令名称、变量范围和触发标签会有差异。实际使用时应以当前引擎脚本帮助文档为准,先在小地图测试刷新、倒计时、击杀统计和奖励发放,确认无误后再放到正式活动地图。
传奇HERO引擎群魔王崛起之群魔乱舞脚本演示:活动开启、怪物刷新、奖励发放与变量控制
来源:
作者:
点击:

