Hero(LegendHero)引擎加NPC不需要非用软件,手动改两个文本文件就能成,可视化工具只是把这两步包了一层界面。先讲手动,再讲有哪些软件能用,最后给排查清单。
一、手动添加NPC(最稳,所有Hero端通用)
Hero引擎的NPC分两类:纯功能对话NPC走 Merchant.txt + Market_Def 目录;带任务/复杂跳转的走 NPC.txt + QuestDiary 目录。绝大多数“加个传送员/回收员/领奖员”用 Merchant 体系就够了。
1. 在 Merchant.txt 注册坐标
路径:Mir200\Envir\Merchant.txt
末尾另起一行,格式(字段间用空格,不是逗号):
地图号 X Y NPC名字 标志 外观 是否沙 是否移动 移动间隔 脚本名(无后缀)
例:在盟重(地图3)330 330 放一个“装备回收员”,外观用50(老兵类),脚本文件叫 Huishou:
3 330 330 装备回收员 0 50 0 0 0 Huishou
• 地图号查 Mir200\Envir\MapInfo.txt
• 外观编号对照 Hero 的 NPC 外观表(30商人、50老兵、509传送石等),填错就显示成怪或空白
• 脚本名不带 .txt,引擎自动去 Market_Def 找 Huishou-3.txt(3是地图号)
2. 写脚本文件
路径:Mir200\Envir\Market_Def\Huishou-3.txt(没有就新建,编码 ANSI)
最小可用结构:
[@main]
#SAY
欢迎来找我回收装备\r
<回收装备/@huishou>\r
<关闭/@close>
[@huishou]
#IF
CheckItem 裁决之杖 1
#ACT
Take 裁决之杖 1
Give 元宝 5000
#ELSEACT
SendMsg 5 你没有裁决之杖
[@main] 是入口,必须和 NPC 被点击时调用的首标签一致;选项用 <文字/@标签> 写法;#IF/#ACT/#ELSEACT 是标准三段。
3. 加载生效
M2 控制台 → 脚本命令 → 重新加载 NpcTalk 脚本(或“重新加载所有NPC”)。改了 Merchant.txt 坐标/名字的,再点“刷新指定地图NPC”或重启 Mir200。进游戏跑过去点一下,能对话就成。
二、带任务系统的NPC(NPC.txt + QuestDiary)
如果脚本里要用到 @Login、#CALL、MapQuest 类机制,走另一套:
• Mir200\Envir\NPC.txt 里加一行:地图 X Y 名字 外观 脚本文件 入口标签
- 脚本放 Mir200\Envir\QuestDiary\自定义文件夹\脚本文件.txt,里面写 [@入口标签]
• 这套适合做主线、每日任务,普通商店/传送用 Merchant 体系更轻。
三、有没有软件可以添加?有,但非必需
• HeroNPC可视化编辑器:服务端 HeroEngine 文件夹里常带 HeroNPC.exe,或网上下“HERONPC可视化编辑器”“LEG传奇工具集”。界面上选地图、点坐标、填名字外观、选脚本名,自动写 Merchant.txt 并生成 Market_Def 脚本空壳。适合批量加、不想记格式的新手。
- 通用传奇NPC快速生成器:填表单出配置,本质还是生成那两行文本,方便在于帮你看字段别漏。
• 地图编辑器附带NPC页:如“传奇可视化编辑器”的NPC编辑页,能在map上拖点,再导出配置。
- 注意:软件版本要和你的 Hero 引擎版本对得上,老编辑器写新引擎字段(如变色参数)会丢;软件只是少打字,脚本逻辑还得自己写,软件生成空 @main 后功能还是要手敲。[cita:5]
四、加了不显示/点了没反应 排查
- Merchant.txt 里地图号错(把盟重写成0比奇了)→ 改对
• 坐标压在墙里或和别的NPC重叠 → 换 330 330 这种空地
• 外观编号引擎没有 → 换 50/30/509 试
• 脚本名写 Huishou.txt 带了后缀 → 去掉后缀只留 Huishou
- Market_Def 下文件名不是 Huishou-3.txt(地图号不对)→ 改成“脚本名-地图号.txt”
• 脚本编码是 UTF-8 中文变乱码 → 记事本另存为 ANSI
• 没重载NPC就进游戏 → M2 点重新加载 NpcTalk
- 客户端没补丁:用自带外观(50/30/509)不用管;自加 wix/wil 素材才要更 Shape 和客户端 Data
手动改文本五分钟一个NPC,软件也就是省了记字段顺序。先把 Merchant.txt 那一行的七个字段背下来(地图 X Y 名 标志 外观 沙 移动 间隔 脚本名),后面全是复制粘贴改坐标的事。

