Jump to content

Devious Devices Escape Overhaul


Recommended Posts

5 hours ago, tekuusne said:

I'd suggest getting rid of the single "Okay" lines, unless they're necessary from a scripting standpoint.

The line after picking type of the device is necessary, no way around it. The one after picking what to do with the device could be removed. But the way it's implemented is much easier that the implementation without it. An alternative solution would be to replace them with some flavour text but I couldn't come up with anything decent.

Link to comment

I upgraded my MO2 and the form checker plugin is not disabled yet.

 

Basically I noticed only now that this is an Oldrim mod... I'm using it on SE.

 

Is this may be the reason that during minigames I get the 1st person view instead of staying in 3rd person?

 

Link to comment

Heyho,

I've seen your issue with the lock shields and while it's true, that the framework doesn't provide a function to check them, I've tried to create one based on the functins of the framework:

; Retrieves the shield state for a given inventory device - true, if shield is active
Bool Function GetShieldState(Armor iDevice)
	Bool retval = false
	ObjectReference tmpORef = PlayerRef.placeAtMe(device, abInitiallyDisabled = true)
	zadEquipScript tmpZRef = tmpORef as zadEquipScript
	If (tmpZRef)
		 retval = tmpZRef.CheckLockShield()
	Else
		 Warn("GetDeviceKey received non DD argument.")
	Endif
	tmpORef.delete()
	return retval
EndFunction

 

Caution: untested and it probably will show the normal Lock Shield message box!

Link to comment
3 hours ago, Mister X said:

Heyho,

I've seen your issue with the lock shields and while it's true, that the framework doesn't provide a function to check them, I've tried to create one based on the functins of the framework:





; Retrieves the shield state for a given inventory device - true, if shield is active
Bool Function GetShieldState(Armor iDevice)
	Bool retval = false
	ObjectReference tmpORef = PlayerRef.placeAtMe(device, abInitiallyDisabled = true)
	zadEquipScript tmpZRef = tmpORef as zadEquipScript
	If (tmpZRef)
		 retval = tmpZRef.CheckLockShield()
	Else
		 Warn("GetDeviceKey received non DD argument.")
	Endif
	tmpORef.delete()
	return retval
EndFunction

 

Caution: untested and it probably will show the normal Lock Shield message box!

If only it was so simple...

This implementation won't work. You are creating a new instance of a device. Its script won't have the values which the script of the equipped instance has.

 

After investigating the issue with player-enchanted items, I have an idea how I could work around this limitation. I'll see how well my implementation will work.

Link to comment
47 minutes ago, Shakx88 said:

If only it was so simple...

This implementation won't work. You are creating a new instance of a device. Its script won't have the values which the script of the equipped instance has.

 

After investigating the issue with player-enchanted items, I have an idea how I could work around this limitation. I'll see how well my implementation will work.

 

On the one side it sounds logical, on the other one not so much: why wouldn't it work for lock shields, but for keys? Those could be changed, too, right? Still, the same algorithm is used to get the key for a device.

Link to comment
1 hour ago, Mister X said:

On the one side it sounds logical, on the other one not so much: why wouldn't it work for lock shields, but for keys? Those could be changed, too, right? Still, the same algorithm is used to get the key for a device.

Because deviceKey is just a property which references a form of the type 'Key'. when the script is created, it is initialized to a specific value which is the same for all instances and the value is constant throughout the instance's lifetime.

Shielded and timer locks use a variable which is set inside the script and can only be accessed from within the script. The variable's value is determined when the device is equipped and may change throughout the instance's lifetime, thus being exclusive to the instance. So, to make it work, you need to have access to the instance which is worn by the actor.

Now, while I know of a way to obtain an ObjectReference to an instance in an actor's inventory, the method is slow (especially with DDs) and somewhat hacky. Also, it won't work with the shielded/timer locks, because it requires unequiping and then equipping the device. It would lead to the lock's state being reset.

Unfortunately, the only way to resolve the issue is to modify zadEquipScript.

Link to comment

Hello,

 

just wanted to tell this mod is pretty awesome work, and working as advertised. I've been using Devious Lore's struggle "minigame" before, and i must say this iteration feels much better to use for multiple reasons. First, there's an actual widget for the struggle. Second, variety! Differentiating all the escape means with their own minigame is amazing. Third, it doesn't come with a whole another mod on top of it, making it lightweight. Fourth... it's an actual minigame requiring player input (well devious lore's also does, but the interaction is so minimal that i don't really count it).

 

Now, as written in the description, it's beta, so here's a couple of suggestions:

-change the exhaustion parameters from your script to the spell itself (magnitude/duration) so people can modify it to their preference in Xedit without having to change your script and recompile it... -160% for 10 minutes is too long for me, i'd much rather play with a -50% for 3/5 minutes with the stackable option on but i can't change it as it is. 

-find way to un-trivialize the lockpicking when in possession of the Skeleton Key/Unbreakable lockpicks perk.

 

EDIT: i'm a dumbass... i skipped the fact that escape cooldown changed the exhaustion. ignore my suggestion, your system is perfectly fine.

Link to comment
27 minutes ago, Clockwinding said:

-change the exhaustion parameters from your script to the spell itself (magnitude/duration) so people can modify it to their preference in Xedit without having to change your script and recompile it... -160% for 10 minutes is too long for me, i'd much rather play with a -50% for 3/5 minutes with the stackable option on but i can't change it as it is.

-find way to un-trivialize the lockpicking when in possession of the Skeleton Key/Unbreakable lockpicks perk.

 

The perk and the skeleton key discussion has come up before, the consensus has been that, well, the most reasonable solution is that if you have a problem with how they work just don't get the perk, and don't use the skeleton key. Both the perk and the skeleton key are choices you can make for yourself, the mod has no need to interfere with the game's mechanics pointlessly. If you have already gotten the perk before getting the mod though, the solution is probably to use console commands to remove the perk, perks are a bit less reversible than the skeleton key but not impossible to remove.

 

On the other hand, the calculation for the stamina degen getting added as a spell effect sounds perfectly reasonable and I would have assumed that's hot it worked in the first place, Clearly that's not the case though.

Link to comment

Hello!


Not too sure what causes this but I'm having a problem with the mod. I'm not too sure if this is a direct conflict between the mod Rotating Quicksave and your own but when I use the quickload hotkey (I set it as F9 to replace the vanilla) to load my quicksave, once the load is finished it always automatically open the system menu (esc) automatically. I've disabled your mod and this no longer happens. I've tried to change my quickload key to something else like F2 but it'll still open the esc menu whenever I load.

Link to comment
2 hours ago, ray314 said:

Not too sure what causes this but I'm having a problem with the mod. I'm not too sure if this is a direct conflict between the mod Rotating Quicksave and your own but when I use the quickload hotkey (I set it as F9 to replace the vanilla) to load my quicksave, once the load is finished it always automatically open the system menu (esc) automatically. I've disabled your mod and this no longer happens. I've tried to change my quickload key to something else like F2 but it'll still open the esc menu whenever I load.

This is indeed caused by this mod. Are you using LE or SE? (I've tested only for LE, though it is probably compatible with SE).

Link to comment
14 hours ago, ray314 said:

Yep this is on LE.

Rotating quicksave could be modifying something in load procedure, can't say for sure.

 

When you load a save, this mod saves the scan code of the key which is currently assigned to 'System menu' (or whatever it is called). It is later used to close lockpicking menu when you are not allowed to pick locks.

When developing the system, I've noticed that calling TapKey() for a key for the first time after loading a save seems to fail. Thus the mod calls TapKey() for 'System menu' key once. There seems to be no problem with TapKey() in your case, so the game thinks that you've actually tapped it.

You can fix it by modifying DDEO_PreventLockpicking script. The best I can do is add an option to disable this 'fix' in the next update (whenever I'm able to finish it).

 

Link to comment
  • 4 weeks later...

Hello,

 

i've got a question about the "hints" and the magicka value, and my experience with struggling. 

The "hints" (bad move/worst move) are redundant with the struggle bar, which shows you the effect of your struggle directly.

 

Also, after looking at the source script of the struggle minigame, i have a question: I understand the difficulty of escape changes the length of the sequence (=number of successes/progress to escape), but is the correct key randomized again after each success (in which case, the hint messages are even worse at helping the player), or is the correct key set for each increment of the progress bar at the start of the minigame (fixed sequence)?

It might be worth it clarifying this in the tooltips, because right now in my experience, pushing all the keys in a rotation and praying for your stamina to hold is a viable enough strategy, and it's a bit dumb.

Link to comment
On 5/2/2021 at 2:56 PM, Clockwinding said:

The "hints" (bad move/worst move) are redundant with the struggle bar, which shows you the effect of your struggle directly.

They are not. They have nothing to do with what struggle bar displays. For default key bindings (W, A, S, D), "Bad move" means that the correct key is "adjacent" to the one you've just pressed (e.g. you've pressed A, while the correct one is W). "Worst move" means that the correct key is "opposite" to the one you've just pressed (A-D, S-W). I guess this should be clarified.

 

On 5/2/2021 at 2:56 PM, Clockwinding said:

but is the correct key randomized again after each success

This one. I've had no intentions of making the minigame too easy. A fixed combination makes succeeding much easier. 

Link to comment

Initially, I wanted to try this for the minigames... But looking at the MCM and seeing that NPCs can help you?? I've tried Devious Helpers a million times, and every time, I either get no dialogue at all (about 80% of the time), or only get the dialogue to be tied up, which is also frustrating when you want OUT of a device, not to add more.

 

I'll have to test this mod's other features as well, but finally having a mod that at least lets followers TRY to help her will be crucial, since initially, I only ever installed Devious Devices as a requirement. ;)

Link to comment

Tested it and either I'm too daft, or it doesn't work. The pop up window gives the information that I can remove the device (either via lockpick or struggle), but the device remains locked and when I try to unequip it the normal DD dialogue pops up with either unluck, try to escape or carry on. And that's it.

Link to comment
23 hours ago, kapibar said:

Tested it and either I'm too daft, or it doesn't work. The pop up window gives the information that I can remove the device (either via lockpick or struggle), but the device remains locked and when I try to unequip it the normal DD dialogue pops up with either unluck, try to escape or carry on. And that's it.

Have you succeeded in winning the minigame?

Link to comment
50 minutes ago, Shakx88 said:

Have you succeeded in winning the minigame?

Of course.

However - one thing I noticed - Devious Lore's solutions for removing devices also don't work. Is it possible that these two mods somehow cancel each other out?

Link to comment
2 hours ago, kapibar said:

However - one thing I noticed - Devious Lore's solutions for removing devices also don't work. Is it possible that these two mods somehow cancel each other out?

What version of DD are you using? This mod supports only 5.0 and newer.

Link to comment
4 hours ago, kapibar said:

Gladly, but I have no idea on how to do that.

In Skyrim.ini (Documents/My Games/Skyrim) add the following into [Papyrus] section (add the section, if it doesn't exist; edit matching values if they are already in the file):

bEnableLogging=1  
bEnableTrace=1  
bLoadDebugInformation = 1  

The load a save, go into DDEO's MCM, switch to "debug" tab and tick "enable logging". Then repeat whatever you've done to replicate the issue. Then you can find the log file in Documents/My Games/Skyrim/Logs/Script/Papyrus.0.log.

 

Don't forget to disable logging (by undoing changes to Skyrim.ini) if you don't need it any longer.

 

Alternatively, if you are using MO, Skyrim.ini may be located in a profile's folder.

Link to comment

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...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use