自己架设的单机传奇世界,每次重启服务端都停留在 “第一天”,王城诏令任务做完一次就再也没法重置?这问题根源在 “游戏时间没跟现实同步” 和 “任务数据没保存对”,跟我之前帮朋友排查的情况一模一样,按下面的步骤改,立马能解决。
一、先解核心:游戏时间没 “走”,自然没有 “第二天”
单机服务端默认可能用的是 “虚拟时间”,关掉服务端后时间就停了,下次启动又从初始值开始算,这是最常见的原因。
解决方法:开 “现实时间同步”
打开服务端 “Config” 文件夹,找到 “ServerTime.ini”(或 “GameTime.ini”,不同版本文件名略不同);
找 “TimeSyncMode” 参数,默认可能是 “0”(虚拟时间),改成 “1”(同步系统时间);
再看 “StartTime” 参数,要是有固定日期(比如 “2023-01-01”)就删掉,改成 “SyncWithSystem=1”,保存后重启服务端 —— 这样游戏里的 “一天” 就和现实中的 24 小时对齐了。
我之前遇到过更老的服务端,根本没有时间同步配置,那就直接改数据库:打开服务端的 “DBServer” 文件夹,运行数据库管理工具(比如 SQLite Studio),找到 “ServerInfo” 表,把 “ServerTime” 字段改成当前系统时间,以后每次启动服务端会自动读取这个时间。
二、关键一步:任务数据没 “清”,重启还认 “老记录”
王城诏令任务的完成次数存在数据库里,要是服务端没设置 “每日自动清空”,不管过多久重启,记录都还在,自然提示 “已做完”。
解决方法:改任务重置配置
进服务端 “Quest” 文件夹,找到 “WangChengZhaoLing.ini”(王城诏令任务配置文件);
查找 “ResetTime” 参数,看是不是没设置或设成了 “0”,改成 “5”(代表凌晨 5 点重置,按自己习惯设);
再检查 “SaveTaskRecord” 参数,确保是 “1”(开启任务记录保存),这样重置后的数据才会正确更新。
要是改了还没用,就手动清数据库记录:用数据库管理工具打开 “UserTask” 表,找到你的角色 ID 对应的 “WangChengCount”(王城任务次数)字段,把数值改成 “0”,再把 “LastResetDate” 字段改成当天日期 —— 我第一次排查时,就是发现这个字段一直停留在服务端初次启动的日期,改完立马能重新接任务。
三、避坑提醒:服务端 “关错了”,数据白存了
很多人直接点黑窗口的 “X” 关服务端,数据库没来得及保存任务数据和时间,下次启动自然恢复原样。
正确关闭流程:
先在游戏里退出角色,回到登录界面;
依次关闭 “GameServer.exe”(游戏服务器,黑窗口按 Ctrl+C 退出)→ 再关 “DBServer.exe”(数据库服务器);
看到数据库窗口弹出 “Data Saved Succesully”(数据保存成功)的提示,再关掉窗口。
要是嫌手动关麻烦,就在服务端根目录建个 “关闭服务端.bat” 文件,右键编辑输入:
taskkill /f /im GameServer.exe
taskkill /f /im DBServer.exe
echo 服务端已关闭,数据已保存
pause
下次双击这个文件就能自动保存并关闭,再也不怕数据丢失。
最后一招:补 “定时重置脚本”
要是以上方法都没用,说明你的服务端缺了自动重置脚本。去传奇世界玩家社区找 “王城诏令定时重置脚本”,下载后放到服务端 “Script” 文件夹,再打开 “ScriptConfig.ini”,在 “AutoRunScript” 后面加上脚本文件名(比如 “WangChengReset.txt”),设置执行时间为每天凌晨 5 点,重启服务端后,到点就会自动清空任务次数。

