一、先厘清“单价时间”在架设里指什么
单机架设语境下不是交易行单价,通常分三层:
1.系统时间:服务端读Windows时钟,游戏内昼夜、活动、攻沙都靠它
2.引擎计时:M2内部跑的在线时长、点卡剩余、清档周期
3.点卡/时长收费:角色表里有TimeLeft字段,登录扣时长,耗尽踢人
二、系统时间校准(最基础)
1.关所有服务端进程:M2Server、LoginSrv、各Gate、DBServer全结束
2.系统设置→日期时间→开自动同步,时区锁“中国标准时间(UTC+8)”
3.管理员CMD重拉时间服务:
netstopw32time
netstartw32time
w32tm/resync
4.BIOS电池没电会重启复位时间,老机器先换纽扣电池再谈架设
三、!Setup.txt里的时间参数
打开Mir200\!Setup.txt,重点看:
TimeSync=1(1=跟系统时间,0=用服务端写死时间)
;ServerTime=2024-01-0100:00:00(有这行就注释掉,否则永远停在写死时间)
TimeZone=8
DayLight=1(昼夜效果,嫌黑改0)
TimeCheck=1(GOM类开时间自检,防回拨)
改完存盘重启M2,游戏内白天黑夜跟着现实走。
四、M2控制台校时(不用改文件)
M2→选项→参数设置→环境/时间控制
勾“使用系统时间”或“同步本地时间”
取消“独立运行时间”“虚拟时间”
点校准时间→保存→重启服务端
部分端在管理→城堡管理里单独设攻城时间(如20:00-22:00)
五、定时活动不触发
路径:Mir200\Envir\QuestDiary\TimeTask或定时脚本目录
指令格式:
Time19:00每天19点
Week3619:00每周三、六19点
错写成“19点”“19-00”老引擎不认。
改完M2控制台“重新加载定时任务脚本”,别全服重启。
六、点卡/时长版怎么接
1.数据库角色表加字段TimeLeft(分钟数),UserRight.txt里关联
2.登录流程加校验:
IFTimeLeft<=0
跳转充值页/踢回安全区
ELSE
每秒扣1/60分钟,写回库
3.充值回调PayConfig.txt配支付密钥,支付成功脚本:
IFPayStatus==Success
AddTime角色名600
WriteLogChargeRecord
4.安全区不计费、进图才计费:在MapInfo里给安全区地图标NoPay,野外地图标Pay
5.单机测试把TimeLeft先填999999,调通逻辑再接真实支付
七、时间回拨导致数据异常
玩家改本机时间、虚拟机快照回滚,会让:
•攻城记录重复触发
•每日任务无法重置
•点卡时长变负
修法:
•服务端开TimeCheck,检测到系统时间倒退直接拒绝启动
•Global.DB、角色库定期备份,回滚后用手动/settime指令校正
•清Mir200\Envir\Cache下.time缓存
八、重启后游戏内“天数”重置
原因:服务端没持久化天数计数器,或系统时间被同步干扰
修法:
•关系统自动校时再做单机测试(防止凌晨跨天被掰回去)
•配置里DayOfXXX字段更新为当前日期,别留去年日期
•任务进度写进角色存档,不依赖服务端启动计数
九、昼夜/地图亮度异常
M2→客户端控制→关“启用黑夜效果”
或!Setup.txt里DayLight=0
补丁层面确认客户端Data里light相关wil没被覆盖错版本
十、云机/多机时间不一致
多台云主机跑网关,时间差超5秒会瞬移、刷怪乱:
•全部装NTP,同步阿里云ntp1.aliyun.com
•数据库机、M2机、微端机时间对齐到秒
•列表站和支付回调也吃时间,差太多会验签失败
十一、单机排错顺序
本机时间对→时区+8→!Setup.txt删写死时间→M2开系统同步→清Cache→起服看M2日志有无时间校验红字→进游戏看昼夜→建角色看在线计时扣减→接点卡前先写死大时长。
时间类毛病九成是系统时钟和写死配置打架,剩下一成在脚本格式和缓存。先把系统时间钉死,再动引擎参数,别一上来改补丁。
单机架设语境下不是交易行单价,通常分三层:
1.系统时间:服务端读Windows时钟,游戏内昼夜、活动、攻沙都靠它
2.引擎计时:M2内部跑的在线时长、点卡剩余、清档周期
3.点卡/时长收费:角色表里有TimeLeft字段,登录扣时长,耗尽踢人
二、系统时间校准(最基础)
1.关所有服务端进程:M2Server、LoginSrv、各Gate、DBServer全结束
2.系统设置→日期时间→开自动同步,时区锁“中国标准时间(UTC+8)”
3.管理员CMD重拉时间服务:
netstopw32time
netstartw32time
w32tm/resync
4.BIOS电池没电会重启复位时间,老机器先换纽扣电池再谈架设
三、!Setup.txt里的时间参数
打开Mir200\!Setup.txt,重点看:
TimeSync=1(1=跟系统时间,0=用服务端写死时间)
;ServerTime=2024-01-0100:00:00(有这行就注释掉,否则永远停在写死时间)
TimeZone=8
DayLight=1(昼夜效果,嫌黑改0)
TimeCheck=1(GOM类开时间自检,防回拨)
改完存盘重启M2,游戏内白天黑夜跟着现实走。
四、M2控制台校时(不用改文件)
M2→选项→参数设置→环境/时间控制
勾“使用系统时间”或“同步本地时间”
取消“独立运行时间”“虚拟时间”
点校准时间→保存→重启服务端
部分端在管理→城堡管理里单独设攻城时间(如20:00-22:00)
五、定时活动不触发
路径:Mir200\Envir\QuestDiary\TimeTask或定时脚本目录
指令格式:
Time19:00每天19点
Week3619:00每周三、六19点
错写成“19点”“19-00”老引擎不认。
改完M2控制台“重新加载定时任务脚本”,别全服重启。
六、点卡/时长版怎么接
1.数据库角色表加字段TimeLeft(分钟数),UserRight.txt里关联
2.登录流程加校验:
IFTimeLeft<=0
跳转充值页/踢回安全区
ELSE
每秒扣1/60分钟,写回库
3.充值回调PayConfig.txt配支付密钥,支付成功脚本:
IFPayStatus==Success
AddTime角色名600
WriteLogChargeRecord
4.安全区不计费、进图才计费:在MapInfo里给安全区地图标NoPay,野外地图标Pay
5.单机测试把TimeLeft先填999999,调通逻辑再接真实支付
七、时间回拨导致数据异常
玩家改本机时间、虚拟机快照回滚,会让:
•攻城记录重复触发
•每日任务无法重置
•点卡时长变负
修法:
•服务端开TimeCheck,检测到系统时间倒退直接拒绝启动
•Global.DB、角色库定期备份,回滚后用手动/settime指令校正
•清Mir200\Envir\Cache下.time缓存
八、重启后游戏内“天数”重置
原因:服务端没持久化天数计数器,或系统时间被同步干扰
修法:
•关系统自动校时再做单机测试(防止凌晨跨天被掰回去)
•配置里DayOfXXX字段更新为当前日期,别留去年日期
•任务进度写进角色存档,不依赖服务端启动计数
九、昼夜/地图亮度异常
M2→客户端控制→关“启用黑夜效果”
或!Setup.txt里DayLight=0
补丁层面确认客户端Data里light相关wil没被覆盖错版本
十、云机/多机时间不一致
多台云主机跑网关,时间差超5秒会瞬移、刷怪乱:
•全部装NTP,同步阿里云ntp1.aliyun.com
•数据库机、M2机、微端机时间对齐到秒
•列表站和支付回调也吃时间,差太多会验签失败
十一、单机排错顺序
本机时间对→时区+8→!Setup.txt删写死时间→M2开系统同步→清Cache→起服看M2日志有无时间校验红字→进游戏看昼夜→建角色看在线计时扣减→接点卡前先写死大时长。
时间类毛病九成是系统时钟和写死配置打架,剩下一成在脚本格式和缓存。先把系统时间钉死,再动引擎参数,别一上来改补丁。

