Jump to content

Devious Devices NG


Recommended Posts

Posted (edited)
39 minutes ago, HereBeTentacles said:

 

It still works that way, that's why it would need to be done through some sort of magic effect. Anything you do to the player speedmult directly is likely to get reset at some point. If you do it through a magic effect or some other indirect method it should be fine. Plus if you do it that way you can condition the effect to only apply when the player is wearing something with the petssuit keyword. Less scripting that way depending on what you are doing.

 

I have a similar sort of thing in my mod where I overencumber the player because I don't want them running/sprinting, but that leaves them too slow for my liking so I add an ability that ups their speedmult a bit to make up for that. The same idea could work for your mod.

Well, to back up a bit, I already handled the pet suit's speed debuff for DD 5.2 by temporarily changing the value for the hobble dress speed debuff (which is used for the pet suit enchantment's speed debuff).   That value came the MCM and it's stored as a script property, easy to access.  That works great, because DD's own logic maintains the desired speed so that it's not too slow.  Fire & forget, DD handles it.

 

However, DD NG removed that logic from zadx_HobbleSkirtEffectScript.  The speed value seems to come from afMaxSpeedMult in DeviousDevices.ini, so my assumption (always risky, those) is that the periodic updates moved into the dll.

 

That's an unfortunate loss of accessibility, because the ini setting is not exposed to a script.

 

Now, I'm confused.  I might have misunderstood, but I thought you had suggested adding a speedmult modifier to counter the pet suit's debuff, but you also told me that DD NG still periodically adjusts the speed of the pet suit's wearer.  That's what DD 5.2 does; every 5 seconds, it compares the current speedmult actor value to a target speed and adjusts the debuff to make the current speed comply.  So, if it still works the same way with periodic updates, my adding an increase to speed through a magic effect will just get countered by DD NG a few seconds later.  

 

I definitely don't want to add a periodic update of my own to fight with DD NG's.  That is why I had asked how to access DD NG's speed debug value from a script, so I can temporarily adjust it for my event and then restore the original value afterwards.

 

So, what am I missing?

Edited by Hex Bolt
Posted (edited)
50 minutes ago, Hex Bolt said:

Now, I'm confused.  I might have misunderstood, but I thought you had suggested adding a speedmult modifier to counter the pet suit's debuff

 

Little misunderstanding, this is not what I am suggesting or what would happen, think of it more like ad

 

DD is adjusting the players base speedmult via script and then the speedmult magic effect I am suggesting is just getting added to it at a later step. Like how right now if I set my charcters health from 130 to 100 while wearing a +30 health ring, it will still say it was 130 after the change because the ring +30 is separate from my characters health.

 

It would the same way for you except instead of a ring its a magic effect and instead of health its speedmult.

 

Just to make sure this works properly I just tried it in my game. I made it so if I press middle mouse my character gets a 400 speedmult from a an ability I set up. I put on a pet suit, press middle mouse, and off I go. You could do the same except instead of needing to be pressing middle mouse the ability just checks if you are wearing a petsuit.

 

The perk does need to periodically check if you are wearing a petsuit or not, but theres no scripting there, its all done through the engine which is a non-issue for a simple keyword check. The only scripting you would need for that is a script to add the ability to the player.

 

This is just what I do though, could be other ways. Only issue I have seen with this method is the engine only seems to poll conditions twice a second so it can only update the speedmult that fast. Not too big of an issue though.

Edited by HereBeTentacles
Posted (edited)
1 hour ago, HereBeTentacles said:

DD is adjusting the players base speedmult via script and then the speedmult magic effect I am suggesting is just getting added overtop of it. Like how right now if I set my charcters health from 130 to 100 while wearing a +30 health ring, it will still say it was 130 after the change because the ring +30 is separate from my characters health.

Okay.  Since the logic for that moved out of zadx_HobbleSkirtEffectScript in DD NG and I couldn't find it elsewhere, I couldn't be sure what DD NG is doing with that.  DD 5.2 constantly corrected speed to match its own target (add a speed buff and DD would cancel it with its own debuff seconds later).

 

From you've told me, it seems that DD NG doesn't keep correcting for speed buffs, so I can modify the wearer's speed once after the pet suit is equipped and have the wearer move faster, then remove the speed adjustment at the end of the event when the suit comes off.  Thank for the explanation and for your test.

Edited by Hex Bolt
Posted
15 minutes ago, Hex Bolt said:

Okay.  Since the logic for that moved out of zadx_HobbleSkirtEffectScript in DD NG and I couldn't find it elsewhere, I couldn't be sure what DD NG is doing with that.  DD 5.2 constantly corrected speed to match its own target (add a speed buff and DD would cancel it with its own debuff seconds later).

 

From you've told me, it seems that DD NG doesn't keep correcting for speed buffs, so I can modify the wearer's speed once after the pet suit is equipped and have the wearer move faster, then remove the speed adjustment at the end of the event when the suit comes off.  That's easy.  Thank for the explanation and for your test.

 

From what I tried 300 seemed to be a little under normal walk/run/sprint speed. The petsuit animations weren't really made for higher speeds so I think if you go past 450ish the sprint animation is going to look a bit off.

Posted (edited)
1 hour ago, HereBeTentacles said:

From what I tried 300 seemed to be a little under normal walk/run/sprint speed. The petsuit animations weren't really made for higher speeds so I think if you go past 450ish the sprint animation is going to look a bit off.

Hold on, now I'm confused again.  NG's handling of this is really not transparent.

 

Why do you need to apply a speedmult of 300 to 400 to reach average speed?  That's extreme, right?  Speedmults are additive.  If DD NG adjusts the player's speed to 15 (afMaxSpeedMult = 0.15 in the ini file), adding 85 is all that's needed to get to 100, normal speed.

 

Now, if DD NG is instead multiplying the multiplier, things get messy.  My mod doesn't know what multiplier DD NG is using because that moved from being a script property to an SKSE INI setting.  As far as I can tell, DD NG does not expose the afMaxSpeedMult value, so mods can't see it.  All I can see is the player's current speedmult actor value, which got multiplied by a hidden factor to its current value.  Players are free to change DD NG's afMaxSpeedMult, but my mod can't see that, so it won't know how much to increase the player's speedmult if DD NG is going to multiply that addition.  I could use 300 and hope for the best, but I've had some players tell me that they've increased afMaxSpeedMult a lot because they dislike being so slow.  Players who have done that will move crazy fast if I buff their speedmult by 300 or 400.

 

I do appreciate all the time you've taken to respond.  Maybe I'm dense, but how this works just isn't clear to me.

 

I'd like to understand how I can work with the system to achieve a specific desired speed.

Edited by Hex Bolt
Posted
12 minutes ago, Hex Bolt said:

Hold on, now I'm confused again.  Compared to 5.2, NG's handling of this is really not transparent.

 

Why do you need to apply a speedmult of 300 to 400 to reach average speed?  That's extreme, right?  Speedmults are additive.  If DD NG adjusts the player's speed to 15 (afMaxSpeedMult = 0.15 in the ini file), adding 85 is all that's needed to get to 100, normal speed.

 

Now, if DD NG is instead multiplying the multiplier, things get messy.  My mod doesn't know what multiplier DD NG is using because that moved from being a script property to an SKSE INI setting.  As far as I can tell, DD NG does not expose the afMaxSpeedMult value, so mods can't see it.  All I can see is the player's current speedmult actor value, which got multiplied by a hidden factor to its current value.  Players are free to change DD NG's afMaxSpeedMult, but my mod can't see that, so my mod won't know how much to increase the player's speedmult if DD NG is going to multiply that addition.  I could use 300 and hope for the best, but I've had some players tell me that they've increased afMaxSpeedMult a lot because they dislike being so slow.  Players who have done that will move crazy fast if I buff their speedmult by 300 or 400.

 

I would just leave it up to a button in an MCM or something like that so they can toggle on/off in case they already adjusted the speed elsewhere.

 

I don't think it would be impossible to expose the modifiers DDNG is using to a script for more fine control though, pretty sure the SKSE should be able to do that.

Posted
Just now, HereBeTentacles said:

I would just leave it up to a button in an MCM or something like that so they can toggle on/off in case they already adjusted the speed elsewhere.

I had considered that, but it's kind of clunky for another mod to have to add an adjustment toggle when it might have simply calculated the precise adjustment needed and applied that without player intervention.  It seems as if there should be a straightforward way to do that.  Prior to the zadx_HobbleSkirtEffectScript change, it wasn't hard.  I'm just trying to figure out how to achieve the same result with the change.  Again, thank you for the responses.

Posted
4 hours ago, Hex Bolt said:

Players are free to change DD NG's afMaxSpeedMult, but my mod can't see that, so it won't know how much to increase the player's speedmult if DD NG is going to multiply that addition.  I could use 300 and hope for the best, but I've had some players tell me that they've increased afMaxSpeedMult a lot because they dislike being so slow.  Players who have done that will move crazy fast if I buff their speedmult by 300 or 400.

Yes, that would be me...

The very odd thing is: Sometimes your approach works. Mistress puts Lola in a petsuit and the speed is much slower than my usual (which I changed in DD.ini) and when it's changed to let me move faster, it's back to normal-ish (can't tell exactly because there's no speedometer on my petsuit)

 

But as we are talking hobbleskirts: There's still a bug which has been present since... some years. The last step is always a stagger. With the last NG version it's smooth when the dress is freshly put on, but loading a save with the hobbleskirt worn, the stagger is back.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...