I'm attempting to circumvent the healing that takes place during sleep. I have not been able to figure out what causes the healing in the first place, but here is my script to try to get around it (doesn't work):
Scriptname _SleepNoHealth extends activemagiceffect Hidden
{This script prevents healing during sleep.}
MagicEffect property AlchFortifyHealRate auto
MagicEffect property DA11AbFortifyHealRate auto
MagicEffect property EnchFortifyHealRateConstantSelf auto
MagicEffect property RaceArgonianFortifyHealthRate auto
MagicEffect property FoodRestoreHealthDuration auto
float playersHealthPercent
float playersHealthFraction
float playersHealth
Event OnInit()
RegisterForSleep()
EndEvent
Event OnSleepStart(float afSleepStartTime, float afDesiredSleepEndTime)
playersHealthPercent = Game.GetPlayer().GetActorValuePercentage("Health")
playersHealthFraction = Game.GetPlayer().GetBaseActorValue("health") * 0.2
playersHealth = Game.GetPlayer().GetBaseActorValue("health") * playersHealthPercent
EndEvent
Event OnSleepStop(bool abInterrupted)
if (Game.GetPlayer().HasMagicEffect(AlchFortifyHealRate)) || (Game.GetPlayer().HasMagicEffect(DA11AbFortifyHealRate)) || (Game.GetPlayer().HasMagicEffect(EnchFortifyHealRateConstantSelf)) || (Game.GetPlayer().HasMagicEffect(RaceArgonianFortifyHealthRate)) || (Game.GetPlayer().HasMagicEffect(FoodRestoreHealthDuration))
Game.GetPlayer().ForceActorValue("health", Game.GetPlayer().GetBaseActorValue("health"))
elseif playersHealthPercent < 0.2
Game.GetPlayer().ForceActorValue("health", playersHealthFraction)
else
Game.GetPlayer().ForceActorValue("health", playersHealth)
endif
EndEvent
-Any thoughts?