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

传奇架设里时间问题全解:系统校时、点卡计时与脚本排错

热度:
一、先厘清“单价时间”在架设里指什么
单机架设语境下不是交易行单价,通常分三层:
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日志有无时间校验红字→进游戏看昼夜→建角色看在线计时扣减→接点卡前先写死大时长。

时间类毛病九成是系统时钟和写死配置打架,剩下一成在脚本格式和缓存。先把系统时间钉死,再动引擎参数,别一上来改补丁。
[顶部]