为什么服务器端的某些数据仍然存储在DBC文件中,而不是存储在SQL-DB中?特别是-咒语(spells.dbc)。做什么的?
我们在咒语中有很多错误,很难理解咒语出了什么问题,但是很难找到咒语...
最佳答案
咒语,才华,成就等...大多在DBC文件中找到,因为暴雪在过去就是这样做的。的确,在2019年这确实是一种非常过时的工作方式。数据库正在变得越来越强大,用途越来越广泛,并且很难对具有硬编码数据的数据库进行处理。糟糕,无论如何,DBC并没有那么繁重,而我们还没有进行此更改的原因是……除了这个需要花费一些时间的任务之外,我们没有其他原因,这是单调的。
我们知道Trinity核心已经进行了此更改,但如果以此为借口,他们的贡献者比我们多得多!
但是,如果您在主存储库中检查问题跟踪器,则该列表已在我们的待办事项列表中。
的确,我们不能真正编辑DBC文件是因为重新提取或丢失文件时会丢失所有进度,但是,我们可以在名为SpellMgr的C ++文件中修改拼写。
那里有一个叫做SpellMgr :: LoadDbcDataCorrections()的函数。
进行此更改时的主要问题是我们必须修改内核以支持此更改,并且上面的功能包含许多更正。需要进行严格的测试,以确保在此过程中没有发生任何问题。
在这里,通过更改位,您可以删除所需的咒语或将某些属性添加到所需的咒语中,而无需触摸硬编码的dbc文件。
如果您想要一个示例in this link,我已将Archimonde咒语更改为没有施法时间。
注意:
在这一行中,关于损坏的评论可能会导致错过,但这是因为我犯了一个错误,并且截至2019年4月18日,我尚未完成此拉取请求。
关于azerothcore - 服务器端的静态数据存储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55736870/