Where to adjust actor speeds?

Post » Mon Jun 18, 2012 4:07 am

This must be possible, because how else does the Frost effect work by slowing down enemies?

How can I apply that same slow-down (or speedup) to other things such as landing hits?

The problem with the Speedmult Actor Value is that it only is checked by the game when you change a state (i.e. from sneaking from walking), so it obviously isn't what causes NPC's to INSTANTLY slow down when hit with a continuous frost attack. There's also the problem with SpeedMult being an absolute value - there's no way to dynamically increase or lower it by a certain percentage. I'll try using the command "ForceActorValue" and see if that works for what I want to achieve, but I hear this is VERY bad to use because it's a total permanent adjustment. So, if I ForceAV a speedmult on myself and then something else forces it too, it's going to go haywire instead of doing the intended effect. From what I understand at least.

It would be much easier if there was a legitmate way to increase/slow down speed through effects or scripts though. It seems Bethesda was really adamant on getting rid of the old Speed attribute entirely in Skyrim, because it seems like everything runs at the same speed with no obvious way to change it in the editor (but then how to you explain frostbite, werewolves, etc?).
User avatar
Quick draw II
 
Posts: 3301
Joined: Thu Nov 08, 2007 4:11 pm

Post » Mon Jun 18, 2012 10:15 am

You don't have to force the actor value directly, you can apply a spell effect like FrostSlowConcAimed to do the SpeedMult.
User avatar
SUck MYdIck
 
Posts: 3378
Joined: Fri Nov 30, 2007 6:43 am

Post » Mon Jun 18, 2012 2:25 pm

How does that spell effect work? What does it "do" to cause the slow effect?

Because I want to be able to adjust the intensity, as well as make it so it can speed you up too. I suppose I could make custom spell effects based on that one. Where are the spell effect files stored?
User avatar
Harry-James Payne
 
Posts: 3464
Joined: Wed May 09, 2007 6:58 am

Post » Mon Jun 18, 2012 1:01 am

Look at the spell "Frostbite". It applies the effect (under Magic\Magic Effects) "FrostSlowConcAimed" with a magnitude of 50 and a duration of 4. All the FrostSlow effects use SpeedMult with a Frost Resist check and some visual effects. The magnitude\duration of the slow effect is passed by the spell. I haven't looked at scripting dynamic magnitudes but I don't think there are any functions which would allow it. If you want it to increase speed, you could try giving it a negative magnitude.
User avatar
Bitter End
 
Posts: 3418
Joined: Fri Sep 08, 2006 11:40 am

Post » Mon Jun 18, 2012 6:12 am

I see. Looking into magic effects for the first time, it seems like this is exactly what I needed. It appears I can make a constant effect self-spell ability apply to the player, then hook it up to a custom spell effect that does nothing but change the speedmult.

Theoretically, if I add the spell to the player behind the scenes through a script, then their speed would instantly change accordingly.

What a breakthrough moment :P

Now the trouble is, the Wiki is a little unclear when it comes to the AddSpell command. It says the "spell name" I put in for myspell is an "extranious output" error when I try to compile the script. Hmm..
User avatar
Mylizards Dot com
 
Posts: 3379
Joined: Fri May 04, 2007 1:59 pm

Post » Mon Jun 18, 2012 2:49 am

Game.GetPlayer().AddSpell(MySpell)
You may also have to add 'MySpell' as a property in the script's properties menu.
Also, following up with:
MySpell.Cast(Game.GetPlayer(), Game.GetPlayer())
Will make it apply as soon as it has been added.
User avatar
Michael Russ
 
Posts: 3380
Joined: Thu Jul 05, 2007 3:33 am

Post » Mon Jun 18, 2012 1:09 am

Allright, managed to get the spell script to work flawlessly. It registers the spell effect as happening in-game under my magical effects at the right times.


Only issue is, I can't seem to get the actual slowdown/speedup effect to happen at all. As far as I can tell, I'm using the same exact setup that Frostbite uses, except I'm applying it as a constant effect on the self as an ability much like how the Vampirism effects are set up. Except it just doesn't do anything!
User avatar
Rob
 
Posts: 3448
Joined: Fri Jul 13, 2007 12:26 am

Post » Sun Jun 17, 2012 10:45 pm

If you are trying to use a negative magnitude FrostSlow to achieve a buff effect, try setting it to a positive magnitude and clearing the 'Detrimental' flag instead. Also: Peak Value modifier just sets the modifier to a minimum value if it was below that value. If you were using a negative value, a modifier of 0 would always be greater, so it would do nothing.

Take a look at Wisps:
- They have the ability 'AbWisp' (Ability, Constant Effect, Self, MagicHatMarker, EitherHand, Disallow Spell Absorb/Reflect, No Dual Cast Modifications)
- .. Which has a 'Speed Burst' (WispSpeedBuff, Magnitude 200, Duration 0, Checks if Magicka < 20%)
- .. Which is works as a Buff: (Value Modifier, Constant Effect, Self, Alteration, SpeedMult)
User avatar
kirsty joanne hines
 
Posts: 3361
Joined: Fri Aug 18, 2006 10:06 am

Post » Mon Jun 18, 2012 6:18 am

I didn't have the detrimental flag enabled, and had a positive magnitude and it still did nothing though. Also it wasn't working when I was just using "Value Modifier" either.

Thanks, I'll look into Wisps.
User avatar
maddison
 
Posts: 3498
Joined: Sat Mar 10, 2007 9:22 pm

Post » Mon Jun 18, 2012 12:33 pm

Allright, totally lost. I'm about to give up.

EVERY single setting matches the WispSpeedBoost spell and effect, but nothing still happens. It's the exact same spell for christ's sake. But it still won't work. The only thing I got rid of was the conditional that makes the effect only/not happen if the wisp have less than 20% magicka.

Thinking it must have been a huge error with my script (despite it having no errors and applying the spell effect as it should), I set up my own conditional in the spell to where it only happens if you're not running or sprinting (which is what the goal of my effect is, to increase only the walk speed at the moment), then made my script just add the ability to the player.

NOTHING.

I'm totally stumped. The only logical explanation I can think of is that for whatever reason they hard-coded this effect to have no effect when the player is in a walk state. Why they would do such a thing is completely beyond me. I'm going to check having the effect go on all the time and see if it works when running.

EDIT: That did nothing either. Good news it doesn't appear to be hard coded to not work with walk speed. Bad news is I still have no clue what the hell is going on.
User avatar
Chantelle Walker
 
Posts: 3385
Joined: Mon Oct 16, 2006 5:56 am

Post » Mon Jun 18, 2012 12:04 am

Any help?? How are other people using this effect and its working, but when I use it, it doesnt?
User avatar
Logan Greenwood
 
Posts: 3416
Joined: Mon Jul 30, 2007 5:41 pm

Post » Sun Jun 17, 2012 10:54 pm

K. I decided to take a look at it. I'm not sure how\if the wisp spell works, but I'm guessing that the missing piece is stored in one of the other spell effects: In order to get SpeedMult to do anything, you need to specify an impact event to initiate it. I was able to achieve both a constant effect bonus and penalty this way, as well as versions which could be targeted on self or others. NPCs behave a little funny though.
User avatar
Jose ordaz
 
Posts: 3552
Joined: Mon Aug 27, 2007 10:14 pm

Post » Mon Jun 18, 2012 9:15 am

What do you mean by specify an impact event? What exactly did you do that got it to work?

I managed to get the game to actually recognize SpeedMult earlier today, but the issue was the game only checks what the multiplier is when you leave inventory or crouch/sprint. Are you saying an "impact event" can cause the game to check for the setting too?

By impact event, I'm assuming you mean something needs to shoot it at me instead of it being self-applied, in which case I'm pretty much dead in the water.

EDIT: Finally got it! I never did get around my above issue, but I learned the game checks what your speedmult is whenever something is added to your inventory. So, when I just have it so my script adds then immediately removes a random misc item to the inventory silently (so there is no noise or message), the game will check my speed and then immediatly apply the correct speed.
User avatar
Annika Marziniak
 
Posts: 3416
Joined: Wed Apr 18, 2007 6:22 am

Post » Mon Jun 18, 2012 1:12 pm

Sorry, the proper name is "Impact Data Set", in the Magic Effect 'Visual Effects' field.
iirc the self-targeted fire & forget effects worked without Impact Data, but the Aimed & Constant Effect ones didn't. Oddly, the aimed ones work without projectiles despite producing an error in the CK.

Spell
Type: Ability
Menu Display Object: MagicHatMarker
[x] Disallow Spell Absorb\Reflect
[x] Ignore Resistance
[x] No Dual Cast Modifications
Magnitude: 99.99
Duration: 86313600.0

Effect
Archetype: Peak Value Modifier
Casting Type: Constant Effect
Delivery: Self
Assoc Item 1: SpeedMult
[x] Hostile
[x] Detrimental

[x] Recover
[x] FX Persist
[x] No Death Dispel
[x] No Area
Keyword: MagicSlow

Menu Display Object: MagicHatMarker
Impact Data Set: MAGFlames01ImpactSet
Dual Casting
Scale: 1.0000

Casting Sound Level: Normal

- Small fonts are values which were set for convenience or are otherwise unnecessary. They are included for efficiency.
- Italics indicates the value is only specified for slow effects.
- Underline indicates the field is relevant in both versions.

Additional Notes:
SpeedMult magnitude will be correctly modified by resistance\weakness if a resist value is specified and 'Ignore Resistance' is unchecked.
Detrimental SpeedMults will not do anything if the final SpeedMult is <= 0.
Duration can be replaced with the 'No Duration' flag.
Both 'Peak Value Modifier' and 'Value Modifier' will work correctly.
FX Persist & No Death Dispel were checked on the Wisp template. I kept it because it was neat. =p
Didn't try disabling MagicSlow keyword from detrimental SpeedMult, but it isn't necessary for positive ones.
Specific Impact Data value chosen is not necessary. Other impact values work just as well, but behave differently.
User avatar
Jack
 
Posts: 3483
Joined: Sat Oct 20, 2007 8:08 am


Return to V - Skyrim