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

传奇游戏不开门排查步骤网关M2配置与地图文件故障处理

热度:
进入游戏之后点击开门没有反应,优先区分是所有地图大门都无法开启,还是单张地图出现不开门,两种故障的排查方向不一样。先重启M2程序,临时排除脚本内存异常,重启之后直接测试开门,部分临时脚本异常重启后可以恢复。

如果只是单张地图大门不开,先检查地图文件,打开服务端map文件夹,核对对应地图的map文件是否完整,地图文件缺失或者损坏,大门的触发标识无法加载。使用地图编辑器打开地图,查看大门位置的触发器,大门触发器需要绑定开门脚本,触发器类型选择开门,脚本编号填写正确。触发器丢失、坐标偏移,都会造成点击大门没有响应。
核对大门脚本文件,打开服务端Mir200\Envir\MapQuest_def文件夹,找到对应编号的脚本,查看脚本内的地图跳转、开门条件。脚本里面设置了等级、金币、道具、任务条件,角色不满足条件的时候大门不会开启,脚本缺少开门执行命令,也会直接失效。注释符号、换行、全角符号是脚本报错常见诱因,把脚本里面的标点全部改成半角,删除多余空行,保存后重载脚本。

全部地图大门都无法开启,先看M2里面的脚本功能开关,打开M2选项,找到功能设置,确认地图触发器、地图事件脚本没有被关闭,功能勾选取消之后,所有地图触发类逻辑都会停止运行。接着检查网关连接状态,登录网关、游戏网关掉线,会出现能进游戏但是交互失效,开门、NPC对话都没有反馈,网关断开的时候M2日志里面会有对应提示,重新启动网关,等待和M2正常连接。

查看M2运行日志,日志窗口会记录脚本执行报错,开门触发的时候,如果脚本语法错误,日志会弹出报错信息,按照报错行数定位脚本问题。日志里面没有任何触发记录,代表点击大门根本没有触发到触发器,回到地图编辑器重新校准大门坐标,玩家点击的坐标和触发器坐标偏差过大,触发不会生效。

部分版本大门依赖定时器,开门之后有时间间隔,短时间内重复点击不会二次触发,定时器参数在脚本内设置,修改等待时间数值,保存脚本,在M2里面执行重载地图脚本命令,不用重启整套服务端。还有传送门和大门区分,传送门不需要开门脚本,直接配置地图跳转,大门是需要触发脚本执行的,不要把两种配置混淆。

客户端补丁缺失也会造成视觉上的不开门,点击大门之后后台脚本已经执行,但是客户端没有大门动画素材,看不到开门效果,看起来像是没有反应。这种情况把对应地图补丁解压到客户端目录,清理cache缓存,再进游戏测试。判断方法是看能不能直接穿过大门,如果可以走过去,只是看不到开门动画,就是客户端素材问题。

权限控制相关,部分引擎支持GM指令控制地图大门开关,管理员后台或者管理脚本里有全局锁门指令,执行锁门之后整张地图大门全部锁定,需要执行解锁指令恢复。另外地图标记变量,变量标记锁定状态,变量没有重置,大门持续处于关闭状态,在脚本内增加重置变量的执行语句。

端口和连接异常场景,单玩家不开门,其他玩家正常,是该玩家客户端缓存或者网络丢包,让玩家清理客户端缓存,重新打开登录器进入。大量玩家同时不开门,查看M2的脚本处理队列,脚本队列堆积,处理速度跟不上请求,调低地图触发器的触发频率,优化脚本逻辑,减少循环语句。

脚本引用外部文件的时候,检查被调用的文本、变量文件路径,路径写错,读取不到条件数据,开门流程中断。Envir目录下的相关文本文件编码需要和引擎匹配,编码异常会读取失败,另存为ANSI编码覆盖。修改完成脚本之后,优先使用M2重载脚本功能,重载失败再重启M2,重载可以节省调试时间。

还有一种情况,地图属性设置禁止触发事件,打开M2地图参数设置,找到该地图编号,查看地图参数,关闭禁止地图事件选项,参数开启之后,地图上所有触发器、大门、NPC触发都会失效,取消勾选,保存地图参数,重新加载地图配置。
[顶部]