说明:配合playerbot魔兽世界单机版就是一款一流的开放世界游戏~
魔兽世界是网络游戏,如果你单机玩是很要命的体验,很多需要组队的任务一个人是搞不定的,副本一个人也是排不平的,如果用等级碾压又会少了乐趣,怎么办?解决方案就是在游戏中增加玩家机器人(Playerbot),有了机器人玩家,游戏中绝大多数玩法都可以正常体验了,哪怕不用GM权限作弊,也能非常丝滑的娱乐,众多任务、剧情、职业、专业足够你玩半辈子。
目前开源的玩家机器人项目是很多的,但个人强烈推荐的是:https:// github.com/liyunfan1223 /mod-playerbots
推荐原因很简单,本人使用感觉功能齐全易上手,AI比我这种菜鸟玩家操作的都好(下副本时感觉AI队友格外靠谱),而且项目保持和AzerothCore最新版同步(这对我很重要,我是强迫症,不保持我的游戏是最新版我会很难受)。
playerBot基本功能包括:
你可以邀请机器人加入队伍(或使用地下城查找器),进行地下城、团队副本或进行一些 PvP;将您的小号角色作为机器人召唤,进行快速物品交换、施放一些法术、增益效果、升级、制作等操作;与对立阵营的机器人进行随机 PvP 或与您阵营的机器人进行决斗;进行交易和拍卖行活动……
增加Playerbot后,使【魔兽世界】成为一个完全的单机游戏!有兴趣可以先上 http:// wow.gameivy.com 测试和在线机器人一起游戏。
如果你想在自己电脑上架设体验,可以看看我以前的文章AzerothCore服务端和Playerbot机器人编译指南,这里重点介绍机器人的使用方式。
机器人(Playerbot)
需要提前说明的是游戏中机器人分为二个类型:随机机器人(random bots)和召唤机器人(summoned bots)。
随机机器人是服务器初始化时自动生成的在线角色,而召唤机器人是通过
.playerbot bot add class classNAME(warrior/paladin/hunter/rogue/priest/shaman/mage/warlock/druid/dk)
指令创建的角色和使用
.playerbot bot login NAME
上线的角色。相关代码:
if
(
!
strcmp
(
cmd
,
"add class"
))
{
if
(
sPlayerbotAIConfig
->
add classCommand
==
0
&&
master
->
GetSession
()
->
GetSecurity
()
<
SEC_GAMEMASTER
)
{
messages
.
push_back
(
"You do not have permission to create bot by add class command"
);
return
messages
;
}
if
(
!
charname
)
{
messages
.
push_back
(
"add class: invalid classNAME(warrior/paladin/hunter/rogue/priest/shaman/mage/warlock/druid/dk)"
);
return
messages
;
}
uint8
claz
;
if
(
!
strcmp
(
charname
,
"warrior"
))
{
claz
=
1
;
}
else
if
(
!
strcmp
(
charname
,
"paladin"
))
{
claz
=
2
;
}
else
if
(
!
strcmp
(
charname
,
"hunter"
))
{
claz
=
3
;
}
else
if
(
!
strcmp
(
charname
,
"rogue"
))
{
claz
=
4
;
}
else
if
(
!
strcmp
(
charname
,
"priest"
))
{
claz
=
5
;
}
else
if
(
!
strcmp
(
charname
,
"shaman"
))
{
claz
=
7
;
}
else
if
(
!
strcmp
(
charname
,
"mage"
))
{
claz
=
8
;
}
else
if
(
!
strcmp
(
charname
,
"warlock"
))
{
claz
=
9
;
}
else
if
(
!
strcmp
(
charname
,
"druid"
))
{
claz
=
11
;
}
else
if
(
!
strcmp
(
charname
,
"dk"
))
{
claz
=
6
;
}
else
{
messages
.
push_back
(
"Error: Invalid class. Try again."
);
return
messages
;
}
uint8
master_race
=
master
->
getRace
();
std
::
string
race_limit
;
switch
(
master_race
)
{
case
1
:
case
3
:
case
4
:
case
7
:
case
11
:
race_limit
=
"1, 3, 4, 7, 11"
;
break
;
case
2
:
case
5
:
case
6
:
case
8
:
case
10
:
race_limit
=
"2, 5, 6, 8, 10"
;
break
;
}
// find a bot fit conditions and not in any guild
QueryResult
results
=
CharacterDatabase
.
Query
(
"SELECT guid FROM characters "
"WHERE name IN (SELECT name FROM playerbots_names) AND class = '{}' AND online = 0 AND race IN ({}) AND guid NOT IN ( SELECT guid FROM guild_member ) "
"ORDER BY account DESC LIMIT 1"
,
claz
,
race_limit
);
if
(
results
)
{
Field
*
fields
=
results
->
Fetch
();
ObjectGuid
guid
=
ObjectGuid
(
HighGuid
::
Player
,
fields
[
0
].
Get
<
uint32
>
());
AddPlayerBot
(
guid
,
master
->
GetSession
()
->
GetAccountId
());
messages
.
push_back
(
"add class "
+
std
::
string
(
charname
)
+
" ok"
);
return
messages
;
}
messages
.
push_back
(
"add class failed."
);
return
messages
;
}
随机机器人和召唤机器人的核心区别有几点:
- 随机机器人可以自己上下线,自己和玩家一样正常的游戏,而召唤机器人不会自己上线练级,而且在召唤的玩家下线后会自动下线。
-
你可以使用
.playerbot bot init
指令来初始化召唤机器人的等级、装备、天赋,深度定制机器人,但无法这样控制随机机器人。 - 随机机器人类似其它独立的玩家,你不能强制交易他们的物品,而召唤机器人和你的小号都是可以随意交易的。
关于
bot init
指令的用法后面介绍,这里我们先跳过。比较特别的是玩家同一个账号下的小号也是可以当机器人对待的,小号综合了随机机器人和召唤机器人的特点,
机器人基础用法
游戏中的玩家机器人你都可以和其他玩家一样看待,但和真实玩家的区别主要有二点:1. 他们不会和真人一样聊天(也许后期接入AI可以解决);2. 他们会自动接受玩家的组队、公会邀请、交易等要求,并根据玩家行动做出相应的反应。
机器人的基础用法很简单,你邀请他组队一起游戏即可。除非服务器做了限制(检查等级差距、检查装备差距),否则机器人都会自动同意和你组队,如果是跨区域机器人会自动传送到你身边,如果是在同一个地图,机器人会自己寻路跑到你身边,组队后机器人就会一直追随你,并根据你的行动产生行为,具体如下:
玩家行动 | 机器人的反应 |
---|---|
玩家接受任务 | 机器人也会接对应的任务 |
玩家与任务提供者交谈 | 机器人会提交已完成的任务 |
玩家使用炉石 | 机器人也会自动炉石 |
玩家使用食物 | 机器人也会自动吃喝 |
玩家向机器人交易 | 机器人会自动打开交易并告诉你他有什么物品 |
玩家邀请机器人组队、加入公会 | 机器人接受邀请 |
玩家开始团队检查准备 | 机器人会自动准备并根据自己的天赋选择分工 |
玩家上马/下马 | 机器人自动上马/下马 |
玩家进入副本 | 机器人跟随进入副本 |
玩家攻击怪物 | 机器人根据自己的职业自动攻击或治疗 |
也就是组队后你不需要特意控制,机器人全自动AI管理,而且和机器人一起组队做任务时你可以把拾取模式改为自由拾取,这样所有东西都只有你自己拾取,只要你的任务物品够了,哪怕机器人没有任何任务物品,在你交任务时机器人也会同样完成任务,但务必注意要让机器人在身边。而下副本时推荐把拾取模式改为队长分配,这样机器人会自动拾取,免得玩家一个人太忙,或者背包装不下,而且遇到好装备可以由玩家控制分给谁,如果机器人分到好装备也会自动装备的。
机器人进阶用法
除了完全自动化外,玩家也可以使用一系列指令来指挥机器人,需要注意的指令只能使用以下二种方式:1. 私聊方式控制单个机器人,2. 小队聊天控制全队机器人。
你可以私聊机器人
help
查看可用的控制指令,因为指令非常多,这里列出最有用的部分。
以下指令都可以做成宏来方便使用,比如
/p follow
或
/w follow
。
行动
指令 | 说明 |
---|---|
follow | 让机器人跟随玩家 |
stay | 让机器人原地等待 |
flee | 让机器人跟随玩家逃跑 |
grind | 让机器人自动打怪练级 |
提示:默认机器人是自动follow玩家的,但如果玩家挂了,机器人会stay在原地,这时玩家复活后需要用follow指令让机器人重新跟随
物品
注意以下指令中的
[item]
都是在游戏中按
shift+点击
物品生成的链接。
指令 | 说明 |
---|---|
e [item] | 让机器人装备指定item |
u [item] | 让机器人使用指定item |
u [item] [target] | 让机器人在指定对象上使用item |
s [item] | 在NPC处出售item |
s * | 在NPC处出售所有灰色品质的item |
b [item] | 让机器人在NPC处购买item |
bank [item] | 让机器人把物品存银行 |
bank -[item] | 让机器人从银行取出物品 |
gb [item] | 让机器人把物品存公会银行 |
gb -[item] | 让机器人从公会银行取物品 |
[item] | 在交易时让机器人交易指定物品给你 |
提示:在你和机器人交易时可以用类似
2g 3s 5c
(2金3银5铜)的指令让机器人交易金币给你,但是除非是自己的小号或自己召唤的机器人,否则你必须给机器人等价值物品才能交易。
任务
注意以下指令中的
[quest]
都是在游戏中按
shift+点击
任务生成的链接。
指令 | 说明 |
---|---|
accept [quest] | 机器人接受选择NPC的指定任务 |
accept * | 机器人接受选择NPC的所有任务 |
drop [quest] | 机器人放弃指定任务 |
r [item] | 让机器人选择任务奖励(需服务器配置开启由玩家选择) |
quests | 查看机器人任务摘要(未完成/已完成/任务数) |
quests incompleted | 查看机器人未完成的任务列表 |
talk | 让机器人和选择NPC对话,这对对话听故事类任务非常有用 |
提示:你可以把自己任务共享给机器人,如果机器人符合条件且日志未满是会自动接受的。另外组队任务时只要玩家任务物品够了,哪怕机器人没有任何任务物品在你交任务时只要机器人在身边,机器人也能自动完成任务。
其它
指令 | 说明 |
---|---|
los | 列出机器人可见的所有游戏对象 |
stats | 列出机器人的资料(包括金币、经验、背包空间状态等) |
trainer learn | 让机器人学习指定NPC的技能(提前是能学习) |
spells | 显示机器人的技能 |
cast [spell] | 让机器人使用技能 |
home | 把机器人的炉石设置在当前旅馆 |
summon | 召唤机器人到身边 |
release | 机器人死后释放灵魂(先release再summon就直接在身边复活了) |
ll all | 机器人默认不会loot抢你的东西,好东西他们全放弃,你可以用这个指令让他们参与loot,all也可以换为skill``quest``normat等 |
提示:
summon
是非常重要的一个作弊级指令,副本中机器人挂了都不用跑图,让机器人释放灵魂后就直接召回,只要自己不死都能车轮战强推BOSS,可让副本难度直线下降。
.playerbot指令
以上指令都是普通的机器人互动指令,下面几个是非常重要的机器人管理指令,包括让机器人上下线和创建召唤机器人,直接输入
.playerbot bot [指令]
,具体指令如下:
指令 | 说明 |
---|---|
login [name1,name2,name3,name4,...] | 让指定机器人上线(也可以上线自己账号下的其它角色做为机器人) |
logout [name1,name2,name3,name4,...] | 让指定机器人下线(组队时你下线机器人会自动下线,无需指令) |
add class [ classNAME] | 召唤指定职业的机器人,职业包括warrior/paladin/hunter/rogue/priest/shaman/mage/warlock/druid/dk |
init=auto [name1,name2,name3,name4,...] | 快速设置机器人的等级、装备到你的阶段,并初始化任务、技能等状态,此指令仅针对add class召唤机器人 |
initself=epic | GM级指令,让自己初始化为一身紫装(正常服务端会禁止玩家使用这个指令) |
提示1:
init=auto
和
initself=epic
为GM级指令,有的服务器会限制使用,除了用auto还可以用"rare"(蓝装)、"uncommon"(绿装)、"epic"(紫装)。
提示2:推荐加机器人为好友或邀请到同一个公会中,方便随时组队,当然最推荐的还是自己把小号用机器人指令登录到游戏,这样可以1带4实现自己和自己组队游戏。
推荐
最后,如果你想方便的控制机器人,可以安装机器人插件,插件可以从本人架设的学习体验服务器官网下载:
如果你对3.3.5版怀旧服感兴趣,也可以到上面网站注册账号体验游戏,游戏除了调整了经验倍率,基本为官方设定(只修改了可以学5个专业和无等级限制建DK)。