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也是在一直更新,不过整的来说,它的编译方法差不了多少。

需求软件:

  • 暴雪官方魔兽世界 wow 1.12.1版本:
  • 编辑器:Notepad ++

Mangos编译

  1. 打开/win/BuildEverything_vc120.sln
  2. 编译将会在buildbinDebug目录下看到exe

制作地图

  1. 安装wow客户端
  2. 将Mangos编译出来的exe拷贝到World of Warcraft 1.12目录(Launcher.exe、WoW.exe)下
  3. 执行ExtractResources.sh,再执行make_vmaps.bat 漫长的等待,然后你看到dbc、maps、mmaps及vmaps。

数据库安装

  1. 按默认把mysql数据库管理系统安装上去
  2. 添加管理员帐号:mangos,密码:mangos
  3. 在database-release20目录下执行InstallDatabases.bat,(这个脚本有错误,后面会给批处理test.bat只是创建mangos的所有数据库)按照提示输入mysql 帐号和密码,
  4. 利用数据库工具更新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修改后缀名,直接默认。

运行并调试

  1. 把dbc、maps、mmaps及vmaps拷贝到buildbinDebug目录下。
  2. realmd是认证服务器,mangosd是游戏服务器,必须先启动认证服务器,如果要调试设置默认的为启动调试项目。
  3. 添加游戏用户,在mangosd的窗口里面输入,表示帐号username,密码Password的命令:create “username” “Password”
  4. 本机调试编辑魔兽世界官方客户端realmlist.wtf内容为,set realmlist 127.0.0.1
  5. 公网用:realmlist.wtf内容为,set realmlist 公网IP,用数据库工具打开realmd数据库,修改realmlist里面的address,为公网IP

Mangos 源码,数据库 wow客户端三者打包:

http://pan.baidu.com/s/1pJGEEan

更多资料

https://www.getmangos.eu/wiki.php