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

传奇服务端改了脚本游戏里没变化排查

热度:
先确认你改的是哪类脚本,再按对应方式让服务端重新读盘。传奇引擎启动时会把脚本读进内存,运行中改硬盘文件,内存里的旧逻辑不会自己变。

一、NPC对话/功能脚本(Market_Def、QuestDiary)
改了NPC说的话、菜单、发物品、接任务没反应:
•GOM/GEE:M2→控制/脚本管理→重新加载→重新加载所有NPC/重新加载Merchant/重新加载QuestDiary

-HERO:M2→脚本管理→重新加载所有脚本
•老LEG:很多版本不支持热重载,直接关M2重启

重载完让玩家小退到角色界面再进,别站原地点NPC,有时候对话缓存没清。

二、刷怪MonGen.txt
改了怪物名、坐标、数量、时间,进图没新怪:
•M2→重新加载→MonGen/怪物刷新

•或者重启M2

注意:已经刷出来的怪不会消失,要等旧怪死掉或刷新周期到了才看得到变化。怪物名必须和Monster.DB里一致,写“祖玛卫士”但库里是“ZuMaWeiShi”,引擎当没这怪,一行都不刷。

三、掉落MonItems
改了爆率进图杀怪还是不掉:
•重新加载MonItems/物品掉落

•杀的怪必须是新刷新出来的,刚才还活着的旧怪用老掉落表

•文件名叫“祖玛卫士.txt”,数据库里怪物名不对就匹配不上

-M2里“爆率控制/全局爆率倍数”如果是0,你写1/100也当0处理

四、地图MapInfo.txt
改了PK模式、回城点、是否允许行会、是否掉装备:
•重新加载MapInfo

-已进图的人要重新进地图才生效
•地图号写错、地图文件100.map不存在,配置再对也白搭

五、登录/全局触发QManage、QFunction、MapQuest
改了上线送东西、死亡触发、攻击触发没反应:
这类脚本很多引擎不会热重载,或者只重载一部分。最稳是重启M2。QFunction改了不生效,先去看M2日志有没有“ScriptError/Syntaxerror/Unknowncommand”。有报错,引擎可能整段跳过,游戏里当然没变化。

六、文件改错地方
常见低级错:
•改了桌面上备份的“杂货商.txt”,服务端读的是Mir200\Envir\Market_Def\杂货商.txt

•QuestDiary里写了新功能,但NPC的Market_Def文件里没#CALL过去

-文件名大小写/空格:“成长任务.txt”和“成长任务.txt”不是同一个
•改了子目录里的文件,但主菜单没引用

看文件修改时间,确认你编辑器保存的那份,就是服务端目录里的那份。

七、编码和隐藏字符
用记事本另存成UTF-8带BOM,老引擎第一行会被BOM头搞坏,[@main]不认,NPC点开空白或关对话框。
处理:
•Notepad++/VSCode打开

•编码转ANSI或UTF-8无BOM(看你引擎,老LEG多ANSI,新GEE/HERO多UTF-8无BOM)

-全角逗号、全角冒号、全角空格、Tab和空格混用,都会让脚本解析异常
•文件属性别是“只读”,整个Mir200目录也别只读,不然保存了其实没写进去

八、语法错了但没看日志
脚本有错时表现就是“没变化”:
•#IF后面没条件

•#ACT写了引擎不认识的命令(ADDGAMEGOLD塞进GOM、GameGold塞进LEG)

•[@main]拼成[@Main]但引擎大小写敏感

•#CALL路径写错:CALL[任务\发奖.txt]@reward实际路径是QuestDiary\任务\发奖.txt

•末尾多全角空格、多花括号

M2控制台红色字、Mir200\Log\Script.log/Error.log会写“第几行、哪个文件、什么错”。没报错≠生效,可能是被跳过。

九、触发条件根本没满足
脚本加载成功了,但你测试方式不对:
•写“等级≥35才发奖”,你30级去点,当然没东西

•写“CHECK[000]1才能领”,你没做过前置任务

•写“非安全区生效”,你站土城药店门口试,不触发

•写“杀死祖玛教主后触发”,你杀的是小白

先放一个最简单测试:

[@main]
#ACT
#SAY
脚本已加载

能说出“脚本已加载”,说明NPC和文件链路通了;还说没变化,就是没重载或改错文件。

十、微端/客户端补丁问题
服务端脚本对了,但玩家看到的东西不变:
•NPC形象没变:客户端Data/UI补丁没更新,不是脚本问题

-任务栏/按钮不显示:客户端UI没这功能,服务端发了客户端也不画
•装备属性没变:StdItems.DB没改,只改了脚本发装备,发出来还是老属性

这种“游戏里没变化”不是脚本没加载,是客户端资源/数据库没配合。

十一、缓存和进程没退干净
改完重启还不行:
•M2Server.exe关了但又有第二个M2在跑

•启动器点了好几次,两个网关

•改的是A服务端,起的是B服务端

•有ScriptCache.dat的老引擎,删掉缓存再起

•杀软把Mir200目录锁了,文件保存被拦截

十二、最快排错顺序
1.看M2日志有没有ScriptError
2.看文件修改时间,确认改的就是服务端那份
3.改NPC:重载所有NPC→玩家小退重进
4.改MonGen:重载刷怪→等旧怪刷新
5.改MapInfo:重载地图→重新进图
6.改QManage/QFunction:直接重启M2
7.放一句#SAY测试文本,能出来说明加载链通
8.还不行就换记事本编码、查#CALL路径、查命令名是否对应当前引擎

十三、各引擎一句话
•LEG:能重启就重启,热重载不可信

•GOM/GEE:M2控制里重载NPC/MonGen/MapInfo,QFunction和QManage改了重启最稳

-HERO:脚本管理里重载,lua插件改了有时要重载插件甚至重启
•翎风/3K/M3:看自带文档,命令集不一样,别把GOM脚本硬抄过去

改脚本没变化,90%不是引擎坏了,是“改错文件/没重载/编码坏了/日志里已经报错你没看/触发条件没满足”。先放一句测试话,再重载,再看日志,比瞎重启一百次有用。
[顶部]