Jump to content

Recommended Posts

5 minutes ago, Thingolf said:

Soooo, is this a completely new, standalone of devious devices, made by the same guy/team that did the other devious devices mods?

It's a new DD update by Kimy and her team. But the seperate parts: DDx, DDi, DDa and now DDf are now packaged into 1 mod.

Link to comment

@Kimy Bug report, applicable to both DD 4.3 and DD 5.0

There is a mistake in OnEffectFinish event handler in zadArmbinderEffect.psc (DD v5.0):

Spoiler

Event OnEffectFinish(Actor akTarget, Actor akCaster)
    libs.Log("OnEffectFinish(): Heavy Bondage: " + akTarget.GetLeveledActorBase().GetName())
    If Me == libs.PlayerRef
        Me.RemovePerk(zad_bc_wristXPPerk_1)
        Me.RemovePerk(zad_bc_wristXPPerk_2)
        Me.RemovePerk(zad_bc_wristXPPerk_3)
        Me.RemovePerk(zad_bc_wristXPPerk_4)
        Me.RemovePerk(zad_bc_wristXPPerk_5)    
        UnregisterForUpdate()
    EndIf
EndEvent


...and similar mistake in zadArmbinderEffect.psc (DD v4.3):

Spoiler

Event OnEffectFinish(Actor akTarget, Actor akCaster)
    libs.Log("OnEffectFinish(): Heavy Bondage: " + akTarget.GetLeveledActorBase().GetName())
    Me.RemovePerk(zad_bc_wristXPPerk_1)
    Me.RemovePerk(zad_bc_wristXPPerk_2)
    Me.RemovePerk(zad_bc_wristXPPerk_3)
    Me.RemovePerk(zad_bc_wristXPPerk_4)
    Me.RemovePerk(zad_bc_wristXPPerk_5)    
    UnregisterForUpdate()
EndEvent

 


I presume you know these things, but others may benefit from the explanations:

None of the code snippets above can work as intended, because when OnEffectFinish gets called, the Active Magic Effect has been already destroyed, and any variables on the script got reset, which together has the following consequences:

  1. You cannot call UnregisterForUpdate(), because there is nothing to call it on, resulting in an error.
    Good news is you don't even have to call it, because when finished, ActiveMagicEffect script automatically unregisters from Update events.
    Solution: get rid of that UnregisterForUpdate() call inside OnEffectFinish.
     
  2. Me has been reset and is none, because Me is a variable initialized to none at the time of its declaration.
    If it were a property initialized to some value at the time of its declaration, it would retain that value (like the zad_bc_wristXPPerk_* properties do, so you can still use them inside OnEffectFinish).
    So, trying to use Me inside OnEffectFinish is futile, because it will always be none.
    Solution: Use akTarget instead of Me.

 

Here is the fixed code for DD 4.3:

Spoiler

Event OnEffectFinish(Actor akTarget, Actor akCaster)
    libs.Log("OnEffectFinish(): Heavy Bondage: " + akTarget.GetLeveledActorBase().GetName())
    akTarget.RemovePerk(zad_bc_wristXPPerk_1)
    akTarget.RemovePerk(zad_bc_wristXPPerk_2)
    akTarget.RemovePerk(zad_bc_wristXPPerk_3)
    akTarget.RemovePerk(zad_bc_wristXPPerk_4)
    akTarget.RemovePerk(zad_bc_wristXPPerk_5)    
    ;UnregisterForUpdate()

EndEvent


Here is the fixed code for DD 5.0:
(i presume for some reason you want to run the code only on player, hence the original (Me == libs.PlayerRef) condition, but if that is not the case, then you should use the same code as for version 4.3 above)

Spoiler

Event OnEffectFinish(Actor akTarget, Actor akCaster)
    libs.Log("OnEffectFinish(): Heavy Bondage: " + akTarget.GetLeveledActorBase().GetName())
    If akTarget == libs.PlayerRef
        akTarget.RemovePerk(zad_bc_wristXPPerk_1)
        akTarget.RemovePerk(zad_bc_wristXPPerk_2)
        akTarget.RemovePerk(zad_bc_wristXPPerk_3)
        akTarget.RemovePerk(zad_bc_wristXPPerk_4)
        akTarget.RemovePerk(zad_bc_wristXPPerk_5)    
        ;UnregisterForUpdate()
    EndIf
EndEvent

 

Link to comment

An idea: while keeping DDa, DDi and DDx separate makes sense (and was already discussed), why not to bundle BRRF and ForHim into DDx, making four DDx variants that user can select through FOMOD? This way we also can control order of overrides when BRRF and ForHim are both used.

Link to comment
12 hours ago, lopez123456 said:

@Kimy,Hey everyone, I managed to convert this mod to SE and actually make it work, scripts and all after playing around with re-compiling the .dll in visual studio

I can't really upload a 3gb file so I'll just leave the tutorial here incase someone is as impatient as me and wants to play with this on SSE :)

1. Dl this 5.0 version and run it through cathedral's optimizer, use all optimizations and don't forget to extract BSA

2. Install the version that you optimized with cathedral's using your favorite mod manager (I use MO2)

3. Open the folder where you installed the mod in explorer and go to YourInstallationPath/SKSE/Plugins/    and replace the DeviousDevices.dll with the one I uploaded here

 

Would be happy if y'all try it too, I tried playing for about an hour and everything worked so far ( I tried manually equipping devices, having them locked on me through mods such as SL survival )

The only disadvantage is that the bodyslide files aren't fully converted because Cathedral's cant make that perfect a conversion and it may not fit your original body but I have no idea how to do bodyslide conversions from oldrim to SSE

PS: Would be really glad if you try it Kimy, I can provide you with source if you wish, didn't want to bloat this post too much :) The sooner SSE releases the better for all of us SSE plebs :D

DeviousDevices.dll 1.29 MB · 4 downloads

Is recompilation really necessary? I think I saw in beta thread that no changes were done in DLL between 4.3 and 5.0, and LE DLLs for 4.3 and 5.0 are same, with same size and CRC. So, using DLL from last working SE version should do?

Link to comment
1 hour ago, DeWired said:

Is recompilation really necessary? I think I saw in beta thread that no changes were done in DLL between 4.3 and 5.0, and LE DLLs for 4.3 and 5.0 are same, with same size and CRC. So, using DLL from last working SE version should do?

I just tried the DLL from last working SE and it also seems to work, had no idea that no changes to DLL were made so thanks for the heads up, tho the main reason I re-compiled was that the installer for the last working SE version mentions runtime 1.5.8.0 as the latest one for which the DLL is compiled and since the latest SKSE version is 1.5.97 so I just went ahead and re-compiled. No idea if anything major changed between these versions but both the DLL for 1.5.80 and the one I compiled for 1.5.97 seem to work fine so it might very well be redundant

 

Now im just kinda confused if the installer is wrong and the DLL Is already compiled for 1.5.97 or somehow it also works for 1.5.97 even though its compiled for 1.5.80

Link to comment
4 hours ago, DeWired said:

Is recompilation really necessary? I think I saw in beta thread that no changes were done in DLL between 4.3 and 5.0, and LE DLLs for 4.3 and 5.0 are same, with same size and CRC. So, using DLL from last working SE version should do?

I don't believe it is. I made no changes to the DLL in a while.

Link to comment

Kimy thanks for  the hard work!! 

 

One question since I'm on SSE and can't check it myself. Are there more options for Chastity Bra now in this or in the upcoming Cursed Loot version? Or how hard is it to flag some of the rope options  to work for chastity bra? Currently (on SSE version at least) the only non twin giant metal bowl options is the Chain Bra AFAIK. Some of the rope options already go around the area, so it'd  be sweet if more things like those and the breast yoke counted . . . ooo and more breast yoke type things in general, that thing is seriously one of the best items from any game I've ever played! I dunno how you came up with it, but kudos 

 

Thanks again for the never ending hard work!

Link to comment

The DestoryOnRemove property on the zadEquipScript doesn't seem to work anymore.

 

I guess the cause for this lies in the RemoveDevice function. In 4.3 the important line looked as follows:

libs.RemoveDevice(akActor, deviceInventory, deviceRendered, zad_DeviousDevice, DestroyOnRemove, skipMutex=skipMutex)


Now in 5.0 it looks like this:
libs.UnlockDevice(akActor, deviceInventory, deviceRendered, zad_DeviousDevice, destroyDevice = destroyDevice)

 

The property DestoryOnRemove apearently has been replaced with the parameter destoryDevice. Since I guess both are kind of relevant I tried to edit it to the following:
libs.UnlockDevice(akActor, deviceInventory, deviceRendered, zad_DeviousDevice, destroyDevice = destroyDevice || DestroyOnRemove)
From my small testing that appears to be working.

Link to comment

Mmm ... As far as I can understand, I can now use a plug equip code like this

zadlist.equiprandomdevice (libs.playerref, zadlist.zad_dev_plugs_vaginal) 

or

libs.LockDevice(libs.playerRef, xlibs.PlugsGreaterSoulVag)

instead of

libs.EquipDevice(libs.playerRef, xlibs.PlugsGreaterSoulVag, xlibs.PlugsGreaterSoulVagRendered, libs.Zad_DeviousPlugVaginal, skipevents = false, skipmutex = true)

I understand correctly?

Link to comment

Greetings,

 

first off, thank you to Kimy and her team for the amazing work. DD got me into modding Skyrim in the first place. Beyond stuff like SkyUI and USLEEP, anyways.

 

A question: Does the newly added chain collar show up for anyone? I can see the inventory item just fine, but once I equip it, it just does not show up on my character. I am fairly certain I installed everything correctly and as far as I could see, there were no bodyslide files for the collar to be built beforehand.

I am using the CBBE and/or Cosio body btw.

Anybody else experience this?

 

Thanks in advance for any replies, they would be much appreciated.

 

Sincerely,

s3ngine

Link to comment
On 11/26/2020 at 2:49 AM, voberon said:

It was probably discussed before, but what about mods based on 4.3 version? Will those work with 5.0?

If referring only to device manipulation...

All the old API is still there and working. The old API routes the calls to the new API, meaning even without updating a mod, it's getting the benefit of faster functions. Mods will be using the new API without changing a thing.

 

Since the old API uses the new, there are slight differences that could effect edge cases. When I tested my mod during DD5 beta testing, I needed to make changes for an edge cases where I do lots of "swapping". That edge case was NOT compatible until I compensated.

Link to comment
On 11/25/2020 at 8:57 AM, stas2503 said:

@Kimy I also made a Russian translation of the mod. It to me here send in the flow or to create a separate download?

You can offer it as a separate download. At this time I don't have a collection of localized versions in the official download. I might eventually do that. :D

Link to comment
On 11/26/2020 at 9:59 AM, stas2503 said:

Mmm ... As far as I can understand, I can now use a plug equip code like this


zadlist.equiprandomdevice (libs.playerref, zadlist.zad_dev_plugs_vaginal) 

or


libs.LockDevice(libs.playerRef, xlibs.PlugsGreaterSoulVag)

instead of


libs.EquipDevice(libs.playerRef, xlibs.PlugsGreaterSoulVag, xlibs.PlugsGreaterSoulVagRendered, libs.Zad_DeviousPlugVaginal, skipevents = false, skipmutex = true)

I understand correctly?

 

Yes! :)

Link to comment

I know that this is probably a question that has been answered before, but I don't think I've ever seen it explained. What happened to the two quests that used to be on the integration mod? The forbidden bookshelf and Onmund's experiment? I know that they were disabled a while back but again, don't recall the why of it.

Link to comment
21 minutes ago, craz3 said:

I know that this is probably a question that has been answered before, but I don't think I've ever seen it explained. What happened to the two quests that used to be on the integration mod? The forbidden bookshelf and Onmund's experiment? I know that they were disabled a while back but again, don't recall the why of it.

Ever since 4.0 (or 3.0) version of DD they were no longer available as they had some major issues wth the then reworked DD.

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