New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[3.3.5][6.x] Core/AuraApplication: Limitation to 64 aura slots. #17051
Comments
According comments on code no. Unless you have proff for it. |
Players can't see their owned auras on their targets, making something easy as updating DoTs really hard. |
That's true and really annoying(easily seen in Deathbringer Saurfang fight). |
Conversation on IRC regarding this issue few days ago:
TL;DR No fucking idea what to do. |
I been using 128 for auras since 3 years, haven't had any issues yet. #define MAX_AURAS 128 // client support up to 255, but it will cause problems with group auras updating |
i always get wow errors if it's increased to 128, like WishToDie already said :/ |
This is what I'm using and it works for me: ---
src/server/game/Spells/Auras/SpellAuraDefines.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h
index 3969dfb..bed6553 100644
--- a/src/server/game/Spells/Auras/SpellAuraDefines.h
+++ b/src/server/game/Spells/Auras/SpellAuraDefines.h
@@ -18,7 +18,7 @@
#ifndef TRINITY_SPELLAURADEFINES_H
#define TRINITY_SPELLAURADEFINES_H
-#define MAX_AURAS 64 // client support up to 255, but it will cause problems with group auras updating
+#define MAX_AURAS 128 // client support up to 255, but it will cause problems with group auras updating
enum AURA_FLAGS
{
-- |
Maybe that issue only occures with more player. i can definitely say, that player will get errors if you have around 2 k players online |
Going to repeat what I said on IRC (that you have log of above) |
While I can't find an exact number of allowed buffs, I don't see how it could be 255. According to the Blue post at the end of This wikia entry, there are approx. 30 categories that buffs / debuffs fit into. Given the rules governing stacking, I don't see how you could manage to get 255 buffs on a Unit.
|
For everything except SMSG_PARTY_MEMBER_STATS_FULL and SMSG_PARTY_MEMBER_STATS we can safely send more than 64 auras. This should cover > 99% of cases where players cant see all auras. Tested and working on higher pop server for several weeks now. diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index 4b9c913..18ccbf0 100644
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -808,7 +808,7 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke
{
uint64 auramask = player->GetAuraUpdateMaskForRaid();
*data << uint64(auramask);
- for (uint32 i = 0; i < MAX_AURAS; ++i)
+ for (uint32 i = 0; i < MAX_AURAS_GROUP_UPDATE; ++i)
{
if (auramask & (uint64(1) << i))
{
@@ -890,7 +890,7 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke
{
uint64 auramask = pet->GetAuraUpdateMaskForRaid();
*data << uint64(auramask);
- for (uint32 i = 0; i < MAX_AURAS; ++i)
+ for (uint32 i = 0; i < MAX_AURAS_GROUP_UPDATE; ++i)
{
if (auramask & (uint64(1) << i))
{
@@ -992,7 +992,7 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket &recvData)
uint64 auraMask = 0;
size_t maskPos = data.wpos();
data << uint64(auraMask); // placeholder
- for (uint8 i = 0; i < MAX_AURAS; ++i)
+ for (uint8 i = 0; i < MAX_AURAS_GROUP_UPDATE; ++i)
{
if (AuraApplication const* aurApp = player->GetVisibleAura(i))
{
@@ -1030,7 +1030,7 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket &recvData)
data << uint64(petAuraMask); // placeholder
if (pet)
{
- for (uint8 i = 0; i < MAX_AURAS; ++i)
+ for (uint8 i = 0; i < MAX_AURAS_GROUP_UPDATE; ++i)
{
if (AuraApplication const* aurApp = pet->GetVisibleAura(i))
{
diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h
index 7a2032a..7e58d1f 100644
--- a/src/server/game/Spells/Auras/SpellAuraDefines.h
+++ b/src/server/game/Spells/Auras/SpellAuraDefines.h
@@ -18,7 +18,8 @@
#ifndef TRINITY_SPELLAURADEFINES_H
#define TRINITY_SPELLAURADEFINES_H
-#define MAX_AURAS 64 // client support up to 255, but it will cause problems with group auras updating
+#define MAX_AURAS 255 // Client-side limit
+#define MAX_AURAS_GROUP_UPDATE 64 // Limit of SMSG_PARTY_MEMBER_STATS_FULL and SMSG_PARTY_MEMBER_STATS
enum AURA_FLAGS
{
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 8b4fc50..ce7b9b1 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -77,7 +77,7 @@ _flags(AFLAG_NONE), _effectsToApply(effMask), _needClientUpdate(false)
TC_LOG_DEBUG("spells", "Aura: %u Effect: %d put to unit visible auras slot: %u", GetBase()->GetId(), GetEffectMask(), slot);
}
else
- TC_LOG_DEBUG("spells", "Aura: %u Effect: %d could not find empty unit visible slot", GetBase()->GetId(), GetEffectMask());
+ TC_LOG_ERROR("spells", "Aura: %u Effect: %d could not find empty unit visible slot", GetBase()->GetId(), GetEffectMask());
}
_InitFlags(caster, effMask); |
@Gerhood can you create one pull request for this? |
Description:
There is a limit to 64 maximum visible auras for each unit.
At least for 3.3.5, the limit should be at 255.
Branch(es): 335/6x
TC hash/commit: b82ffb8
TDB version: TDB 335.61
Linking model: static
The text was updated successfully, but these errors were encountered: