微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在突袭中给玩家施加光环的正确方法是什么?

如何解决在突袭中给玩家施加光环的正确方法是什么?

我正在将我的服务器扩展到 5 人团队副本,因此我尝试将光环应用于团队副本中的所有玩家,从而为玩家提供他们通常拥有的所有团队副本增益/减益效果,如果每个增益的所有职业/专精都存在于突袭。这将有效地使玩家始终拥有他们班级的全套增益效果,而不管团队构成如何。

对于其中一个增益效果和所有减益效果,我制作了自定义法术,对玩家施加法术,赋予他们一种光环,将减益效果应用于玩家 40 码内的生物。然后我将这些法术添加到 Spell_Area 以作为一个raid 区域,并在 Spell_Group 中将它们与实际法术相关联以防止堆叠。这样做有两个问题。

1st,自定义增益/减益法术在玩家(增益)或敌方生物(减益)上均不可见。我通过 GM 命令确认了光环正在被应用,并且随着玩家的攻击,很明显效果实际上是被应用的,所以只是一个视觉错误

第二,在开始突袭后不久,服务器会出现大量延迟。玩家在突袭中停留的时间越长,延迟就越严重。我能够确定似乎这些法术一直在不断地重新应用于玩家,这不应该发生,因为它应该在他们进入该区域时才应用该法术。

视觉问题是我不太关心的事情,因为预期的效果至少正在发生,但服务器延迟使突袭无法进行。有没有办法在不延迟的情况下应用这些光环,或者有没有更好的方法为所有玩家提供相关的增益/减益?

解决方法

我不能说这是否会减少延迟,因为我没有机会尝试这个。

但是对于为该生物应用光环的法术脚本,您可以做的是首先检查该生物是否具有光环,如果没有,则添加它。

至于将光环应用到玩家身上,我发现可以做到这一点

void OnPlayerAreaUpdate(Player* player,uint32  /*oldArea*/,uint32 newArea) override

在 instance_icecrown_citadel.cpp 中添加此检查

            if (!(player->isDead()) && !(player->HasAura(47889)))
                player->AddAura(47889,player);

这样就不会在玩家有光环并且没有死的情况下添加光环。 如果玩家已经死亡并复活,它也会添加光环。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。