Mangos ,中文芒果服务器,是大名鼎鼎魔兽世界的模拟服务器,一个开源的c++实现的项目。只是作为研究用途,商业用是要给追究法律责任,跨平台性支持windows、linux、BSD操作系统。mmorpg服务器开发架构有的帮助,当然众所周知的原因,网络库那里是是ACE,一般人无法驾驭,写下本文是知做个笔记,因为网络部分不是很容易懂,TrinityCore是它分支,建议去深入这个大量的c++ 0x11重写Mangos ,本文只是环境是在windows环境下搭建MaNGOS编译经典版本的Zero,即是60级wow的1.12.1和1.12.2。之前也转过MaNGOS编译,那个比较老旧了,不过它的前言还是挺值的一看,至于目前最新的版本MaNGOS就参考这篇文章,文章在写的同事MaNGOS也是在一直更新,不过整的来说,它的编译方法差不了多少。
需求软件:
- 数据库管理系统MySql:https://dev.mysql.com/downloads/
- 数据库管理软件(可选):http://www.heidisql.com/ 或者SQLyog
- vs2013:https://www.visualstudio.com/zh-cn/downloads/download-visual-studio-vs.aspx
- Mangos 源码注意对应的dep库,建议用rel20版本:https://github.com/mangoszero/server
- Mangos 的数据库:https://github.com/mangoszero/database
- Git
- 暴雪官方魔兽世界 wow 1.12.1版本:
- 编辑器:Notepad ++
Mangos编译
- 打开/win/BuildEverything_vc120.sln
- 编译将会在buildbinDebug目录下看到exe
制作地图
- 安装wow客户端
- 将Mangos编译出来的exe拷贝到World of Warcraft 1.12目录(Launcher.exe、WoW.exe)下
- 执行ExtractResources.sh,再执行make_vmaps.bat 漫长的等待,然后你看到dbc、maps、mmaps及vmaps。
数据库安装
- 按默认把mysql数据库管理系统安装上去
- 添加管理员帐号:mangos,密码:mangos
- 在database-release20目录下执行InstallDatabases.bat,(这个脚本有错误,后面会给批处理test.bat只是创建mangos的所有数据库)按照提示输入mysql 帐号和密码,
- 利用数据库工具更新mangos的全部数据库。
配置Mangos
mangosd.cfg
文件从mangosd.conf.dist.in修改后缀名
LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd" WorldDatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;mangos;characters" ScriptDev2DatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos" #下面是方便中断调试用,不会断开连接 MaxOverspeedPings =0 /
realmd.cfg
文件从realmd.conf.dist.in修改后缀名,直接默认。
运行并调试
- 把dbc、maps、mmaps及vmaps拷贝到buildbinDebug目录下。
- realmd是认证服务器,mangosd是游戏服务器,必须先启动认证服务器,如果要调试设置默认的为启动调试项目。
- 添加游戏用户,在mangosd的窗口里面输入,表示帐号username,密码Password的命令:create “username” “Password”
- 本机调试编辑魔兽世界官方客户端realmlist.wtf内容为,set realmlist 127.0.0.1
- 公网用:realmlist.wtf内容为,set realmlist 公网IP,用数据库工具打开realmd数据库,修改realmlist里面的address,为公网IP
Mangos 源码,数据库 wow客户端三者打包:
http://pan.baidu.com/s/1pJGEEan