目前魔兽世界的私服比较流行的是Trinity和CMaNGOS服务端,当然如果是CTM大灾变变4.0.6的话,流行的就是SkyfireEmu了,三者都是模拟魔兽世界私服服务端。MaNGOS目前已经没落,然而继承mangos的团队CMANGOS由以前MANGOS团队老成员组成,从新成立了新的组织CMANGOS(cmangos.net)(代码地址: https://github.com/cmangos)Trinity是基于MaNGOS的代码开发的.CMANSOS是(Continued mangos - 延续的MANGOS)以前团队分离出来的,基本上老的mangos成员都去了CMANGOS) 目前我们来讨论一下TRINITY的安装和编译方式(WINDOWS系统): 1:安装基本工具首先要用GIT工具下载Trinity的源代码:
msysgit Git: 在这里下 下载最新版本的就行了
Git 的图形化工具TortoiseGit: 在这里下然后是编译工具和库:
OpenSSL: 在这里下
CMake: 在这里下 (TRINITY需要用CMAKE生成可用于VS2010编译的工程文件)
Visual Studio 2010 Express: 在这里下,这个是Visual Studio的免费版本。当然也可以去网上搜索一下其他的破解的VS2010完整版本
运行环境:
MySQL: 在这里下,安装后也包含编译需要的头文件和库。
MySQL的图形化客户端: 在这里下
Microsoft Visual C++ 2010 Redistributable Package: x86版本的在这里下,x64版本的在这里下
.Net Framework 3.5: 在这里下。非必需,而且Visual Studio 2010里面好像带,有了就不必装了。 2、下载和生成项目文件(首先你要把上面提到的工具都下载和安装到本地自己的电脑里面)。
1、建一个目录,譬如 D:\Trinity-core (路径最好不要有中文-CMake没法识别中文路径)2、进入这个目录,右键Git Clone... ,Url那里填入 https://github.com/TrinityCore/TrinityCore.git, 点OK。
或则用命令方式来下载代码 右键Git Bash git clone https://github.com/TrinityCore/TrinityCore.git 会自动建立一个名为TrinityCore作为源码目录,然后就是等着代码下完。
3、在D:\Trinity下建一个目录是Build等下放编译结果文件
4、运行CMake的图形化工具(开始菜单里CMake下的CMake (cmake-gui))
5、点Browse Source... , 选D:\Trinity-core\TrinityCore
6、Browse Build... ,选:\Trinity-core\Build
7、点Configure,出一个对话框
8、确保勾选了 Use default native compilers,下拉框里面选Visual Studio 10,至于是32位还是64位版本的,根据自己的情况选
9、点Finish,CMake工具会搜索源码配置,分析出一些编译选项来。确保cmake-gui下面的信息提示里面没有ERROR字样,否则根据具体错误修正后重来。
10、在cmake-gui上面的编译选项里面选中SCRIPTS、SERVERS、TOOLS、USE_COREPCH、USE_SCRIPTPCH,不要选USE_MYSQL_SOURCES。
11、最后点Generate,CMake会在D:\Trinity\Build下面生成Visual Stdio 2010的项目文件。 配置完成后,我的是这样:
可能出现的问题:
1、第10步里面_GIT_EXEC应该是msysgit中git的绝对路径,如果没有则是msysgit安装的时候没有把自己加到系统路径里面去。
2、如果下面出现红色的ERROR提示,类似于 Could not copy from: D:/dev/cmake/share/cmake-2.8/Templates/CMakeVSMacros2.vsmacros to: C:/Documents and Settings/Administrator/ÎòμÄÎÄμμ/Visual Studio 2010/Projects/VSMacros80/CMakeMacros/CMakeVSMacros2.vsmacros这个好像是因为CMake没法识别中文路径(把路径改成不带中文的)。或者直接自己把提示中的CMakeVSMacros2.vsmacros拷到“我的文档”下的Visual Studio 2010/Projects/VSMacros80/CMakeMacros/。 3、开始编译源码0、如果你的魔兽世界客户端是3.3.5 13930版本,那么记得修改一下代码src\server\authserver\Authentication\AuthCodes.cpp 中PostBcAcceptedClientBuilds参考其他的客户端版本加一行{13930, 3, 3, 5, 'a'},
1、在Visual Studio 2010打开D:\Trinity-core\Build\TrinityCore.sln,先Build -> Clean Solution,然后Build -> Build Solution
2、默认是生成Debug,结果在D:\Build\bin\Debug下面,从MySQL的安装目录下的Lib目录里面拷一个libmySQL.dll到这个目录下,libeay32.dll和ssleay32.dll是OpenSSL的,应该默认加到系统路径下了,如果后面提示找不到就从OpenSSL的安装目录里面拷过来。 4、安装WOW数据库1、下载最WOW新数据库 :从 https://github.com/TrinityCore/TrinityCore/downloads下载最新的(或者符合你的客户端版本号的335版本的)魔兽世界私服数据文件,
2、用MySQL图形化工具,导入 D:\Trinity\TrinityCore\sql\create\create_mysql.sql 执行建立三个数据库,
auth数据库中导入 D:\Trinity\TrinityCore\sql\base\auth_database.sql 执行,
characte数据库中导入 D:\Trinity\TrinityCore\sql\base\character_database.sql 执行,
world数据库中导入第一步中下载的TDB_full_???.sql文件执行,
最终建立auth、character、world三个数据库。 5、生成地图文件1、在D:\Build\bin\Debug下面建一个makevmaps3_simple.bat文件,内容为 vmap3extractor.exemd vmapsvmap3assembler.exe Buildings vmapspause注意:在CMAKE的时候,必须要选择上TOOLS这个项目,不然不会生成这些地图提取工具
执行,会从魔兽世界的客户端目录里面解压缩服务端需要的地图出来。根据机器速度不同,大概需要20分钟到一个小时的时间。运行结束的时候会给个提示“Press any key...”,按任意键结束。生成vmaps和buildings目录,buildings 目录无用可以删除。
2、假设魔兽世界的客户端目录在D:\WOW下面,在D:\Build\bin\Debug下运行 mapextractor.exe -i "d:\WOW" ,会生成maps和dbc目录。这个工具会根据客户端的雨中在dbc目录下生成不同的dbc语言版本。 如果是中文的客户端,会提取出中文的dbc数据。6、配置服务器1、在D:\Build\bin\Debug下有worldserver.conf.dist和authserver.conf.dist两个文件,分别是游戏服务器和认证服务器的配置模板文件。
2、复制一份worldserver.conf.dist并改名为worldserver.conf,配置游戏服务器 LoginDatabaseInfo = "127.0.0.1;3306;root;trinity;auth"WorldDatabaseInfo = "127.0.0.1;3306;root;trinity;world"CharacterDatabaseInfo = "127.0.0.1;3306;root;trinity;characters"分别是认证数据库、世界数据库、玩家角色数据库的地址,root后面的trinity是MySQL中root的密码,改成你在安装MySQL时设置的root密码。 之前生成了vmap文件,这个是地图的相关数据,服务器可以根据这个来判断怪物和玩家之间是否可见(是否有墙,是否在建筑物的同一层上)。没有这个的话,怪物会穿墙打你,或者从楼下直接漂上来打你... 服务器配置这里默认情况下是开启vmap数据检测的。如果不想开启vmap检测,则将下面这些配置的值改成0 vmap.enableLOS = 1vmap.enableHeight = 1vmap.petLOS = 1vmap.enableIndoorCheck = 1DetectPosCollision = 13、复制一份authserver.conf.dist并改名为authserver.conf,配置认证服务器 LoginDatabaseInfo = "127.0.0.1;3306;root;trinity;auth"同样,把trinity改成MySQL的root密码。 4、检查数据库auth里面realmlist表里面的记录,记录中port的值应该和worldserver.conf 里面的 WorldServerPort = 8085这一项的值一样(这里是8085)。同时,gamebuild的值应该和你客户端的版本号是一致的(登陆界面右下角,当前最新的是13930)。如果realmlist里面没有记录,则应该加一条。 7、修改客户端配置弄一个简单的登录器(在客户端目录里面)
建立一个 登录器.bat 文件里面加入下面的内容
echo y | rd /s "Cache" echo SET realmlist "127.0.0.1:3724" > Data/zhTW/realmlist.wtf start wow.exe goto end
保存后,直接运行 登录器.bat 就可以启动客户端了。。
8、注册用户账号后面启动游戏服务器worldserver之后,在这个命令窗口可以输入GM命令: create account 用户名 密码或则account create 用户名 密码(到此,你就可以进入游戏了,进行魔兽世界私服的单机版游玩) 9、如何和朋友一起玩如果想配个私服和朋友一起玩,那么需要一个公网IP地址。机房里面没有服务器没有关系,可以搭在自己家里的服务器上,然后去 http://ip138.com上查到自己的IP地址,把127.0.0.1(auth里面realmlist表)相关的地址都改成自己的IP地址就可以了。如果是通过ADSL路由上的网,去ADSL路由配置里面把自己的内外IP地址设置为DMZ主机地址开放给外网即可。 此外,如果是跑服务端的服务器有花生壳的动态域名或者自己的域名,可以将127.0.0.1改成自己的域名。前面在wowserver和authserver中的地址中配置的127.0.0.1都要改,因为服务端要提供这个地址给客户端。MySQL相关的127.0.0.1地址不用改,要改也行,不过就是还得去配MySQL的外网访问的相关安全设置。 注意: 只要你设置好了auth里面realmlist表里面的IP地址,和几个conf 文件里面的IP地址。那么只要你的朋友能ping通你的机器。就应该可以连接上你的私服服务器了。。记得把登录器发给你的朋友(就是前面提到的那个 登录器.bat 里面的IP要改一下) 启动游戏 1、运行D:\Build\bin\Debug\authserver.exe
2、运行D:\Build\bin\Debug\worldserver.exe
3、运行客户端wow.exe
如果运气好的话...反正我运气不错...
10、退而求其次其他什么地方先去下一个免费魔兽世界私服服务端来测试一下,先把自己弄进游戏再说自己编译的事情 11、上面提到的SKYFIREEMU 也是用同样的方式编译(不过S端目前只支持大灾变4.0.6版本吧)参考资料
|