传奇杀怪任务脚本核心是实现“NPC接取-杀怪计数-交任务领奖”闭环,依赖变量记录进度,适配QuestDiary.txt或QManage.txt文件,新手可按固定框架快速编写。
核心前提:必备指令与文件选择
一、杀怪任务专属指令(必记)
1. SET 变量名 数值:定义任务变量,记录杀怪进度,如SET KILLCOUNT 0(初始化杀怪计数为0)。
2. CHECKVAR 变量名 比较符 数值:判断变量值,如CHECKVAR KILLCOUNT >= 10(检查杀怪数≥10)。
3. CHANGEEXP + 数值:发放经验奖励,如CHANGEEXP + 5000(奖励5000经验)。
4. MAPMOVE 地图ID X Y:传送玩家至指定地图,可选用于引导杀怪区域。
5. CLEARVAR 变量名:清除任务变量,重置任务状态,方便重复接取。
二、文件选择建议
1. 新手首选QManage.txt:全局通用文件,编写简单杀怪任务无需复杂配置,重启服务端即可生效。
2. 复杂任务用QuestDiary.txt:适合多阶段杀怪任务,支持任务列表显示,需配合NPC配置文件关联。
提示:无论选择哪个文件,编写前务必备份原文件,避免覆盖原有脚本。
脚本核心框架(三段式闭环)
杀怪任务脚本分三部分,对应接取、杀怪、交任务三个环节,逻辑连贯且格式固定,可直接套用修改。
第一部分:NPC接取任务(初始化变量)
核心功能:判断玩家是否满足接取条件(等级),同意后初始化杀怪变量、提示任务目标,可选传送至杀怪区域。
基础格式:
(@主线杀怪任务) // 任务段落标识,可自定义命名
#IF // 接取条件:等级门槛
CHECKLEVELEX >= 15
#ACT // 同意接取后操作
SET KILLCOUNT 0 // 初始化杀怪计数变量
SENDMSG 5 已接取【杀怪任务】,前往野外击杀10只狼! // 任务提示
MAPMOVE 0 300 300 // 可选:传送至比奇野外(地图ID0)
#ELSE // 不满足条件提示
SENDMSG 5 等级不足15级,无法接取该任务!
第二部分:杀怪计数(变量累加)
核心功能:玩家击杀目标怪物后,自动累加变量值,实时提示进度,达成目标后告知可交任务。
基础格式:
(@杀怪计数) // 需绑定怪物死亡触发
#IF // 判断是否为任务目标怪物、是否已接任务
CHECKMONNAME 狼 // 目标怪物名称,需与服务端一致
CHECKVAR KILLCOUNT < 10 // 未达成目标
#ACT // 累加计数并提示
SET KILLCOUNT + 1 // 杀怪数+1
SENDMSG 5 已击杀狼{KILLCOUNT}/10只,继续努力! // 显示当前进度
#IF // 达成目标后提示
CHECKVAR KILLCOUNT == 10
#ACT
SENDMSG 5 任务目标达成!返回找NPC提交任务领取奖励!
第三部分:交任务领奖(变量清零)
核心功能:判断玩家杀怪数是否达标,达标后发放经验、物品奖励,清零变量重置任务状态。
基础格式:
(@提交杀怪任务)
#IF // 任务达标条件
CHECKVAR KILLCOUNT >= 10
#ACT // 发放奖励并重置
CHANGEEXP + 5000 // 奖励5000经验
ADDITEM 小红药 10 // 奖励10瓶小红药
ADDGOLD 2000 // 奖励2000金币
CLEARVAR KILLCOUNT // 清零变量,可重复接取
SENDMSG 5 任务提交成功!获得经验5000、小红药10瓶、金币2000!
#ELSE // 未达标提示
SENDMSG 5 尚未击杀足够数量的狼,无法提交任务!
完整实操案例(可直接复制使用)
需求:NPC“任务使者”处接取任务,等级≥15级可接,击杀10只狼后返回交任务,奖励5000经验、10瓶小红药、2000金币。
脚本代码(写入QManage.txt):
(@main) // NPC主对话界面
#SAY
欢迎来到任务中心!\ // 换行符号,游戏内显示换行
<接取杀怪任务/@主线杀怪任务>\ // 可点击选项,跳转接取段落
<提交杀怪任务/@提交杀怪任务> // 可点击选项,跳转提交段落
(@主线杀怪任务)
#IF
CHECKLEVELEX >= 15
#ACT
SET KILLCOUNT 0
SENDMSG 5 已接取【杀怪任务】,前往野外击杀10只狼!
MAPMOVE 0 300 300
#ELSE
SENDMSG 5 等级不足15级,无法接取该任务!
(@杀怪计数)
#IF
CHECKMONNAME 狼
CHECKVAR KILLCOUNT < 10
#ACT
SET KILLCOUNT + 1
SENDMSG 5 已击杀狼{KILLCOUNT}/10只,继续努力!
#IF
CHECKVAR KILLCOUNT == 10
#ACT
SENDMSG 5 任务目标达成!返回找任务使者提交任务领取奖励!
(@提交杀怪任务)
#IF
CHECKVAR KILLCOUNT >= 10
#ACT
CHANGEEXP + 5000
ADDITEM 小红药 10
ADDGOLD 2000
CLEARVAR KILLCOUNT
SENDMSG 5 任务提交成功!获得对应奖励,可再次接取任务!
#ELSE
SENDMSG 5 尚未击杀足够数量的狼,无法提交任务!
NPC配置与脚本生效步骤
第一步:配置NPC显示。打开服务端Envir文件夹下的Merchant.txt,添加NPC信息:任务使者 0 320 320 0 1 0,代表NPC“任务使者”出现在比奇(地图ID0)320:320坐标,形象代码1。
第二步:绑定杀怪触发。将(@杀怪计数)段落绑定至狼的死亡脚本,打开Envir\MapQuest_def文件夹,找到对应怪物脚本文件,添加触发语句:ONDEATH @杀怪计数。
第三步:保存与生效。保存QManage.txt及NPC配置文件,重启游戏服务端,登录游戏即可在对应坐标找到NPC接取任务。
常见问题及解决方法
1. 杀怪不计数:核对CHECKMONNAME后的怪物名称,需与服务端Skills.txt中怪物名称完全一致,避免中文错别字;检查杀怪计数段落是否绑定正确。
2. 无法提交任务:确认变量名统一(如均为KILLCOUNT),无拼写错误;检查CLEARVAR指令是否遗漏,变量未清零会导致重复接取异常。
3. NPC不显示:核对Merchant.txt中NPC信息格式,地图ID、坐标需正确,形象代码需在有效范围(0-46)内,添加后可使用@reloadnpc指令刷新。
4. 奖励不发放:检查CHANGEEXP、ADDITEM指令参数,经验数值需为正数,物品名称需与服务端Item.txt中内置标识一致,不可用中文显示名替代。
进阶优化技巧(新手可逐步尝试)
1. 限制接取次数:添加CHECKDAYCOUNT指令,如CHECKDAYCOUNT 1,设置每日仅可接取1次,提升任务稀缺性。
2. 多怪物目标:在杀怪计数段落添加多个CHECKMONNAME语句,支持击杀多种怪物完成任务,适配复杂场景。
3. 动态奖励:根据玩家等级调整经验奖励,如CHANGEEXP + {LEVEL}*100,让奖励随等级增长,提升合理性。

