前一段时间朋友们玩wlk,找了一些私服玩玩,发现升级太慢,而且装备金币也很难弄,于是研究自己搭建wow私服玩一玩。很容易就找到了TrinityCore,看了一些说明,发现基本所有wow的私服都是基于这个搭建的。
为了搭建方便我将阿里云上的服务器重新安装了一下系统,debian9,为什么选择这个系统?首先官网上说明TrinityCore可以安装在linux,macOS,windows上,阿里云上可以装linux和windows,处于性能的考虑当然要选择linux,而选择debian系统是因为TrinityCore官网上面已经说明了,“Debian based distributions (heavy recommended debian stable, it’s the distribution we use to set minimum requirements)”,其他系统我也尝试过,都是需要重新编译安装一些软件才能达到版本要求,编译软件是很耗时的,特别是gcc。
注意:服务器重装一定要注意数据的备份。我以为数据已经备份妥当,但实际上用来备份的vps也在前一段时间被我重装了,以至于我个人的代码仓库以及过去写的博客都很难恢复了,后面我会写一篇用来备份数据的博客。
确定了以上若干条件后,我们来开始安装TrinityCore。
apt-get install git clang cmake make gcc g++ libmariadbclient-dev libssl1.0-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mysql-server p7zip
update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100
这里我们选择目前最新的巫妖王版本,TDB335.64,下载源码https://github.com/TrinityCore/TrinityCore/archive/TDB335.64.tar.gz
和数据库文件
https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.64/TDB_full_world_335.64_2018_02_19.7z
cd TrinityCore
mkdir build
cd build
sudo mkdir -p /data/wow/server
sudo chown -R 当前用户 /data
cmake ../ -DCMAKE_INSTALL_PREFIX=/data/wow/server
make -j
make install
首先确保服务器硬盘容量够大,这个地方大概需要40G左右空间。容量不够大的话,可以考虑临时挂载一块硬盘,最终需要用的数据只有4G左右。客户端地址从http://wlkwow.com/viewtopic.php?f=2&t=9这里获取到的。(6,7两步骤可以同时开始,两个操作都比较耗时)
wget http://222.186.15.202:12345/wowclient/wlkwowc.rar
下载后解压一下。
cd “wow客户端目录”
/data/wow/server/bin/mapextractor
/data/wow/server/bin/vmap4extractor
mkdir vmaps
/data/wow/server/bin/vmap4assembler Buildings vmaps
/data/wow/server/bin/mmaps_generator
cp -r maps vmaps mmaps /data/wow/server/data
cd /data/wow/server/etc
cp worldserver.conf.dist worldserver.conf
cp authserver.conf.dist authserver.conf
worldserver.conf为游戏配置,authserver.conf为用户鉴权配置,可根据自己需要修改。worldserver.conf可以控制角色初始等级,金币,跨阵营组队等N多功能。
https://github.com/TrinityCore/TrinityCore/blob/3.3.5/sql/create/create_mysql.sql
将页面里的内容(可以直接使用下面copy好的)保存到文件/tmp/create_mysql.sql中,并使用mysql的root用户执行该文件。
root>source /tmp/create_mysql.sql
GRANT USAGE ON * . * TO 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
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;
将我们第3步下载的数据库文件TDB_full_world_335.64_2018_02_19.7z复制到/data/wow/server/bin/
并进行解压。
执行/data/wow/server/bin/authserver 和 /data/wow/server/bin/worldserver。
全部启动完成后,在/data/wow/server/bin/worldserver
命令控制下创建账号:
account create userid password
设置为3级GM
account set gmlevel userid 3 1
将auth库中的realmlist表中的address字段改为你服务器的IP地址(我这里使用的域名:happypeng.com):
修改的登录IP,将如下内容保存到start.bat中,并将start.bat复制到wow客户端目录,启动start.bat,登录你的GM账号,搞定!
echo SET realmlist "你的服务器IP" > Data\zhTW\realmlist.wtf
echo SET realmlist "你的服务器IP" > Data\enTW\realmlist.wtf
echo SET realmlist "你的服务器IP" > Data\zhCN\realmlist.wtf
echo SET realmlist "你的服务器IP" > Data\enCN\realmlist.wtf
echo SET realmlist "你的服务器IP" > realmlist.wtf
start WoW.exe
goto end
官网版:
https://trinitycore.atlassian.net/wiki/spaces/tc/pages/2130065/GM+Commands
我自己整理的:
还在整理中,有时间的话我会整理出来。
如果你觉得给手动创建账号太low了,也可以自己写个服务器让朋友自己注册,要注意的是生成的加密密码是通过sha hash加密的,规则是将userId和password转化成大写字母,并且使用”:”连接。例如使用”USERID:PASSWORD”作为key生成的加密码后的密码,而不是单单的使用”password”。gm等级设置在account_access表中,可以在注册的时候一并将GM等级设置完成。
本文转自:王鹏的博客
July 3, 2019, 3:01 a.m.