安装MangOS

MaNGOS Windows Setup for WoW 2.3.3 (Chinese Edition) 对于不同语言版本的客户端,MaNGOS的安装上略有区别,本文将针对魔兽世界2.3.3简体中文版,详细讲述安装步骤。 一、必备工具 WoW客户端。可从官网下载,也可购买DVD安装盘(如果版本低于2.3.3,需下载补丁升级)。 编译好的MaNGOS。使用Subversion从https://mangos.svn.sourceforge.net/svnroot/mangos/tr 阅读详情

版本问题

mangos目前有三个分支,分别对应wow的不同版本:

  • 主分支对应资料片巫妖王之怒,版本号3.3.5a
  • mangos-one对应资料片燃烧的远征,版本号2.4.3
  • mangos-zero对应原版,版本号1.12.1或1.12.2

使用不同分支时,要求客户端的版本号一致,否则无法登录。详见http://getmangos.com/

因为只是研究目的,没必要用最新的版本,所以我选择用原版,即mangos-zero。


客户端安装

由于官方已经升级到资料片大灾变,所以只能自己找早期的安装程序和patch。悲剧的是原版的mac安装程序是PowerPC格式的,而从MacOS10.7(Lion)开始就不支持这种安装程序了。好在wow的Windows版和Mac是基本共通的,所以可以在Windows上安装好,再拷贝到Mac上打patch。

要注意一下安装好的Windows版是没有MacOS可执行程序的,而Mac版的patch缺需要这个文件。解决办法很简单,下载一个MPQ提取程序,比如MPQ Editor。用它打开文件World of Warcraft/Data/base.mpq,把里面的World of Warcraft.app提取出来,放到根目录World of Warcraft/下即可。

接下来就可以打patch了。Windows版安装好的版本号是1.0.1。还需要两个patch:

  • WoW-1.12.0-enUS-patch
  • WoW-1.12.0.5595-to-1.12.1.5875-enUS-patch

第二个找了我好久,链接在此,注意要注册账户才能下载。

如果需要其他patch可以去这些网站:

http://www.bastionofstormwind.com/content/view/33/34/

http://www.ausgamers.com/files/browsegame/html/3/218

http://www.fileplanet.com/100462/0/section/Patches


服务端安装

mangos-zero包含三个部分:引擎代码,脚本代码,数据库数据。都是通过git管理的,其中脚本代码不是必需的,所以先不装。此外还需要预先安装以下软件:

  • Git
  • CMake
  • MySQL Server

当然还有XCode的UNIX Development Support。


1.引擎安装

git clone https://github.com/mangos-zero/server.git ~/mangos-zero

由于使用cmake,安装很方便。进入目录后依次执行:

mkdir build; cd build; cmake ..; make; make install

cmake那一步可以添加参数-DDEBUG=1,开启debug模式。

make过程中可能会出错,提示UINT64的定义冲突:

/mangos-zero/src/framework/Platform/Define.h:113: error: conflicting declaration ‘typedef ACE_UINT64 uint64’

加个宏条件判断即可:


diff --git a/src/framework/Platform/Define.h b/src/framework/Platform/Define.h

index d3f85c6..5b53069 100644

--- a/src/framework/Platform/Define.h

+++ b/src/framework/Platform/Define.h

@@ -109,7 +109,11 @@ typedef ACE_INT64 int64;

 typedef ACE_INT32 int32;

 typedef ACE_INT16 int16;

 typedef ACE_INT8 int8;

+// Mac OS X hack against uint64 redefine

+#ifndef _UINT64

 typedef ACE_UINT64 uint64;

+#define _UINT64

+#endif

 typedef ACE_UINT32 uint32;

 typedef ACE_UINT16 uint16;

 typedef ACE_UINT8 uint8;

--


默认的安装路径是../mangos-server。


2.提取地图和dbc数据

引擎需要客户端中的地图和dbc数据,mangos-zero自带了提取工具ad。首先编译:

cd ~/mangos-zero/contrib/extractor

cmake -G "Unix Makefiles" -DCMAKE_OSX_ARCHITECTURES=i386

make -j3


然后执行,指定输入和输出路径:

./ad -i /Applications/World\ of\ Warcraft/ -o ~/mangos-server/bin/


3.MySQL配置

安装时把安装包里的MySQL.prefPane和MySQLStartupItem.pkg也装上,以后就可以在System Preferences里方便的控制了。


让shell可以执行mysql:

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile

source ~/.bash_profile


用root账户登陆mysql,这时是没有密码的,安全起见要设置一下:

mysql -u root

mysql>UPDATE mysql.user SET Password = PASSWORD('oranges') WHERE User = 'root';

mysql>FLUSH PRIVILEGES;

mysql>EXIT;


再次登陆,删除test数据库:

mysql -u root -p

mysql>DROP DATABASE IF EXISTS `test`;


删除可能会失败,是因为MySQL5.5会尝试删除数据库所在目录,但是该目录下有非数据库文件。解决办法是在shell下直接删除该文件:

rm /usr/local/mysql/data/test/.empy

然后再执行删除数据库指令。


关闭匿名访问:

mysql>DELETE FROM mysql.user WHERE User = '';


4.初始化数据库数据

首先下载mangos-zero对应的数据:

git clone https://github.com/mangos-zero/database.git ~/mangos-zero-db


然后在MySQL里新建用户mangos以及相应的数据库。mangos自带了一个脚本:mangos-zero/sql/create_sql.sql。但是不能直接用,因为默认的数据库名与mangos-zero的数据(上面下载的那个)不一致。数据库名必需换成:

mangos -> zp_world

characters -> zp_characters

realmd -> zp_realm


改好后就可以执行了:

mysql -u root -poranges < ~/mangos-zero/sql/create_mysql.sql


然后在mangos-zero-db/mysql_info里修改数据库账号和密码,再执行脚本(zp_script部分先注释掉):

cd ~/mangos-zero-db

./mysql_import


5.配置文件

首先复制一份默认配置:

cp ~/mangos-server/etc/realmd.conf.dist ~/mangos-server/etc/realmd.conf

cp ~/mangos-server/etc/mangosd.conf.dist ~/mangos-server/etc/mangosd.conf


然后将数据库名称,此外因为没有用vmap,所以要关闭vmap的相关选项:


diff mangosd.conf mangosd.conf.dist 

65,67c65,67

< LoginDatabaseInfo     = "127.0.0.1;3306;mangos;mangos;zp_realm"

< WorldDatabaseInfo     = "127.0.0.1;3306;mangos;mangos;zp_world"

< CharacterDatabaseInfo = "127.0.0.1;3306;mangos;mangos;zp_characters"

---

> 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"

206,207c206,207

< vmap.enableLOS = 0

< vmap.enableHeight = 0

---

> vmap.enableLOS = 1

> vmap.enableHeight = 1


diff realmd.conf realmd.conf.dist

110c110

< LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;zp_realm"

---

> LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"



6.启动服务器

cd ~/mangos-server/bin

./mangosd

./realmd


mangosd可能会报错,提示找不到libsqlclient,更新一下动态库链接即可:

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib mangosd

用指令otool -L mangosd可以查看当前动态库链接。


mangosd可能会报错,提示用户mangos对zp_world没有CREATE TEMPORARY TABLES的权限。加上即可:

GRANT CREATE TEMPORARY TABLES ON `zp_world`.* TO 'mangos'@'localhost';


mangos可能会报错,提示:

Assertion failed: (STRINGIZE(_ok == 0) && 0), function setPriority, file /Users/smallka/Projects/mangos-zero/src/shared/Threading.cpp, line 232.

/Users/smallka/Projects/mangos-zero/src/shared/Threading.cpp:232: Error: Assertion in setPriority failed: _ok == 0Abort trap: 6

查看代码是ACE_Thread::setprio函数返回错误,暂时不知道原因。要么去掉debug模式,要么注释掉这行先。


7.新建游戏账户

mangosd其实是个交互环境,直接输入指令:

mangos>account create smallka smallka


8.客户端登陆

编辑World of Warcraft/realmlist.wtf:

set realmlist 127.0.0.1


登陆后卡在"logging in to game server"是因为没有设置好gs的ip地址:

mysql -u mangos -pmangos

mysql>use zp_realm;

mysql>UPDATE realmlist SET address="127.0.0.1" WHERE id=1;


TODO

Mac版客户端的角色缺了头部贴图,@$$%$%#@%

 
 

参考资料

http://getmangos.com/wiki/Compile_MaNGOS_On_Mac_OS_X

http://www.jeremymeile.ch/jeremymeile.ch/Get_MaNGOS.html

http://getmangos.com/community/topic/8512/the-big-faq-thread/

http://getmangos.com/wiki/Administering_MaNGOS

Windows上安装MangosZero的详细步骤 我是参考着官方wiki上的文章安装的,这篇文章还是很详细的。 https://www.getmangos.eu/wiki/documentation/installation-guides/guideswindows/configuring-mangos-r20068/ 某些步骤在我的文章里进行了细化,可以对照着看下。 魔兽世界的客户端我是在http://www.178.com/下载的,我在自己的... 阅读详情

相关推荐

Mangos Zero 编译安装

折腾了两天,终于将Mangos Zero在自己的Windows电脑上搭建起来了,下面总结一下安装Mangos Zero过程。网上也有很多安装Mangos Zero的教程,都比较老了,有些基本不能用了。

whosemario的专栏 9373

推荐开源项目:MaNGOSZero - 永恒的经典魔兽世界服务器

推荐开源项目:MaNGOSZero - 永恒的经典魔兽世界服务器 1、项目介绍 MaNGOSZero 是一个由社区驱动的开源项目,旨在为玩家提供原汁原味的《魔兽世界》经典体验。这个项目采用 C++ 编写,兼容多种操作系统,包括 Windows、Linux 和 BSD 系统。MaNGOSZero 能够运行在 MySQL 或 MariaDB 数据库上,致力于与 1.12.x 版本的《魔兽世界》保持10...

gitblog_00003的博客 807

MaNGOS大芒果服务端源码研究(一)——环境安装与源码下载

此文章是我自己的学历历程记录,教学味道不强。我学到哪记到哪,是为了我自己的下次学习能够很快找到上次的点。 MaNGOS的一些介绍就不多说了,可以自行百度。其实就是一个大型的通用服务端,可以支持多种客户端接入。但其实我自己也还有些不懂,怎么实现的通用。一个模块针对的是魔兽世界的模块,如果用其他客户端接入,这样可以用么?有待继续研究。 一开始可以先上大芒果中国论坛,去把单机版的

姚老板的黑店 1万+

mangos linux编译,ManGos编译和安装指南

1. 安装 MS VC++ 20032. 打开工程文件:文件 -> 打开 -> 工程 -> MaNGOS_源文件_文件夹\win\mangosdVC71.sln3. 编译工程:生成 -> 生成解决方案4. 创建目录'MaNGOS'5. 在'MaNGOS'目录下创建以下目录:datadbcmaps6. 将下列文件拷贝至'MaNGOS'目录:MaNGOS_源文件_文件夹\bin...

weixin_31210347的博客 1261

MANGOS源码-魔兽私服

mangos不是一个魔兽私服模拟器,它是一个开源的自由软件项目,是用c++和C#编程语言,实现的一个支持大型多人在线角色扮演游戏服务器的程序框架,在这个框架下,它理论上应该支持任何客户端的网络游戏,由于现在很多人使用魔兽世界来对它进行测试,所以针对魔兽世界的脚本和数据库文件比较完善,很多人就利用这个开源项目来实现魔兽私服。

服务器:Mangos ZERO是魔兽世界的服务器。 该服务器提供完整的世界内容,包括身份验证和脚本支持。 与魔兽世界客户端1.12.1-1.12.3兼容-在https://www.getmangos.eubug-trackermangos-zero上报告所有问题

建立状态: Linux 视窗 编码状态 香草支 魔兽世界的魔兽世界服务器 Mangos是一个用构建的开源项目,它运行速度很快,可以在多个平台上运行,并且可以将游戏数据存储在和。 它还具有对SOAP的可选支持,目标是在其原始版本(即和与100%兼容。 如果您喜欢《的第一个化身,并且仍然想玩 ,那么这就是您的理想之选。 我们提供了一个身份验证服务器,您可以在其中管理您的用户,以及一个世界服务器,该服务器提供游戏内容,就像原始内容一样。 最重要的是,每个更新都是由构建的,如您在本章标题旁边的图像中所见! 我们确实喜欢绿色建筑和工作环境。 为了补充这一点,我们通过推送构建以查找并修复任何可能的安全问题。 魔兽世界以及所有魔兽世界或魔兽世界的艺术品,图像和知识均受( 版权保护 要求 Mangos服务器支持各种操作系统和各种编译器平台。 为此,我们使用了各种免费的跨平台库,并使用提供了一个跨平台构建系统,该系统可适应您选择的操作系统和编译器。 操作系统 当前,我们支持在以下操作系统上运行Mangos : Windows ,32位和64位。 Server 2008(或更高版本)或Windo

centos5编译安装mangos

svn取源码:svn checkout https://mangos.svn.sourceforge.net/svnroot/mangos/trunk/ /usr/local/src/mangos.svnsvn checkout https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ /usr/local/src/mangos.

发呆时间 787

Mangos Zero Server x64 Release

Mangos Zero Server x64 Release 经典的芒果Server端 最新官版 .

Mangos TWO 服务器项目安装与使用教程

Mangos TWO 服务器项目安装与使用教程 1. 项目目录结构及介绍 Mangos TWO 是一个用于《魔兽世界:巫妖王之怒》的开源服务器项目。以下是项目的目录结构及其介绍: mangostwo/server/ ├── apps/ ├── cmake/ ├── contrib/ ├── dep @ c02243e/ ├── doc/ ├── dockercontainer/ ├── linux...

gitblog_00818的博客 795

mangos源码(游戏服务器端程序框架)

mangos不是一个魔兽私服模拟器,它是一个开源的自由软件项目,是用c++和C#编程语言,实现的一个支持大型多人在线角色扮演游戏服务器的程序框架,在这个框架下,它理论上应该支持任何客户端的网络游戏,由于现在很多人使用魔兽世界来对它进行测试,所以针对魔兽世界的脚本和数据库文件比较完善,很多人就利用这个开源项目来实现魔兽私服。   首先,mangos项目是一个开源的自由软件(如同linux或者firefox),并且遵守其中最为严格的GPL协议,也就是保证源代码绝对的自由,要了解什么是开源软件,自由软件请自己搜索这方面的资料。   其次开发小组一再强调,这是个研究,教育性质的对怎样开发大型网游的服务器端有好处的项目,是一个技术细节毫无保留向公众开放的软件,是一件很有意义的事情,如果你使用它作为盈利目的,那你本身就违反了软件的协议。所以任何利用mangos项目进行私服活动的组织和个人都违反了mangos的宗旨,mangos项目也不会对它们负责。   mangos的技术细节上是这样的,核心部分是个和特定游戏没有关系的核心框架程序,主要是进行进程调度,创造世界,建立心跳机制,处理网络接入等。数据库也是使用的开源数据库软件MySQL,编译器使用的是GCC。至于游戏内容数据库,游戏人物,时间,世界脚本,都是由这个核心程序所支持的扩展脚本来实现,所以有一些独立出来的项目专门模拟魔兽世界来开发支持mangos的核心程序。现在mangos的核心程序已经放到著名的协同开发网站sourceforge上开发了,使用的版本控制工具是subversion,(目前已经迁移到GIT)。大家都可以从sourceforge的subversion数据库中下载最新的源代码程序。   另外有点要注意的是,开源项目是很容易被利用的,有时候有的公司开发了一个软件说是自己做的其实内核都是别人的开源内核,但是公司又不承认,利用了别人的劳动成果赚钱不说,既不回报社区,也对开源自由软件造成了很大的伤害。所以大家注意了,如果看到一个和魔兽世界很像的什么网络游戏?要想想是不是利用的mangos的核心程序。

TrinityCore-NpcBot-x64 (3.3.5) 最新编译版 版本日期 2022-12-15

Trinity Core 3.3.5a版本 对应魔兽世界3.3.5.12340版本客户端 TrinityCore 是一个主要基于 C++ 的MMORPG框架。 它源自MaNGOS,即大规模网络游戏对象服务器,并基于该项目的代码随着时间的推移进行了大量更改,以优化、改进和清理代码库,同时改进游戏中的机制和功能。 NPCBots是一个 TrinityCore 模组。 CMAKE :OpenSSL 1.1 、MySql8

MangoS项目安装与使用指南

MangoS项目安装与使用指南 一、项目目录结构及介绍 MangoS是一个基于Nanomsg理念实现的轻量级、高性能的消息队列库,其在GitHub上的地址为:https://github.com/nanomsg/mangos.git。下面是对MangoS项目主要目录结构的解析: mangos/ ├── CMakeLists.txt - CMake构建脚本 ├── COPYING ...

gitblog_01198的博客 454

tbc-db:mangos-tbc和《魔兽世界客户端补丁》 2.4.3的内容数据库

用于CMaNGOS / mangos-tbc的TBC-DB 一个供使用的内容数据库,以及《魔兽世界客户端补丁》 2.4.3- 。 它仅与客户端2.4.3(内部版本8606)兼容。 TBC-DB在GPL v3下发布。 该文件( LICENSE.md )必须是此软件制作的任何可再发行程序包的一部分。 如果要制作可再发行的副本,则不得从此软件中删除任何许可证。 TBC-DB包含的版权材料不属于GPL v3。 有关受版权保护的材料的信息位于文件( COPYRIGHT.md )中。 魔兽世界的内容和材料是暴雪或其许可方的商标和版权。 版权所有。 TBC-DB是CMaNGOS项目的一部分,与暴雪或其许可方无关。 兼容性 TBC-DB数据库仅与核心兼容。 入门 该数据库存储库的基本原理是拥有一个SQL文件,该文件保存数据库中的每个表。 将某些内容更改为数据库后,将通过在updates目录中添加

Mangos ONE 服务器安装与使用教程

Mangos ONE 服务器安装与使用教程 1. 项目介绍 Mangos ONE 是一个开源的服务器项目,专为 World of Warcraft: The Burning Crusade (TBC) 版本设计。该项目旨在提供与原版游戏客户端 2.4.3 (8606) 版本完全兼容的服务器环境。Mangos ONE 不仅支持完整的游戏内容,还提供了用户认证和脚本支持。 主要特点: 完全兼容:与 ...

gitblog_00578的博客 514

此源码为魔兽世界3.3.5a的模拟器源码,AzerothCore,是目前3.3.5完善度最高,修复程度最好的模拟器源码

此源码为魔兽世界3.3.5a的模拟器源码,AzerothCore(艾泽拉斯核心),是目前3.3.5完善度最高,修复程度最好的模拟器源码。此源码基于SunWell(太阳之井)源码项目的核心升级和更新,并添加了独特的模块化系统,使开发者开发功能变得简单和快捷

VS2022 中 std::mutex 静态初始化陷阱:一次诡异崩溃的排查记录

VS2022中使用std::mutex时遇到的静态初始化陷阱问题。该问题源于VS2022 17.4版本为std::mutex添加constexpr支持后,全局静态初始化可能导致系统资源未就绪时锁失效或崩溃。文章分析了问题现象、影响范围,并提供了解决方案。最后给出了排查清单和核心建议

qq_34552942的博客 951

Mangos国外强人安装手册

This guide was graciously borrowed , and updated, from Spuddlethud. He did the majority of work in this guide. Many thanks go out to him. The following is a tutorial for configuring MaNGOS for Wind...

weixin_30908941的博客 406

Visio中高效绘制空间坐标系的实用技巧

本文详细介绍了在Visio中从零开始高效绘制精准空间坐标系的实用技巧。文章摒弃了现成形状的局限,重点讲解了如何利用直线、箭头和文本框等基础工具,结合网格设置、绘图比例调整和图层管理,构建完全可控的三维坐标系。通过分步指南,帮助用户掌握刻度添加、标注对齐及模板创建等高级方法,从而在科研绘图与工程制图中实现专业级的视觉效果。

e3f4g5的博客 557

mangoszero linux编译,Linux入门教程:Mangos安装的Linux软件需求

为了研究Linux服务器,做到最小化安装,不安装多余的服务,要安装MANGOS需要以下的环境:* GCC 4.1.X ( gcc / g++ / cpp / fort77 / g77 / gpp)* automake* autoconf* glibc & glibc-dev(glibc headers) [ libc6 ]* make* mysql-server 4.1 ou mysql-...

weixin_36245388的博客 355

Matlab实战:5分钟搞定脉冲多普勒雷达信号处理仿真(附完整代码)

本文详细介绍了如何使用Matlab在5分钟内完成脉冲多普勒雷达信号处理仿真,包括环境配置、线性调频信号生成、数字下变频处理、动目标检测及性能优化技巧。通过完整代码示例和实用技巧,帮助工程师快速验证算法可行性,提升雷达信号处理效率。

nokia的博客 943

GNSS差分码偏差(DCB)从原理到实战:如何避免数据处理中的常见错误

本文深入解析GNSS差分码偏差(DCB)的原理及其对高精度定位的关键影响。针对数据处理中因忽略DCB校正导致的常见错误,如单系统PPP高程偏差、多系统融合精度下降及电离层研究失真等,提供了实战解决方案与主流DCB产品获取、集成方法,帮助用户有效规避陷阱,提升数据处理精度。

k5l6m的博客 223

Mangos ONE 服务器项目安装与使用教程

Mangos ONE 服务器项目安装与使用教程 1. 项目目录结构及介绍 Mangos ONE 是一个用于《魔兽世界:燃烧的远征》的服务器项目。以下是该项目的目录结构及其介绍: mangosone/server/ ├── cmake/ ├── contrib/ ├── dep/ ├── doc/ ├── dockercontainer/ ├── linux/ ├── src/ ├── win/ ├...

gitblog_00872的博客 668

【MATLAB】嵌入式ADC/DAC控制工程

摘要:本文针对嵌入式ADC/DAC应用中存在的量化误差、采样噪声、输出漂移等问题,提出基于MATLAB的仿真优化方案。通过构建完整的ADC/DAC仿真模型,实现了采样建模、数字滤波、误差校准和闭环控制仿真。方案采用滑动平均滤波抑制ADC噪声,双校准参数补偿DAC固有误差,并将算法轻量化移植至STM32平台。实测表明,该方案使ADC采样波动从±25mV降至±5mV,DAC输出偏差从42mV降至18mV,显著提升了模拟量交互精度和系统稳定性。整套方案资源占用低,适配各类嵌入式高精度控制场景,具有较高的工程应用价

unber的博客 647
上一篇: SigPipe信号
下一篇: Me
flymachine
博客等级 码龄23年 253粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值