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

魔兽单机游戏:关于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#

相关文章

《集合啦!动物森友会》在Switch打造你的乌托邦小岛—新手向测评

一、游戏简介:一场逃离现实的治愈之旅《集合啦!动物森友会》(以下简称《动森》)是任天堂于2020年3月20日发行的Switch独占模拟经营游戏。玩家将扮演一名移居无人岛的居民,通过钓鱼、捕虫、种植、装饰岛屿等活动,体验与现实同步的悠闲生活。游戏支持中文,并凭借其治愈画风和自由玩法,成为全球现象级作品
2025-08-22 17:05:54

梦幻新诛仙攻略详解大全:职业选择+副本通关+资源获取,一篇搞定

刚进梦幻新诛仙的世界,是不是总有点手忙脚乱?选了职业不知道怎么升级快,打副本总被队友嫌弃输出低,好不容易攒点资源,却不知道该花在宠物还是装备上。其实玩这游戏想少走弯路,找对方法比瞎琢磨管用多了。今天这篇攻略,从萌新入门到老玩家进阶的干货全给你整理好了,照着玩准能顺顺当当。一、职业选择:开启修行之路游
2025-08-21 08:05:36

《上古卷轴OL:暗影盛宴》地下城游戏包与U47更新现已登陆PC/Mac平台

《上古卷轴OL:暗影盛宴》地下城游戏包以及免费的U47更新基础版游戏补丁现已登陆PC/Mac平台,并已包含在《上古卷轴OL》2025年内容通行证中。玩家可以从即日起探索两处全新的4人地下城“黑宝石铸造厂”与“纳吉-卡尔迪什”。《暗影盛宴》与U47更新将于9月3日登陆Xbox和PlayStation主
2025-08-21 00:41:22

《妖怪金手指》流血队终极攻略:高爆发持续输出阵容搭配

在《妖怪金手指》中,流血队以其强大的持续输出能力和高频攻击机制成为PVE和PVP的热门选择。该阵容以盘古为核心,搭配控制、辅助与守门角色,能在战斗中快速叠加流血层数,造成巨额伤害。本攻略将详细解析最佳阵容搭配、技能升级顺序、遗物选择及实战技巧,助你轻松驾驭流血队!一、核心阵容推荐1. 标准流血队(均
2025-08-20 16:23:21

三国群英传3:都骂吕布三姓家奴,却在游戏里享受做义子的感觉!

“义子”这个词,本来只是一个指代身份和关系的形容词,却因为吕布两拜义父又两杀义父的行为而在后世里成为了一个贬义词。尽管人们都喷吕布是个三姓家奴,却都在当年的《三国群英传》3代游戏里非常享受做义子的感觉,因为接盘实在是太舒服了。当年我们要是选择董卓阵营进行游戏的话,等到时间推进到一定的程度,就会触发貂
2025-08-19 04:49:37

策略模拟类游戏《万神之城》的玩法特色一览

《万神之城》(Citadelum)是一款以古罗马为背景的城市建设与策略模拟游戏,玩家将扮演一位领导者,从零开始建造并发展自己的定居点,逐步扩张势力,最终打造一座宏伟的城市。以下是游戏的核心玩法介绍:1. 城市建设与资源管理资源收集:玩家需要从森林、采石场等地方收集木材、石材等资源,同时通过农业生产(
2025-08-19 01:37:13

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