当前位置: 华文问答 > 游戏

单机版魔兽世界算不算一流的开放世界游戏?

2021-10-29游戏

说明:配合playerbot魔兽世界单机版就是一款一流的开放世界游戏~

魔兽世界是网络游戏,如果你单机玩是很要命的体验,很多需要组队的任务一个人是搞不定的,副本一个人也是排不平的,如果用等级碾压又会少了乐趣,怎么办?解决方案就是在游戏中增加玩家机器人(Playerbot),有了机器人玩家,游戏中绝大多数玩法都可以正常体验了,哪怕不用GM权限作弊,也能非常丝滑的娱乐,众多任务、剧情、职业、专业足够你玩半辈子。

目前开源的玩家机器人项目是很多的,但个人强烈推荐的是:https:// github.com/liyunfan1223 /mod-playerbots

推荐原因很简单,本人使用感觉功能齐全易上手,AI比我这种菜鸟玩家操作的都好(下副本时感觉AI队友格外靠谱),而且项目保持和AzerothCore最新版同步(这对我很重要,我是强迫症,不保持我的游戏是最新版我会很难受)。

playerBot基本功能包括:

  • 通过聊天命令进行精细的机器人控制
  • 数百个机器人随时在世界各地等待您的邀请或地下城查找器
  • 100 多个聊天命令,与机器人进行交互
  • 30 多种可选择的策略
  • 改进的拍卖行机器人,具有机器人作为竞标者和市场价格计算功能
  • 你可以邀请机器人加入队伍(或使用地下城查找器),进行地下城、团队副本或进行一些 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 ; }

    随机机器人和召唤机器人的核心区别有几点:

    1. 随机机器人可以自己上下线,自己和玩家一样正常的游戏,而召唤机器人不会自己上线练级,而且在召唤的玩家下线后会自动下线。
    2. 你可以使用 .playerbot bot init 指令来初始化召唤机器人的等级、装备、天赋,深度定制机器人,但无法这样控制随机机器人。
    3. 随机机器人类似其它独立的玩家,你不能强制交易他们的物品,而召唤机器人和你的小号都是可以随意交易的。

    关于 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)。