2011年6月13日,Trinity官方代码针对WoW客户端3.3.5 13930版本登陆有问题。经过代码跟踪调试,发现需要在认证服务器中加入如下补丁:
位于文件TrinityCore\src\server\authserver\Authentication\AuthCodes.h
#define POST_BC_ACCEPTED_CLIENT_BUILD {13930, 12340, 11723, 11403, 11159, 10571, 10505, 10146, 9947, 8606, 0}
改动之处就是,在这个客户端支持版本号的列表中加入13930。改动之后需要重新编译authserver和worldserver。
Posted in WoW/Trinity |
官方的Trinity认证服务器在对3.3.5 13930客户端登陆的时候有问题,下面这个是抓的一个能够正常登陆的私服认证服务器的数据包。
使用工具WPE抓的包,这个也是经常用来做游戏外挂的一个抓包工具。相关的项目是TrinityCore的authserver,之前的一篇Blog有关于如何下载代码的说明。
服务器端口配置情况说明如下
3306 MySQL
3724 认证服务器
10775 客户端与认证服务器通信的端口
10740 认证服务器与MySQL通信的端口
客户端登陆使用用户名passos,认证服务器、MySQL、客户端都在本地运行。数据包记录中加粗的是客户端与认证服务器的相关通信数据包。
1 127.0.0.1:10775 127.0.0.1:3724 40 Recv
0000 00 08 24 00 57 6F 57 00 03 03 05
…
Posted in WoW/Trinity, 读代码(code reading) | Tagged source, wow, 数据包, 魔兽世界 |
缘起因由
在一个无所事事的周末下午,突然想起魔兽世界,官方的账号很久没有上了,里面的大小号现在连满级都不是。以前曾经搭过传奇和星际争霸战网的私服自娱自乐,也听说过魔兽世界有开源的服务端模拟,既然兴致来了就小小的研究一下。
目前魔兽世界的私服比较流行的是MaNGOS和Trinity,二者都是模拟魔兽世界服务端。MaNGOS“号称”是一个研究型项目,目的是为了学习大规模的C++项目开发,有道理,不过我不信。Trinity是基于MaNGOS的代码开发的,以前主要是为了合并用户提交的补丁代码而设立的一个项目,不过现在已经单独独立出来了,主要开发成员包括以前MaNGOS的一些老人,现在的主要工作包括清理代码、优化、提供一个更好的服务端内核。
二者现在的代码提交和更新都很频繁,但是具体是否会合并对方的代码就不清楚了。总而言之,也就是说,我感觉Trinity大概也许应该是目前最好的一个魔兽世界服务端模拟了。作为一个程序员来说,玩游戏还在其次,看看代码才是件有意思的事情。整个过程记录在案http://log4think.com/setup_wow_private_server,以便事后查询。
安装基本工具
现在尝试一下从源码开始搭个魔兽世界的服务器,从源码开始主要还是想顺便看看代码的情况,就基于Trinity来做吧。至于客户端的情况,截止到2011年6月12日,中国国服魔兽世界最新的版本是3.3.5 13930-巫妖王之怒。
先装几样基本的工具软件,先是下载源码用的,由于MaNGOS和Trinity都是托管在GitHub上,所以得用Git才能下到源码:
Git for Windows: 在这里下
Git 的图形化工具TortoiseGit: 在这里下
然后是编译工具和库:
OpenSSL: 在这里下
CMake: 在这里下
Visual Studio 2010 Express: 在这里下,这个是Visual Studio的免费版本。如果装了要钱的Visual Studio 2010,就不必装这个了。
运行环境:
MySQL:…
Posted in WoW/Trinity, 读代码(code reading) | Tagged source, wow, 私服, 魔兽世界 |