在前面我们搭建了Trinitycore 3.3.5版本的魔兽世界(参见:Trinitycore系列 魔兽世界Trinitycore 3.3.5(24011)版本搭建傻瓜书),不过在一些时候,我们也会想加入npc机器人,这样可以陪我们练级,下副本,打战场~,所以有了以下这篇文章。
注:同搭建傻瓜书一样,下文中的一些截图中目录server3.5.5是当时建立目录的时候的手误,应为server3.3.5,奈何重新截图工作量太大,我改了一部分,其他的就算了。另外,一些是偷懒利旧的上一个版本23061时添加npcbot时候的老图,懒人体谅下。
Trinitycore 3.3.5版本一般而言有2种npc机器人的选择:npcbot和playbot。playbot可以实现npc在地图上游荡,还能实现野外pvp。而npcbot则可以实现陪下副本,下战场,升级做任务等,可以说各有千秋。不过据说playbot不稳定,所以这次我选择了npcbot。理论上playbot和npcbot同时使用是最完美的,以后有空的时候我试试。。
首先去github下载npcbots的zip安装包:
匹配的npcbots版本下载链接
注:Trinitycore 3.3.5的版本(本文是24011)和npcbots的版本有一个兼容范围,我当时用的npcbots的commit是” cd415a1302ee9b9f6e9406b63a8f4ad8fb3c0872″,感谢知乎网友”海洋之殇”帮我试出来适合20411的npcbots版本,我当时疏忽了没记,后来自己都抓瞎了~上面的下载链接我已经更新成了匹配的版本。
将下载的Trinity-Bots-master.zip文件解压缩,上传其中的NPCBots.patch补丁文件到以下目录:/home/wow/TrinityCore/TrinityCore-TDB335.24011/
然后进入目录并打上补丁:
cd /home/wow/TrinityCore/TrinityCore-TDB335.24011
patch -p1 < NPCBots.patch
根据上一篇文章里的步骤重新运行cmake和make:
cd /home/wow/TrinityCore/TrinityCore-TDB335.24011/build
重新运行cmake:
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server3.3.5
重新运行make:
make -j $(nproc) install
这个时候TC 3.3.5版本魔兽世界的主程序已经重新构建完成并已经支持了npcbot,接着需要将npcbot的配置加入worldserver.conf配置文件里:
cd /home/wow/server3.3.5/etc/
vim worldserver.conf.dist
将最后部分NPCBOT CONFIGURATION全部直接复制粘贴添加到worldserver.conf的最后。或者直接将worldserver.conf.dist改名成worldserver.conf使用,不过如果前面已经修改了worldserver.conf的配置,这里就直接添加既可。
接下来是数据库的配置,主要涉及到characters和world两个库的更新。前面文章我们提到过这2个库的作用,characters主要是存放各种游戏角色,world主要是存放npc,boss以及各种物品。
将 /home/wow/TrinityCore/TrinityCore-TDB335.24011/sql/Bots
中的 SQL 文件应用到对应的数据库(以 characters_
和 world_
开头的文件分别对应 characters
和 world
数据库)。
文件如下:
1_world_bot_appearance.sql
2_world_bot_extras.sql
3_world_bots.sql
4_world_generate_bot_equips.sql
5_world_botgiver.sql
characters_bots.sql
将以上文件拷贝到数据库所在设备某个目录中,假定都拷贝到了数据库设备/root目录中,然后导入到world和characters库中:
mysql -u root -p world < /root/1_world_bot_appearance.sql
mysql -u root -p world < /root/2_world_bot_extras.sql
mysql -u root -p world < /root/3_world_bots.sql
mysql -u root -p world < /root/4_world_generate_bot_equips.sql
mysql -u root -p world < /root/5_world_botgiver.sql
mysql -u root -p characters < /root/characters_bots.sql
接下来将”/TrinityCore/sql/Bots/updates “中的 所有SQL 更新文件应用于您的数据库。
注意:TrinityCore/sql/Bots/updates文件夹中有3个文件夹:auth,characters,world,其中的SQL文件很多,如果一个一个像上面一样应用会累死的。。。为了解决这个问题,官方在/home/wow/TrinityCore/TrinityCore-TDB335.24011/sql/Bots文件夹下提供了3个脚本:
merge_sqls_auth_unix.sh
merge_sqls_characters_unix.sh
merge_sqls_world_unix.sh
它们可以把update目录下的3个文件夹下的sql命令语句分别合成3个单一的文件。
先给它们赋予执行权限:
cd /home/wow/TrinityCore/TrinityCore-TDB335.24011/sql/Bots
chmod +x merge_sqls_auth_unix.sh
chmod +x merge_sqls_characters_unix.sh
chmod +x merge_sqls_world_unix.sh
然后分别执行:
cd /home/wow/TrinityCore/TrinityCore-TDB335.24011/sql/Bots
./merge_sqls_auth_unix.sh
./merge_sqls_characters_unix.sh
./merge_sqls_world_unix.sh
运行结束以后用ls查看一下:
得到3个文件ALL_auth.sql,All_characters.sql,ALL_world.sql
把这3个文件拷贝到数据库所在设备的/root目录,然后运行以下命令:
mysql -u root -p auth < /root/ALL_auth.sql
mysql -u root -p characters < /root/ALL_characters.sql
mysql -u root -p world < /root/ALL_world.sql
这个数据库的处理也完成了,最后重新运行一下authserver和worldserver即可:
/home/wow/server3.3.5/bin/authserver
/home/wow/server3.3.5/bin/worldserver
另:npcbot的常用命令参见:Trinitycore系列 3.3.5版本npcbot常用命令。
有没有对应的补丁可以分享下,新下载的编译有错误
那个补丁经常在更新,我发这篇文章的时候的时候机器人右键菜单都没汉化,以前老版本还是汉化的。等我有时间的时候重新用新补丁编译下,把问题处理下吧,等不及的话,你也可以直接在网上找下那个报错的解决方案。其实上次我也想把当时的补丁保存下,但是后来看到连右键菜单都没汉化,就没啥兴趣保存了,想等汉化了的。
我已经在文章中更新了对应版本的npcbots下载链接。