一、先厘清“单价时间”在架设里指什么
单机架设语境下不是交易行单价,通常分三层:
1. 系统时间:服务端读Windows时钟,游戏内昼夜、活动、攻沙都靠它
2. 引擎计时:M2内部跑的在线时长、点卡剩余、清档周期
3. 点卡/时长收费:角色表里有TimeLeft字段,登录扣时长,耗尽踢人
二、系统时间校准(最基础)
1. 关所有服务端进程:M2Server、LoginSrv、各Gate、DBServer全结束
2. 系统设置→日期时间→开自动同步,时区锁“中国标准时间(UTC+8)”
3. 管理员CMD重拉时间服务:
net stop w32time
net start w32time
w32tm /resync
4. BIOS电池没电会重启复位时间,老机器先换纽扣电池再谈架设
三、!Setup.txt里的时间参数
打开Mir200\!Setup.txt,重点看:
TimeSync=1 (1=跟系统时间,0=用服务端写死时间)
;ServerTime=2024-01-01 00:00:00 (有这行就注释掉,否则永远停在写死时间)
TimeZone=8
DayLight=1 (昼夜效果,嫌黑改0)
TimeCheck=1 (GOM类开时间自检,防回拨)
改完存盘重启M2,游戏内白天黑夜跟着现实走。
四、M2控制台校时(不用改文件)
M2→选项→参数设置→环境/时间控制
勾“使用系统时间”或“同步本地时间”
取消“独立运行时间”“虚拟时间”
点校准时间→保存→重启服务端
部分端在管理→城堡管理里单独设攻城时间(如20:00-22:00)
五、定时活动不触发
路径:Mir200\Envir\QuestDiary\TimeTask 或定时脚本目录
指令格式:
Time 19:00 每天19点
Week 3 6 19:00 每周三、六19点
错写成“19点”“19-00”老引擎不认。
改完M2控制台“重新加载定时任务脚本”,别全服重启。
六、点卡/时长版怎么接
1. 数据库角色表加字段 TimeLeft(分钟数),UserRight.txt里关联
2. 登录流程加校验:
IF TimeLeft <= 0
跳转充值页/踢回安全区
ELSE
每秒扣1/60分钟,写回库
3. 充值回调 PayConfig.txt 配支付密钥,支付成功脚本:
IF PayStatus == Success
AddTime 角色名 600
WriteLog ChargeRecord
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日志有无时间校验红字→进游戏看昼夜→建角色看在线计时扣减→接点卡前先写死大时长。
时间类毛病九成是系统时钟和写死配置打架,剩下一成在脚本格式和缓存。先把系统时间钉死,再动引擎参数,别一上来改补丁。
传奇架设里时间问题全解:系统校时、点卡计时与脚本排错
来源:
作者:
点击:

