[MAC] 编译安装和测试《魔兽世界》模拟服务端 TrinityCore

2019独角兽企业重金招聘Python工程师标准>>>…

大家好,又见面了,我是你们的朋友全栈君。

1. 安装编译环境和依赖项

客户端安装:

下载地址 (3.3.5a enUS),安装到:/Applications/World of Warcraft 目录下(后面会用到)

安装 Xcode:

自行到 App Store 下载,完成之后需要执行 xcodeselect --install 来安装 command line tools

安装 homebrew:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

安装依赖:

  • MySQL Community Server: brew install mysql

  • GNU Readline: brew install readline

  • OpenSSL: brew install openssl

  • Adaptive Communication Environment (ACE): brew install ace

  • CMake: brew install cmake

2. 下载和编译 TrinityCore

下载源码:

cd ~/Trinity
git clone https://github.com/TrinityCore/TrinityCore.git repo

创建编译目录:

mkdir build
cd build

使用 cmake 生成 XCode 项目文件:

cmake ../repo -GXcode \
-DMYSQL_ADD_INCLUDE_PATH=/usr/local/include \
-DMYSQL_LIBRARY=/usr/local/lib/libmysqlclient_r.dylib \
-DREADLINE_INCLUDE_DIR=/usr/local/opt/readline/include \
-DREADLINE_LIBRARY=/usr/local/opt/readline/lib/libreadline.dylib \
-DACE_INCLUDE_DIR=/usr/local/opt/ace/include \
-DACE_LIBRARY=/usr/local/opt/ace/lib/libACE.dylib \
-DOPENSSL_SSL_LIBRARIES=/usr/local/opt/openssl/lib/libssl.dylib \
-DOPENSSL_CRYPTO_LIBRARIES=/usr/local/opt/openssl/lib/libcrypto.dylib \
-DOPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include \
-DPREFIX=$HOME/Trinity \
-DWITH_WARNINGS=1 \
-DTOOLS=1

编译代码:

xcodebuild -target install -config Release

编译所需要的时间和机器配置有关,期间 CPU 会很高,我这里大概用了 20 分钟左右(air 13 i7 8G)。下面是编译完成后的结果:

tsl0922s-air:~ tsl0922$ ls -l Trinity/bin Trinity/etc
Trinity/bin:
total 44944
-rwxr-xr-x  1 tsl0922  staff    398792  5 17 12:59 authserver
-rwxr-xr-x  1 tsl0922  staff     83360  5 17 12:59 mapextractor
-rwxr-xr-x  1 tsl0922  staff    932888  5 17 12:59 mmaps_generator
-rwxr-xr-x  1 tsl0922  staff    695132  5 17 12:59 vmap4assembler
-rwxr-xr-x  1 tsl0922  staff     97468  5 17 02:07 vmap4extractor
-rwxr-xr-x  1 tsl0922  staff  20795028  5 17 12:59 worldserver

Trinity/etc:
total 200
-rw-r--r--  1 tsl0922  staff   8760  5 15 23:47 authserver.conf.dist
-rw-r--r--  1 tsl0922  staff  89343  5 17 01:46 worldserver.conf.dist

3. 生成 db、maps 和 vmaps 文件

cd /Applications/World of Warcraft

# dbc and maps
~/Trinity/bin/mapextractor
mkdir ~/Trinity/data
cp -r dbc maps ~/Trinity/data

# vmaps(optional)
~/Trinity/bin/vmap4extractor
mkdir vmaps
~/Trinity/bin/vmap4assembler Buildings vmaps
cp -r vmaps ~/Trinity/data

4. 配置服务器

cd ~/Trinity/etc
cp worldserver.conf.dist worldserver.conf
cp authserver.conf.dist authserver.conf

把两个配置文件的  LogsDir 配置都改为:logs,worldserver配置里的 DataDir 配置改为:data。如果你没有启用 vmaps,还需要在 worldserver 配置文件里禁用 vmaps(默认启用)。

5. 初始化数据库

自行到到这里下载 最新 TDB 数据库并把 sql 文件解压到~/Trinity目录下,目前下载得到的文件名为:TDB_full_335.53_2014_03_29.sql

执行命令(数据库 root 用户密码为空):

cd ~/Trinity

# start mysql server
mysql.server start

# create user and database
mysql -u root < repo/sql/create/create_mysql.sql

# init database
mysql -u root < TDB_full_335.53_2014_03_29.sql
mysql -u root < repo/sql/base/auth_database.sql
mysql -u root < repo/sql/base/characters_database.sql

# update database
for file in `ls repo/sql/updates/auth`; do mysql -u root auth < repo/sql/updates/auth/$file; done
for file in `ls repo/sql/updates/characters`; do mysql -u root characters < repo/sql/updates/characters/$file; done
for file in `ls repo/sql/updates/world`; do mysql -u root world < repo/sql/updates/world/$file; done

6. 启动《魔兽世界》服务器模拟器

需要开启2个终端窗口,分别执行:

# first terminal
cd ~/Trinity
./bin/authserver

# second terminal
cd ~/Trinity
./bin/worldserver

[MAC] 编译安装和测试《魔兽世界》模拟服务端 TrinityCore

7. 测试服务器

先创建一个用户:worldserver 启动后会有个自己的命令提示符,在里面执行:

account create test 123456
account set gmlevel test 3 -1

修改《魔兽世界》客户端目录下的 Data/enUS/realmlist.wtf, 把里面的 set realmlist语句改为:set realmlist 127.0.0.1

启动《魔兽世界》客户端(不要从 Launcher 启动,否则会自动更新),输入用户名:test,密码:123456 登陆本地服务器。

[MAC] 编译安装和测试《魔兽世界》模拟服务端 TrinityCore

参考:

转载于:https://my.oschina.net/tsl0922/blog/266003

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126983.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Centos Go环境搭建「建议收藏」

    Centos Go环境搭建「建议收藏」标准官网:https://golang.org/需要墙镜像官网:https://golang.google.cn/dl/【国内推荐】1、下载文件wgethttps://golang.google.cn/dl/go1.14.7.linux-amd64.tar.gz2、解压文件到/usr/local如果之前已经安装过go的版本,先清空下go下面src,不然可能会报一些previousdeclarationat/usr/local/go/src/runtime/internal/atom

    2022年10月12日
    0
  • 汉字字典树[通俗易懂]

    汉字字典树[通俗易懂]字典树的概念我就不说了,不过大多题目都是英文的字典树,我就闲的蛋疼去写了中文的字典树,实现起来也挺简单的。#include&lt;iostream&gt;#include&lt;string.h&gt;#include&lt;stdlib.h&gt;#include&lt;stdio.h&gt;#include&lt;map&gt;usingnamespacestd;…

    2022年9月6日
    2
  • 图片怎么一键重命名_多个图片重命名并按指定的顺序

    图片怎么一键重命名_多个图片重命名并按指定的顺序其主要功能是将某个目录下的指定文件复制到另一个目录下,同时:1.对于目录结构,可以选择将原各级子目录合并成一个目录,或保持原目录结构。2.对于文件名,可以选择(1).保持原文件名不变,但在重名时自动更名;(2).将所有文件重新编号,新文件名=前缀+分隔字符+编号,前缀可以指定,或用子目录名为前缀;(3).去掉原文件名的头几个字符;(4).在文件名开头添加指定的字符串;(5).在第n个字符后添加…

    2022年9月5日
    2
  • Lambda表达式

    Lambda表达式

    2021年11月12日
    39
  • 微软对ice服务器被炸的态度,我的世界ice服务器火了是因为被炸吗?「建议收藏」

    微软对ice服务器被炸的态度,我的世界ice服务器火了是因为被炸吗?「建议收藏」我的世界ice服务器被炸了这事情在2020年被炒的火热。本来服务器被炸是正常不过的事情了,但是不知道那个玩家在网上说什么ICE服务器价值好几万,炸服务器的玩家应该承担法律责任。而另一方面,炸服务器的凶手“Mn搜索阿喵”也自称服务器被炸之后它日子不好过。然而戏剧性的一幕发生了,3月29号,ICE服务器官方发表声明,说这一切都是造谣而已,所谓的ICE服务器价值没有好几万,服务器也才开了不到两个月。而…

    2022年5月1日
    80
  • c++ stl容器_c++ std是什么

    c++ stl容器_c++ std是什么文章目录C++中常用的std标准容器顺序容器:有序关联容器:无序关联容器:顺序容器1. vector容器a. vector的定义与初始化b. vecotr常使用的操作c. 小结:2. string容器a. string的初始化b. string中包含的专有的操作(相对于vector来说)c字符串的转换函数d 对字符的操作(在cctype头文件中,并不属于string头文件的范围,但是关系很紧密的)…

    2022年8月18日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号