Open Add3rall opened 6 years ago
Solution
if(m_caster != unit)
{
if(m_caster->IsHostileTo(unit))
{
if(unit->HasAura(6215))
{
float tiempo= unit->GetAura(6215)->GetMaxDuration();
if(unit->HasAura(6215) && unit->GetAura(6215)->GetDuration() > tiempo*0.5)
if(m_spellInfo->Id == 6215)
{
char* msg = "Stronger spell already active";
WorldPacket data(SMSG_NOTIFICATION, 255);
data << msg;
m_caster->ToPlayer()->GetSession()->SendPacket(&data);
return SPELL_MISS_NONE;
}
}
if(unit->HasAura(61721))
{
float tiempo= unit->GetAura(61721)->GetMaxDuration();
if(unit->HasAura(61721) && unit->GetAura(61721)->GetDuration() > tiempo*0.5)
if(m_spellInfo->Id == 61721)
{
char* msg = "Stronger spell already active";
WorldPacket data(SMSG_NOTIFICATION, 255);
data << msg;
m_caster->ToPlayer()->GetSession()->SendPacket(&data);
return SPELL_MISS_NONE;
}
}
if(unit->HasAura(12826))
{
float tiempo= unit->GetAura(12826)->GetMaxDuration();
if(unit->HasAura(12826) && unit->GetAura(12826)->GetDuration() > tiempo*0.5)
if(m_spellInfo->Id == 12826)
{
char* msg = "Stronger spell already active";
WorldPacket data(SMSG_NOTIFICATION, 255);
data << msg;
m_caster->ToPlayer()->GetSession()->SendPacket(&data);
return SPELL_MISS_NONE;
}
}
if(unit->HasAura(61305))
{
float tiempo= unit->GetAura(61305)->GetMaxDuration();
if(unit->HasAura(61305) && unit->GetAura(61305)->GetDuration() > tiempo*0.5)
if(m_spellInfo->Id == 61305)
{
char* msg = "Stronger spell already active";
WorldPacket data(SMSG_NOTIFICATION, 255);
data << msg;
m_caster->ToPlayer()->GetSession()->SendPacket(&data);
return SPELL_MISS_NONE;
}
}
if(unit->HasAura(28272))
{
float tiempo= unit->GetAura(28272)->GetMaxDuration();
if(unit->HasAura(28272) && unit->GetAura(28272)->GetDuration() > tiempo*0.5)
if(m_spellInfo->Id == 28272)
{
char* msg = "Stronger spell already active";
WorldPacket data(SMSG_NOTIFICATION, 255);
data << msg;
m_caster->ToPlayer()->GetSession()->SendPacket(&data);
return SPELL_MISS_NONE;
}
}
if(unit->HasAura(28271))
{
float tiempo= unit->GetAura(28271)->GetMaxDuration();
if(unit->HasAura(28271) && unit->GetAura(28271)->GetDuration() > tiempo*0.5)
if(m_spellInfo->Id == 28271)
{
char* msg = "Stronger spell already active";
WorldPacket data(SMSG_NOTIFICATION, 255);
data << msg;
m_caster->ToPlayer()->GetSession()->SendPacket(&data);
return SPELL_MISS_NONE;
}
}
if(unit->HasAura(51724))
{
float tiempo= unit->GetAura(51724)->GetMaxDuration();
if(unit->HasAura(51724) && unit->GetAura(51724)->GetDuration() > tiempo*0.5)
if(m_spellInfo->Id == 51724)
{
char* msg = "Stronger spell already active";
WorldPacket data(SMSG_NOTIFICATION, 255);
data << msg;
m_caster->ToPlayer()->GetSession()->SendPacket(&data);
return SPELL_MISS_NONE;
}
}
}
}
File Spell.cpp
PS: I dont know about mangos struct, so make sure you convert any mistaken pointer or w/e
Have played retail from 2006 to 2009 Duelist Mage frost abusing from polimorph DR
I apreciate any comment, meanwhile its constructive. I think twice before reporting anything, can you do the same?
-- If someone didnt understand whats going on here --
If you polimorph an enemy twice instantly, the seccond cast should be "ignored" since enemy already has a stronger polimorf effect.
while your experience of playing retail helps you, you still need to provide sources describing or showing it, ideally back in vanilla, that support your arguments
Vanilla is no longer aviable on Retail so there is no way to prove it. Feel free to take Arena-Tournament as a referent which was the most blizzlike server in terms of pvp (DR is an important part of pvp mechanics in high level where you doublecast spell baiting a trinket).
Example: Mage A Cast Poly to Target twice, so in case that Target uses trinket he is going to get CC again, affecting of course as a second polimorph which is lower. The point here is that in case that Target hold up trinket, the second polimorph will by ignored by server since there is a stronger debuff already there.
You have to find movies from 2005, man. Even then, it would be a major spell fix, and considering they didnt fix the charge/intercept scripts after all these years, i highly doubt they will fix this.
Oh I'm sure they will do the best to fix it if you manage to dig up proof from old videos. Most if not all of the big fixes require someone to do the work and dig up old videos that prove something.
I did that exact job at least 2 times over the time :p
https://streamable.com/du3za