Jump to content

Recommended Posts

Alpha release, since I take too long to make full versions of stuff. Orgasm/arousal system is in place. No perks actually do much yet. Be sure to change the Base Sex Time MCM value, and not Sexout's normal one. That no longer does anything and will be reset to 1000s.

 

Clothing, toys, LustX, and combat can have different effects on arousal, arousal caps, and the time it takes to orgasm.

Link to comment
Alpha release' date=' since I take too long to make full versions of stuff. Orgasm/arousal system is in place. No perks actually do much yet. Be sure to change the Base Sex Time MCM value, and not Sexout's normal one. That no longer does anything and will be reset to 1000s.

 

Clothing, toys, LustX, and combat can have different effects on arousal, arousal caps, and the time it takes to orgasm.[/quote']

Cool stuff mate, when you have a chance, I noticed you were using the old globals for Fertility & Pregnancy in SCR to adjust Lust, could you swap them over to the ActorsQuestVariables I have set up for each major actor too later if you haven't done so already.

Link to comment

Alpha release' date=' since I take too long to make full versions of stuff. Orgasm/arousal system is in place. No perks actually do much yet. Be sure to change the Base Sex Time MCM value, and not Sexout's normal one. That no longer does anything and will be reset to 1000s.

 

Clothing, toys, LustX, and combat can have different effects on arousal, arousal caps, and the time it takes to orgasm.

[/quote']

 

Tested - unable to adjust Base Sex Time in MCM, it seems to be tied to Female NPC Lust Level adjustment.

Link to comment

Fixed. Redownload from the last page.

 

Ok, MCM base sex time adjusts now, but with is set at 30 secs (I assume) just had a sexual encounter that lasted more then 5 min Real time and had to quit to stop. Did an inv and had about 40 sexoutstop tokens.

Link to comment

Ahh I get it.

 

I could disable the MCM control for duration if I detect sexoutlust is loaded, which shouldn't cause any issues. If I see the duration is at 1000 and lust isn't loaded, I can set it back to default.

 

Some scripts (Legion Tryout comes to mind) use the 'pause' functionality, rather than setting the duration, to hold the act 'in progress' for a more dynamic amount of time, but you can check for that by looking for pause tokens on the actors.

 

I'm not sure how I can notify you (or anyone) if an act has started with a non-default duration. There probably isn't an elegant way, at least not for now. Planned changes to the extender will make that possible, but time is always the factor there -- I need to find the time to get it done.

Link to comment

I'm not sure how I can notify you (or anyone) if an act has started with a non-default duration. There probably isn't an elegant way' date=' at least not for now. Planned changes to the extender will make that possible, but time is always the factor there -- I need to find the time to get it done.

[/quote']

 

I've been tinkering with the dftime variable as well for a scripted peeping scene. Now that I know of the pause token - so many things buried under the surface - I may try & use that instead to avoid conflict. Still, it would indeed be nice to have some foolproof way of making sure mods that affect sex duration don't get in each other's way.

 

As to keeping it in sexout's mcm: maybe it should just stick around even for people using Lust & Chase could use it as a minimum threshold? The few times I tried the alpha the act was over in about 2 seconds, which really is somewhat on the quick side ;). I know that was just a temporary peek, of course, but using a minimum could let users keep some control. Or maybe use it as an average to aim for, instead of as a minimum?

Link to comment

I haven't looked to see exactly what is going on, but it may be enlightening if I explain how the values are used first, and then we can proceed with what we need the system to do?

 

At present there are two variables that are used. dfTime is the main one, controlled by MCM. This is the users default duration for a sex act -- that's where the 'df' comes from. Second is the duration variable. This is a per-act variable that mods can set to control the length of a single act without altering the default duration set by the user.

 

The idea here (from my perspective) is that the user can set a default (dfTime) of say 30 seconds, and then mods that want to alter the duration would use that with a modifier/multiplier. This allows the user to stay in control of the overall duration of an act, but for mods to easily make a given act take half as long, twice as long, etc. This "prevents" a mod from just blindly setting the act to 60 seconds or something, which regardless of the intention, may be longer than some users really want it to be, and shorter than even the default of other users.

 

Now, my understanding is that lust is attempting to alter the duration of every act that takes place, to make them more dynamic depending on how horny the player (or other actors?) are. Is that right?

 

If so, it may make more sense for me to create a separate mechanism for controlling the duration, or perhaps I can alter it myself based on the lust value already present in Sexout. This last option seems like the easiest to implement and also would let me add a per-call flag that mods can set to ignore that value. There are many cases (being raped for one, being tortured in the tryouts for another) where a lust/horny value should not impact the duration.

 

So what I'm thinking of is this..

 

1) I add two new vars to Sexout: bUseLust, and lustMult.

 

2) Callers that wish to not have lust factor in can set bUseLust to 0 for the act, it will default to 1.

 

3) Mods like lust can set just the lust var. "Lust" is already a float that should probably be used as a percentage, either 0 - 100, or 0 - 1.

 

4) lustMult would be an MCM controlled var, that users tune to set how much they want lust to affect the duration of sex. 0 would mean not at all. Higher values would cause the duration to be automatically modified, if bUseLust is 1. The basic idea I have would be something like this (in sexout itself):

; default duration if none set by caller
if 0 == duration
 set duration to Sexout.dfTime
endif

; modifier based on lust
elseif 1 == bUseLust
 set duration to duration + ((duration * lust) * lustMult)
endif

 

So if lust was 0.5 (50%), and the player had set lustMult to 10, then the actual duration of the scene would be six times longer than normal. (e.g. 30 + ((30 * 0.5) * 10) = 30 + (15 * 10) = 30 + 150 = 180.

 

Obviously that's too high a value for lustMult in most cases, and the formula could be adjusted to be something entirely different like an exponential progression, but I think you get the idea.

 

This would allow different mods to adjust lust (set lust to lust + 5) or whatever simultaneously, prevent them stomping on one anothers toes (or the users), and so on.

Link to comment

FYI the pause thing was really added as a metamod feature, though using it in actual mods is supported. I added it initially for astymma's positioning mod, so that the user could pause the act, adjust the positions (without the act finishing), and then resume. It wasn't really intended to be used for one mod to control the flow of another in general, as this does have the potential to break other mods if they setup some kind of timer to coincide with how long the act lasts.

 

I really need to get the post-sex callbacks in so everyone can just use those and thus not worry about how long an act actually takes.

Link to comment

The problem is that the SexoutLust alpha doesn't run down a timer. Instead, it runs "arousal" up to 100. It stops when one (or sometimes both) actors orgasm. While I can calculate who will finish first and can calculate how long it should take, it would make things a pain in the ass to track and would only work on the player. However, I will use dfTime for the base time if you can do something like this:

 

; default duration if none set by caller

if 0 == duration

set duration to Sexout.dfTime

endif

 

; modifier based on lust

elseif 1 == bUseLust

set duration to Sexout.dfTime * 3 ; SexoutLust should never exceed that. I don't use 'pause', so that the timer can be a failsafe.

endif

And let me handle the rest. Or include some better tools for monitoring/stopping sex.

 

That said, I've been very, very busy IRL. There's no rush on getting this sorted out.

Link to comment

I guess I need a deeper understanding of what you're trying to accomplish, and what sort of tools you need.

 

I can do that dftime thing, but that means I'm going to have to set it to default to off instead of on -- and sexoutlust will have to set it to 1 when it inits. Otherwise players without the lust plugin will just run all sex acts for 3 times as long.

 

As for the other tools, what would help?

 

I have a notification hook for when an act starts, which now tells you which actor the spell was actually CIOS'd on. You can also stop it at any time via the SexoutNGFinishNow spell (which has to be called on all actors -- the notification hook provides the list.)

 

The post-sex hook isn't in place yet, but that doesn't sound like it would do you any good anyway.

 

On the "what are you trying to do" front, the last version I used (it's been a while) had lust continue to rise, bringing side effects along with it. It was reduced by sex before reaching 100%, or forced you to masturbate upon reaching 100%, at which point it would start rising again.

 

I can see how the type of act could cause it to drop by different amounts (or not at all if you're getting someone else off) but I'm not really following when it comes to the duration. A better way to handle that might be reducing it by a logarithmic amount after the act rather than a set amount; so a single act (which ends in orgasm every time, right now) might reduce it by 20 points if it's only up to 70, but only by 5 if it's at 90+.

 

I don't know if that made sense to you, or if it fits in at all with what you're trying to do, so apologies in advance if I'm "not getting it."

Link to comment

I probably shouldn't assume that you've read the "Implications of lust" thread, so I'll explain in a bit more detail what's going on in the coming version(s) of SexoutLust.

 

Lust itself is downplayed a bit. It no longer forces you into stuff unless you opt-in via perks. The major feature now is the arousal/orgasm system. Lust can impact it, but things that the player can control play a bigger role. Clothing, drugs, sex, vibrators, and perks all change how aroused the player is and how quickly they'll orgasm during sex.

 

The formula for tracking arousal is a bit complex, but during sex it's basically building up to 100% arousal. The "base sex time" is how long it normally takes to get from 0% to 100%. Again, other things can influence it.

 

After an orgasm a script is run to end sex and grant the orgasmer (just making shit up) gets a temporary buff (based on perks and such). Depending on if it's consensual or rape, sex may continue and both actors will orgasm. Arousal is lowered (differently depending on gender) and gameplay continues.

 

Do you already have a global hook for when sex starts? I can't remember if it's for before or after. That'd be nice for managing NPC lust, instead of using the scanner to check for the Sexout token. Otherwise, my issues at the moment are preventing Sexout from stopping sex early (I have to change the default sex time), SexoutLust being active for scenes with specific sex times, and the "FinishNow" spell not running (or so people have said.).

Link to comment

I have a global hook that comes up when sex starts, yes.

 

Details:

 

 

Any mod can subscribe to it by providing three formlists and a spell to sexout. This is done after variable sanitizing and so forth, so if the hook notifies your mod, sex is definitely going to happen and should actually 'start' in the next frame (it's in the ScriptEffectStart for the main effect). The three lists are for indicating what type of sex is taking place; oral, vaginal, or anal.

 

You add your lists to the sexout lists through a script. The sexout lists are SexoutNGFLGlobalCBStartFLO, ...FLA, and ...FLV. Then you add the spell you would like sexout to execute to SexoutNGFLGlobalCBStartS. Sexout loops through all the provided formlists adding the appropriate actors to them, and then loops through the spells list casting each spell on one of the actors, preferring B, then A, then C.

 

The receiving actor does not appear in any list. However, this is why actorB is always preferred as the spell target -- actorB is always the one being penetrated. So in the event of Adam banging Betty in the vajayjay, you'll get Adam added to the FLV list, and the spell cast on Betty -- who will not appear in any list herself.

 

If Charlie joins in and goes for the mouth, he would be in the FLO (for Oral) list.

 

That has been the source of some confusion and the behavior should probably be changed -- or better documented.

 

During masturbation, the spell is cast, but there will not be anything in the lists. The actor that is masturbating will be the one the spell was cast on, and will also have the token I mentioned to indicate that.

 

 

 

Sexout also has a built in scanner you can use as well, intended to reduce client load and allow the player to control the frequency. The default scan frequency is 10Hz. It works the same as the hook above except you only need to provide it with your spell and a single list. It will populate the list with all the actors found during the scan, and then execute the spell.

 

The lists for that are SexoutScannerListN (where you put your formlist for scanned targets), and SexoutScannerListS (where you put your spell). Tryouts are using this scanner now to good effect. Debugging messages are available by turning on debug output in the sexoutNG MCM config under 'Misc'.

 

In all these notification hook cases it's important that, when your spell is called, it clears out the list(s) it uses, otherwise they will fill up with old entries. I don't clear them myself in order to leave the subscribing mod the choice of continuing to operate on the list it already has and ignoring further calls to the notification spell provided, or not.

 

The FinishNow spell does work last time I checked, but it needs to be cast on all the actors involved in the scene. I'll put testing it on my todo list to be sure.

Link to comment

No problem. If you do run into any problems with any of them, let me know.

 

The finishnow script is extremely simple, it just adds a 'stop sex' token to the actor it's cast on, and clears any 'pause' tokens they might have. I initially put it in place as a cleanup method in case 4 or 5 different mods tried to pause the same act. It's definitely being checked for in the main effect script, though that doesn't always mean it's working.. :)

Link to comment

Sounds like some good stuff coming, I'm hoping there will be some way of detecting if the act is rape that the sex lasts till the rapist is done, whether the rapee orgasms or not, but then later the rapee orgasming may trigger the rapist orgasm too if they are close enough to orgasm say 90%.

Link to comment

Okay. The only thing that I ask right now' date=' is that you do a check for SexoutLust and let me set a "bUseLust" flag for the 3x multiplier. That way, I don't have to overwrite the dfTime.

[/quote']

 

Will do. I'll post again here as soon as it's in place. Easy enough to put in for the next release which should be this weekend if not sooner.

Link to comment

Beta download is available in the main NG thread OP. Adds this lust thing as well as a first stab at the post-sex global hooks. The hooks *might* be problematic so I encourage testing before relying on them. I'm not 100% sure that I put the hook in the "best" location for modders to make the best use of them. See the latest post in the NG thread for details.

Link to comment
Guest
This topic is now closed to further replies.
  • 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