[Spell] Prevent target actor from running?

Post » Tue Nov 20, 2012 4:23 am

I'm currently building a huge magic modification for Skyrim, and I'm working on a spell right now, that when cast on an actor, slows their max speed by 70%. Now, I'm able to achieve this just fine, the problem is... When the actor starts running, it just looks really silly... legs moving all fast and they're hardly moving. Is there a way to prevent the actor from running?
User avatar
Mari martnez Martinez
 
Posts: 3500
Joined: Sat Aug 11, 2007 9:39 am

Post » Tue Nov 20, 2012 2:29 am

Add an unplayable, heavy Armor/Weapon so they'll be overencumbered?
User avatar
Karl harris
 
Posts: 3423
Joined: Thu May 17, 2007 3:17 pm

Post » Tue Nov 20, 2012 2:55 pm

Add an unplayable, heavy Armor/Weapon so they'll be overencumbered?

Damn, why didnt i think of that? Thank you :D
User avatar
e.Double
 
Posts: 3318
Joined: Tue Jul 24, 2007 11:17 pm

Post » Tue Nov 20, 2012 5:11 pm

This doesn't work actually. i created a custom script (as shown below), and i am able to burdon myself with the script, but when cast on another NPC, they still can move at full speed... Any other ideas?

Scriptname BurdenEffect extends ActiveMagicEffect  Event OnEffectStart(Actor akTarget, Actor akCaster)  ; Debug.Notification("Magic effect was started on " + akTarget)  akTarget.AddItem(Ring, 1, false)endEventEvent OnEffectFinish(Actor akTarget, Actor akCaster)  ; Debug.Notification("Magic effect fades from " + akTarget)  akTarget.RemoveItem(Ring, 1, true)endEventArmor Property Ring  Auto  

The Ring is an armor form i created based off of the Silver ring, with a weight of 1000.00
User avatar
Lynette Wilson
 
Posts: 3424
Joined: Fri Jul 14, 2006 4:20 pm

Post » Tue Nov 20, 2012 12:22 pm

Lower their speedmult? Or is that what you already did? The animation should scale with the speedmult though.
User avatar
Colton Idonthavealastna
 
Posts: 3337
Joined: Sun Sep 30, 2007 2:13 am

Post » Tue Nov 20, 2012 2:24 am

Lower their speedmult?

I did that all ready :P ... problem is, when they run, the animation runs at full speed... So i want to prevent the NPC from running.
User avatar
Catherine Harte
 
Posts: 3379
Joined: Sat Aug 26, 2006 12:58 pm

Post » Tue Nov 20, 2012 10:58 am

I did that all ready :tongue: ... problem is, when they run, the animation runs at full speed... So i want to prevent the NPC from running.
They shouldn't be. Did you try adding and removing some inventory weight right after? If you did, maybe NPCs animations don't change with it, that would be terrible. Hmm...
User avatar
Katey Meyer
 
Posts: 3464
Joined: Sat Dec 30, 2006 10:14 pm

Post » Tue Nov 20, 2012 2:39 pm

Oblivion had the same kind of problem, encumbrance is broken for NPC in this game.
To stop actors from crossing thru a fire wall (in oblivion) I made a script that called the stagger idle each time they moved forward.
Condition it to check to see if they are running and then call the walk forward animation.

You could also do the following but it gets you in an area that can make your mod very incompatible with other mods that make changes to the animation conditions (such as my combat mod). Go to the animation tree and put a condition on the run animation that prevents the run animation if your spell is on the actor. The game hardcode will see this condition and not even try to walk.

ANY other mod that makes a change to that walk/run/sprint animations branch will then conflict. And at least twice I have had to rebuild my own animations tree edits because of an update from Bethesda to the animations.

So be advised!


This doesn't work actually. i created a custom script (as shown below), and i am able to burdon myself with the script, but when cast on another NPC, they still can move at full speed... Any other ideas?

Scriptname BurdenEffect extends ActiveMagicEffect  Event OnEffectStart(Actor akTarget, Actor akCaster)  ; Debug.Notification("Magic effect was started on " + akTarget)  akTarget.AddItem(Ring, 1, false)endEventEvent OnEffectFinish(Actor akTarget, Actor akCaster)  ; Debug.Notification("Magic effect fades from " + akTarget)  akTarget.RemoveItem(Ring, 1, true)endEventArmor Property Ring  Auto  

The Ring is an armor form i created based off of the Silver ring, with a weight of 1000.00
User avatar
Christine
 
Posts: 3442
Joined: Thu Dec 14, 2006 12:52 am


Return to V - Skyrim