M2启动或运行报脚本错误,先不要整体替换版本。看控制台红色信息里的文件名、路径、行号、命令名,再按目录定位。Envir下Market_Def放NPC对话脚本,QuestDiary放任务和系统触发,QFunction-0、QManage等处理登录、升级、击杀、拾取等全局事件,Robot_def放机器人定时脚本,MonItems放怪物爆率,MapQuest_def和MapEvent放地图进入、死亡、坐标触发。M2日志通常在Mir200\Log,重点看M2Server日期日志、ScriptError.log、ErrorLog.txt,按时间筛最近一次启动或报错前后的记录。
M2直接弹“脚本错误”并带行号,例如QuestDiary\活动.txt第135行,先确认路径下文件是否存在。文件丢失就补全同名文本;文件存在就按行号检查。GOM、GEE类若用扩展命令,先到M2插件管理看所需插件是否加载,插件未开会导致命令不识别。插件正常仍报错,可能是引擎过旧,老0328、0538对部分新命令支持差,可换同系稳定包并在保留Envir和数据库前提下替换核心程序。替换前备份Mir200、Mud2DB、LoginSrv和各网关配置,不要直接覆盖原文件。
NPC点开没反应、聊天框红字、功能不执行,用Notepad++打开对应Market_Def脚本。先查标签:对话主菜单一般写[@main],子功能写[@名称],调用GOTO @名称、CALL路径@名称时目标标签必须存在且拼写一致,标签前不要留Tab或全角空格。再查条件结构:#IF下面跟判断,#ACT下面跟执行,#SAY输出文本,分支用#ELSEACT,结束按引擎要求用#ENDIF或对应闭合;#IF后没有条件、#ACT写了判断、#SAY里混用中英文引号都会解析异常。变量规则分开:个人变量按引擎用A-Z或N数字等前缀,全局用G前缀,S类字符串变量不要直接当数字运算;MOV写中文值、EQUAL比用户名但前面赋值逻辑混乱,都会让条件永远不中。物品用GIVE、CHECKITEM、TAKE时名称要和StdItems数据库一致,数量格式写全;地图用MAP、MOVE、MapQuest相关命令时编号要在MapInfo存在;刷怪用MONGEN、脚本刷怪命令时怪物名要在Monster数据库存在,否则执行到该行中断。
编码问题很常见。传奇脚本多数要求ANSI,用系统记事本另存可能变成UTF-8或带BOM,中文路径、命令、变量名会乱码,M2加载失败或NPC空白。Notepad++打开后编码菜单转ANSI再保存;换行符用Windows CRLF,不用Unix LF。从网页、QQ、Word复制脚本常带不可见字符,粘贴后把报错行手动重打一遍,删除多余空格、全角逗号、全角括号、Tab缩进。
运行一段时间报“脚本死循环”或“ScriptGotoCountLimit”,看提示里的NPC名、机器人名、GOTO标签。死循环多是GOTO跳回上层、条件永远不满足、缺少BREAK、定时器只启动不关闭。Robot_def的RobotManage.txt格式为“分钟 脚本文件”,分钟必须数字,子脚本放QuestDiary\Robot_def或引擎要求目录;定时泡点、自动活动要用SetOnTimer启动,配套KillScTimer或到达条件后关闭,避免每分钟重复进同一段。!Setup.txt里ScriptGotoCountLimit类参数可临时放大便于测试,但根本做法是改脚本逻辑,不靠无限跳转移除报错。
插件和引擎命令不兼容分几种:GOM脚本用到GEE专属命令、Hero脚本用到GOM插件命令、老引擎用到新CALCVAR或复杂变量表达式,都会Unknown command。处理时先比对当前引擎命令手册,不支持就改成基础MOV、ADD、SUB、GIVE、TAKE、GOTO、CALL;需要高级功能再装同版本插件并在PlugList.txt启用,Plugins目录放错dll会PluginConflict或启动失败。部分GOM路径脚本把“.\”写成“..\”会找不到文件,输入框脚本@@InPutString要按引擎改@InPutString,在线检测CheckOnline类名按GOM/GEE差异调整,大对话框OpenBigDialogBox按引擎换成OPENMERCHANTBIGDLG对应参数。
改完不要只重登游戏。Market和单独NPC可在M2控制-重新加载里重载;QFunction、QManage、登录触发常需重载对应功能脚本,少数核心改动要整服重启M2。重载后小退角色再点NPC;若仍无变化,确认是否改错文件、是否文件被加密、是否另一份同名脚本在别的目录被优先加载。排错用增量法:一次只改一个文件或一个标签,重启测试;不确定哪段出错就用//注释大段,逐步放开,配合M2脚本日志看加载到哪一行停。
数据库关联错误表现像物品发不出、怪物不刷、任务领奖中断。StdItems.DB/StdItems.txt检查物品名、编号、价格、库存字段;Monster.DB检查怪物名和刷点参数;HeroDB类Access路径在控制器配置,DBC类看DBC2000和HeroDB别名。DBServer报初始化失败,检查DB目录写权限、系统账号权限、文件被杀毒隔离;Win10/Win11跑M2、DBServer、网关用管理员身份,关掉会把dll、exe、脚本误删的杀软规则。
内存溢出、卡顿、脚本超时,多是脚本嵌套循环多、机器人同时跑大段、爆率或洗屏公告太频繁。M2选项-内存设置可适当提分配,但更稳妥是拆QuestDiary子目录、合并重复定时任务、减少每周期GOTO次数、把大批量判断改到触发条件里而非每秒全量扫描。被三人以上功能同时写QFunction时,用变量前缀区分模块,避免自动拾取、上线奖励、装备触发共用水位变量互相覆盖。
备份和回滚是最后兜底。每次动脚本前复制原文件为xxx_bak.txt,动!Setup、Merchant、Npc.txt、RobotManage、QManage前打压缩包;若替换别人整包后大量报错,先用同版本干净Envir做对照,把Market_Def、QuestDiary按模块逐个迁回,不一次性全覆盖。网关、登录器、pak、列表地址问题不属于纯脚本错误,但会让NPC看起来没反应,需单独看LoginSrv的!addrtable、RunGate/SELGate端口、登录器资源匹配。
wuduy.com相关标题名和链接:
传奇架设遇到脚本错误 全面排查及解决办法 http://www.wuduy.com/html/jishuwenzhang/chuanqi/186710.html
传奇架设遇脚本错误?从排查到修复的完整解决指南 http://www.wuduy.com/html/jishuwenzhang/chuanqi/148487.html
传奇架设脚本错误排查与解决方法详解 http://www.wuduy.com/html/jishuwenzhang/chuanqi/197002.html
传奇服务端脚本错误全场景排查:M2日志定位与语法编码路径修复手册 http://www.wuduy.com/html/jishuwenzhang/chuanqi/223649.html
传奇脚本报错完整排查解决教程,日志语法编码路径插件各类故障处理 http://www.wuduy.com/html/jishuwenzhang/chuanqi/231178.html
传奇服务端脚本修改后游戏内无变化排查与修复 http://www.wuduy.com/html/jishuwenzhang/chuanqi/191373.html
传奇架设脚本错误解决方法 全场景排查与实操步骤 http://www.wuduy.com/html/jishuwenzhang/chuanqi/182531.html
传奇架设GOM引擎常见问题汇总与排查解决 http://www.wuduy.com/html/jishuwenzhang/chuanqi/217663.html
传奇架设脚本错误排错大全:M2报行号NPC无反应死循环编码插件修复
来源:
作者:
点击:

