Jump to content

SexoutNG - Beta (2.10.93b10) release thread


Recommended Posts

Ok, I think I have tomm's issue sorted. I'm going to monologue for a bit here to help people understand what's happening, and perhaps a better solution will be suggested.

 

When sexout first starts it has to do a lot of sanity checking. It also has to convert calls between the different interfaces/conventions (quest, NX, UDF). One of the sanity checks it does is, of course, ensuring that the actors given to it aren't already in use. If they are, it errors out and lets the running act finish.

 

However, this caused a problem when dialog callbacks were added and people started using dialog scripts to start new acts. Since startconversation sometimes will silently fail, sexout has to keep the actors locked until it succeeds. Of course, if the actors are locked, then the dialog script that starts the new act will fail due to the inuse check.

 

My solution was to add a cleanup spell that handles the per-call callbacks (like dialog), and call that within the main effect and wait until it finished before finalizing the act and unlocking the actors. This allowed me to have the sanitizer look for the cleanup spell on locked actors, and if it's found, to delay and wait for it to finish rather than erroring out.

 

The cleanup is what was actually doing the unlock, just before dispelling itself, which returns control to the main effect -- at which point the main effect calls the global notification hooks, reenables the player controls, clears the Sexout:Start NX vars, etc. Of course this introduced a race thanks to the delay in casting spells.

 

So I had to move the unlocks back into the main effect script. This presented a problem because, now, the sanitizer check for the cleanup spell may return false while the actors are still locked, causing the sanitizer to error out (7.x, 8.x).

 

My solution for now (tested with about 10 scenes in the freezetest) is this:

 

----------

1. The main effect stage 301 casts cleanup as normal but also sets an NX cleanup flag on the actor to 1, sets stage to 1000.

 

2. Main effect stage 1000 waits for the cleanup flag to change from 1 to 2.

 

I have to use a var here because of the delay between the CIOS of cleanup and IsSpellTarget for it returning true, and also in case somehow cleanup were cast, ran, and dispelled before the next check for it.

 

3. Cleanup does the same as it always has. Calls the callbacks, does the redressing, etc. When it's done, instead of unlocking actors and dispelling itself, it just goes to a dummy stage after setting the cleanup flag to 2.

 

4. The main effect waits for all cleanups on all actors to flag to 2 (setting to 3 and dispelling cleanup as it goes), then proceeds to kickoff the global post-sex hooks, clear the fars, unlock the actors, and dispel itself.

----------

 

This works in concert with the sanitizer which now checks for the main effect instead of the cleanup effect, but also checks the value of the cleanup flag. If the cleanup flag is 0/unset, it errors out with the normal inuse error. If it's anything else, it waits. This *should* mean that when the act is finally done, including cleanup, the spell effect is gone, and the cleanup flag is three.

 

The flag will remain 3 on any actor indefinitely, until the next time they are used, which will reset it to 0 (clear it, actually).

 

I might be able to unset the cleanup var it at the end of the effect, just before the dispel, but after the unlock. This would save some NX savefile space, and should work OK as long as the unlock (also instant) was done, since that's the first thing the sanitizer checks before looking at IsSpellTarget or the cleanup value. I want to get it tested this way first though since it should be impossible to "get wrong."

 

(Also there was a bug in the cleanup where i copypasta'd actorA over and over.. AGAIN. I really need to arrayify all this.)

Link to comment

2.6.85b10 in OP

- NGSAN abort now a bit more verbose

- New cleanup/unlock/sanitizer strategy. (discussed in previous post).

 

I've tested this with my modified freezetest which does 2p acts and incorporates zaz. No issues so far. Needs more testing with callback stuff, especially dialog.

Link to comment

Tomm, this is bad.

 

{Stage12}
playerREF.NX_SetEVFl "Sexout:Start::CallVer" 1
playerREF.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant01RotundaRef
playerREF.NX_SetEVFo "Sexout:Start::ActorB" playerREF
playerREF.NX_SetEVFo "Sexout:Start::ActorX" MS15SuperMutant06RotundaRef
playerREF.NX_SetEVFo "Sexout:Start::CBDialogX" aaMS15MutantLeaderCB2
playerREF.CIOS SexoutBegin

playerref.NX_SetEVFl "Sexout:Start::CallVer" 1
playerref.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant06RotundaRef
playerref.NX_SetEVFo "Sexout:Start::ActorB" MS15SydneyRef
playerref.CIOS SexoutBegin
You have MS15SuperMutant06RotundaRef as actorX in the first act, and as actorA in the second.

 

I understand what you're trying to do there, but it's a pretty dodgy approach, and the cleanup is likely wiping things out that one act or the other needs. Instead I recommend you create a spell or something of your own (or use a quest stage or.. something) instead of the CBDialogX in that first setup.

 

Just have it wait for that Mutant06 to become available, and then do the startconversation yourself. See if that fixes it.

 

To be honest, I regret ever having supported (and even endorsed) calling sexout from within dialog scripts -- this is highly discouraged, nevermind doing it with actors being used in multiple acts.

Link to comment

Another thing you could try is to use CBDialogA in the second act. At least that way he isn't being reused between acts. As long as the first act finishes first and the player is available, it should work. If it doesn't let me know, that is something I can probably address.

Link to comment

Well Odessa, just one thing to point out at present.. that inventory stuff is fine. The actors were successfully locked (lines 3150-3154) so them having tokens at that point is normal.

 

What's weird is that I don't see the sanitizer message that should have followed. This:

Sol: HOQ (235) - Starting a boxed bitch (Odessa) boning by NCR Trooper

fnSAL: 0011F296 (NCR Trooper) initial lock state: 0

fnSAL: 0011F296 (NCR Trooper) final lock state: 1

fnSAL: 00000014 (Odessa) initial lock state: 0

fnSAL: 00000014 (Odessa) final lock state: 1

fnSAR: Setting EVFO 'Sexout:Start::ActorA' on '0011F296' = 0011F296

fnSAR: Setting EVFO 'Sexout:Start::ActorB' on '0011F296' = 00000014

fnSAR: Setting EVFL 'Sexout:Start::Anim' on '0011F296' = 222.000000

fnSAR: Setting EVFL 'Sexout:Start::Duration' on '0011F296' = 240.000000

fnSAR: Setting EVFL 'Sexout:Start::IsOral' on '0011F296' = 1.000000

fnSAR: Setting EVFL 'Sexout:Start::nUseZAZ' on '0011F296' = 1.000000

Should have resulted in, at least, a "NGSAN: SES Entered". It never happens, nor any other NGSAN messages for that act that I can see. That's odd as it's the first line of the sanitizer ScriptEffectStart block -- the spell cast directly after those fnSAR lines above. It's like the spell wasn't actually cast.

 

 

Edit: Er sorry, it should have been a CSE message next.. "CSE: SES stage ...". That happens before the sanitizer. Second line rather than first, as the first is a GetCallingScript. I wonder if that blew up somehow?

Link to comment
Guest tomm434

So. Still I got 7,.1 error if I use "CBDIalogueA" in 12 stage. I tried deleting dialogue call but I get the same result.

playerREF.NX_SetEVFl "Sexout:Start::CallVer" 1
playerREF.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant01RotundaRef
playerREF.NX_SetEVFo "Sexout:Start::ActorB" playerREF
playerREF.CIOS SexoutBegin

playerref.NX_SetEVFl "Sexout:Start::CallVer" 1
playerref.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant06RotundaRef
playerref.NX_SetEVFo "Sexout:Start::ActorB" MS15SydneyRef
;playerREF.NX_SetEVFo "Sexout:Start::CBDialogA" aaMS15MutantLeaderCB2
playerref.CIOS SexoutBegin

Then I decided NOT to use CBDIalogue in 11 stage(before that) and move next dialogue to greeting. So  - stage 11 sex scene happens, then PC activates mutant and stage12 must start(script above - without Dialogue line).

And sex starts only with Sydney, not player.

 

Sexout96 goes for old "system" where I use CBDIalogue with beta10

Sexou97 goes for new system where I moved topic to greeting instead of putting it in CBDialogue with beta 10

 

Fallout New Vegas enplczru.rar

Link to comment

2.6.85b11 in OP

- New cleanup/unlock/sanitizer strategy (fixed, beta 11).

- Only unlock set actors to prevent null unlock spam.

- Unlock actorX with the rest, just in case.

 

Ok bitches, here you go. ;)

 

When I changed the sanitizer to check for the main effect rather than cleanup, I forgot that the main effect is only on the target, while cleanup was on all of them. So current sanitizer logic is:

 

- If actor locked:

-- If cleanup stage 1 or 2 (technically, not 0 or 3), wait/return.

-- If main effect on actor, error 8.x (x = A/1, B/2, C/3)

-- If something else locked actor, error 7.x.

 

Tested with freezetest and a bit with tryouts as that's all I have right now that uses dialog callbacks with sex scenes in the result scripts.

Link to comment
Guest tomm434

Prideslayer, we got a progress here!!!!! Now sex doesn't start because of 2.0 error.

 

 

 

This log is for old system with Dialogue callback. New system with greeting after sex still doesn't work.

 

 

Code is:

playerREF.NX_SetEVFl "Sexout:Start::CallVer" 1
playerREF.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant01RotundaRef
playerREF.NX_SetEVFo "Sexout:Start::ActorB" playerREF
playerREF.CIOS SexoutBegin

playerref.NX_SetEVFl "Sexout:Start::CallVer" 1
playerref.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant06RotundaRef
playerref.NX_SetEVFo "Sexout:Start::ActorB" MS15SydneyRef
playerREF.NX_SetEVFo "Sexout:Start::CBDialogA" aaMS15MutantLeaderCB2
playerref.CIOS SexoutBegin

Doesn't work even if I remove Dialogue callback line.

Sexout98.rar

Link to comment
Guest tomm434

I'm sorry but I still got 2,0 error. Can it be somehow my fault?

 

Here are the screenshots. I moved topic to greeting not that it confuse you. It's still old system with CBDIalogue.

Here is the video of what happens. Did a clean save before that.

 

 

These animations glithes sometimes happen, girls don't neccesarily both use the same particular animation in this scene.

 

ps. log and video are from the separate cases. I mean that I filmed video after I captured the log. But console spam looks the same.

ItBetterBeFuckingWorking.rar

post-187071-0-87115400-1403478034_thumb.jpg

post-187071-0-30140800-1403478035_thumb.jpg

post-187071-0-78049300-1403478035_thumb.jpg

post-187071-0-23208100-1403478036_thumb.jpg

PrideVideo.rar

Link to comment
Guest tomm434

That's very strange.

 

Ok, so here is the log.

Stage12 Sex scene started only with Sydney. Then dialogue progressed (I added CBDIalogue line in stage 12). But then after Doug(ms15rotundamutant06Ref) said his topic, another mutant came to PC and ot was like he should have said some topic didn't met conditions(this fake camera zoom). And then next scene started only with Sydney.

 

And for some reason during animation(Sydney was still getting banged) Doug talked to player again as if this scene is ended. Then of course nex stage should have started and it failed because Sydney didn't finished her animation.

 

 

 

In next staged Loogie uses RotundaMutant6 as actor X but other 2 mutants who bang the girls are always different and NOT him(mutant01,mutant02.mutant03,mutant04)

 

 

On my second attempt mutant still wanted to talk to PC but failed but sex started after that.

Then Doug spoke again as he should. And after gis dialogue sex with player didn't start(with Sydney it was okay)

 

 

Sexout13 -first attempt

Sexout101-second attempt

 

 

SexoutBeta13.rar

post-187071-0-10496100-1403508260_thumb.jpg

sexout101.rar

Link to comment

Right now tomm I'm starting to think this round of errors are in the mod, and not sexout, but I can't be sure without understanding all the scripts involved -- which I don't.

 

Tell me, did all of this ever work before? Does this whole thing work fine in version 83 of NG?

 

It looks like at some point two acts are running that both have CBDialogs assigned. This is the source of the problem and what caused the sex act to get interrupted with another conversation.

Link to comment
Guest tomm434

I don't remember which version of Sexout I used when it worked but it did work. Then I upgraded to some new version I don't remember too and this started happening. Oh, this is not helpful. Ok, I'll try to use the file Loogie once sent me and see if that'll work.

Link to comment
Guest tomm434

No, doesn't work too. DIalogue with Doug didn't start.

There is still ActorX lines but I rememeber that I got throught this scene without a problem. I've got no reports that scene doesn't work for people in  topic.

playerREF.NX_SetEVFl "Sexout:Start::CallVer" 1
playerREF.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant01RotundaRef
playerREF.NX_SetEVFo "Sexout:Start::ActorB" playerREF
playerREF.NX_SetEVFo "Sexout:Start::ActorX" MS15SuperMutant06RotundaRef
playerREF.NX_SetEVFo "Sexout:Start::CBDialogX" aaMS15MutantLeaderCB2
playerREF.CIOS SexoutBegin

MS15SuperMutant06RotundaRef.NX_SetEVFl "Sexout:Start::CallVer" 1
MS15SuperMutant06RotundaRef.NX_SetEVFo "Sexout:Start::ActorA" MS15SuperMutant06RotundaRef
MS15SuperMutant06RotundaRef.NX_SetEVFo "Sexout:Start::ActorB" MS15SydneyRef
MS15SuperMutant06RotundaRef.CIOS SexoutBegin

set aaquest.sexexpirience to Rand 10 50
player.rewardxp aaquest.sexexpirience
set aaquest.aamutantsex to aaquest.aamutantsex +1

With that code dialogue callback didn's start at all(Log). Then I did CbDIalogueA line to MS15SuperMutant06RotundaRef again and scene progressed but after that supermutan(not Doug) approached player and again there was this fake Dialogue Zoom in. And the main thing is that I coudn't get control of PC anymore(PC could walk but nothing more). Didn't capture log for this.

 

We can leave this for now.  I'll go ask people in topic about that, also I will ask people with whom I work on this mod. If you have TTW, I can send you the file if you wish.

Sexout102.rar

Link to comment

I just ran the freezetest again, my modified version that adds a cointoss to pick a zaz animation or not, and it worked. Are you sure the anim # you passed in to zaz is valid and that the zaz esp is active? "Dumb questions" I know, but the log looks fine, and zaz is working for me.

 

I'm attaching my modified version of your freezetest.

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