These are the problems I need to solve:
1. Is there any way to prevent an NPC from using certain spells? I'd prefer for the vampire lord NPC to use Vampire Lord spells rather than their normal spells, if they have any. I tried draining the NPC's magicka by a huge amount via an ability and setting the Vampire Lord spells' cost to 0, but the NPC retained magicka with which to cast their usual spells.
2. Is there some way of checking if a Vampire Lord is airborne or not? I've got something tentative that works for the most part, but the NPC won't always respond to the StartSneaking() command (which can be used to change the Vampire Lord's state) if it's after combat, and if they don't respond, it de-synchs the player and the NPC's flying states.
3. The death animation -- DLC1VampireBeastRace has some hardcoded animations and sound effects that play when the creature dies, which is annoying enough, but Harkon's elaborate death sequence needs spot-on timing and synchronization to work properly, which is something I can't guarantee.
Part of the problem is the Vampire Lord's body ragdolling on death, which messes up the effects -- Harkon uses deferred kills so that he's alive until the script kills him, but deferred kill breaks the protected status, which is hugely undesirable.
Right now the script is:
VampireRef.EquipItem(pDLC1VampireSkeletonFXArmor) VampireRef.EquipItem(pDLC1ClothesVampireLordArmor, true) VampireRef.SetSubGraphFloatVariable("fdampRate", 1.0) VampireRef.SetSubGraphFloatVariable("ftoggleBlend", 0.0) DLC1FXCastVampireBleedSpell.Cast(VampireRef, VampireRef) VampireRef.ClearExtraArrows() VampireRef.SetCriticalStage(VampireRef.CritStage_DisintegrateStart) Utility.Wait(1) VampireRef.PlaceAtMe(HarkonDeathExplosion) Utility.Wait(4) VampireRef.AttachAshPile(DLC1dunHarkonAshPile) Utility.Wait(10) VampireRef.SetCriticalStage(VampireRef.CritStage_DisintegrateEnd)That works perfectly... so long as the vampire lord is killed via script. Perhaps there's some way to make a shortened one, similar to the ash pile disintegration effect?
4. Any suggestions for keeping the NPC's inventory away from them while a vampire lord? RemoveAllItems() to some container would work, but then their outfit would respawn and duplicate itself, cluttering the NPC's inventory.