Jump to content

Deviously Cursed Loot SE 9.0 (2021-03-09)


Recommended Posts

Posted
38 minutes ago, serranna said:

 

Is this patch testable right now in DCL SE? If so I can give it a whirl tonight. As I said I play this game nearly every day anyway. :)

It should be. There are only scripts, no ESP changes. So, right now the only difference should be key removal when unlock happens.

Posted
14 minutes ago, Elsidia said:

You forgot one thing to fix - dcumenu.dcur_kw_yoke - has only one yoke, but that's not problem

dcumenu.dcur_kw_heavyyoke - have 3 yokes, but that not problem. Problem is in libs.playerref.GetItemCount(dcumenu.dcur_handrestraintskey) > 0.

So if you have Steel yoke from DCL (other steel yokes from DD not activate this dialogue), this yoke have dcumenu.dcur_kw_yoke keyword and need unlock 1 restraint key - haskey will be true if player have 1 restraint key unlock will work fine.

But if player wears Heavy Yoke (from DCL) then there will be error. This have dcumenu.dcur_kw_heavyyoke keyword and haskey will be true only if player have 1 hand restraints key.

Then you read key from device Yoke and that will be 2 restraints key. So, if player have 1 hand restraint key and no one restraints key, NPC will agree to help but can't unlock yoke as there no keys. Also if player have 2 restraints key and no one hand restraint key NPC can help but refuse as 1 hand restraint key not found. If not change Heavy yoke properties, then need change dialogue check as this:

 

if libs.playerref.WornHasKeyword(dcumenu.dcur_kw_heavyyoke) && libs.playerref.GetItemCount(libs.restraintskey) > 1

 

Then NPC will unlock heavy yoke, if player have 2 restraints key and those keys will removed.

I didn't forget - I just removed this check. So, before there were three places where key data for Heavy Yoke were defined - now, there are two - dialogue and inventory device. Script uses inventory device data. So, either it should be changed accordingly to dialogue, or dialogue should be changed. Both of those are in ESP, and outside of my purview - I don't know if it is even possible to do a delta patch for ESP.

28 minutes ago, Elsidia said:

UPD: Also you figure out, why dialogue options always is set to 1, when MCM is all set to zero, but chance to steal keys set to 100%?

Daamn. Now I see it. Would change patch and recompile tomorrow...

Posted
16 hours ago, 5uccub1 said:

edit: fixed. I redownloaded it. idk why it worked though turning it off and turning it back on again always works ig. Having a different issue where my model disappears when the kink armor is put on me :l

 

Can't help you with that, I don't use vortex.

 

If your body is disappearing when wearing devices, then you either didn't build the bodyslides, or they aren't outputting to the right place. Check your bodyslide config in vortex.

Posted
7 hours ago, Elsidia said:

Then you read key from device Yoke and that will be 2 restraints key. So, if player have 1 hand restraint key and no one restraints key, NPC will agree to help but can't unlock yoke as there no keys. Also if player have 2 restraints key and no one hand restraint key NPC can help but refuse as 1 hand restraint key not found. If not change Heavy yoke properties, then need change dialogue check as this:

 

For the record, I know it's up to Kimy, but I'm partial for the requirement of the hand restraints key for the heavy yoke and I would like to see it that way personally.

Posted
14 hours ago, Kimy said:

Looks good! Thank you for the patch! :)

So, yesterday Elsidia pointed out about bug with some outcomes not working, I looked, and redid patch to probably fix it - there weren't "done" clauses in some cases. Updated patch below.

 

Spoiler
diff -Naur Source.orig/dcur_yoke_calchelpsuccess.psc Source/dcur_yoke_calchelpsuccess.psc
--- Source.orig/dcur_yoke_calchelpsuccess.psc	2018-05-11 00:23:26.497926900 +0300
+++ Source/dcur_yoke_calchelpsuccess.psc	2022-07-18 23:37:19.072345200 +0300
@@ -10,28 +10,53 @@
 	int rnd
 	bool haskey = false
 	bool done = false
-	dcur_dialogswitch.SetValueInt(0)	
-	if libs.playerref.WornHasKeyword(dcumenu.dcur_kw_yoke) && libs.playerref.GetItemCount(libs.restraintskey) > 0
-		haskey = true
-	endif
-	if libs.playerref.WornHasKeyword(dcumenu.dcur_kw_heavyyoke) && libs.playerref.GetItemCount(dcumenu.dcur_handrestraintskey) > 0
-		haskey = true
-	endif	
+	int NumberOfKeysNeeded = 1
 	int chance = dcumenu.yokeremovalhelpchance		
+	;Setting default - walk away. If something goes wrong - it's better then 0, which means unlock
+	dcur_dialogswitch.SetValueInt(1)	
+	; 0 - unlock
+	; 1 - walk away without regrets
+	; 2,3 - rape
+	; 4 - walk away with regrets and being sorry
+	; 5 - add items
+	; 6 - take keys
+	; 7 - launch Courier in Steel quest (for merchants)
+	
+	;Looking up device key and number of keys needed
+	Key DeviceKey = StorageUtil.GetFormValue(libs.playerref, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousHeavyBondage) + "_Key") As Key
+	Armor DeviceInventory = StorageUtil.GetFormValue(libs.playerref, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousHeavyBondage) + "_Inventory") as Armor
+	ObjectReference tmpORef = libs.playerref.placeAtMe(DeviceInventory, abInitiallyDisabled = true)
+    zadEquipScript tmpZRef = tmpORef as zadEquipScript
+    if tmpZRef != none
+        NumberOfKeysNeeded = tmpZRef.NumberOfKeysNeeded
+    Endif
+    tmpORef.delete()
+	; Caching number of keys needed for unlock
+	StorageUtil.SetIntValue(libs.playerref, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousHeavyBondage) + "_NumberOfKeysNeeded", NumberOfKeysNeeded)
+	
+	if DeviceKey != none
+		; If device is keyless - nobody have keys for it
+		if libs.playerref.GetItemCount(DeviceKey) > NumberOfKeysNeeded
+			;Does player have keys needed?
+			haskey = true
+		EndIf
+	EndIf
+	
 	if !haskey
 		if dclibs.isTradesperson(akSpeaker)		
+			; Courier in Steel quest
 			dcur_dialogswitch.SetValueInt(7)
 			return
 		endif		
 		if Utility.RandomInt(0, 99) < chance || dcumenu.dcur_modshutdown.GetValueInt() == 1
-			; would normally help
+			; would normally help, but without keys just says sorry
 			dcur_dialogswitch.SetValueInt(4)
 		else		
 			grandtotalweight = dcumenu.yokeremovalwalkawayweight + dcumenu.yokeremovalrapeweight + dcumenu.yokeremovaladditemweight			
 			int Select = 0			
 			Select = Utility.RandomInt(0, grandtotalweight)		
 			if Select < dcumenu.yokeremovalwalkawayweight
-				; has key, but will not remove
+				; maybe NPC has key, but will not remove
 				dcur_dialogswitch.SetValueInt(1)	
 				done = true
 			endIf
@@ -55,7 +80,7 @@
 		endif
 		; fallback
 		if !done 
-			; addsitems
+			; says sorry
 			dcur_dialogswitch.SetValueInt(4)				
 		endIf
 		return
@@ -89,12 +114,14 @@
 		Select = Select - dcumenu.yokeremovalrapeweight					
 		if !done && Select < dcumenu.yokeremovaltakekeyweight
 			; will not remove and take keys
-			dcur_dialogswitch.SetValueInt(6)			
+			dcur_dialogswitch.SetValueInt(6)
+			done = true			
 		endIf
 		Select = Select - dcumenu.yokeremovaltakekeyweight					
 		if !done && Select < dcumenu.yokeremovaladditemweight
-			; addsitems
-			dcur_dialogswitch.SetValueInt(5)				
+			; adds items
+			dcur_dialogswitch.SetValueInt(5)	
+			done = true
 		endIf				
 		; fallback
 		if !done
diff -Naur Source.orig/dcur_yoke_unlock.psc Source/dcur_yoke_unlock.psc
--- Source.orig/dcur_yoke_unlock.psc	2018-05-11 00:23:40.890110400 +0300
+++ Source/dcur_yoke_unlock.psc	2022-07-18 17:25:31.441065000 +0300
@@ -6,14 +6,25 @@
 Function Fragment_0(ObjectReference akSpeakerRef)
 Actor akSpeaker = akSpeakerRef as Actor
 ;BEGIN CODE
-	
-	if libs.playerref.WornHasKeyword(dcumenu.dcur_kw_yoke) && libs.playerref.GetItemCount(libs.restraintskey) > 0
-		libs.RemoveDevice(libs.PlayerRef, dcumenu.dcur_yoke, dcumenu.dcur_yokeRendered, libs.zad_DeviousHeavyBondage, false, false)					
-	endif
-	if libs.playerref.WornHasKeyword(dcumenu.dcur_kw_heavyyoke) && libs.playerref.GetItemCount(dcumenu.dcur_handrestraintskey) > 0
-		libs.RemoveDevice(libs.PlayerRef, dcumenu.dcur_heavyyoke, dcumenu.dcur_heavyyokeRendered, libs.zad_DeviousHeavyBondage, false, false)							
-	endif
-	libs.SendDeviceRemovalEvent("Yoke", libs.PlayerRef)	
+	;Looking up device key and number of keys needed
+	Key DeviceKey = StorageUtil.GetFormValue(libs.playerref, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousHeavyBondage) + "_Key") As Key
+	Armor DeviceInventory = StorageUtil.GetFormValue(libs.playerref, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousHeavyBondage) + "_Inventory") as Armor
+	Armor DeviceRendered = StorageUtil.GetFormValue(libs.playerref, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousHeavyBondage) + "_Rendered") as Armor
+	int NumberOfKeysNeeded = 1
+	NumberOfKeysNeeded = StorageUtil.GetIntValue(libs.playerref, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousHeavyBondage) + "_NumberOfKeysNeeded")
+	if DeviceKey != none && DeviceInventory != none && DeviceRendered != none
+		If libs.playerref.GetItemCount(DeviceKey) > NumberOfKeysNeeded
+			libs.RemoveDevice(libs.PlayerRef, DeviceInventory, DeviceRendered, libs.zad_DeviousHeavyBondage, false, false)
+			if libs.Config.GlobalDestroyKey && DeviceKey.HasKeyword(libs.zad_NonUniqueKey)
+				;Only removing non-unique keys
+				libs.PlayerRef.RemoveItem(DeviceKey, NumberOfKeysNeeded, False)	
+			EndIf
+		EndIf
+	Else
+		libs.Log("dcur_yoke_unlock: failed to retrive stored device data")
+	EndIf
+	; Do we even need this?..
+	;libs.SendDeviceRemovalEvent("Yoke", libs.PlayerRef)	
 ;END CODE
 EndFunction
 ;END FRAGMENT

 

 

Yoke_patch_v2.zip

Posted

having an issue where my character does not teleport to new locations for bondage adventure quest or when guards says to come with them to be sold as a slave. 

Posted (edited)
23 hours ago, DeWired said:

So, yesterday Elsidia pointed out about bug with some outcomes not working, I looked, and redid patch to probably fix it - there weren't "done" clauses in some cases. Updated patch below.

 

The patch works perfectly. 2 restraints keys were removed with the heavy yoke (hope to change it to hand restraints key at some point) and 1 restraints key with the regular yoke. Also the alternate options (key steal and add restraints) triggered just fine (didn't test the rape option).

Edited by serranna
Posted

How do I get the obsidian piercings off after I become leahs slave have removal tool but only get force off and leave on do I have to wait a while or something before removing them 

Posted
46 minutes ago, draca21 said:

How do I get the obsidian piercings off after I become

This is bug caused by DD 5.1 equip engine. THose piercings have missed zad_Lockable keyword, because at end of Leon's quest it can't removed.

There is two way to remove:

1) In Xedit fix those piercings, but add this keyword and end Leon's quest again.

2) Spawn Leon's key by console and unlock piercings manually, then remove key and piercings by console.

Posted (edited)
2 hours ago, draca21 said:

What comand do I use  for seccond one to generate key and and remove them also what is xedit

 

Not necessary to mess with xedit or spawn the key.

Open the console, select your character and use the showinventory command. Scroll through the list until you find the piercings you need to remove.

 

ScreenShot1116.png.ffa9984882026065614463cf729015d3.png

 

In my example 19076c30 are the actual nipple piercings, and 19076c31 is a secondary equip that actually shows and locks the device on the character.

You will need to do this yourself because the first 2 numbers will be different in your game.

So to remove the nipple piercings you use the console command you see above

removeitem XX076C31 1 (XX is whatever it shows for you in your game)

after you do that go to your inventory and drop the nipple piercings on the ground.

Pick them back up and use the remove item command to remove the actual item.

Repeat the same process with the vaginal piercings.

The numbers will all be the same as you see in the screenshot except the 19 will likely be different for you, so you need to use the console to check for yourself.

Edited by serranna
Posted
9 hours ago, draca21 said:

also what is xedit

https://www.nexusmods.com/skyrimspecialedition/mods/164

 

9 hours ago, draca21 said:

What comand do I use  for seccond o

Spoiler

help "master key"

wrote down Leon's master key id

player.additem id 1

where id is key id

exit console and unlock piercings

player.removeitem id 1

where id is leon's master key id

help "obsidian nipple piercings"

player.removeitem id 1

where id is piercings id

help "obsidian vaginal piercings"

player.removeitem id 1

where id is vaginal piercings id

 

Posted
32 minutes ago, draca21 said:

Are you able to go into the dollmakers locked workshop

 

If you mean the part of her house that's behind a locked door? No, not without a cheat. This might change in the future when I am getting to add new Dollmaker content! :)

Posted
9 minutes ago, Kimy said:

No, not without a cheat. This

There no need cheat. You can enter, but can't exit. Just need wait while player wants masturbate and select "Use near bed" - you go into Dollmaker's chamber Cage - because there is nearest bed. So after fun you found more fun locked in Dollmaker's cage forever)

Posted
23 minutes ago, Elsidia said:

There no need cheat. You can enter, but can't exit. Just need wait while player wants masturbate and select "Use near bed" - you go into Dollmaker's chamber Cage - because there is nearest bed. So after fun you found more fun locked in Dollmaker's cage forever)

 

LOL!!!

 

And that's not a...cheat? :P

Posted

I guess I will need to implement the Dollmaker able to figure out that you're using her bed to play with yourself, so she can...do something about it. ?

Posted

How does dominated quest any Leon or Leah binding you work with the slits pony girl mod do they clash or anything and how do I use the furniture I buy at whip and chain

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
×
×
  • Create New...