4

我一直在努力让 TrinityCore 启动并运行,与 Ubuntu 的恐怖作斗争以使事情正常进行。终于搞定了工作流程,完成了两个相关的项目,我打算开始修改代码。但我找到了艾泽拉斯核心,我很感兴趣。关于它和 TrinityCore 之间的差异有几个问题。

首先,AC 被宣传为具有模块化设计,这非常棒。TC 的脚本系统有一个单一的模块化实例,这也很好;编辑 C++ 源脚本,保存它,服务器将在运行时重新加载它,而无需重新编译整个服务器。AC中是否也存在该功能?模块系统有多强大?

我问的原因是我想添加更多动态功能,而不是专注于每个角色都可以重复的实例、阶段和任务。为此,第一步是更改 AI 脚本系统。因此,与其将一个单一的脚本附加到 NPC 上,不如将一组脚本排列成层次结构并定期处理条件,这将是对实际代码库的第一次尝试。是否可以在替换模块中包含该功能?

我的另一个问题是关于错误的普遍性。TC 的发展似乎有点慢,而且它的社区并不那么活跃。AC 在低级系统的鲁棒性方面的发展如何?例如,对于 TC,每隔一段时间就会有漂浮的 NPC 在 Goldshire 周围移动,这是一个相当沉浸式的错误。AC 是否有同样明显的错误?

4

3 回答 3

4

TC 的脚本系统有一个单一的模块化实例,这也很好;编辑 C++ 源脚本,保存它,服务器将在运行时重新加载它,而无需重新编译整个服务器。AC中是否也存在该功能?

AC 中还没有重新加载,因此目前您必须重新编译然后手动重新启动服务器。

模块系统有多强大?

AC 中的模块系统基于与 TC/MaNGOS 相同的挂钩系统(称为“脚本”)。

我的另一个问题是关于错误的普遍性。TC 的发展似乎有点慢,而且它的社区并不那么活跃。AC 在低级系统的鲁棒性方面的发展如何?

AC 也基于 TC,因此可能存在一些常见错误。

但是,在 AC 中,所有更改都首先通过 PR 发送,而不是经过代码审查和手动测试。Travis 构建也应该通过,它确保核心编译(与 TC 相同),但也确保更改不会引入 DB 启动错误

另一方面,在 TC 中没有手动测试,新的更改通常由 TC 开发人员直接推送到主分支(而新贡献者的 PR 仍然首先进行代码审查)。

于 2019-08-06T14:08:47.787 回答
4

Is that functionality also present in AC? 没有交流电没有这个。一般是因为 AC 在旧的 ACE 平台上运行。

模块只是植入自定义脚本的另一种方式,目前仅此而已。在模块中进行更改或添加新模块时,您总是需要重建源代码。

我的另一个问题是关于错误的普遍性。TC 的发展似乎有点慢,而且它的社区并不那么活跃。AC 在低级系统的鲁棒性方面的发展如何?例如,对于 TC,每隔一段时间就会有漂浮的 NPC 在 Goldshire 周围移动,这是一个相当沉浸式的错误。AC 是否有同样明显的错误?

所有在 AC 中可以看到玩家而不是编码员的东西都很好,错误很少,几乎所有根据 vanila 或 TBC,wotlk 部分完成了 99%

于 2019-08-06T08:43:50.020 回答
0

除了 TrinityCore 之外,所有的鸸鹋都不支持热插拔,所以从技术上讲,是的,所有鸸鹋都要求您在进行更改之前关闭。然而这真的不是问题,主要问题是这些emu中的一些不支持插入模块,这实际上迫使最终用户重新编译整个服务器。这很糟糕,另一方面,我不是 TrinityCore 的粉丝,而热插拔功能可能会吸引一些人。如果您的鸸鹋被黑客入侵并且有人要获得管理员权限,这也会带来潜在的缺陷,这可能会将热插拔等功能变成潜在的灾难。另一方面,TrinityCore 允许您在静态和动态之间选择您的编译,这样就可以了,但是您可能会争辩说还有其他仿真器可以做得更好。

于 2021-09-13T07:49:30.280 回答