改完脚本进游戏没反应,最常见不是引擎坏了,而是“引擎还在跑旧文件”。传奇服务端不会自动监听文件改动,存盘≠生效,必须让 M2 重新读脚本,或者重启服务端。
先按类型看改的是哪类:
• NPC 对话/功能脚本:Mir200\Envir\Market_Def\ 里面“XXX-地图号.txt”
• NPC 列表:Mir200\Envir\Merchant.txt
• 登录/上线触发:Mir200\Envir\MapQuest_def\QManage.txt
• 功能触发(装备、技能、捡物):Mir200\Envir\QuestDiary\ 下对应子目录
• 机器人/定时:Robot.txt、Robot_def
- 爆率:MonItems.txt;刷怪:MonGen.txt;地图:MapInfo.txt
一、没重载,改了也白改
NPC 脚本改完,M2 里点:控制 → 重新加载 → 所有 NPC / Market / QFunction / 管理脚本。
GM 命令常用:
@ReloadNpc
@loadnpc
@ReloadQFunction
@ReloadManage
@ReloadRobot
不同引擎命令名不一样,HERO/GOM/GEE 略有差别,M2 里查游戏命令最准。
二、改的是核心脚本,重载没用,得重启
QManage.txt 的 [@Login]、变量系统、Merchant.txt 新增 NPC、地图编号改了、DBC 里 NPC 坐标改了,这种别省事,直接关 M2Server、LoginSrv、DBServer、网关,再按顺序起。只小退角色不重启,很多时候还是旧逻辑。
三、文件改错地方了
你以为改的是“土城老兵”,其实改的是桌面上备份文件,或者 QuestDiary 里新建了同名子目录,Market_Def 里根本没动。
核对三处:
1. Merchant.txt 里 NPC 名:泡点使者
2. Market_Def 里文件:泡点使者-3.txt(3 是土城地图号)
3. 游戏里点的就是这个 NPC
名字、地图号、文件名对不上,改一万次也没用。
四、编码坏了
Windows 记事本保存容易变成 UTF-8 带 BOM,老引擎读 ANSI 脚本会整段不解析。
用 Notepad++ 打开,编码转 ANSI 或 UTF-8 无 BOM(看引擎),别用写字板、WPS、Word。文件后缀别变成 .txt.txt,资源管理器没开“显示扩展名”时最容易踩。
五、语法错了,引擎静默跳过
IF 没 #ACT,#SAY 没换行,GOTO 跳到不存在的标签,CHECK 条件永远不成立,全角逗号全角冒号,变量没声明,都会让这段不执行。
M2 控制台看红色 scripterror / 脚本错误;没报错但没效果,就把条件先删掉,只留 #ACT + #SAY 测能不能出字,能出字再慢慢加逻辑。
六、客户端/登录器缓存
有的登录器会缓存 NPC 描述、地图配置、UI 资源。服务端真改好了,玩家侧还看旧内容:删登录器目录里的 cache,重开登录器,小退重登,别用“换线不重连”糊弄自己。
七、触发条件根本没满足
脚本加载成功了,但你测试方式不对。比如:
• 写了等级>35 才给奖励,你 30 级去点,当然没反应
• 写了检测背包有“元宝”才进分支,你包里是“金条”
• 写了 OnLogin 触发,你不想小退,站着等当然不触发
这种不是“没生效”,是“条件没过”。
八、文件被占用/杀软拦截
服务端目录没加白,杀软把改完的文件锁了,编辑器存的是临时文件;或者 FTP 传上去但权限不对,M2 读的是 Mir200\Envir 原文件,你传到了 Mir200\Envir_copy。
看文件修改时间:进游戏前改完,文件时间没变,说明存的不是那个文件。
最快排错顺序:
1. 看 M2 控制台有没有红错
2. 看文件修改时间对不对
3. 看 Merchant / Market_Def / QuestDiary 三处名字是否一致
4. 用最简脚本测:[@main] #SAY hello 改了能看见吗
5. 看不见 → 重载/重启/清登录器缓存
6. 看得见还不对 → 条件写错了
新手别纠结“热重载多高级”,改 NPC 功能就重载 NPC,改登录脚本就重启 M2,改爆率就重载 MonItems,改地图就重载 MapInfo。改完进游戏先小退重登,不行再重启,再不行把脚本删到最简逐步加,比对着几百行脚本瞎猜快得多。
传奇服务端改了脚本游戏里没变化:路径、重载、编码、语法排查
来源:
作者:
点击:

