
一句话版本:皓石传奇三(Zircon)的 Windows 客户端,说穿了就是"程序 + 数据"两坨东西放进同一个文件夹,再改
Legend.ini里的 IP 和端口。真正会坑人的只有三件事:数据包没下齐、Legend.ini的编码被改坏、少了两个运行库导致秒退。这三件事下面按顺序拆开讲,走完就能进游戏。本文是《NAS 上自己开个传奇服!绿联 NAS 用 Docker 部署皓石传奇三,自带 Web GM 后台》的姊妹篇。前一篇解决的是"服开起来",这篇只解决一件事:让 Windows 电脑连上你 NAS 上那个服,能真的进去玩。服务端已经跑起来、
17081后台能登录、17001端口通,就可以往下做了。
一、先看效果
先说结论:装完之后,你是从"登录界面"一路走到"人物站在新手村"的。下面四张图是我这台 Windows 电脑上的实际过程,按顺序看就是这篇文章的路线图。




看到最后一张地上那团火和旁边的 NPC 了吗?走到这一步,说明你的客户端已经真的连上 NAS 上那个服务端了,不是单机自己跟自己玩。
部署教程需登陆后查看
二、开始之前:确认服务端那边是对的
客户端所有配置都对,服务端没起来也是白搭。花一分钟确认三件事:
这三项就是客户端和服务端的两个关联点:
端口:客户端
Legend.ini里的端口,必须等于服务端 compose 里"17001:7000"左边那个数字。当时把 17001 改成别的,客户端也得跟着改。账号是同一套:Web GM 后台管的就是服务端的账号库——后台「账号管理」里的账号,就是客户端登录用的账号。反过来说,如果在后台把「允许登录」关掉,客户端谁也进不去。
三、先搞清楚:客户端是"两样东西"
这是最多人卡住的地方。客户端不是一个 Legend.exe 就完事,它是程序 + 数据两部分拼起来的:
只下那 1.5 MB 的程序、双击 Legend.exe,屏幕上什么都不会有——因为地图和素材在另外那 7.9 GB 里。两样都下齐、放进同一个文件夹,才是一个完整客户端。
另外还要补两个运行库(见第六节),否则会闪退。
四、下载
3.1 客户端运行数据包(约 2.3 GB)
和服务端运行文件放在同一个网盘目录里(就是你部署服务端时下载数据的那份网盘):
https://pan.baidu.com/s/1dKrpu6G4p4klMVOIMuhOdA?pwd=j1rm文件名类似 开源客户端运行文件-YYYYMMDD.zip。两个密码别记混:
网盘提取码:
j1rm压缩包解压密码:
915941142(作者 QQ 群号,服务端那份数据包也是这个密码)
解压后应该是这四个目录。下面是我实际核对过的文件数量级,你可以拿来确认自己没解压坏:
3.2 客户端程序(约 1.5 MB)
到客户端项目的 Releases 页面下载 Client-v1.x.x-win-x86.zip,只要这一个文件。解压出来是:
Legend.exe 游戏主程序(.NET Framework 4.8,32 位)
Legend.ini 配置文件 —— 整套东西只需要改这一个文件
Library.dll 项目自己的程序集
SlimDX.dll DirectX 封装库(依赖 VC++ 2010 运行库 + DirectX 9)
使用说明.txt / README.md / LICENSE💡
github.com下载超时怎么办?(国内很常见:页面能开、下载卡住) 在链接前面加一个加速前缀就能下,例如:https://gh-proxy.com/https://github.com/raphaelcheung/zircon-legend-client/releases/download/v1.14.0/Client-v1.14.0-win-x86.zip想确认最新版本号,用api.github.com/repos/raphaelcheung/zircon-legend-client/releases/latest(这个域名一般直连能通)。
五、摆目录:程序和数据必须在一起
把 3.2 的程序文件解压到 3.1 的数据包目录里,最终长这样:
皓石传奇三\ ← 以后双击进游戏就在这个目录
├── Legend.exe ← 客户端程序
├── Legend.ini ← 配置
├── SlimDX.dll
├── Library.dll
├── Data\ ← 以下四个来自数据包
├── Map\
├── Sound\
└── Translations\一句话原则:Legend.exe 和 Data、Map、Sound、Translations 必须是同一层的兄弟。
Legend.ini 里写着 MapPath=.\Map\,说明它按相对路径找地图,所以 Map 这个文件夹名字不要改。
实测补充:目录名带中文(比如
开源客户端运行文件-20250131)可以正常启动。万一你遇到莫名其妙的读文件错误,再考虑换成纯英文路径。
六、改 Legend.ini(这里有个大坑)
用 Windows 记事本打开 Legend.ini,只改三处:
[Network]
IPAddress=192.168.1.10 ; 换成你的 NAS 内网 IP
Port=17001 ; 必须等于服务端 compose 里 "17001:7000" 的左边那个数
TimeOutDuration=00:00:15 ; 不动
[Graphics]
FullScreen=False ; 先窗口模式,稳定再考虑全屏
GameSize=1920,1080 ; 窗口分辨率,别超过你屏幕改完保存就完事,其他几百行都不用管。
⚠️ 这个文件是 UTF-16LE 编码,别用错工具
Legend.ini 是 UTF-16LE(文件开头有 FF FE 两个字节),不是常见的 UTF-8、也不是 GBK。
实测踩坑:如果拿一个不支持该编码的工具去改、或者按 GBK/UTF-8 覆盖保存,文件里 [BigPatch] 那一段上百行的中文配置项(例如 自动烈火=False、技能最高等级=6)会整段变乱码,客户端就读不出这些设置了。
判断方法:改完之后用记事本拉到 [BigPatch] 段,看看中文是不是还认得出来。用记事本改是安全的(它会保留原编码)。
顺手可以做的一件事:[Login] 段填上 RememberedEMail 和 RememberedPassword,之后客户端就能自动登录,少打一次密码。第一次先留空手动登录,确认能进游戏之后再填。
七、补运行库:两种方式,选一种
Legend.exe 需要 .NET Framework 4.8 —— Windows 10 / 11 系统自带,不用管。
但 SlimDX.dll 还硬性依赖两个东西,缺了直接闪退或提示缺 DLL:
方式 A:老老实实装一遍(需要管理员权限)
装 DirectX 9.0c 运行库(微软官网搜 "DirectX End-User Runtime")+ VC++ 2010 运行库(vcredist_x86.exe)。装完全局生效,以后换客户端也不用再装。
方式 B:免安装,把三个 DLL 丢进客户端目录(推荐)
从任意一台已经装过上面两个运行库的电脑上,去 C:\Windows\SysWOW64\ 复制这三个文件:
msvcr100.dll ← VC++ 2010 运行库(32 位)
msvcp100.dll ← VC++ 2010 运行库(32 位)
d3dx9_43.dll ← DirectX 9.0c 组件粘贴到客户端目录(和 Legend.exe 同一层)即可。VC++ 2010 支持这种"放在程序目录里就能用"的本地部署方式,不需要改注册表、不需要管理员权限。
这个方案我做过对照实验,结论很明确:
SlimDX.dll单独放一个目录里加载,直接失败(报 module could not be found);把上面三个 DLL 放进同一目录后,立刻加载成功(SlimDX 4.0.13.43、Library 1.0.9750.39315)。想从微软官方安装包里自己取这三个 DLL 也行:
vcredist_x86.exe(VC++ 2010 SP1)里含msvcr100.dll、msvcp100.dll;directx_Jun2010_redist.exe(DirectX 9.0c 2010 年 6 月版)里的Jun2010_d3dx9_43_x86.cab含d3dx9_43.dll。
八、启动进游戏
双击 Legend.exe。
发布包里有个
用管理员模式点这个运行游戏.bat,那是给"带启动器(Launcher.exe)"的发行版准备的;如果你手里没有启动器,直接双击Legend.exe就行(我实测时把它改成直接启动Legend.exe,免得点了报找不到文件)。
进游戏用哪个账号?三个来源随你挑:
游戏内直接注册(服务端默认允许注册);
数据包内置的管理员账号:
raphael@gm.gm/123456;你在 Web GM 后台用的那个账号——后台管的就是同一套账号库,你在后台看到或新建的账号,客户端都能用来登录。
进去之后第一件事,建议先去「游戏设置」点一下分辨率推荐按钮,再翻一遍快捷键说明,后面玩起来顺手很多。
想确认自己是不是真连上了:回 Web GM 后台看仪表盘的在线玩家,或者「玩家管理」里能不能看到自己的角色——能看到,说明客户端 → 17001 → 服务端这条链路是通的。
九、出错怎么查(现象 → 原因 → 处理)
十、三个容易忽略的点
1. 客户端程序和客户端数据是有版本的
数据包通常按日期发(比如 ...-20250131),客户端程序带版本号(比如 v1.14.0)。日常玩大多没事,但如果出现"某张地图进不去""某个物品图标空白"这种局部问题,优先怀疑两者不配套,去网盘找日期更新的那份数据包。
2. 服务端升级后,客户端通常不用动,但端口改了必须同步
服务端 docker compose pull 升级镜像,一般不要求客户端跟着换;但如果你在后台或 compose 里改了端口映射,客户端 Legend.ini 必须同步改——这是最容易忘的一步。
3. 防火墙只在"跨机器"时才需要管
客户端和服务端在同一台电脑上玩,不用管防火墙;从另一台电脑连 NAS 玩,要保证那台电脑到 NAS 的 17001 端口是通的(第一节的检查就是干这个的)。
十一、几句说明
皓石传奇三(Zircon)是供学习游戏技术使用的开源项目,作者明确禁止商用和非法用途,客户端里的图形资源也来自网络。自己局域网内玩、和几个朋友开个小服没问题,请不要拿去做公开收费服。
客户端是 Windows 桌面程序(.NET Framework 4.8 + SlimDX + DirectX 9),没有 Docker 版,也装不到 NAS 上——NAS 只负责跑服务端。
排查顺序建议固定成:先看
Errors\里的日志 → 再查端口通不通 → 最后怀疑配置。这三步能解决绝大多数"进不去"。
参考资料
客户端项目:
raphaelcheung/zircon-legend-client服务端项目:
raphaelcheung/zircon-legend-server(部署见姊妹篇)启动器项目:
raphaelcheung/zircon-legend-laucher服务端上游:
Suprcode/Zircon技术交流 QQ 群:
915941142(同时也是数据包解压密码)



