当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇服务端改了脚本游戏里没变化:路径、重载、编码、语法排查

热度:
改完脚本进游戏没反应,最常见不是引擎坏了,而是“引擎还在跑旧文件”。传奇服务端不会自动监听文件改动,存盘≠生效,必须让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]#SAYhello改了能看见吗
5.看不见→重载/重启/清登录器缓存
6.看得见还不对→条件写错了

新手别纠结“热重载多高级”,改NPC功能就重载NPC,改登录脚本就重启M2,改爆率就重载MonItems,改地图就重载MapInfo。改完进游戏先小退重登,不行再重启,再不行把脚本删到最简逐步加,比对着几百行脚本瞎猜快得多。
[顶部]