您的位置: 首页 > 游戏攻略 >

魔兽单机游戏:关于PlayerBot和NPCBot的一些区别

192次浏览     发布时间:2024-05-15 15:48:29    

关于PlayerBot和NPCBot的一些区别

在魔兽单机游戏中,PlayerBot是召唤出自己账号名下的其他角色,可以一起接交任务,打怪抢装备升级,可以指定谁是T谁是治疗,能自动和你一起打怪接任务,很好玩。

而NPCBot是召唤系统预定的一些NPC,这些NPC的等级会自动和你自己的角色的等级一样,这属于临时雇佣性质,可以给他穿上装备,选择天赋设定职责。

在副本中,很多BOSS不都是有点名嘛,例如ICC老1的骨刺,NPCBot是不会被点名的,而PlayerBot却是会被点名的,因为Playerbot是实打实的玩家角色。所以NPCBot和PlayerBot各有特点,看个人喜欢用哪个,从智能角度来讲,NPCBot更智能一些。我升级的时候喜欢用PlayerBot,是自己人,NPCBot只能叫雇佣兵。


最开始用TrinityCore源码编译服务器的时候,当时我用的中文客户端地图解压出的dbc,map,mmap,vmap等游戏数据,发现PlayerBot远程发呆不能使用技能,近战也只是平砍。开始时有些懵逼,后来网上一搜说用英文版的客户端导出游戏数据就好了。一实践确实解决这个问题。但是也发现带来了其他一些不好的体验,毕竟中文的客户端上显示一堆的英文的东西也不是很爽,比如对Playerbot使用spells指令查看他的所有可用法术,显示的全都是英文,看起来太费劲了。后来换成AzerothCore源码后依旧有同样的问题。


关于该问题的解决方案

咱原则是先解决能用,后解决好用的问题。服务器搭好也能玩了,就开始琢磨解决这个问题。看了PlayerBot源码,各种Trigger使用的都是技能的英文名称去施法,而不是法术ID,用中文客户端导出的dbc数据中法术名称都是中文的。知道问题就好改了,不就是把法术的英文名称在SpellInfo结构中正确加载进去的问题么。

1、首先用中文游戏客户端导出数据,服务器端使用该份数据,命名为data

2、再用英文版客户端导出数据,命名为data_en

3、网上找一个叫WDBXEditor的工具

4、用WDBXEditor打开data下的dbc目录下的Spell.dbc,将数据导出成csv格式,把该csv文件导入到表spell_dbc_zh。(数据库acore_world中有个spell_dbc表是额外扩充的一些法术,你可以看到里面只有4000多条记录,而spell_dbc_zh表中有49839条记录。)DBCStores.cpp会把data/dbc/Spell.dbc数据加载进去后,再把spell_dbc中的数据合并进去)

5、用WDBXEditor打开data_en下的Spell.dbc,将数据导出成csv格式,把该csv导入到表spell_dbc_en

6、创建spell_locale表:见图1


7、把spell_dbc_zh表的Name, NameSubtext插进去,locale设为zhCN。NameSubtext字段是Rank等级说明,例如法师的法术:寒冰箭(等级2),Name中存储的是“寒冰箭”,NameSubtext存储的是“等级2”。

insert into spell_locale(ID, locale, Name, NameSubtext) select ID, 'zhCN', Name_Lang_deDE, NameSubtext_Lang_deDE from spell_dbc_zh;

这里为啥是Name_Lang_deDE 而不是Name_Lang_zhCN字段呢。这就跟结构体的加载机制有关,其实在DBCStores中加载xxx_dbc表数据时,表字段的名称是没有意义的,而是根据结构体的结构和表的相应字段顺序依次加载。zhCN在LocalConstant中的值是4,也就是Name_开头字段的第五个,正好就是Name_Lang_deDE。开始我看的时候也是一脸的懵逼。

8、把spell_dbc_en表的Name, NameSubtext插进去,locale设置为enUS

insert into spell_locale(ID, locale, Name, NameSubtext) select ID, 'enUS', Name_enUS, NameSubtext_Lang_enUS from spell_dbc_en;

9、数据准备好了,服务器端还需加载进去,这时候就得撸代码啦。修改SpellMgr.cpp,在LoadSpellInfoStore()方法中把spell_locale的数据加载进去并修改SpellInfo的SpellName字段:见图2


编译启动服务,PlayerBot不发呆了,各种技能嗖嗖的发啊

#兽世界怀旧服# #Playerbot# #AzerothCore#

相关文章

逆水寒手游龙吟怎么加点-龙吟技能加点攻略

在逆水寒手游中,龙吟是新门派职业,相信有很多玩家都转了该职业,为此有玩家想知道逆水寒手游龙吟怎么加点?对此有疑问的话,下面一起来看看逆水寒手游龙吟技能加点攻略吧!逆水寒手游龙吟加点推荐  一、搭配推荐  1、青龙怒、吟风、诛邪、白虹、听雨、残心、雷龙天翔和止戈为武。  2、斩霜、白虹、辉光、听雨、惊
2024-12-23 10:30:54

《全明星激斗(送满星八神庵)》最强霸榜攻略

游戏简介格斗作品的3D策略卡牌手游《全明星激斗(送满星八神庵)》立足于典角色的独特技能,将一招一式精心雕琢给广大粉丝们还原了原作中的华丽战斗。进入战斗后,将看到每名出战角色展现出自己独有的战斗交果!每一拳挥出都充满震撼且打击感十足,精心打磨后完美传承的角色技能将让广大格斗家们仿佛置身格斗之城,真实体
2024-12-23 10:16:04

战争怒吼什么种族后期最厉害

战争怒吼中,该游戏融入了多种种族选择,使玩家体验更加丰富。而在游戏初期至中期,各个种族的特色虽然明显,但在后期来看,哪个种族最有优势和实力呢?接下来就让我们一起来看看吧。游戏中一共有四个主要种族:人、精灵、矮人和亡灵。每个种族都有自己独特的特色和技能,而这些技能在后期的发展和优势上有着决定性的影响。
2024-12-23 10:01:01

放置江湖如何双开

放置江湖是一款非常受欢迎的游戏,玩家在游戏中可以通过集齐各种武林英雄,来组建自己的江湖团队。利用团队来挑战各种关卡和BOSS,这种体验是一种令人兴奋的战斗。然而对于很多玩家来说,放置江湖的单开模式,已经难以满足他们的需求。他们想要在同一台设备上进入两个不同的游戏账号,以便在游戏中更好地交流和合作,
2024-12-23 09:46:26

《国战来了》细节玩法全解析,新老玩家进阶指南

《国战来了》是一款超燃的三国策略手游。以经典三国为蓝本,逼真重现诸多战役。融合模拟经营、策略对战、角色扮演与副本探秘等多元玩法,让你尽情施展智谋。更有独特灭国战争机制,体验生死较量。内部哲蔻+v:twk697《国战来了》游戏攻略七日任务今日任务:务必完成七日任务中的今日任务,任务难度适中且奖励丰厚。
2024-12-23 09:31:21

《死战骑士团》新手的鬼灭崛起之路,深度剖析玩法细节

《死战骑士团》是基于人气动漫《鬼灭之刃》改编而成的角色扮演类卡牌游戏。踏入此游戏世界,仿若置身热血动漫之境,熟悉经典角色纷至沓来。借抽卡之趣,集角色碎片,终得心仪人物相伴。化身“灭鬼剑士”,无畏未知挑战,踏上探索征程,每一步皆有惊喜,每一战俱是考验,在这奇幻冒险里,书写独属于自己的灭鬼传奇,畅享策略
2024-12-23 09:15:59

热门文章

DNF:版本末期打造装备指南,当天可全身毕业,不要太简单

魔兽争霸史上最伟大选手moon

wlk巫妖王攻略? 魔兽世界:WLK怀旧服升级路线最简单的方式,古达克一直满级

环球美食地图:在金融街丽思卡尔顿邂逅阿曼

最新文章

逆水寒手游龙吟怎么加点-龙吟技能加点攻略

《全明星激斗(送满星八神庵)》最强霸榜攻略

战争怒吼什么种族后期最厉害

放置江湖如何双开

《国战来了》细节玩法全解析,新老玩家进阶指南

《死战骑士团》新手的鬼灭崛起之路,深度剖析玩法细节

网站内容来自网络,如有侵权请联系我们,立即删除!
Copyright © 阔百科 琼ICP备2023010365号-4