架设传奇服务端,启动M2server弹出时间格式错误提示,无法正常加载引擎,这类问题基本都和电脑系统时间区域设置、版本脚本内时间写法、引擎配置文件时间参数相关,并不是服务端文件本身损坏,按照顺序逐项调整就能解决。
首先要弄清楚报错的底层逻辑,M2启动的时候会读取系统时间,同时读取版本里各类脚本、配置文件中的时间判定代码,引擎只能识别特定格式的时间,如果电脑系统时间格式和引擎要求不匹配,或者脚本内写的时间格式存在错误,M2在初始化阶段就会终止运行,弹出时间格式错误提示。很多人遇到这个报错会优先替换引擎文件,实际上大部分情况不需要更换M2程序。
系统区域时间设置是最高发的诱因。Windows系统默认的短时间、长时间、日期格式,如果带AM、PM标识,或者使用斜杠以外的分隔符号,部分老引擎无法识别。系统日期设置里的星期名称、时间分隔符如果是中文符号,同样会触发解析失败。系统区域位置如果不是中文,时间的显示规则不一样,读取时就会出现解析异常。调整的时候打开控制面板,找到区域选项,进入格式设置界面,短日期格式修改为yyyy-MM-dd,短时间格式修改为HH:mm:ss,确认日期和时间分隔符使用横杠与冒号,不要使用中文全角符号。另外关闭系统里的农历日期显示,部分系统开启农历之后,日期字符串会附带中文农历文字,引擎读取系统时间时读到多余字符,判定时间格式不合法。修改完成之后点击应用保存,最好重启电脑,让区域设置完全生效,再尝试启动M2。
其次是版本脚本内时间代码书写错误。版本里的NPC脚本、触发器脚本、定时任务脚本,大量存在时间判断语句,用于限定活动开启、物品刷新、任务有效期。脚本中时间的年月日顺序写错,分隔符号使用全角冒号、全角横杠,或者时间数值超出合理范围,比如月份写13,日期写32,小时设置25,M2加载脚本解析时间节点的时候,直接报时间格式错误。还有部分复制来的脚本,粘贴的时候带入不可见特殊字符,肉眼看不到,但是引擎解析字符串时会中断。排查脚本可以先暂时注释掉所有定时脚本,也就是以#ACT或者TIMER开头带时间参数的脚本段落,注释完成后重启M2,如果M2可以正常启动,就代表报错源头在被注释的定时脚本里面,之后分段取消注释,定位到出错的脚本行,修改里面错误的时间写法,统一改成引擎支持的数字半角格式。
然后检查引擎配套的配置文件。服务端目录下的ini配置文件,里面包含定时保存、自动备份、服务器开放时间等参数,配置文件内的时间参数写错也会触发报错。用记事本打开对应的ini文件,查看时间相关配置项,检查时间字符串有没有多余空格、换行,删除所有全角字符,确认时间数值范围合规。修改ini文件之后保存,保存编码选择ANSI,不要使用utf8编码,编码不对也会让时间字符串读取异常。
还有系统时区和夏令时设置带来的干扰。操作系统开启自动夏令时,时间会自动增减一小时,引擎读取时间时出现波动,造成解析报错。打开系统日期和时间设置,关闭自动调整夏令时选项,时区选择国内标准时区,不要选择其他地区时区。同时确认电脑当前系统时间准确,系统时间大幅度超前或者落后真实时间,部分引擎校验时间的时候也会抛出异常。
文件编码与文本编辑器的坑也需要留意。很多人修改脚本和ini配置使用Word、WPS文字,这类软件保存文件会附带隐藏格式代码,不是纯文本,引擎读取里面的时间内容就会解析失败。修改脚本文件只使用记事本或者notepad++这类纯文本编辑器。复制网上脚本内容的时候,先粘贴到空白记事本清除隐藏格式,再复制到游戏脚本内,防止带入看不见的特殊符号。
整套排查操作顺序可以固定下来,先调整电脑系统区域时间格式,关闭农历与夏令时,保存设置重启电脑,尝试启动M2。如果依旧提示时间格式错误,再去注释版本内所有定时类脚本,分段测试定位错误脚本。找到出错脚本之后修正时间参数,清理全角符号和不可见字符。接着检查ini配置文件内时间相关项,以ANSI编码保存文件。全部修改完毕,清理服务端日志缓存文件,重新启动M2server。
完成操作后观察M2启动窗口,不再弹出时间格式错误提示,顺利加载数据库和脚本即代表修复成功。如果报错依旧存在,可以查看M2弹出报错窗口附带的信息,找到报错对应的文件名称与行数,直接打开对应文件,定位该行的时间语句进行修改,快速解决问题。
传奇架设M2server启动提示时间格式错误原因与完整修复办法
来源:
作者:
点击:

