在单机传奇中增加新任务,核心在于修改服务端目录下的两个关键配置文件:任务脚本文件(.txt)和任务配置文件(Missions.txt)。通过编写脚本逻辑和注册任务ID,即可实现任务的触发、追踪与奖励发放。
一、 编写任务脚本文件
任务脚本通常存放在 MirServerMir200EnvirMarket_Def 目录下。你需要在此目录下新建一个文本文件,例如命名为 任务使者-3.txt(-3 代表该NPC所在的地图代码,如盟重土城)。
在文本中编写任务逻辑,一个基础的任务脚本结构如下:
[@main]
IF
CHECKMISSIONID 101
ACT
SAY
你已经接取了【寻找铁矿】任务。 \
请前往矿洞击杀10只僵尸,并收集10个黑铁矿石。\
<查看任务进度/@CheckProgress>\
<放弃任务/@AbandonMission>
ELSEACT
SAY
勇士,矿洞里的僵尸越来越猖狂了。\
你能帮我收集10个黑铁矿石吗? \
<接受任务/@AcceptMission>\
<离开/@exit>
[@AcceptMission]
IF
ACT
SETMISSION + 101 1
SENDMSG 6 成功接取任务【寻找铁矿】!
ELSEACT
SENDMSG 6 任务接取失败!
[@CheckProgress]
IF
CHECKITEM 黑铁矿石 10
ACT
SETMISSION ^ 101 2
SENDMSG 6 你已收集齐黑铁矿石,请回来找我交付!
ELSEACT
SENDMSG 6 你目前拥有的黑铁矿石数量不足,请继续收集。
[@AbandonMission]
IF
ACT
SETMISSION - 101
SENDMSG 6 你已放弃任务【寻找铁矿】。
; 任务交付逻辑(当任务步骤为2时触发)
[@main]
IF
CHECKMISSIONID2 101
CHECKITEM 黑铁矿石 10
ACT
TAKE 黑铁矿石 10
GIVE 金币 50000
SETMISSION - 101
SENDMSG 6 任务完成!你获得了50000金币的奖励。
核心命令解析:
CHECKMISSIONID 101:检查玩家是否接取了ID为101的任务。
SETMISSION + 101 1:为玩家增加ID为101的任务,并设定当前步骤为1。
SETMISSION ^ 101 2:将ID为101的任务更新到第2步。
SETMISSION - 101:删除ID为101的任务(通常用于任务完成或放弃)。
CHECKITEM 黑铁矿石 10:检查玩家背包中是否有10个黑铁矿石。
TAKE 与 GIVE:分别用于扣除和发放物品或货币。
二、 注册任务配置文件
脚本写好后,还需要在服务端目录 MirServerMir200 下找到 Missions.txt 文件(如果没有则新建一个),将任务的基本信息注册进去。
在 Missions.txt 中添加以下内容:
;[类型(1=成长任务,2=日常任务,3=每日活动,4=节日活动)-任务ID]任务标题
[1-101]寻找铁矿
步骤1:请前往矿洞击杀10只僵尸,并收集10个黑铁矿石。
步骤2:收集完毕,请返回盟重土城找任务使者交付。
配置解析:
[1-101]:代表这是一个成长任务(类型为1),任务ID为101。这个ID必须与脚本中的 SETMISSION 命令里的ID完全一致。
寻找铁矿:任务的名称。
步骤1、步骤2:对应脚本中 SETMISSION 设定的步骤数值,用于在任务面板中向玩家展示当前阶段的进度提示。
三、 配置NPC坐标与刷新
完成上述两步后,还需要让NPC在游戏地图中显示出来。
打开 MirServerMir200Envir 目录下的 MerChant.txt 文件,在末尾添加一行配置代码:
任务使者 3 330 330 任务使者 0 5 0
第1列:NPC名称(需与脚本文件名前缀一致)。
第2列:地图代码(3代表盟重土城)。
第3、4列:X和Y坐标(330 330代表土城的具体位置)。
第5列:NPC代码(0代表铁匠形象,可根据需要替换为其他数字,如14代表天尊,46代表勇士等)。
完成所有修改并保存文件后,打开M2引擎控制器,点击“控制” -> “重新加载” -> “所有NPC”。进入游戏走到土城对应坐标,即可看到新增的任务NPC并进行交互。

