魔兽世界怀旧服-1.12.x ubuntu 搭建指南


wow 1.12 作为一个经典的版本,一直以来都是很多人研究的对象,掌握了基于cmangos的编译和使用指南,其他关于mangos-zero 及 lightshope等其他模拟器的编译都是大同小异,下述为编译搭建的说明:

1. 编译环境要求

// 更新ubuntu的仓库
sudo apt-get update 
// 安装必须的编译环境
sudo apt-get install build-essential gcc g++ automake git-core \
autoconf make patch libmysql++-dev mysql-server libtool \
libssl-dev grep binutils zlibc libc6 libbz2-dev cmake subversion \
libboost-all-dev


2. 开始编译


2.1 获取代码:
在当前用户目录下新建wow文件夹,开始获取模拟器代码,推荐使用cmangos,不过可能存在有多国语言支持的问题,也可以用mangos-zero,具体可以去github搜索相关的代码,这里主要演示cmangos 代码路径如下:

cd ~/wow
git clone https://github.com/cmangos/mangos-classic.git mangos

2.2 编译:
1) 进入代码目录,新建编译文件夹

cd mangos && mkdir build && cd build

2) 配置编译变量和编译,若是使用其他路径作为二进制文件存放路径,建议使用root用户配置和编译

//注:若是需要编译playbot机器人,可增加 -DBUILD_PLAYERBOT=ON
sudo cmake ../ -DCMAKE_INSTALL_PREFIX=/opt/mangos-server -DBUILD_EXTRACTOR=ON -DPCH=ON
sudo make && sudo make install

3) 检查
在 /opt/mangos-server 应该会生成如下文件夹:bin/ etc/

3. 运行环境要求

3.1 mysql安装

sudo apt-get install mysql-server

注:安装过程中设置好密码,以下为几个mysql的设置的参考:
修改外部访问
mysql忘记密码及修改密码的方法

3.2 WOW数据的填充

1) 创建数据库

进入cmangos的下载目录,执行如下代码:

cd sql/create && mysql -uroot -p < db_create_mysql.sql

注:若不需要增加mangos的mysql用户,可屏蔽后面几句之后再执行。

2) 创建数据表格

cd sql/base
mysql -u root -p classiccharacters < characters.sql
mysql -u root -p classicmangos < mangos.sql
mysql -u root -p classicrealmd < realmd.sql

3) 填充有效数据,使用classic-db可有效填充 scriptdev2 dbc/original_data dbc/cmangos_fixes 等相关数据,不需要额外做导入动作。

到当前用户目录存放wow相关内容的文件夹内下载最新版本的classic-db

cd ~/wow
git clone git://github.com/cmangos/classic-db.git class-db

执行 InstallFullDB.sh 去生成InstallFullDB.config 文件

// 生成config文件
./InstallFullDB.sh 
//修改InstallFullDB.config 文件的如下内容:
DATABASE="classicmangos"
USERNAME="root"
PASSWORD="you mysql root password"
MYSQL="mysql"
CORE_PATH="../mangos" // 若是有错误,请使用绝对路径

然后再次执行 ./InstallFullDB.sh,即可更新所有数据库。

4) 汉化数据库

https://github.com/DecadeWoW/wow_db_chinese.git wow_db_chinese
https://github.com/mangoszero/database database

切换到 1.12的分支

git checkout -t origin/DB-Zero\(1.12.3\)

虽然这个是mangos-zero的数据库,但是还是可以用,找到其中的翻译部分,导入进去。
下面为批量导入sql的脚本:

for sql_file in `ls *.sql`; do mysql -uroot -pyoupassword --database=classicmangos < $sql_file ; done

3.3 php环境 — 用来注册账号

1) 参考其他文档安装好php环境。

2) 下载注册页面的参考:

git clone https://github.com/DecadeWoW/cmangos-utils.git cmangos-utils

使用的web-register 里面的文件即可,注意修改php连接mysql的内容。

3.4 地图文件制作

在wow目录下新建res文件夹,然后上传wow的整个Data目录到res文件夹内,注意文件名的大小写和路径位置

1) 准备地图相关的文件

cd res/
cp ../mangos/build/contrib/extractor/ad .
cp ../mangos/build/contrib/vmap_assembler/vmap_assembler .
cp ../mangos/build/contrib/vmap_extractor/vmapextract/vmap_extractor .
cp ../mangos/build/contrib/mmap/MoveMapGen .
cp ../mangos/contrib/extractor_scripts/MoveMapGen.sh .
cp ../mangos/contrib/extractor_scripts/offmesh.txt .
cp ../mangos/contrib/extractor_scripts/ExtractResources.sh .

chmod +x MoveMapGen.sh

2) 执行地图文件生成,直接运行 ExtractResources.sh 即可

4. 运行游戏服务器

4.1 修改 realmd 数据库,修改服务器名称和服务器IP地址

// 登录数据库
mysql -uroot -p 
// 切换数据库
use classicrealmd
// update 服务器名称和地址
UPDATE realmlist SET name="怀旧服", address="xx.xx.xx.xx" WHERE id=1;

4.2 新建管理员账户

cd /opt/mangos-server/bin
./mangosd -c ../etc/mangosd.conf
account create [用户名] [密码]
account set addon [用户名] 0
account set gmlevel [用户名] 3
server shutdown 0

4.3 新建run 脚本,执行启动

1) 新建run文件输入如下内容

#!/bin/sh

screen -dmS mangosd /opt/mangos-server/bin/mangosd -c /opt/mangos-server/mangosd.conf
screen -dmS realmd /opt/mangos-server/bin/realmd -c /opt/mangos-server/realmd.conf

2) 赋予权限

sudo chmod +x  run 

3) 执行启动

sudo /opt/mangos-server/run

4) 关闭服务

sudo screen -r mangosd
输入:server shutdown 0

5. 客户端登录器制作

新建 登录器.bat文件,输入如下内容:

@echo off
rd cache /s /q
echo SET realmlist "bn.whonee.net" > realmlist.wtf
echo SET realmlist "bn.whonee.net" > Data\zhCN\realmlist.wtf
echo SET realmlist "bn.whonee.net" > Data\zhTW\realmlist.wtf
echo SET realmlist "bn.whonee.net" > Data\enUS\realmlist.wtf
start wow.exe
exit

即可制作简单的登录器

6. 修改游戏

后续更新其他文章详细说明。

版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/wow-classic-servers-build-install-in-ubuntu-14-04.html

《魔兽世界怀旧服-1.12.x ubuntu 搭建指南》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注