编译MangosZero
最近研究了一下魔兽世界模拟器MangosZero,花了两天时间终于编译成功!现在把编译的过程做个完整的记录,以便让想要学习编译的同学们少走弯路!
服务器端运行界面:
客户端运行界面:
一:下载源程序
所需软件Git-1.7.9-preview20120201和TortoiseGit-1.7.7.0-64bit,这里把下载地址提供给大家,百度网盘链接:http://pan.baidu.com/s/1pLbhfyb 密码:dwb5
新建一个目录Mangos,右键Git Clone 输入 http://github.com/mangoszero/database.git,要勾选Recursive
这里是下载数据库,下载完成以后,再右键选择Git Clone,输入https://github.com/mangoszero/server.git,同样也要勾选Recursive
这是服务器源码。
下载完成后,在win目录有些程序要先进行安装
可选择32位或64的进行安装,安装完成之后,运行MaNGOS_EasyBuild.exe
箭头所示表示可编译32位或者64位程序,有一个打勾即可,现在可以运行CMake生成解决方案
建立一个空目录,用来放置生成的解决方案,比如 Server_VS
点击configure
点击Finish,完成后点击Generate开始生成解决方案,然后就可以编译了
二:导入数据库
将数据加载到MySQL
> cd Mangos
> cd database
> InstallDatabases.bat
起始就是运行database文件夹下的InstallDatabases.bat脚本。跟着提示一路配置下去。几点要注意:
1. 第一步输入N进行下一步
2. MySQL的密码就是上面安装MySQL设置的密码
3. 没有其他什么要求,剩下的配置都使用默认就好,下面的教程将根据默认配置来
如果一切顺利,你会在MySQL里面看到三个新的数据库,如下
它们分别是character0 mangos0 realmd
三:生成地图文件
1. 将server_build/bin/Debug/下的文件都拷贝到你的WoW客户端的根目录(也就是WoW.exe所在的目录)
2. 再将server_build/bin/Debug/tools/下的文件都拷贝到你的WoW客户端的根目录
3. 在WoW客户端目录下,运行ExtractResources.sh,跟着指引一步一步配置,当运行完后,会生成三个目录 dbc maps vmaps。
4. 在Mangos目录下新建名为Data的文件夹,将上面的三个目录拷贝到Data文件夹下
四:配置Mangos Server
-
进入Mangos/server_build/bin/Debug/文件夹下,将mangosd.conf.dist文件重命名为mangosd.conf,并修改里面的内容
DataDir = "."
修改为
DataDir = "C:\Mangos\Data"
假设你的Mangos新建在C盘根目录下。
LoginDatabaseInfo "127.0.0.1;3306;mangos;mangos;realmd" WorldDatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos" ScriptDev2DatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;mangos;character0"
修改为:
LoginDatabaseInfo = "127.0.0.1;3306;root;123456;realmd"
WorldDatabaseInfo = "127.0.0.1;3306;root;123456;mangos0"
ScriptDev2DatabaseInfo = "127.0.0.1;3306;root;123456;mangos0"
CharacterDatabaseInfo = "127.0.0.1;3306;root;123456;characters"
假设你的MySQL密码为123456.
2. 将realmd.conf.dist文件重命名为realmd.conf
LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"
改为:
LoginDatabaseInfo = "127.0.0.1;3306;root;123456;realmd"
五:创建帐号
客户端后登录会发现没有账号可用,注册账号的办法有两种:
-
第一种方法是通过SQL语句直接在数据库里面加
INSERT INTO account (username, sha_pass_hash, email) VALUES ('用户名',SHA1(CONCAT(UPPER('用户名'),':',UPPER('密码'))), '邮件地址')
替换命令中的 用户名、密码、邮件地址 即可。
-
第二种方法最简单,后面启动游戏服务器worldserver之后,在这个命令窗口可以输入GM命令:
create account 用户名 密码
六:下载客户端及登陆器
链接:http://pan.baidu.com/s/1kVDiZt1 密码:lp1d
链接:http://pan.baidu.com/s/1pKTF7ej 密码:0uaj