传奇游戏活动脚本主要通过QManage.txt、QFunction.txt和自定义NPC文件实现,核心在于事件触发机制与条件动作匹配。所有活动必须绑定明确入口点,通常使用NPC对话或定时器启动。
基础活动结构包含三个要素:触发条件、执行动作、结束处理。以每日签到为例,在QManage.txt的[@Main]标签下添加菜单选项“每日签到”,对应跳转至[@SigninEvent]。该标签内先用ISLOGIN检查角色是否在线,再用CHECK[123]检测今日是否已签到(123为自定义变量编号)。若未签到,执行GIVE命令发放奖励,并用SET[123] 1标记状态,同时记录当前日期至STRING变量防止跨天重复。
限时打怪活动需结合时间判断。在QFunction.txt中设置[@Timer5](每5秒触发一次),内部使用CHECKTIME 10 12验证是否处于活动时段。配合CHECKMAP确认玩家位于指定地图,再用CHECKMONCOUNT统计怪物数量。当击杀数达标时,通过SENDMSG通知玩家并给予物品奖励。关键指令包括KILLMONEXPRANGE清除区域怪物、MAPMOVE传送至领奖点。
节日BOSS召唤活动依赖物品触发。在QFunction.txt的[@UseItemEx]标签中检测特定道具(如“屠龙令”),满足条件后执行SUMMON命令生成BOSS。需同步开启死亡事件监听,在[@KillMonEx]中判断怪物名称,匹配成功则广播全服消息并发放参与奖励。为防刷怪,应加入COOLDOWN冷却检测,例如CHECKCOOLITEM '屠龙令' 3600限制一小时内仅使用一次。
多人组队活动需验证队伍状态。使用CHECKLEADER判断是否为队长,CHECKGROUPNUM确认队伍人数≥3人。达标后通过GROUPMOVE将全队传送至副本地图,副本内设置独立计时器。超时未完成时,在[@MapTimer_副本名]中执行GROUPMOVE返回主城,并清除副本内所有怪物。
所有活动变量建议采用独立编号段避免冲突,如签到用100-199,BOSS用200-299。奖励物品需预先在DBase目录的ItemList.txt注册,确保ID有效。脚本保存后必须重载脚本或重启M2服务端生效,测试时优先使用单账号验证流程完整性,重点检查变量重置逻辑和边界条件处理。

