NAS 上自己开个传奇服!皓石传奇三 Windows 【客户端】部署全流程:从下载到进游戏,连上你的 NAS 服务端

阅读 -- 次
NAS 上自己开个传奇服!皓石传奇三 Windows 客户端部署全流程:从下载到进游戏,连上你的 NAS 服务端

一句话版本:皓石传奇三(Zircon)的 Windows 客户端,说穿了就是"程序 + 数据"两坨东西放进同一个文件夹,再改 Legend.ini 里的 IP 和端口。真正会坑人的只有三件事:数据包没下齐、Legend.ini 的编码被改坏、少了两个运行库导致秒退。这三件事下面按顺序拆开讲,走完就能进游戏。

本文是《NAS 上自己开个传奇服!绿联 NAS 用 Docker 部署皓石传奇三,自带 Web GM 后台》的姊妹篇。前一篇解决的是"服开起来",这篇只解决一件事:让 Windows 电脑连上你 NAS 上那个服,能真的进去玩。服务端已经跑起来、17081 后台能登录、17001 端口通,就可以往下做了。

一、先看效果

先说结论:装完之后,你是从"登录界面"一路走到"人物站在新手村"的。下面四张图是我这台 Windows 电脑上的实际过程,按顺序看就是这篇文章的路线图。

客户端目录:程序和四个数据文件夹躺在同一个目录里
登录界面:这里用的账号密码,就是你 Web GM 后台那一套
创建角色:战士、法师、道士、刺客,随便挑一个
进游戏:人物已经站在新手村,世界地图和聊天栏都在

看到最后一张地上那团火和旁边的 NPC 了吗?走到这一步,说明你的客户端已经真的连上 NAS 上那个服务端了,不是单机自己跟自己玩。

部署教程需登陆后查看

二、开始之前:确认服务端那边是对的

客户端所有配置都对,服务端没起来也是白搭。花一分钟确认三件事:

检查项

怎么查

期望结果

游戏端口通不通

电脑上执行 Test-NetConnection 你的NAS内网IP -Port 17001

TcpTestSucceeded : True

Web GM 后台能不能开

浏览器打开 http://你的NAS内网IP:17081

出现登录页

后台里允许登录

登录后台 →「服务器配置」→ 找 AllowLogin(允许登录)、AllowNewAccount(允许新账号)

都是开启状态

这三项就是客户端和服务端的两个关联点:

  1. 端口:客户端 Legend.ini 里的端口,必须等于服务端 compose 里 "17001:7000" 左边那个数字。当时把 17001 改成别的,客户端也得跟着改。

  2. 账号是同一套:Web GM 后台管的就是服务端的账号库——后台「账号管理」里的账号,就是客户端登录用的账号。反过来说,如果在后台把「允许登录」关掉,客户端谁也进不去。

三、先搞清楚:客户端是"两样东西"

这是最多人卡住的地方。客户端不是一个 Legend.exe 就完事,它是程序 + 数据两部分拼起来的:

组成部分

里面是什么

大小

运行数据包

Data(素材)、Map(地图)、Sound(音效)、Translations(文本)

压缩包约 2.3 GB,解压后约 7.9 GB

客户端程序

Legend.exe 及配套 DLL、配置文件

约 1.5 MB

只下那 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 群号,服务端那份数据包也是这个密码)

解压后应该是这四个目录。下面是我实际核对过的文件数量级,你可以拿来确认自己没解压坏:

目录

文件数

解压后大小

Data

300 多个(*.Zl 素材)

约 6.4 GB

Map

1000 多个(*.map)

约 810 MB

Sound

1500 多个(*.wav)

约 590 MB

Translations

2 个(ChineseMessages.ini 等)

极小

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:

缺什么

谁需要它

VC++ 2010 运行库(msvcr100.dll、msvcp100.dll)

SlimDX

DirectX 9.0c 组件(d3dx9_43.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,免得点了报找不到文件)。

进游戏用哪个账号?三个来源随你挑:

  1. 游戏内直接注册(服务端默认允许注册);

  2. 数据包内置的管理员账号:raphael@gm.gm / 123456;

  3. 你在 Web GM 后台用的那个账号——后台管的就是同一套账号库,你在后台看到或新建的账号,客户端都能用来登录。

进去之后第一件事,建议先去「游戏设置」点一下分辨率推荐按钮,再翻一遍快捷键说明,后面玩起来顺手很多。

想确认自己是不是真连上了:回 Web GM 后台看仪表盘的在线玩家,或者「玩家管理」里能不能看到自己的角色——能看到,说明客户端 → 17001 → 服务端这条链路是通的。

九、出错怎么查(现象 → 原因 → 处理)

现象

原因

处理

双击没反应 / 秒退

缺运行库

按第六节补 msvcr100.dll、msvcp100.dll、d3dx9_43.dll,或干脆装 VC++ 2010 + DirectX 9

弹窗提示找不到 msvcr100.dll / d3dx9_43.dll

同上

同上(方式 B 最快)

报 D3DERR_INVALIDCALL: Invalid call (-2005530516)

运行环境拿不到 GPU,远程桌面、串流、虚拟机、受限沙箱里常见

在本机正常登录的桌面上直接运行,别在远程控制或沙箱里跑

登录画面出得来,但一直连不上

IP 或端口不对 / 服务端没起 / 防火墙

核对 Legend.ini 的 IPAddress、Port 与服务端 compose 的端口映射一致;再用第一节那条命令复测

地图黑屏、传送报错、部分装备图标空白

数据包缺文件,或数据包日期和客户端程序版本不配套

用网盘里配套的那份;Map\ 下应有上千个 .map,Data\ 下应有三四百个素材文件

客户端目录里冒出 Errors\日期.txt

客户端自己写的错误日志

打不开游戏时先看这个文件末尾的异常堆栈,信息量最大

提示服务端拒绝登录 / 账号登不进

后台把「允许登录」「允许新账号」关了,或账号被禁用

去 Web GM 后台「服务器配置」和「账号管理」里检查

想用启动器自动更新

启动器依赖服务端配置里的 ClientPath(客户端更新路径),没配就用不了

局域网自己玩不需要自动更新,直接用 Legend.exe;要更新就手动换客户端文件

十、三个容易忽略的点

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(同时也是数据包解压密码)

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息