I need help once again...
The following is an edited version of the vanilla Vampire script. What I'm trying to do is this:
I want Vampirism to be two stages instead of 4. Somethings are working, others are not.
Current problems:
The Spell SummonGreaterMinion shows up only AFTER feeding. It happens at any stage. When my Vampire hits stage 2 it does not properly swap out SummonGreaterMinion for SummonLesserMinion as I have directed it to.
I also think there might be errors with my script changes for removing stages 3 and 4. I'm hoping someone can look this over and tell me where I have errors. I wish to fix them. Thank you.
ScriptName DVampireScript extends Quest Conditional;Variable to track if the player is a vampire;0 = Not a Vampire;1 = Vampire;2 = Vampire Stage 2;3 = Vampire Stage 3;4 = Vampire Stage 4Int Property VampireStatus Auto ConditionalMessage Property VampireFeedMessage AutoMessage Property VampireStageProgressionMessage AutoRace Property ArgonianRace Auto Race Property ArgonianRaceVampire Auto Race Property BretonRace Auto Race Property BretonRaceVampire Auto Race Property DarkElfRace Auto Race Property DarkElfRaceVampire Auto Race Property HighElfRace Auto Race Property HighElfRaceVampire Auto Race Property ImperialRace Auto Race Property ImperialRaceVampire Auto Race Property KhajiitRace Auto Race Property KhajiitRaceVampire Auto Race Property NordRace Auto Race Property NordRaceVampire Auto Race Property OrcRace Auto Race Property OrcRaceVampire Auto Race Property RedguardRace Auto Race Property RedguardRaceVampire Auto Race Property WoodElfRace Auto Race Property WoodElfRaceVampire Auto Race Property CureRace AutoStatic Property XMarker AutoFaction Property VampirePCFaction Auto Float Property LastFeedTime AutoFloat Property FeedTimer AutoGlobalVariable Property GameDaysPassed AutoIdle Property VampireFeedingBedRight AutoIdle Property VampireFeedingBedrollRight AutoGlobalVariable Property VampireFeedReady AutoimageSpaceModifier Property VampireTransformIncreaseISMD AutoimageSpaceModifier Property VampireTransformDecreaseISMD AutoeffectShader property VampireChangeFX autoEvent OnUpdateGameTime() ;Feed timer FeedTimer = GameDaysPassed.Value - LastFeedTime; debug.trace(self + "Feed Timer is:" + FeedTimer + "days") ;Vampire progression should not happen if player is in combat or controls are locked or the player can't fast travel If Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled() && Game.GetPlayer().GetCombatState() == 0 ;If player hasn't fed, progress Vampirism If (FeedTimer >= 4) && (VampireStatus == 1) ;add Stage 2 Vampire buffs and spells VampireFeedReady.SetValue(2) ;VampireStageProgressionMessage.Show() VampireStage4Message.Show() VampireStatus = 2 VampireProgression(Game.GetPlayer(), 2) Game.GetPlayer().AddtoFaction(VampirePCFaction) ;stop checking GameTime until the player feeds again UnregisterforUpdateGameTime() ElseIf FeedTimer <= 2 && (VampireStatus == 2) ;add Stage 1 Vampire buffs and spells VampireFeedReady.SetValue(1) VampireStageProgressionMessage.Show() VampireStatus = 1 VampireProgression(Game.GetPlayer(), 1) Game.GetPlayer().AddtoFaction(VampirePCFaction) EndIf Endif EndEventFunction VampireFeedBed() Game.GetPlayer().PlayIdle(VampireFeedingBedRight)EndFunctionFunction VampireFeedBedRoll() Game.GetPlayer().PlayIdle(VampireFeedingBedrollRight)EndFunctionFunction VampireChange(Actor Target) ;Effects for hiding the change Game.DisablePlayerControls() VampireChangeFX.play(Target) VampireTransformIncreaseISMD.applyCrossFade(2.0) ObjectReference myXmarker = Target.PlaceAtMe(Xmarker) MAGVampireTransform01.Play(myXmarker) myXmarker.Disable() utility.wait(2.0) imageSpaceModifier.removeCrossFade() VampireChangeFX.stop(Target) ;Change player's race, defaults to Nord Vampire if (Target.GetActorBase().GetRace() == ArgonianRace) CureRace = ArgonianRace Target.SetRace(ArgonianRaceVampire) elseif (Target.GetActorBase().GetRace() == BretonRace) CureRace = BretonRace Target.SetRace(BretonRaceVampire) elseif (Target.GetActorBase().GetRace() == DarkElfRace) CureRace = DarkElfRace Target.SetRace(DarkElfRaceVampire) elseif (Target.GetActorBase().GetRace() == HighELfRace) CureRace = HighELfRace Target.SetRace(HighELfRaceVampire) elseif (Target.GetActorBase().GetRace() == ImperialRace) CureRace = ImperialRace Target.SetRace(ImperialRaceVampire) elseif (Target.GetActorBase().GetRace() == KhajiitRace) CureRace = KhajiitRace Target.SetRace(KhajiitRaceVampire) elseif (Target.GetActorBase().GetRace() == NordRace) CureRace = NordRace Target.SetRace(NordRaceVampire) elseif (Target.GetActorBase().GetRace() == OrcRace) CureRace = OrcRace Target.SetRace(OrcRaceVampire) elseif (Target.GetActorBase().GetRace() == RedguardRace) CureRace = RedguardRace Target.SetRace(RedguardRaceVampire) elseif (Target.GetActorBase().GetRace() == WoodElfRace) CureRace = WoodElfRace Target.SetRace(WoodElfRaceVampire) endif ;Clear player's diseases ;VampireCureDisease.Cast(Target) Target.RemoveSpell(DiseaseBoneBreakFever) Target.RemoveSpell(DiseaseBrainRot ) Target.RemoveSpell(DiseaseRattles ) Target.RemoveSpell(DiseaseRockjoint ) Target.RemoveSpell(DiseaseWitbane ) Target.RemoveSpell(DiseasePorphyricHemophelia) ;Make player Vampire Stage 1 VampireStatus = 1 VampireProgression(Game.GetPlayer(), 1) ;Setup the Feed Timers RegisterForUpdateGameTime(12) LastFeedTime = GameDaysPassed.Value ;Set the Global for stat tracking PlayerIsVampire.SetValue(1) Utility.Wait(1) Game.EnablePlayerControls() ;If the player has been cured before, restart the cure quest If VC01.GetStageDone(200) == 1 VC01.SetStage(25) EndIf EndFunctionFunction VampireFeed() ;Effects for hiding the change ;VampireChangeFX.play(game.getPlayer()) VampireTransformDecreaseISMD.applyCrossFade(2.0) utility.wait(2.0) imageSpaceModifier.removeCrossFade() ;VampireChangeFX.stop(game.getPlayer()) Game.IncrementStat( "Necks Bitten" ) VampireFeedMessage.Show() VampireFeedReady.SetValue(0) ;Game.ForceThirdPerson() ;Game.GetPlayer().PlayIdle(VampireFeedingBedRight) ;Player has fed, regress to Stage 1 Vampirisim ;Remove Stage 2 buffs and spells LastFeedTime = GameDaysPassed.Value VampireStatus = 1 VampireProgression(Game.GetPlayer(), 1) ;Player is no longer hated ;Start checking GameTime again if we weren't already UnregisterforUpdateGameTime() RegisterForUpdateGameTime(12) EndFunctionFunction VampireProgression(Actor Player, int VampireStage) ;Swap out abilities depending on stage of Vampirism If VampireStage == 2 VampireTransformIncreaseISMD.applyCrossFade(2.0) utility.wait(2.0) imageSpaceModifier.removeCrossFade() Player.RemoveSpell(AbVampire01) Player.RemoveSpell(AbVampire01b) Player.AddSpell(AbVampire02b, abVerbose = False) Player.AddSpell(AbVampire02, abVerbose = False) Player.RemoveSpell(VampireSunDamage01) Player.AddSpell(VampireSunDamage02, abVerbose = False) If Player.GetEquippedSpell(1) == SummonGreaterMinion Player.EquipSpell(SummonLesserMinion, 1) EndIf Player.RemoveSpell(SummonGreaterMinion) Player.AddSpell(VampireCharm) ElseIf VampireStage == 1 Player.AddSpell(ABVampireSkills, abVerbose = False) Player.AddSpell(ABVampireSkills02, abVerbose = False) Player.RemoveSpell(AbVampire02) Player.RemoveSpell(AbVampire02b) Player.AddSpell(AbVampire01, abVerbose = False) Player.AddSpell(AbVampire01b, abVerbose = False) Player.AddSpell(VampireDrain01, abVerbose = False) ;check to see if player has power equipped and switch them out Player.AddSpell(SummonGreaterMinion, abVerbose = False) ;Player.AddSpell(VampireStrength01, abVerbose = False) Player.RemoveSpell(VampireSunDamage02) Player.AddSpell(VampireSunDamage01, abVerbose = False) Player.AddSpell(VampireCelerity) Player.RemoveSpell(VampireInvisibilityPC) EndIfEndFunctionFunction VampireCure(Actor Player) Game.IncrementStat( "Vampirism Cures" ) ;Stop tracking the Feed Timer UnregisterforUpdateGameTime() VampireStatus = 0 ;Player is no longer hated Player.RemoveFromFaction(VampirePCFaction) Player.SetAttackActorOnSight(False) ;Remove all abilities Player.RemoveSpell(ABVampireSkills) Player.RemoveSpell(ABVampireSkills02) Player.RemoveSpell(AbVampire01) Player.RemoveSpell(AbVampire02) Player.RemoveSpell(AbVampire01b) Player.RemoveSpell(AbVampire02b) Player.RemoveSpell(VampireDrain01) ;Player.RemoveSpell(VampireStrength01) Player.RemoveSpell(VampireSunDamage01) Player.RemoveSpell(VampireSunDamage02) Player.RemoveSpell(VampireCharm) Player.RemoveSpell(VampireInvisibilityPC) ;Change player's race, defaults to Nord if (Player.GetRace() == ArgonianRaceVampire) Player.SetRace(ArgonianRace) elseif (Player.GetRace() == BretonRaceVampire) Player.SetRace(BretonRace) elseif (Player.GetRace() == DarkElfRaceVampire) Player.SetRace(DarkElfRace) elseif (Player.GetRace() == HighELfRaceVampire) Player.SetRace(HighElfRace) elseif (Player.GetRace() == ImperialRaceVampire) Player.SetRace(ImperialRace) elseif (Player.GetRace() == KhajiitRaceVampire) Player.SetRace(KhajiitRace) elseif (Player.GetRace() == NordRaceVampire) Player.SetRace(NordRace) elseif (Player.GetRace() == OrcRaceVampire) Player.SetRace(OrcRace) elseif (Player.GetRace() == RedguardRaceVampire) Player.SetRace(RedguardRace) elseif (Player.GetRace() == WoodElfRaceVampire) Player.SetRace(WoodElfRace) endif ;Set the Global for stat tracking PlayerIsVampire.SetValue(0) ;make sure Hunter's Sight is gone Player.RemoveSpell(VampireHuntersSight) EndFunctionSpell Property AbVampire01 AutoSpell Property AbVampire02 AutoSpell Property AbVampire01b AutoSpell Property AbVampire02b AutoSpell Property VampireDrain01 AutoSpell Property VampireSunDamage01 AutoSpell Property VampireSunDamage02 AutoSpell Property VampireHuntersSight AutoSpell Property VampireCharm AutoSpell Property VampireInvisibilityPC AutoSpell Property VampireCureDisease AutoSpell Property ABVampireSkills AutoSpell Property ABVampireSkills02 AutoSpell Property DiseasePorphyricHemophelia AutoGlobalVariable Property PlayerIsVampire Auto Sound Property MagVampireTransform01 Auto Spell Property DiseaseAtaxia autoSpell Property DiseaseBoneBreakFever AutoSpell Property DiseaseBrainRot AutoSpell Property DiseaseRattles AutoSpell Property DiseaseRockjoint autoSpell Property DiseaseWitbane AutoSpell Property SummonGreaterMinion AutoSpell Property SummonLesserMinion AutoMessage Property VampireStage4Message AutoSpell Property VampireStrength01 AutoQuest Property VC01 AutoFormList Property CrimeFactions Auto Perk Property VampireFeed Auto SPELL Property VampireCelerity Auto
