我一直致力于启动和运行TrinityCore,为了让事情正常工作,我一直在与Ubuntu的恐怖斗争。最终完成了工作流程,完成了两个相关的项目,我打算开始修改代码。但我找到了AzerothCore而且我很好奇。我得到了一些关于它和TrinityCore之间的区别的问题。
首先,AC被宣传为具有模块化设计,这是非常出色的。TC的脚本系统具有一个模块化的实例,这也非常好;编辑C++源代码脚本,保存它,服务器将在运行时重新加载它,而不必重新编译整个服务器。该功能是否也存在于AC中?模块系统的健壮性如何?
我问的原因是,我想添加更多的动态功能,而不是专注于每个角色都可以重复的实例、阶段和任务。要做到这一点,第一步是改变AI脚本系统。因此,与其将一个单片脚本附加到NPC上,不如将一组脚本排列在具有周期性处理的条件的层次结构中,这将是对实际代码库的一次很好的首次尝试。是否有可能在替换模块中包含该功能?
我的另一个问题是关于bug的流行度。TC的开发确实看起来有点慢,而且它的社区也不是那么活跃。在低层系统的健壮性方面,AC的发展如何?例如,对于TC,偶尔会有浮动的NPCs在Goldshire周围运行,这是一个相当沉浸式的bug。AC也有类似明显的bug吗?
发布于 2019-08-06 16:43:50
Is that functionality also present in AC?不,AC没有这个。通常是因为AC运行在旧的ACE平台上。
模块只是植入自定义脚本的另一种方式,目前仅此而已。在模块中进行更改或添加newone时,您总是需要重新构建源代码。
我的另一个问题是关于bug的流行度。TC的开发确实看起来有点慢,而且它的社区也不是那么活跃。在低层系统的健壮性方面,AC的发展如何?例如,对于TC,偶尔会有浮动的NPCs在Goldshire周围运行,这是一个相当沉浸式的bug。AC也有类似明显的bug吗?
所有能在AC中看到玩家而不是程序员的东西都很好,bug很少,几乎所有的东西都是根据vanila或TBC的,wotlk部分完成了99%
发布于 2019-08-06 22:08:48
TC的脚本系统有一个模块化的实例,这也非常好;编辑C++源代码脚本,保存它,服务器将在运行时重新加载它,而不必重新编译整个服务器。该功能是否也存在于AC中?
在AC中还没有重新加载,所以目前您必须重新编译,然后手动重新启动服务器。
和模块系统的健壮性如何?
AC中的模块系统基于TC/MaNGOS的相同挂钩系统(称为“脚本”)。
我的另一个问题是关于bug的流行度。TC的开发确实看起来有点慢,而且它的社区也不是那么活跃。在低层系统的健壮性方面,AC的发展如何?
AC也是基于TC的,所以可能会有一些常见的bug。
然而,在AC中,所有更改都首先通过PR发送,而不是经过代码审查和手动测试。此外,Travis构建应该通过,它确保核心编译(与TC相同),但也确保更改不会引入DB启动错误。
另一方面,在TC中没有手动测试,新的更改通常由TC开发人员直接推送到主分支中(而来自新贡献者的PR仍然首先进行代码审查)。
发布于 2021-09-13 07:49:30
除了TrinityCore,没有一个emu支持热插拔,所以从技术上讲,所有的emu在进行更改之前都需要关闭。然而,这并不是真正的问题,主要的问题是,这些emu中的一些不支持drop in模块,这本质上迫使最终用户重新编译整个服务器。这太糟糕了,另一方面,我不是TrinityCore的粉丝,而热插拔功能可能会吸引一些人。这也打开了一个潜在的缺陷,以防你的emu被黑客入侵,有人获得了管理员权限,这可能会将热插拔之类的功能变成潜在的灾难。另一方面,TrinityCore允许你在静态和动态之间选择你的编译器,所以你可以这样做,但是你可能会说有其他的仿真器可以做得更好。
https://stackoverflow.com/questions/57351265
复制相似问题