我正在将我的服务器扩展到5个玩家的突袭中,所以我试图将光环应用到一个raid中的所有玩家,让玩家在所有职业/规格都出现在raid中的情况下,他们通常会拥有的所有raid法术/解除法术。这将有效地使它,使玩家总是拥有他们的职业的完整阵列的法术,而不管组组成。
对于其中的一个法术和所有的减法术,我制作了一个自定义的法术,对玩家施加一个法术,给他们一个光环,将减法术应用到离玩家40码以内的怪物身上。然后我将这些法术添加到raid区域的Spell_Area中,并在Spell_Group中将它们与实际的法术相关联,以防止堆叠。我这样做有两个问题。
首先,自定义增益/调试法术在玩家(增益)或敌方生物(解除增益)上都不可见。我通过GM命令确认了光环的应用,玩家的攻击很明显,效果实际上是应用的,所以这只是一个视觉错误。
第二,在开始突袭后不久,会有大量的服务器延迟。玩家在突袭中停留的时间越长,滞后就越严重。我能够确定这些法术看起来像是不断地应用在玩家身上,这是不应该发生的,因为当他们进入区域时,它应该只是应用这个法术。
视觉问题是我并不太关心的问题,因为预期的效果至少是发生了,但服务器延迟使raids无法播放。有没有一种方法可以应用这些光环而不会有延迟,或者有没有更好的方法来给所有玩家提供相关的法术/解除法术?
发布于 2021-01-09 03:16:52
我不能说这是否会减少延迟,因为我没有可能尝试这样做。
但是你可以做的是,对于为生物应用光环的拼写脚本,首先检查生物是否有光环,如果没有,则添加它。
至于将光环应用于玩家,我发现可以在
void OnPlayerAreaUpdate(Player* player, uint32 /*oldArea*/, uint32 newArea) override在instance_icecrown_citadel.cpp中添加此检查
if (!(player->isDead()) && !(player->HasAura(47889)))
player->AddAura(47889, player);这样,它不会添加光环的情况下,玩家有光环,而不是死亡。如果玩家已经死了又复活了,它也会增加光环。
https://stackoverflow.com/questions/65605173
复制相似问题