[Rules] Add rule to allow you to cast invis on already invis'd players (#1361)

This commit is contained in:
splose
2021-05-24 21:29:27 -04:00
committed by GitHub
parent 7458b5f32f
commit e8b94a11f1
2 changed files with 26 additions and 22 deletions
+25 -22
View File
@@ -3607,33 +3607,36 @@ bool Mob::SpellOnTarget(uint16 spell_id, Mob *spelltar, bool reflect, bool use_r
// Prevent double invising, which made you uninvised
// Not sure if all 3 should be stacking
if(IsEffectInSpell(spell_id, SE_Invisibility))
{
if(spelltar->invisible)
{
spelltar->MessageString(Chat::SpellFailure, ALREADY_INVIS, GetCleanName());
safe_delete(action_packet);
return false;
}
}
if(IsEffectInSpell(spell_id, SE_InvisVsUndead))
{
if(spelltar->invisible_undead)
if (!RuleB(Spells, AllowDoubleInvis)) {
if (IsEffectInSpell(spell_id, SE_Invisibility))
{
spelltar->MessageString(Chat::SpellFailure, ALREADY_INVIS, GetCleanName());
safe_delete(action_packet);
return false;
if (spelltar->invisible)
{
spelltar->MessageString(Chat::SpellFailure, ALREADY_INVIS, GetCleanName());
safe_delete(action_packet);
return false;
}
}
}
if(IsEffectInSpell(spell_id, SE_InvisVsAnimals))
{
if(spelltar->invisible_animals)
if (IsEffectInSpell(spell_id, SE_InvisVsUndead))
{
spelltar->MessageString(Chat::SpellFailure, ALREADY_INVIS, GetCleanName());
safe_delete(action_packet);
return false;
if (spelltar->invisible_undead)
{
spelltar->MessageString(Chat::SpellFailure, ALREADY_INVIS, GetCleanName());
safe_delete(action_packet);
return false;
}
}
if (IsEffectInSpell(spell_id, SE_InvisVsAnimals))
{
if (spelltar->invisible_animals)
{
spelltar->MessageString(Chat::SpellFailure, ALREADY_INVIS, GetCleanName());
safe_delete(action_packet);
return false;
}
}
}