Jump to content

SexoutSlavery v1.4.11 (1/23/2013)


Recommended Posts

I'm having some trouble with the enslavement script again. It seems totally arbitrary which cells will be safe and which will be off-limits.

 

I tested the following script:

 

 

scn SexoutAPSlavery1

float timer

; In theory' date=' this is the beginning stage of SexoutAP.

 

begin GameMode

if( playerRef.isSpellTarget SexoutSlaveryFreePlayer )

; Because GameBryo is retarded and can't do things in the correct order.

if(timer < 1)

set timer to timer + getSecondsPassed

return

endif

 

set SexoutSlaveryPlayerQ.SlaveryID to 666 ; The number of the beast!

set SexoutSlaveryPlayerQ.master to LegionaryDeadSeaREF ; Dead Sea will be the primary master.

set SexoutSlaveryPlayerQ.slaveryType to 4 ; The player must stay within certain cells

set SexoutSlaveryPlayerQ.punishmentType to 2 ; The collar will explode if outside of the cells.

set SexoutSlaveryPlayerQ.takeItems to 1 ; All items will be removed from the player.

set SexoutSlaveryPlayerQ.stolenItemsContainer to LegionaryDeadSeaREF ; Dead Sea will take the player's items

set SexoutSlaveryPlayerQ.canSubmit to 1

set SexoutSlaveryPlayerQ.submissionDialog to APSubmissionDialog

set SexoutSlaveryPlayerQ.noWeapons to 1

set SexoutSlaveryPlayerQ.useDefaultDialog to 0

 

AddFormToFormList SexoutSlaverySafeCells 000DEA72 ; Nelson

AddFormToFormList SexoutSlaverySafeCells 00124099 ; NelsonBarracks1

AddFormToFormList SexoutSlaverySafeCells 001244CD ; NelsonBarracks2

AddFormToFormList SexoutSlaveryExtraMasters CiceroREF ; Cicero is a secondary master.

 

playerRef.CIOS SexoutSlaveryEnslavePlayer

RemoveMe

elseif( playerRef.isSpellTarget SexoutSlaveryEnslavePlayer == 0)

playerRef.CIOS SexoutSlaveryFreePlayer

endif

end

 

 

 

And everything worked fine--I got collared and items were stripped, albeit it was impossible to step outside without heads blowing up. I then tried adding two more AddFormtoFormList after the first three (for NelsonHouse1 and 2), and suddenly NO cells were safe. So I removed those two and added a different one--the Wilderness space right outside Barracks2. When I did that, only that one was safe. Adding other cells, like NelsonHighground, broke the script entirely. ListAddForm doesn't work either.

 

Confused, I went and messed with the example esp. Below "AddFormToFormList SexoutSlaverySafeCells 2EOVault21", I added "AddFormToFormList SexoutSlaverySafeCells StripVault21", which is directly outside Vault 21. That broke the script.

 

Safe to say this one is outside the realm of my abilities.

[/quote']

Remember if you add something to a formlist I'm pretty sure it stays there till you remove it somehow by script or start a new game before it was added, even if you delete it from the "add to formlist" script.

Link to comment

I'm having some trouble with the enslavement script again. It seems totally arbitrary which cells will be safe and which will be off-limits.

 

I tested the following script:

 

 

scn SexoutAPSlavery1

float timer

; In theory' date=' this is the beginning stage of SexoutAP.

 

begin GameMode

if( playerRef.isSpellTarget SexoutSlaveryFreePlayer )

; Because GameBryo is retarded and can't do things in the correct order.

if(timer < 1)

set timer to timer + getSecondsPassed

return

endif

 

set SexoutSlaveryPlayerQ.SlaveryID to 666 ; The number of the beast!

set SexoutSlaveryPlayerQ.master to LegionaryDeadSeaREF ; Dead Sea will be the primary master.

set SexoutSlaveryPlayerQ.slaveryType to 4 ; The player must stay within certain cells

set SexoutSlaveryPlayerQ.punishmentType to 2 ; The collar will explode if outside of the cells.

set SexoutSlaveryPlayerQ.takeItems to 1 ; All items will be removed from the player.

set SexoutSlaveryPlayerQ.stolenItemsContainer to LegionaryDeadSeaREF ; Dead Sea will take the player's items

set SexoutSlaveryPlayerQ.canSubmit to 1

set SexoutSlaveryPlayerQ.submissionDialog to APSubmissionDialog

set SexoutSlaveryPlayerQ.noWeapons to 1

set SexoutSlaveryPlayerQ.useDefaultDialog to 0

 

AddFormToFormList SexoutSlaverySafeCells 000DEA72 ; Nelson

AddFormToFormList SexoutSlaverySafeCells 00124099 ; NelsonBarracks1

AddFormToFormList SexoutSlaverySafeCells 001244CD ; NelsonBarracks2

AddFormToFormList SexoutSlaveryExtraMasters CiceroREF ; Cicero is a secondary master.

 

playerRef.CIOS SexoutSlaveryEnslavePlayer

RemoveMe

elseif( playerRef.isSpellTarget SexoutSlaveryEnslavePlayer == 0)

playerRef.CIOS SexoutSlaveryFreePlayer

endif

end

 

 

 

And everything worked fine--I got collared and items were stripped, albeit it was impossible to step outside without heads blowing up. I then tried adding two more AddFormtoFormList after the first three (for NelsonHouse1 and 2), and suddenly NO cells were safe. So I removed those two and added a different one--the Wilderness space right outside Barracks2. When I did that, only that one was safe. Adding other cells, like NelsonHighground, broke the script entirely. ListAddForm doesn't work either.

 

Confused, I went and messed with the example esp. Below "AddFormToFormList SexoutSlaverySafeCells 2EOVault21", I added "AddFormToFormList SexoutSlaverySafeCells StripVault21", which is directly outside Vault 21. That broke the script.

 

Safe to say this one is outside the realm of my abilities.

[/quote']

Remember if you add something to a formlist I'm pretty sure it stays there till you remove it somehow by script or start a new game before it was added, even if you delete it from the "add to formlist" script.

 

Oh yeah, I'm testing it by having a saved game right before I get enslaved and going through the dialog each time. Unless you mean they persist across the game even through resets, in which case I don't even know.

 

 

 

Link to comment
Oh yeah' date=' I'm testing it by having a saved game right before I get enslaved and going through the dialog each time. Unless you mean they persist across the game even through resets, in which case I don't even know.

[/quote']

That should be ok, though I have at times wondered and thought I've seen behavior to indicate stuff doesn't reset as easily as we would think.

Link to comment

When I was creating the slave mode in the Powder Ganger plugin' date=' GetInCell was not working for the wilderness areas if I tried to call them by name in the script. Something similar might be happening to the form lists.

 

My workaround was to pick an item in a central location - in this case a picnic table in the middle of the basket court - and change it into a persistent ref. I found out how far away the furthest reasonable point ingame was from it using getdistance in the console, then set the limit a little beyond that (longest distance inside NCRCF was 5420 units or something like that, I set the limit to 6000). It works very well - I don't know if this mode has built in functionality for something like that.

[/quote']

 

That's probably it, then. Thanks. SexoutSlavery does, in fact, have that functionality. I might have to tweak it a smidge, but it'd work. I'll check if "getInSameCell" works, first, as that would be easier for everyone.

Link to comment

No public mods use SexoutSlavery at the moment. There's a technical demo, but it's not meant for regular use. I'm working on v1.4 right now, but then I'll rewrite bits of SewerSlave to use SexoutSlavery. At that point, SewerSlave will be the first mod to use it.

 

v1.4 should be complete enough for me to remove the [WIP] tag. v2 will be the introduction of functional slavers, but before that I'll probably have an update or two with other little features thrown in. Oh, and the obligatory bug-fix updates.

Link to comment

Do you know of any mods so far that use your system' date=' or a timelin in which there will be any? i am quite curious to see this implemented

[/quote']

 

I'm working on one. I'm hoping to get a working version out soonish, and then add more layers onto it once the core gameplay is stable. I'll make a thread once I've got something that doesn't make me hang my head in shame.

Link to comment

The only thing for it is to plan exactly what you want to do, and think hard as to whether there is something in the game or a mod that mimics it. If there is, and you look at the scripts, you can generally puzzle out how to jigger it to work for whatever purpose you've intended. If there isn't, you have to say "Well, how important is this to my mod, can I work this out from scratch, and if not, can I work around it?"

 

Link to comment

Restricting clothing types is giving me trouble. The following code doesn't seem to work:

playerRef.GetEqObj 5 != SexoutSlaveryEquipmentAllowed

SexoutSlaveryEquipmentAllowed is a form list. Do I have to manually go through each item in the form list and check it against the current upper body item? I could've sworn that I can just give it the form list and NV would check each one for me.

Link to comment

Hey Chase, would you mind shorting a percDefiant in the next version of SexoutSlavery? From my experiments, having two meters to track mental status works better than a single progressive bar. That way you start out as neutral (or depending on your actions when enslaved, tilted towards one direction or the other) and gradually work towards one end of the spectrum instead of starting at 0.

 

It also allows for neat things like having some actions increase brokeness and defiance simultaneously, and allowing for passive-aggressive resistance (for instance, if you are 100 broken and 100 defiant, you can't openly defy a command, but you might be able to subvert its intent).

 

Thanks~

Link to comment

I get what you're talking about, but broken (really) means the same thing as subservient, which is definitely the polar opposite of defiant.

 

I think one bar is fine, perhaps with a range of (defiant)-100 to +100(broken/subservient) instead of 0-100. The stuff you're after could happen in the -20 to +20 range, or whatever you choose, or would this not work either?

 

 

Link to comment

Actually even that might not work reliably for what you're doing, due to differences between references and base forms.

 

I'm going to whip up a quick ESP to find out once and for all how these functions actually behave for finding stuff, and adding stuff (vs. adding it in the geck).

 

Back in a few.

Link to comment

Ok just finished up, took a little longer than expected, but here's what I've found.. some of this is known/obvious, but I tested anyway to be thorough. My test ESP is attached.

 

A little terminology here, may not be exactly right, but it's what I mean in the post..

 

BASE forms/refs are straight base items from the geck, not instantiated.

STATIC REFS are references defined in the geck, such as npc_nameREF.

DYNAMIC REFS are references I created with "player.placeatme BASE"

 

All the add methods work equally well (sort of, they do add stuff, always). I tested adding base refs, static refs (e.g. veronicaREF), and dynamic refs (result of placeAtme) to formlists using AddFormToFormList, ListAddForm, and ListAddReference. All three functions were able to add each item type except the last one, which (obviously) cannot operate on a base type.

 

I tested this by simply adding a known number of items to the list, then checking ListGetCount.

 

When I said sort of it's because the interaction between adding methods and lookup methods is more complex. So broken down by the three types of objects, then the lookup functions:

 

Base types:

You can only use ListGetFormIndex on these (static.IsInList = geck error). Works no matter which ADD method (the two functions or via GECK drag/drop) was used.

 

Looking up a static in a list containing statics:

- IsInList fails no matter which command added them to the list.

- ListGetFormIndex works no matter what command was used.

 

Looking up a baseref in a list containing dynamic refs (this was for my amusement):

- IsInList here will crash the script.

- ListGetFormIndex will not find them.

 

Looking up a dynamic ref in a list containing base refs.

- IsInList works (amazing!)

- ListGetFormIndex will not find them.

 

Looking up a dynamic ref in a list containing dynamic refs.

- IsInList will not find them.

- ListGetFormIndex finds them all.

 

It seems the only way to know for certain if a given item (base, static, or dynamic) is in a list that can also contain all three is to use both functions. If you maintain strict control over what is added to the list, then you can use the single function that is appropriate.

 

The attached ESP has one quest, one script, three formlists. The script is kind of hard to follow, but I was too focused on what I was doing to bother making the print statements more human-friendly or to rename the vars after repurposing them. It's not terrible but if it's too hard to follow I can come up with one that is friendlier.

 

Best way to use is to activate it, then before you load your save game, open the console and:

SCOF "console.txt"
tdt

 

Load the game and wait, console output will go over the top of your game screen, don't open it or you'll pause the script. Wait until it says 'stage 4 done' then quit the game and open console.txt in a text editor to see the output.

 

 

Link to comment

I get what you're talking about' date=' but broken (really) means the same thing as subservient, which is definitely the polar opposite of defiant.

 

I think one bar is fine, perhaps with a range of (defiant)-100 to +100(broken/subservient) instead of 0-100. The stuff you're after could happen in the -20 to +20 range, or whatever you choose, or would this not work either?

 

 

[/quote']

 

I guess that could work too, although you'd have to make percbroken a long or float variable instead of a short (I guess that's not a big deal though). The value of having two bars is that you can blend certain events to produce different results. I think this is why Fame and Infamy, in-game, are two different values--if you buy somebody a drink and then punch them in the balls, both actions get remembered instead of one overwriting the other.

 

formlist stuff

 

Man, that's...wow. So for an equipment-only list, you'd use ListGetFormIndex, I guess?

 

Do you have any insight on why certain exterior cells break formlists when added?

Link to comment

I've never tried adding a cell to a formlsit, so I can't answer that question.. as for equipment, you still need to use both.

 

You have one things in the list, say an armor you dragged and dropped in the geck (armorA).

 

Now say the player is wearing an instance of armorA.

 

Only IsInList will work to tell you that the players "armorA" is the same as the one in your formlist.

 

Now, a while later, somehow the player gets ahold of armorB and *any* script adds it to your form list, in your mod or in another mod (say the way that other mods can manipulate the lists in Sexout and SCR, or in this mod).

 

Only ListGetFormIndex will tell you that armorB is in the list.

 

Now.. I'm pretty tired and may have totally screwed the pooch in the ESP, but I think it's working right.

 

 

 

Link to comment

Feel free to reverse engineer the scripts. Basically what happens is in the effect script' date=' a walk package is added to move the actor to the player. Once within distance of the player, StartConversation occurs.

 

The same thing in Working Girl for the Gomorrah and Wrangler, except StartConversation is instead a random picker for sex acts.

[/quote']

 

BTW, StartConversation has a built in AI walk to player package. I don't use any packages to make SmallerTalk have NPC's walk over to you and say their line, StartConversation has that built in. The only time you need an AI package to handle that part is if they have to perform actions to get to you, like opening/unlocking a door or otherwise activating something to get to the target. Basically any of the AI Travel package checkboxes. But same room or within a reasonable walking distance outdoors, no need.

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