个人技术分享

安装TrinityCore NPCBot

官网:GitHub - trickerer/Trinity-Bots: NPCBots for TrinityCore and AzerothCore 3.3.5

基本安装方法

  1. Follow TrinityCore Installation Guide (https://TrinityCore.info/) to install the server first
  2. Download NPCBots.patch and put it into your TrinityCore folder
  3. Apply the patch using patch -p1 < NPCBots.patch command (creating new files)
  4. (Re)run CMake and (re)build
  5. Merge worldserver.conf.dist into your worldserver.conf file (NPCBot mod settings)
  6. Apply SQL files from /TrinityCore/sql/Bots/ to your DB (files starting with characters_ and world_ go into your characters and world DB respectively):

步骤拆解:

  1. Download NPCBots.patch and put it into your TrinityCore folde
​
git clone https://github.com/trickerer/Trinity-Bots
# or 
wget -c https://github.com/trickerer/Trinity-Bots/archive/refs/heads/master.zip

​

cp Trinity-Bots/NPCBots.patch TrinityCore/ 

cp Trinity-Bots/NPCBots.patch TrinityCore/ 
  • 2.Apply the patch using patch -p1 < NPCBots.patch command (creating new files)

进入TrinityCore执行

patch -p1 < NPCBots.patch
  • 3.重新编译
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server

make -j 8

这里不需要删除以前的build目录,直接在build目录下编译即可。

编译安装

make install
  • 4.Merge worldserver.conf.dist into your worldserver.conf file (NPCBot mod settings)

安装之后产生了新的worldserver.conf.dist文件,将其改名worldserver.conf

不要忘记编辑文件server/etc/worldserver.conf,DataDir使用绝对路径

# DataDir = "."
DataDir = "/home/wow/server/data"

  • 5.Apply SQL files from /TrinityCore/sql/Bots/ to your DB (files starting with characters_ and world_ go into your characters and world DB respectively):
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

进入目录:/home/wow/TrinityCore/sql/Bots 

这里不会操作啊。明白了,是world的,导入world, char的,导入char

进入mysql

sudo mysql 

查看数据库

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| auth               |
| characters         |
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| sys                |
| world              |
+--------------------+

导入characters

use characters;

source characters_bots.sql;

导入world

use world;

source 1_world_bot_appearance.sql;

source 2_world_bot_extras.sql;
source 3_world_bots.sql;
source 4_world_generate_bot_equips.sql;
source 5_world_botgiver.sql;
注意,如果报错的话,请尽量手工敲入这些命令,当然文件名可以cp过去。


 

  • 7.Apply SQL update files from /TrinityCore/sql/Bots/updates to your DB

这一步又看不懂了,里面文件太多了,一个一个导入太麻烦了

原来官方提供了几个sh文件,可以把它们集中起来:

wow@ub22:~/TrinityCore/sql/Bots$ sh merge_sqls_auth_unix.sh 
wow@ub22:~/TrinityCore/sql/Bots$ sh merge_sqls_characters_unix.sh 
wow@ub22:~/TrinityCore/sql/Bots$ sh merge_sqls_world_unix.sh 

这样生成了三个文件:        

-rw-rw-r-- 1 wow wow   4355 Jun 13 01:41 ALL_auth.sql
-rw-rw-r-- 1 wow wow  15161 Jun 13 01:41 ALL_characters.sql
-rw-rw-r-- 1 wow wow 876055 Jun 13 01:41 ALL_world.sql
这样只导入这三个文件就行了

导入三个文件

use auth

source ALL_auth.sql;

use  characters

source ALL_characters.sql

use world

source ALL_world.sql

完成!

开始使用

NPCBot Commands

First of all, to list your NPCBot's stats, use /bonk on them (Warning: big list)

Note that some commands may not be available to all accounts (depending on their access level and permissions set in the RBAC tables (TC) / in the command table (AC)). You may need to change your account permissions / security level to enable usage of some commands Most NPCBot commands are divised by persmissions into two groups: player commands and GM commands, there are also some Admin-only commands

使用/bonk 列表

密钥:
<>(尖括号)表示基本命令参数
[](方括号)表示可选的命令参数
|(管道字符)表示参数选择(即this | that=this OR that)
_ARUMENT_表示参数名称

开始

.npcbot lookup

选择类型

.npcbot lookup 1

1 是战士

选一个人:.npcbot spawn 70003

右键点击出菜单

You need something?
- <Hire bot>
- Nevermind

选择Hire bot,然后再点npc出来菜单

- Manage equipment...
- Manage roles...
- Manage formation...
- Manage abilities...
- Manage talents...
- Give consumable...
- <Create Group>
- You are dismissed
- Pull yourself together, damnit
- Nevermind
- [OPTIONAL options may be displayed here]
- <Create Group (all bots)>
- <Add to group>
- <Add all bots to group>
- <Remove from group>
- [CLASS-SPECIFIC options may be displayed here]

然后点击<Create Group>  ,bot就能加入队伍了

它们会自动协助你

如果在附近,可以直接使用命令:


如果你的NPCBot就在你的直接附近,你可以瞄准他们并发表情:
/stand 站着让你的NPCBot保持原位
/wave 挥手让你的NPCBot再次跟随你

如果不在附近,可以使用命令:

  • .npcbot command stay (.npcb c s) to make all your controlled NPCBots STAY

  • .npcbot command follow (.npcb c f) to make all your controlled NPCBots FOLLOW

装备

要更改他们的装备,您需要右键单击该NPCBot并选择管理装备 

Auto-equip  自动装备会列出你包里NPCBot可以使用的所有物品。点击其中一个项目将自动将其交给NPCBot,并将其装备到适当的位置。

坐骑

bot会学雇主的坐骑,或者用自己的。

配置

设置最多可带bot人数

#    NpcBot.MaxBots
#        Description: Maximum number of bots allowed for players per level bracket:
#                     0-9, 10-19, 20,29, ... , 70-79, 80+.
#        Default:     1,1,1,1,1,1,1,1,1 - (1 for all levels)
#                     0,1,2,3,4,5,6,7,8 - (1 per 10 levels)
#        Max:         39

NpcBot.MaxBots = 1,2,3,4,5,6,7,8,9

 

调试

编译到74%报错error: use of undeclared identifier 'TARGETICONCOUNT'

/home/wow/TrinityCore/src/server/game/AI/NpcBots/bot_ai.cpp:139:23: error: use of undeclared identifier 'TARGETICONCOUNT'
uint8 GroupIconsFlags[TARGETICONCOUNT] =
                      ^
[ 74%] Building CXX object src/server/game/CMakeFiles/game.dir/AI/NpcBots/botdpstracker.cpp.o
/home/wow/TrinityCore/src/server/game/AI/NpcBots/bot_ai.cpp:1315:36: error: use of undeclared identifier 'TARGETICONCOUNT'
            for (uint8 i = 0; i != TARGETICONCOUNT; ++i)
 

/home/wow/TrinityCore/src/server/game/AI/NpcBots/bpet_ai.cpp:1431:32: error: use of undeclared identifier 'TARGETICONCOUNT'
        for (uint8 i = 0; i != TARGETICONCOUNT; ++i)
                               ^
12 errors generated.
make[2]: *** [src/server/game/CMakeFiles/game.dir/build.make:301: src/server/game/CMakeFiles/game.dir/AI/NpcBots/bot_ai.cpp.o] Error 1
2 errors generated.
make[2]: *** [src/server/game/CMakeFiles/game.dir/build.make:765: src/server/game/CMakeFiles/game.dir/AI/NpcBots/bpet_ai.cpp.o] Error 1
2 errors generated.
make[2]: *** [src/server/game/CMakeFiles/game.dir/build.make:717: src/server/game/CMakeFiles/game.dir/AI/NpcBots/botmgr.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1123: src/server/game/CMakeFiles/game.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
 

忘记是前面步骤有缺失,还是其它什么原因了,重新按照手册来一次试试。

做了如下操作:

更新源代码 git pull

加大内存到1756MB

删除build目录并重新编译:

cd TrinityCore
mkdir build
cd build
 
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server

重新编译安装后,配置文件没有了,需要cp worldserver.conf.dist worldserver.conf

并编辑文件server/etc/worldserver.conf,使用绝对路径

# DataDir = "."
DataDir = "/home/wow/server/data"