RemoveSpellEffects doesn't remove constant effects
The currently implemented version of:
http://en.uesp.net/wiki/Tes3Mod:RemoveSpellEffects
Removes only temporary effects, ie. those with a duration.
Constant effect spells (Spell Type: Ability, Blight, Disease) are not affected.
How to reproduce:
press for console type enablestatreviewmenu press enter choose birthsign atronach press next press ok
console
player->removespelleffects "wombburn" ;constant effect from birthsign
nothing happens
Tested this in Vanilla, and it removed the constant effect properly.
How it was discovered:
I was testing the Morrowind Patch Project v1.6.6 with OpenMW:
It contains a script responsible for absolutely preventing getting Porphyric Hemophilia during and after being a vampire.
It enters an infinite messagebox loop, while trying to remove the disease from the player. The script itself looks like this:
if ( PCVampire == 1 ) if ( player->GetSpellEffects "Vampire Blood Quarra" == 1 ) if ( VampClan == 3 ) MessageBox "The disease mingles with your Quarra blood." else MessageBox "Your blood quickly destroys the inferior vampire strain." endif Player->RemoveSpellEffects "Vampire Blood Quarra" elseif ( player->GetSpellEffects "Vampire Blood Aundae" == 1 ) if ( VampClan == 1 ) MessageBox "The disease mingles with your Aundae blood." else MessageBox "Your blood quickly destroys the inferior vampire strain." endif Player->RemoveSpellEffects "Vampire Blood Aundae" elseif ( player->GetSpellEffects "Vampire Blood Berne" == 1 ) if ( VampClan == 2 ) MessageBox "The disease mingles with your Berne blood." else MessageBox "Your blood quickly destroys the inferior vampire strain." endif Player->RemoveSpellEffects "Vampire Blood Berne" elseif ( player->GetSpellEffects "werewolf blood" == 1 ) MessageBox "Your vampire blood quickly destroys the inferior lycanthropy disease." Player->RemoveSpellEffects "werewolf blood" endif elseif ( PCVampire == -1 ) if ( player->GetSpellEffects "Vampire Blood Quarra" == 1 ) MessageBox "Your immune system fights off the disease." Player->RemoveSpellEffects "Vampire Blood Quarra" elseif ( player->GetSpellEffects "Vampire Blood Aundae" == 1 ) MessageBox "Your immune system fights off the disease." Player->RemoveSpellEffects "Vampire Blood Aundae" elseif ( player->GetSpellEffects "Vampire Blood Berne" == 1 ) MessageBox "Your immune system fights off the disease." Player->RemoveSpellEffects "Vampire Blood Berne" endif endif
(RM-3920 from redmine: created on 2017-06-15 by Hla Mas, )