Jump to content

Sexout picks wrong animations


Recommended Posts

Hello my fellow modders and moddees!

 

I'm hunting this bug since I've started working on Sexout Affairs. The problem is , that even after defining a specific sextype, the wrong animations get picked. The sequence should be M->F oral, F->M oral, M->F vaginal. The problem I'm having now is, that in around 3/4 of the cases, I get duplicate sextypes. For instance, after an eating out animation in the first act, I get the same animation for 2nd and 3rd too. Sometimes it picks the right one for the 2nd step, but it goes on and plays the 2nd animation for step 3.

This is somehow not reproducable for me. It isn't dependant on the animation, as sometimes it works and sometimes it doesn't when playing specific anims. It happens independantly of Sexout Version too, at least for the newest version and the one that came before that. I tried calling for exact anims (by picking their number in the script) and it still does it.

 

As I'm running out of ideas what to do, I turn to you, in the hopes that someone might have an answer.

I attached my script below. The magic starts at stage 5. Stages progress with callback-dialogue from that point on. Script processing delay is 3 secs.

 

scn SOASexScript                                ;Quest script

ref sexP					;SexPartner
ref sexhl					;Sex at partner's home location
ref sexhere				;Sex at current location
int sexstage
int sextravel
int afsex
int sextracker

Begin gamemode

if (GetGameLoaded || GetGameRestarted)																					
if ( 0 !=sexP && 0 != sexhl && sexstage < 5)
	sexP.removescriptpackage SOADateTravelSexLocation
	sexP.removescriptpackage SOASexFollow	
	sexP.evp			
	set sextracker to 0			
	set afsex to 0
	MarkerRat02.moveto rathome
	MarkerRat02.disable	
	set sexstage to 0
endif
endif

if (0 == sexP || 0 ==sexhl || (sexP.getdead == 1) )
	DebugPrint "SOASex: no partner or no location or sexpartner died, aborting quest"
		set sexstage to 0
		set sextracker to 0
		set sexP to 0
		set sexhl to 0
		set afsex to 0
		MarkerRat02.moveto rathome
		MarkerRat02.disable			
	stopquest SOASex	
elseif (0 != sexP && 0 != sexhl)
	if sexstage == 0
		set afsex to 1
		DebugPrint "SOASex: Sexstage %.0f" sexstage
		MarkerRat02.enable
		MarkerRat02.moveto sexhl	
		printc "SOASex: Sexpartner %n, Sex location %n" sexP sexhl
		set sexstage to 1
	elseif sexstage == 1
		DebugPrint "SOASex: Sexstage %.0f" sexstage
		sexP.addscriptpackage SOADateTravelSexLocation
		set sexstage to 2
	elseif sexstage == 2 && sextravel == 1
		DebugPrint "SOASex: Sexstage %.0f" sexstage
		set sexstage to 3			
	elseif sexstage == 3 && sextravel == 0
		DebugPrint "SOASex: Sexstage %.0f" sexstage
		sexP.removescriptpackage SOADateTravelSexLocation
		sexP.addscriptpackage SOASexFollow			
		set sexstage to 4
	elseif sexstage == 4
		DebugPrint "SOASex: Sexstage %.0f" sexstage
		sexP.startconversation playerref 000SOASexBefore
	elseif sexstage == 5				                    ;Eating out																						
		DebugPrint "SOASex: Sexstage %.0f" sexstage	
		sexP.NX_SetEVFl "Sexout:Start::CallVer" 1
		sexP.NX_SetEVFo "Sexout:Start::ActorA" sexP
		sexP.NX_SetEVFo "Sexout:Start::ActorB" playerRef			
		sexP.NX_SetEVFl "Sexout:Start::isOral" 1
		sexP.NX_SetEVFo "Sexout:Start::CBDialogA" 000SOASexAfter
		sexP.CIOS SexoutBegin
		set sextracker to 1
		set sexstage to 8
	elseif sexstage == 6			                             ;Blowjob																							
		DebugPrint "SOASex: Sexstage %.0f" sexstage	
		sexP.NX_SetEVFl "Sexout:Start::CallVer" 1
		sexP.NX_SetEVFo "Sexout:Start::ActorA" playerRef
		sexP.NX_SetEVFo "Sexout:Start::ActorB" sexP			
		sexP.NX_SetEVFl "Sexout:Start::isOral" 1
		sexP.NX_SetEVFo "Sexout:Start::CBDialogB" 000SOASexAfter
		sexP.CIOS SexoutBegin
		set sextracker to 2
		set sexstage to 8				
	elseif sexstage == 7					             ;vaginal sex
		DebugPrint "SOASex: Sexstage %.0f" sexstage	
		sexP.NX_SetEVFl "Sexout:Start::CallVer" 1
		sexP.NX_SetEVFo "Sexout:Start::ActorA" playerRef
		sexP.NX_SetEVFo "Sexout:Start::ActorB" sexP			
		sexP.NX_SetEVFl "Sexout:Start::isVaginal" 1			
		sexP.NX_SetEVFo "Sexout:Start::CBDialogB" 000SOASexAfterNew
		sexP.CIOS SexoutBegin
		set sextracker to 3
		set sexstage to 8
	elseif sexstage == 8
		DebugPrint "SOASex: Sexstage %.0f, Moaning" sexstage
		sexP.sayto sexP 000SOASexMoans	
	elseif sexstage == 9
		DebugPrint "SOASex: Sexstage %.0f, last stage" sexstage
		sexP.removescriptpackage SOASexFollow	
		sexP.evp
		sexP.additem SOASex24CDToken 1 1
		set sexstage to 0
		set sextracker to 0
		set sexP to 0
		set sexhl to 0
		set afsex to 0
		MarkerRat02.moveto rathome
		MarkerRat02.disable			
		stopquest SOASex
endif
endif

end

 

 

Here is an example of eating out gone horribly wrong! :D

After playing that animation with reversed Actors at stage 5, it produced this at stage 6 and 7 in the script.

 

weird01.jpg

Link to comment

I've been having a similar issue myself. Calling an oral animation in a callback after a vaginal animation is resulting in an oral animation being played. The same code that plays the animation works as intended if it's called after the dialogue tree is closed and re-opened.

 

I've also had an issue where A&B are not assigned to the proper roles when running an oral animation. The API says that B should be the one getting the blowjob but Sexout is assigning A to that role.

Link to comment

Whatever it is seems to be connected to calling the NG stuff from the quest script & presumably setting the stages through the end result scripts of the callback dialog - maybe you should try calling the NG stuff directly from the end result scripts?

 

I'm guessing with a quest delay timer at 3 secs, maybe sometimes things don't get set as they should. With result scripts, the effect is always immediate.

Link to comment

Whatever it is seems to be connected to calling the NG stuff from the quest script & presumably setting the stages through the end result scripts of the callback dialog - maybe you should try calling the NG stuff directly from the end result scripts?

 

I'm guessing with a quest delay timer at 3 secs' date=' maybe sometimes things don't get set as they should. With result scripts, the effect is always immediate.

[/quote']

 

Well, it's the same for a 0.1, 1, 5 and 10 sec. delay, because I tried those too.

 

It could be worth a try, but with zippy reporting similar issues for his dialogue-induced calls, I fear the result will be the same. Is there by any chance a method I could call, that clears out all sexout variables, so that they have to be set anew? Maybe clearing out the variables, before progressing, would do the trick.

Link to comment

Well, maybe I was barking up the wrong tree... so, what else could it be...

Probably not leftover tokens, otherwise you'd have 2 people doing the same anim. But could be worth it to check the actors' inventories anyhow for something that shouldn't be there.

 

Could be something in the Randomizer script that isn't doing what it should. In what I'm working on I've always set the anims directly, being a control freak & all that, & never seen problems that way.

 

Or maybe something from some other mod is hooked into the global callbacks & messes things up that way. Does the error persist with no other sexout mods loaded?

 

There's a spell called SexoutNGCleanup that's cast after sex that resets variables & handles callbacks. But if it's something there that doesn't work, force-casting it yourself will probably not help or even make things worse.

 

Just guessing, of course.

Link to comment

I've checked inventories multiple times (trying to figure out why an NPCs melee weapon is being equipped before sex but after they're stripped, causing them to perform sex animations while being stabbed in the hip), but never disabled all other Sexout mods because this is a personal mod of mine that I work on when I run into dead-ends with Agent and it contains a bunch of game-specific tweaks to other mods; I actually can't run without them. I'll have to strip it down to test.

Link to comment

Well' date=' maybe I was barking up the wrong tree... so, what else could it be...

Probably not leftover tokens, otherwise you'd have 2 people doing the same anim. But could be worth it to check the actors' inventories anyhow for something that shouldn't be there.

[/quote']

Hmm, I haven't checked that. Might be worth a try, to see what's going on

Could be something in the Randomizer script that isn't doing what it should. In what I'm working on I've always set the anims directly, being a control freak & all that, & never seen problems that way.

Or maybe something from some other mod is hooked into the global callbacks & messes things up that way. Does the error persist with no other sexout mods loaded?

I currently have SCR, SOStore, SOSex, SOCompanions, SOFadeToBlack, SOConsequences, SODiscounts and SOZaz loaded. IIRC those don't hook directly into an act. Here is a complete Loadorder:

 

 

FalloutNV.esm

DeadMoney.esm

HonestHearts.esm

OldWorldBlues.esm

LonesomeRoad.esm

GunRunnersArsenal.esm

ClassicPack.esm

iHUD.esm

CINEMATECH.esm

Primary Needs HUD.esm

Project Nevada - Core.esm

Project Nevada - Equipment.esm

rePopulated Wasteland.esm

Sexout.esm

SexoutCommonResources.esm

Project Nevada - Rebalance.esp

Project Nevada - Cyberware.esp

SexoutStore.esm

Lings.esm

ELECTRO-CITY - CompletedWorkorders.esm

ELECTRO-CITY - Highways and Byways.esm

New Vegas Redesigned II.esm

Mission Mojave - Ultimate Edition.esp

MMUE-CP-Electrocity.esp

DarNifiedUINV.esp

CASM.esp

Readius_NV.esp

The Mod Configuration Menu.esp

The Weapon Mod Menu.esp

SmallerTalk.esp

populatedcasino.esp

Project Nevada - Dead Money.esp

Project Nevada - Honest Hearts.esp

Project Nevada - Old World Blues (No Cyberware).esp

Project Nevada - Lonesome Road.esp

Project Nevada - Gun Runners' Arsenal.esp

Project Nevada - Extra Options.esp

Casino Exchange All.esp

DragonskinTacticalOutfit.esp

DragonskinBonusPack.esp

SecretStash80.esp

Goodsprings Filler.esp

TheCollector.esp

GRA - The Right to Bear Arms.esp

DTO-ProjectNevada.esp

CNR_Beta.esp

housemod.esp

iL-Camouflage Ghost Bodysuit.esp

merccustom.esp

jotoughgirl.esp

SalvagedCourierDLC04.esp

SGD's Black Bandana.esp

VegasOutfits.esp

WastelandCourier.esp

ManualReload.esp

New Vegas redesigned- Honest Hearts.esp

BlackMountainThugArmorT6m.esp

MMUE-CP-PNCore.esp

NewVegasBounties.esp

Type 6.esp

T6M Combat Uniform NV.esp

MojaveDelight.esp

MediumBeard.esp

SideburnsBeardShort.esp

Sideburns.esp

NVWillow.esp

dD - Enhanced Blood Main NV.esp

dD-Reduced Ragdoll Force.esp

MCL_Weapon_Pack_1.4.esp

WeaponModsExpanded.esp

WMX-ModernWeapons.esp

WMX-DeadMoney.esp

WMX-HonestHearts.esp

WMX-OldWorldBlues.esp

WMX-LonesomeRoad.esp

WMX-GunRunnersArsenal.esp

WMX-PreOrderPackClassic.esp

SexoutCompanions.esp

SexoutSex.esp

SexoutFadeToBlack.esp

SexoutConsequences.esp

SexoutDiscounts.esp

SexoutZAZ.esp

SexoutAffairs.esp

SexoutAffairsMojaveDelight.esp

Project Nevada - WMX.esp

ProjectRealityMkIv5HDR.esp

DYNAVISION 2 - Dynamic Lens Effect.esp

ELECTRO-CITY - Imaginator.esp

Directors Chair.esp

Bashed Patch, 0.esp

FlashlightNVSE.esp

 

Total active plugins: 92

Total plugins: 108

 

 

No sexout mods are in the Bashed patch. (Except SOWillow) I haven't cleaned up the LO for a while, so it's a little messy. There is a merged Patch that got bashed in. Game runs very stable.

There's a spell called SexoutNGCleanup that's cast after sex that resets variables & handles callbacks. But if it's something there that doesn't work, force-casting it yourself will probably not help or even make things worse.

 

Just guessing, of course.

I'll look into that. Maybe doing a second cleanup, might do the trick. Maybe I shouldn't do that in the same frame, as the SO-call, though.

 

I've checked inventories multiple times (trying to figure out why an NPCs melee weapon is being equipped before sex but after they're stripped' date=' causing them to perform sex animations while being stabbed in the hip), but never disabled all other Sexout mods because this is a personal mod of mine that I work on when I run into dead-ends with Agent and it contains a bunch of game-specific tweaks to other mods; I actually can't run without them. I'll have to strip it down to test.

Yeah, that bug got somehow reintroduced with the new SexoutNG. I didn't have it with the previous version. It's any sort of weapon. My male PC doesn't seem to be affected, but all the female NPCs never unequip their weapons or in the worst case, have them sticking out of them, like shown in your pic.

Link to comment

Did you try to enable sexoutNG debug mode and write everything out with SCOF ?

 

If your parameters are not taken into account or if something else interfere it should show up.

 

No, I did not. ;)

 

But I have done it now. I can't make anything of it.

First sex sequence was correct and the second one played the same animation three times in a row.

 

Here's the file. After the 2nd message ("SOASex: Sexpartner Inga, Sex location Ruined Couch") the corrupted sequence begins.

Link to comment

Looking at the debug text, I see a pattern where NGClean text shows the dialog callback. Usually these are followed by 3 more NGClean calls:

 

NGClean (59): Startconversation: Inga (53001F4F) 1

 

NGClean (59, 59) (53001F4F) : stage 110 -> 120 'Inga'

 

NGClean (59, 59) (53001F4F) : stage 120 -> 200 'Inga'

 

NGClean (59, 0) (53001F4F) : stage 200 -> 1000 'Inga'

 

The numbers increment from 57 to 59, and they appear to be some counter.

 

After the random animation number 236 is performed (not sure what the anim is, but probably the oral repeating that you mentioned), the dialog callback was done BUT the 3 NGClean calls were not done:

 

NGClean (60): Startconversation: Inga (53001F4F) 1 (only this one, no following NGCleanup)

 

 

Something caused the Cleanup code to crap out. Once that happened, it appeared to repeat that last anim (236) every time, as if you had passed it in:

 

NGSAN: 2 actors O=30 V=60 A=10 type=3 AnimA=236 AnimB=236 AnimC=236 noAnim=0

 

So instead of getting the randomized sex, it continually repeated the last anim (which is what you are seeing). It also continued to skip those other NGClean calls once it started repeating. I'm not somewhere I can look this up, but I'd look at the cleanup script searching for the "Startconversation" and see if it has any conditions after that NBCleanup call for skipping the other cleanup calls.

 

 

By the way, as for the picture in the OP - she's just tossing a little salad, that's all :D .

Link to comment

Looking at the debug text' date=' I see a pattern where NGClean text shows the dialog callback. Usually these are followed by 3 more NGClean calls:

 

[b']NGClean (59): Startconversation: Inga (53001F4F) 1

 

NGClean (59, 59) (53001F4F) : stage 110 -> 120 'Inga'

 

NGClean (59, 59) (53001F4F) : stage 120 -> 200 'Inga'

 

NGClean (59, 0) (53001F4F) : stage 200 -> 1000 'Inga'[/b]

 

The numbers increment from 57 to 59, and they appear to be some counter.

 

After the random animation number 236 is performed (not sure what the anim is, but probably the oral repeating that you mentioned), the dialog callback was done BUT the 3 NGClean calls were not done:

 

NGClean (60): Startconversation: Inga (53001F4F) 1 (only this one, no following NGCleanup)

 

 

Something caused the Cleanup code to crap out. Once that happened, it appeared to repeat that last anim (236) every time, as if you had passed it in:

 

NGSAN: 2 actors O=30 V=60 A=10 type=3 AnimA=236 AnimB=236 AnimC=236 noAnim=0

 

So instead of getting the randomized sex, it continually repeated the last anim (which is what you are seeing). It also continued to skip those other NGClean calls once it started repeating. I'm not somewhere I can look this up, but I'd look at the cleanup script searching for the "Startconversation" and see if it has any conditions after that NBCleanup call for skipping the other cleanup calls.

 

 

By the way, as for the picture in the OP - she's just tossing a little salad, that's all :D .

 

Lol.

 

I just had a quick glance at the cleanup script and found the debug you mentioned. (NGClean (60): Startconversation: Inga (53001F4F) 1)

 

I'm not going to lie, but this is way above my head.:shy: I think I'm getting the gist of it, but reverse-engineering Sexout is not my strong suit, nor my idea of fun.:D

 

If I'd have to guess: the callback happens to quick (sometimes), the conversation starts, the cleanup script runs only in gamemode, it doesn't finish, my script fires a new sexout call after the conversation ends, sexout is confused and takes the parameters it already knows, because it doesn't know a new scene started (or that the old one ended) and the old one is still in memory, hilarity ensues...:D

 

Or something to that effect.

Link to comment

Maybe instead of doing a dialog callback, you do a spell callback? Inside the spell callback you start the dialog (StartConversation). Maybe this will delay the dialog enough for the cleanup script to finish out. I've never used the dialog cb before so I'm not very versed on it.

Link to comment

Maybe instead of doing a dialog callback' date=' you do a spell callback? Inside the spell callback you start the dialog (StartConversation). Maybe this will delay the dialog enough for the cleanup script to finish out. I've never used the dialog cb before so I'm not very versed on it.

[/quote']

 

Interesting.

It's the other way for me around, actually. I've never used anything, but dialogue callback.

 

I'm going to give this a shot and report, if it resolves it.

Link to comment

The issue with the last two acts is that they are not randomized because the sex anim number is already set when calling CIOS SexoutBegin.

 

I suppose they should have been cleared before.

 

What are the scripts called by the conversations ?

Depending on the calling convention debugging will change.

Link to comment

The issue with the last two acts is that they are not randomized because the sex anim number is already set when calling CIOS SexoutBegin.

 

I suppose they should have been cleared before.

 

What are the scripts called by the conversations ?

Depending on the calling convention debugging will change.

 

I'm not sure if that's what you mean, but I don't call Sexout with dialogue. All calls are in the quest script and I progress to the next stage with callback dialogue. They are all using the new calling convention (see OP, stage 5 onwards).

Link to comment

Sorry forgot the script was posted.

Could you run another debug session' date=' but this time with both NG and your module in debug mode ? The various DebugPrint in your script do not show.

[/quote']

 

Here you go.

 

It contains 4 scenes.

 

1st sequence: played every part correct.

 

2nd sequence: 3rd act is the same as the 2nd.

 

3rd sequence: 2nd is the same as first, 3rd act is correct

 

4th sequence: 2nd and 3rd act are the same as the first

 

I had to progress my script with the console in two cases, because I did some changes to the way the travel package works and it doesn't work correctly at the moment. This shouldn't be a factor, as it doesn't affect the sex scene and it happened before too.

Link to comment

As a possible workaround' date=' try adding

sexP.NX_SetEVFl "Sexout:Start::animA" 0

as part of sexstage 5, 6 and 7

 

It should be done by NGClean, but seems not.

[/quote']

 

Unfortunately that doesn't fix it.

 

The only thing that changes, is that ActorA doesn't play an animation at all, if the problem occurs. Erected body gets equipped fine, but he just stands there doing nothing. She (ActorB) proceeds on playing the eating out animation.

 

bugme.jpg

Link to comment

This is "explained" here:

NGSAN: 2 actors O=30 V=60 A=10 type=1 AnimA=0 AnimB=401 AnimC=401 noAnim=0

 

My bad for not opening the script: SexoutNGRAN only checks animA, but NGSAN controls A, B and C.

So can you also set animB and animC to 0 ?

Link to comment

Okay, on to round two.

 

Actually I was wondering, why it only had to be animA. But if I knew how Sexout works, I wouldn't have to ask...:D

 

Does it matter at which point I inject those lines? Or is it just part of the standard call and has to come between CallVer and SexoutBegin like all the others?

Link to comment

As long as it is between CallVer and CIOS it is ok.

 

Okay' date=' very first try resulted in playing a blowjob animation for the 3rd stage.

 

BUT all subsequent tries were succesful! I can live with that... I made a scof file, but botched it up somehow, while viewing with notepad. I'll make a new one later, if there is interest.

 

Thank you very much!

 

While we are at it... :D

 

The new Sexout version somehow introduced the "weapons don't get unequipped" bug for me. I read somewhere that Prideslayer is aware of its existence. The problem is, I never encountered this bug before updating Sexout to 2.6.71. I guess I could remove the weapons on my end for scenes in my mod. But the problem would still persist for the rest.

 

[img']http://imageshack.us/a/img717/3240/weaponbug01.jpg[/img]

weaponbug02.jpg

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