NPC Vampire Lords

Post » Tue Nov 26, 2013 7:05 pm

So, I'm working on something that will allow your vampiric spouse to become a vampire lord when you do, and it's been an absolute headache so far.

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.
User avatar
Ernesto Salinas
 
Posts: 3399
Joined: Sat Nov 03, 2007 2:19 pm

Post » Wed Nov 27, 2013 4:37 am

I think you can start with asking the author of http://skyrim.nexusmods.com/mods/23354/, the mod was recently back for public download (though the author said it is still buggy) and insights from the author should shed some light on the first two questions.

Good luck!

User avatar
Roberta Obrien
 
Posts: 3499
Joined: Tue Oct 23, 2007 1:43 pm


Return to V - Skyrim