我们安装完Debian系统和LNMP环境之后,就要开始安装主角TrinityCore了。过程很长,需要仔细操作。在操作的过程中,一个环节结束之后一定要记得备份快照,不然后面环节毁掉前面努力的过程也是常有的,另外如果你的硬盘空间不足至少60GB,这里就不要继续了,后期解压地图时会占满硬盘。
1.WOW客户端 (文末下载)
2.WinSCP (文末下载)
打开Putty登录root总管理员账户
输入 apt-get update
输入编译环境安装命令
apt-get install git clang cmake make gcc g++ libmariadbclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev p7zip default-libmysqlclient-dev
安装完成之后输入
update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100
接下来我们要Git获取TrinityCore 这个下载的时间比较长
git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git
下载完成之后依次输入
cd TrinityCore
mkdir build
cd build
接下来我们就要准备编译文件,输入
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server -DTOOLS=1
接着就是编译服务器服务,有2种方式来编译。
第一种是傻瓜式,直接输入 make&&make install 开始编译,这种速度一般。
第二种是利用全核心CPU make -j 线程数 install 这里线程数要改成自己CPU的线程数,这样可以全核心进行编译。如果你不懂,那就输入上面的命令,只是慢一点。
完成之后关机创建快照备份
打开WinSCP,主机名就写虚拟机的IP
警告框选”是“
然后登录,账户登录总管理员的root
登录后就看到了服务器文件。
我们切换到 home 目录下就可以找到魔兽世界的服务端 server 文件夹了。
切换到 root 文件夹下,注意看上面的地址栏里的地址是否一致,也可以直接在地址栏输入 /root 来切换。我们新建一个文件夹 wow335 ,设置权限 777
然后把客户端里的data文件夹和根目录下的其他文件上传,其他几个文件夹不用上传。
完成之后关机创建快照备份
上传完成之后我们开始提取地图。
注意:以下3步前后顺序不可逆,必须按顺序提取。如一步失败,需要删除这步产生的文件重头提取,否则会进入0%死循环。
打开 Putty 输入 cd ~/wow335 进入客户端目录,wow335就是我们刚才新建的客户端目录。
输入地图提取命令,注意命令中的 wow 不同的机器可能会出现变化,根据你上面编译服务器目录为准。若不一致,后续命令中wow都需要替换。
/home/wow/server/bin/mapextractor
接着系统就会自动提取客户端地图文件
完成之后依次输入命令
mkdir /home/wow/server/data
cp -r dbc maps /home/wow/server/data
接着输入提取命令
/home/wow/server/bin/vmap4extractor
完成之后依次输入,开始编译地图
mkdir vmaps
/home/wow/server/bin/vmap4assembler Buildings vmaps
编译完成之后输入
cp -r vmaps /home/wow/server/data
然后接着输入命令
mkdir mmaps
/home/wow/server/bin/mmaps_generator
注意:这次提取是整个大地图提取,时间很长视机器情况30~120分钟不等
提取完成之后输入
cp -r mmaps /home/wow/server/data
这步结束之后,可以通过WinSCP登录进去把/home/wow/server/data里的文件下载到本地备份一份,不然以后丢失损坏还要再来一次。
完成之后关机创建快照备份
接着打开WinSCP,地址栏里输入 /home/wow/server/etc 回车进入。然后把里面的2个文件下载下来。
把 authserver.conf.dist 重命名为 authserver.conf ,然后再上传到 /home/wow/server/etc 下
把 worldserver.conf.dist 重命名为 worldserver.conf ,然后用记事本或编辑器打开修改
将 DataDir 的值改为“../data”,然后保存,也上传到 /home/wow/server/etc 下
接下来我们来创建数据库,打开浏览器访问虚拟机IP地址,然后点击phpmyadmin
登录界面里输入用户名 root 密码就是你数据库的密码
进来之后点击上面的SQL按钮,然后输入以下代码
CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT USAGE ON * . * TO 'trinity'@'localhost';
CREATE DATABASE `world` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `world` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `characters` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `auth` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
输入完之后点击右下角的执行按钮
刷新一下页面我们就能看到新加的数据库了。
接着访问 https://github.com/TrinityCore/TrinityCore/releases 下载最新的335数据库(文末提供目前最新的数据20200630)
压缩包解压后可以得到一个几百兆的sql文件,这就是魔兽世界里的数据了
打开WinSCP,地址栏里输入 /home/wow/server/bin 回车进入。然后把刚才解压的sql文件上传上去。
依次输入
cd /home/wow/server/bin
./worldserver
当显示 ready.. 时表示服务端已经启动了,数据库也导入完毕了。
输入命令关闭服务端
server shutdown 1
进入phpmyadmin查看数据库,点击auth数据库,点击realmlist表,双击修改address地址为虚拟机IP。
接着输入命令开启防火墙端口
iptables -A INPUT -p tcp --dport 3724 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3724 -j ACCEPT
iptables -A INPUT -p tcp --dport 8085 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8085 -j ACCEPT
iptables -A INPUT -p tcp --dport 1119 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1119 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8081 -j ACCEPT
输入命令启动账户服务
cd /home/wow/server/bin
./authserver
重新打开一个putty登录root账户,之前开启账户服务的窗口不要关闭
输入命令启动游戏服务端
cd /home/wow/server/bin
./worldserver
启动成功之后输入
account create admin admin
创建一个账号 admin,密码 admin
这里服务端就开启完毕了。
打开本地的wow游戏目录,在根目录新建一个 wow.bat 文件,并在里面输入
echo y | rd /s "Cache"
echo SET realmlist "192.168.0.201" > Data\zhTW\realmlist.wtf
echo SET realmlist "192.168.0.201" > Data\zhCN\realmlist.wtf
echo SET realmlist "192.168.0.201" > Data\enCN\realmlist.wtf
echo SET realmlist "192.168.0.201" > Data\enUS\realmlist.wtf
echo SET realmlist "192.168.0.201" > realmlist.wtf
start wow.exe
goto end
这里的IP就是虚拟机的IP
如果你的wow客户端是大于12340版本的,需要下载替换wow.exe文件将版本降低到12340。(文末下载)
运行wow.bat文件即可打开游戏,输入刚才创建的账号即可登录
到这里,TrinityCore搭建就已经结束了,不过因为数据库是英文的,所以里面的任务简介也是英语的,可以打中文任务数据库补丁包即可,全部打在world数据库里。
给Debian增加一个自动启动来自动运行服务,由于Debian默认没有启动rc.local文件,所以我们要自己来写一下。
输入命令
vi /etc/rc.local
然后输入内容
#!/bin/sh -e
sleep 5
nohup /home/wow/server/bin/authserver > /dev/null 2>wow_auth.log &
nohup /home/wow/server/bin/worldserver > /dev/null 2>wow_world.log &
exit 0
然后给脚本设置权限
chmod 777 /etc/rc.local
然后修改worldserver.conf文件里的DataDir 为 "/home/wow/server/data"的绝对路径,否则启动会失败
DataDir = "/home/wow/server/data"
然后修改worldserver.conf文件里的
Console.Enable 为 "0" 否则后台运行会占用100%CPU
Console.Enable=0
最后启动服务
systemctl enable rc.local
systemctl start rc.local
这样重启之后就会自动打开服务了
WOW 3.3.5 12340 台服
WOW 3.3.5 13570 国服
TrinityCore-3.3.5 git失败可以用这个包直接安装
3.3.5 数据库
WinSCP
12340 wow.exe替换文件
中文任务数据库补丁(仅汉化部分)
Github上一个开源的注册页