传奇脚本(主要指NPC对话脚本、任务脚本、触发脚本)是纯文本.txt文件,用记事本或Notepad++编写,按引擎规范放在服务端对应目录即可生效。以最常用的Hero引擎/GOM引擎为例:
脚本文件分类与存放路径
服务端通常在 D:\MirServer\Mir200\Envir\
• NPC功能脚本:Market_Def\ 目录,每个可对话NPC一个.txt文件,文件名须与Merchant.txt注册名对应。
- 任务脚本:MapQuest_def\ 目录(QuestDiary子目录按任务分类),用于定时任务、杀怪任务。
• 登录/全局触发脚本:MapQuest_def\QManage.txt(上线触发)、QFunction-0.txt(物品使用/死亡/升级等全局事件)。
基础语法结构
脚本以标签[@标签名]分段,[@main]是NPC默认入口。核心关键字:
• [@标签] — 程序跳转锚点,点击选项或GOTO跳转至此。
• #IF — 条件判断开始,后跟检测命令(等级、金币、物品、职业等)。
- #ACT — #IF条件满足时执行的动作(给物品、扣金币、传送等)。
• #ELSEACT / #ELSESAY — 条件不满足时执行或显示内容。
• #SAY — 显示对玩家说的话,\ 换行, <选项@标签> 生成可点击链接。
- BREAK — 终止当前段执行,防止穿透到下一段。
常用检测命令:CheckLevel 数字(等级)、CheckGold 数字(金币)、CheckItem 物品名 数量(背包有某物)、CheckJob Warrior/Wizard/Taoist(检测职业)、IsOnMap 地图编号(在某地图)。
常用动作命令:GIVE 物品名 数量(给)、TAKE 物品名 数量(扣)、TAKEMONEY 数字(扣金币)、MAPMOVE 地图号 X Y(传送到坐标)、SENDMSG 6 文字(系统提示)、SET HUMANVAR 变量 值(设变量)。
注册NPC(Merchant.txt)
在 Envir\Merchant.txt 添加一行注册NPC:
NPC显示名 地图号 X Y NPC名称(与脚本文件名前缀一致) 标志 外观码 其他参数
例:在新手村(地图0)坐标330 268放一个名为"福利使者"的NPC,脚本文件叫"福利使者-0.txt"
福利使者 0 330 268 福利使者-0 0 88 0 0 0 0
标志填0为普通对话NPC,外观码对应NPC模型ID。改完保存,服务端控制台输 @reloadnpc 刷新或重启引擎。
实战:新手领装备NPC脚本示例
在 Market_Def\ 新建"福利使者-0.txt",内容:
[@main]
#SAY
欢迎来到服务器!选择你的职业领取起步装备:\
\
<战士领屠龙@warrior> \
<法师领骨玉@mage> \
<道士领逍遥扇@taoist> \
<离开@exit>
[@warrior]
#IF
CHECKJOB Warrior
#ACT
GIVE 屠龙 1
GIVE 战神盔甲(男) 1
SENDMSG 6 战士装备已发放!
BREAK
#ELSEACT
SENDMSG 6 只有战士才能领这套!
[@mage]
#IF
CHECKJOB Wizard
#ACT
GIVE 骨玉权杖 1
GIVE 法神披风 1
SENDMSG 6 法师装备已发放!
BREAK
[@taoist]
#IF
CHECKJOB Taoist
#ACT
GIVE 逍遥扇 1
GIVE 天尊道袍(男) 1
SENDMSG 6 道士装备已发放!
BREAK
保存时注意编码选ANSI避免中文乱码,文件名与Merchant.txt中注册的一致。
任务脚本(杀怪交任务)简例
在 MapQuest.txt 登记任务号,在 QuestDiary\某分类\任务名.txt 写:
[@杀鹿任务]
#IF
CheckItem 鹿肉 1
#ACT
TAKE 鹿肉 1
GIVE 金币 10000
GIVE 沃玛戒指 1
SENDMSG 6 任务完成,奖励已发!
BREAK
#ELSESAY
你还没打到鹿肉,去比奇外围杀鹿吧。
配合MonItems数据库让鹿掉鹿肉即可形成完整循环。
新手注意
• 所有脚本文件必须ANSI编码保存,UTF-8会导致中文显示乱码或NPC不读脚本。
• 标签名区分大小写,[@main]和[@Main]在某些引擎会被视为不同。
- 修改脚本后需 @reloadnpc 或重启M2方可生效。
• 复杂功能(变量、计时器、泡点、装备回收)在基础结构上叠加 #IF CHECK [变量]、INC U0 1、SetOnTimer 等命令实现。
掌握以上结构后可以照葫芦画瓢改现成脚本,大部分版本包里自带大量现成NPC脚本可参考模仿。
热血传奇热血传奇Mir2与GOM引擎NPC任务脚本制作入门 脚本语法Merchant注册与实例详解
来源:
作者:
点击:

