One final major effect I need to accomplish is having the cavebats (or the black birds that fly around Nocturnal from the Thieves guild quest) model spawning and playing their animation around the character at the casting of the spell. The spell (or voice power is more accurate) is a toggle.
So my question is: Is it possible to call out a model/animation through the script, without it already being at the players location, having it play each time at the casting of the spell then disappearing?
Here's the working script for the spell currently:
Scriptname DV_BatFormTraits extends ActiveMagicEffect import Gameimport Soundimport Formimport Debugimport Utilityimport GlobalVariableimport ActorActor Property Player AutoSpell Property DVampireBatForm AutoSpell Property DVampireBatFormToggle AutoIdle Property SwimStart AutoIdle Property swimStop AutoIdle Property JumpFall Autobool Property bIsOn Autobool Property bVal AutoEffectShader Property DVCelerityShadow Autofloat bearingfloat elevationfloat speedfloat posxfloat posyfloat poszfloat movefloat dtimeEvent OnEffectStart(Actor Target, Actor Caster)ObjectReference PCVamp = GetPlayer() if !Caster.HasSpell(DVampireBatFormToggle) Caster.AddSpell(DVampireBatFormToggle, false) Caster.SetAlpha(0) Utility.Wait(0.01) DisablePlayerControls() Wait(0.1) SetIniFloat("fInAirFallingCharGravityMult:Havok",0) Caster.MoveTo(Caster, 0, 0, 800) Caster.TranslateTo(Caster.GetPositionX(), Caster.GetPositionY(), Caster.GetPositionZ(), 0.0, 0.0, 0.0, 0.0) Wait(0.1) Caster.StopTranslation() DVCelerityShadow.Play(Caster) GetPlayer().SetAllowFlying() ForceThirdPerson() Wait(0.1) SendAnimationEvent(PCVamp ,"SwimStart") EnablePlayerControls() ;bVal = True SetIniFloat("fInAirFallingCharGravityMult:Havok",0) while Caster.HasSpell(DVampireBatFormToggle) Fly() endwhile elseif Caster.HasSpell(DVampireBatFormToggle) Caster.RemoveSpell(DVampireBatFormToggle) SendAnimationEvent(PCVamp ,"JumpFall") Caster.SetAlpha(1) DVCelerityShadow.Stop(Caster) GetPlayer().SetAllowFlying() Wait(1.0) ;bVal = False endif ;Toggle() EndEventFunction Toggle() if (bVal == True) bIsOn = True elseif (bVal == False) bIsOn = False endif EndFunction

