mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
Invisible/Hide mechanics when cast on
Updated mechanics to be consistent with live regarding how invisible breaks when the client is the target of a spell. Invisible will drop whenever a client is hit with a detrimental spell, regardless of if resisted, if it does damage or AOE. Hide skill now also follows the same rules as above. Implemented support for Rogue AA - Nerves of Steel which gives a chance for hide NOT to break when client is hit with an AOE spell.
This commit is contained in:
@@ -3679,6 +3679,8 @@ bool Mob::SpellOnTarget(uint16 spell_id, Mob *spelltar, bool reflect, bool use_r
|
||||
// not all unresistable, so changing this to only check certain spells
|
||||
if(IsResistableSpell(spell_id))
|
||||
{
|
||||
spelltar->BreakInvisibleSpells(); //Any detrimental spell cast on you will drop invisible (can be AOE, non damage ect).
|
||||
|
||||
if (IsCharmSpell(spell_id) || IsMezSpell(spell_id) || IsFearSpell(spell_id))
|
||||
spell_effectiveness = spelltar->ResistSpell(spells[spell_id].resisttype, spell_id, this, use_resist_adjust, resist_adjust, true, false, false, level_override);
|
||||
else
|
||||
@@ -3712,6 +3714,9 @@ bool Mob::SpellOnTarget(uint16 spell_id, Mob *spelltar, bool reflect, bool use_r
|
||||
}
|
||||
}
|
||||
|
||||
if (spelltar->IsClient())
|
||||
spelltar->CastToClient()->BreakSneakWhenCastOn(this, true);
|
||||
|
||||
spelltar->CheckNumHitsRemaining(NumHit::IncomingSpells);
|
||||
CheckNumHitsRemaining(NumHit::OutgoingSpells);
|
||||
|
||||
@@ -3719,6 +3724,9 @@ bool Mob::SpellOnTarget(uint16 spell_id, Mob *spelltar, bool reflect, bool use_r
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (spelltar->IsClient()){
|
||||
spelltar->CastToClient()->BreakSneakWhenCastOn(this, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user