Jump to content
Shakx88

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 post

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 post

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

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

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 post
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 post
10 hours ago, Shakx88 said:

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

 

Yep this is on LE.

Link to post
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 post

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

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   1 member

×
×
  • Create New...