-
Announcements
-
SITE MOVED - IN READ ONLY MODE 12/08/2015
Please use http://www.loverslab.com moving forward. Site has been restored to a previous version, and this one placed into a read-only mode. This is available for a limited time so users may reference/copy content that has been lost in the transition. This will no longer be accessible by December 22nd, 2015.
-
-
Content count
138 -
Joined
-
Last visited
Posts posted by nkAlex
-
-
Btw, T, always wanted to ask, is there a particular reason for introducing 4 separate variables instead of one, or even using default Sexout's one ("Sexout:Orientation")?

0 -
LadyM, if you want an NPC to be forced to be gay in SOI you can click on it from the console and execute a set of commands:
NX_SetEVFl "SOIntimacy:Heterosexual" 0NX_SetEVFl "SOIntimacy:Lesbian" 0NX_SetEVFl "SOIntimacy:Bisexual" 0NX_SetEVFl "SOIntimacy:Gay" 1
or use any other combination for another orientation.1 -
Odessa, awesome!
EDIT:
Unfortunately, haven't had time to test it properly, the fix might have introduced a bug with bDontUndress{?} flags. I've noticed today NPCs randomly redressing/undressing during "kiss" and some other non-pen animations in SexoutSex. But that might just as well be a bug/workaround from SexoutSex misfiring, haven't had an opportunity to test clean calls yet
Disregard that, must be a Sexout Sex thing, everything seems to work as expected from my calls.
EDIT2:
Another small thing: can you add a check to force the PC out of combat stance before starting animations? This sometimes happens to an unarmed PC when he's in the fistfight mode when starting sex — some of the animations end up mixed with the unarmed stance animation, and the result is looking, well, funny

PS. If you're going to copy code from my fix, please don't forget to remove some "SetDebugMode 1" lines. I forgot them there and they keep spamming to the console

0 -
That's "automatic" for C/C++ developers
. Because it is too easy to invert == and = in this language. "1 = something" will not compile where "something = 1" would.Unfortunately, haven't ever gotten around to C/C++, I know a bit of BASIC, Visual Basic/VBA, Fortran, php, Matlab, C#. C# is my favorite

Well, all kinds of languages which you can easily "read and translate with a dictionary"

Oh, now also GECK %)
0 -
Ozlander68, they should probably work fine together, and having SmalletTalk loaded but disabled shouldn't affect ForcedTalk in any way. At least, doesn't for me. Anyway, you don't really need both. Also, ForcedTalk will even have more options in the forthcoming update

0 -
astymma, thanks, sounds like the best way so far

Hmm, from what I've read I thought it's the "spinning wheel" screen which is shown when jumping to a new location or loading a save game.Fairly sure that MenuMode 1007 is the game loading screen, i.e. the save game picking screen.
Well, I was just hoping the game has some built-in means for something like that... which it does, but why the hell they don't work? %))TBH, a lot of ways of accomplishing this.
0 -
Ozlander68, any particular conditions for this to happen? Because I can't reproduce that, and have no idea how this mod could probably affect Sexout Sex. Do you have ForcedTalk or SmallerTalk enabled?0 -
So, I was trying to create a workaround for "bDontRedress{?}" flags not working on NPCs and came to a conclusion that it' just better to fix Sexout as well

I bit of poking around lead me to the SexoutNGUndressSpellSCRIPT script, where the problem lays:
elseif 200 == nStage ; Redressing let nStage := 1000 ; Remove nude bodysuit if any if MaleBodySuit actor.RemoveItem MaleBodySuit, 1, 1 endif foreach element <- items if eval(element["key"] != 6) ; skip pipboy if 2 == nGSRedress || (1 == nGSRedress && 0 == bRaped) let item := element["value"] DebugPrint "SNGUndress (%g): Equipping '%n' on %n (%i)" nActID item actor actor actor.EquipItem item 0 1 endif endif loop
Here after the line "actor.RemoveItem MaleBodySuit, 1, 1" being executed the actor reevaluates his inventory and puts on some clothes. So, the quickest solution would have been to force him to unequip it right after — something like this:
elseif 200 == nStage ; Redressing let nStage := 1000 ; Remove nude bodysuit if any if MaleBodySuit actor.RemoveItem MaleBodySuit, 1, 1 endif if 2 == nGSRedress || (1 == nGSRedress && 0 == bRaped) foreach element <- items if eval(element["key"] != 6) ; skip pipboy if 2 == nGSRedress || (1 == nGSRedress && 0 == bRaped) let item := element["value"] DebugPrint "SNGUndress (%g): Equipping '%n' on %n (%i)" nActID item actor actor actor.EquipItem item 0 1 endif endif loop else let item := actor.GetEquippedObject 2 if GetType item && IsFormValid item if 3 == nGSRedress || (1 == nGSRedress && 1 == bRaped) DebugPrint "SNGUndress (%g): UNequipping '%n' on %n (%i)" nActID item actor actor actor.UnequipItem item 0 1 endif endif endif
But then I thought that it would be also nice to have an optional clean-up function so that the actors get redressed when they're out of Player's sight (unless you'd like half of the Mojave walking around naked, which is probably a legitimate wish, so, optional
)From some more poking around I've figured out that the PC doesn't get released until the "SexoutNGUndress" is dispelled, so, the most direct approach of using the same spell didn't work, I had to add an additional spell "SexoutNGRedress" cast from inside the undress spell and receiving actor's items via NX vars. Kinda ugly, I know, but I'm not aware enough of Sexout internals to suggest a better one without much digging.
Final versions would be:
Stage 200 in SexoutNGUndressSpellSCRIPT:
elseif 200 == nStage ; Redressing let nStage := 1000 ; Remove nude bodysuit if any if MaleBodySuit actor.RemoveItem MaleBodySuit, 1, 1 endif if 2 == nGSRedress || (1 == nGSRedress && 0 == bRaped) foreach element <- items if eval (element["key"] != 6) ; skip pipboy if 2 == nGSRedress || (1 == nGSRedress && 0 == bRaped) let item := element["value"] DebugPrint "SNGUndress (%g): Equipping '%n' on %n (%i)" nActID item actor actor actor.EquipItem item 0 1 endif endif loop else let item := actor.GetEquippedObject 2 if GetType item && IsFormValid item if 3 == nGSRedress || (1 == nGSRedress && 1 == bRaped) DebugPrint "SNGUndress (%g): UNequipping '%n' on %n (%i)" nActID item actor actor actor.UnequipItem item 0 1 endif endif if eval actor != PlayerRef if 1 ;== SexoutNG.bAutoRedressAbandonedActors foreach element <- items let idx := element["key"] let item := element["value"] let strNXKey := Sv_Construct "Sexout:Temp:Items:%.0f" idx actor.NX_SetEVFo $strNXKey item loop Sv_Destruct strNXKey actor.CIOS SexoutNGRedress endif endif endif
SexoutNGRedressSpellSCRIPT:
scn SexoutNGRedressSpellSCRIPTref rActorref rItemint iStagefloat fRedressCheckTimerarray_var arrEntryarray_var arrItemsstring_var strNXKeybegin ScriptEffectStart SetDebugMode 1 let rActor := GetSelf let iStage := 0 let fRedressCheckTimer := 0 DebugPrint "SexoutNGRedress spell cast on %n (%i)" rActor rActorendbegin ScriptEffectUpdate ;; Check if actor is out of Players sight (check every 10 seconds) if iStage == 0 let fRedressCheckTimer += ScriptEffectElapsedSeconds if fRedressCheckTimer < 10 return endif let fRedressCheckTimer := 0 if PlayerRef.IsInInterior if rActor.GetInSameCell PlayerRef return else let iStage := 10 endif else if rActor.HasLoaded3D if rActor.GetDistance PlayerRef > 12000 let iStage := 10 endif else let iStage := 10 endif endif ;; Redress actor elseif iStage == 10 let arrItems := rActor.NX_GetEVFoAr "Sexout:Temp:Items:" if eval (arrItems) foreach arrEntry <- arrItems let strNXKey := arrEntry["key"] if eval (strNXKey != "Sexout:Temp:Items:6") let rItem := rActor.NX_GetEVFo $strNXKey if GetType rItem && IsFormValid rItem DebugPrint "SNGRedress: Equipping '%n' on %n (%i)" rItem rActor rActor rActor.EquipItem rItem 0 1 endif endif loop endif rActor.NX_ClrEVFo "Sexout:Temp:Items:" 2 let arrEntry := Ar_Null let arrItems := Ar_Null Sv_Destruct strNXKey let iStage := 20 Dispel SexoutNGRedress endifend
Practically almost untested, only a couple of runs, but seems to work fine. Here's a quickfix file attached. Could we probably get it integrated into Sexout?

EDIT:
And a quickfix to the quickfix: stages 110, 200 in SexoutNGUndressSpellSCRIPT should read:
elseif 200 == nStage ; Redressing let nStage := 1000 ; Remove nude bodysuit if any if MaleBodySuit actor.RemoveItem MaleBodySuit, 1, 1 endif if (2 == nGSRedress || (1 == nGSRedress && 0 == bRaped)) && 1 == nFlag foreach element <- items if eval (element["key"] != 6) ; skip pipboy let item := element["value"] DebugPrint "SNGUndress (%g): Equipping '%n' on %n (%i)" nActID item actor actor actor.EquipItem item 0 1 endif loop else let item := actor.GetEquippedObject 2 if (GetType item) && (IsFormValid item) DebugPrint "SNGUndress (%g): UNequipping '%n' on %n (%i)" nActID item actor actor actor.UnequipItem item 0 1 endif if eval actor != PlayerRef if 1 ;== SexoutNG.bAutoRedressAbandonedActors foreach element <- items let idx := element["key"] let item := element["value"] let strNXKey := Sv_Construct "Sexout:Temp:Items:%.0f" idx actor.NX_SetEVFo $strNXKey item loop Sv_Destruct strNXKey actor.CIOS SexoutNGRedress endif endif endif elseif 110 == nStage ; Waiting on main spell to indicate naked time is over let nFlag := call fnSexoutGetFlag actor "Undress" 1 if nFlag == 0 ; wait let fDelay := 0.1 elseif 1 == nFlag || 2 == nFlag ; 1 - redress; 2 - no redressing let nStage := 200 else DebugPrint "SNGUndress (%g): Unknown undress flag %g on %n (%i)!" nActID nFlag actor actor let fDelay := 1 endif
(changed nFlag check, otherwise "bDontRedress{?}" options did, well, literally nothing). Reuploaded file.
That function is now kinda messy, I would probably consider rewriting it...
PS. I've noticed that this weird backwards notation (i.e. "if (1 == some long expression)" instead of "if (some long expression == 1)") in conditional statements is quite popular among Fallout modders. Is there any particular reason for that
besides hurting people's brains? Because normal notation works just as fine...0 -
dongding, I'm not sure, I've never touched this option, I think. Not sure if this is a part of Sexout API. Can be done from within the mod although, maybe later
0 -
dongding, is't this functionality included in Sexout options? Or isn't it working?
Also, an update may be coming in the next few days
0 -
Odessa, thanks for the tip!
Unfortunately, both will still not fire from MenuMode 1007 (it just seems to never enter this block at all), but I may have some ideas... I could probably measure Player's average speed using a marker, and when it exceeds any reasonable value, assume fast travel/teleport.
...unless the PC is using a motorcycle mod, grrr!
BTW, I've seen a lot of MenuMode 1007 checks in various scripts, are they there just for the sake of logic, or is it just my issue with a non-working 1007 block?
0 -
Thought abut that, but that would be a pretty ugly solution...The only thing I can suggetst is record their position and look for a change in location or cell by more than x amount.
Aren't any of the functions above supposed to work somehow?
Or is there maybe at least an easy way to get neighboring cells for a cell? Couldn't find any function for that at http://www.gribbleshnibit.com/projects/NVSEDocs/
0 -
I'm trying to detect if the PC is fast-traveling from a Quest script, and nothing seems to work, I'm at a loss...
MenuMode 1007 never fires (i.e. those blocks never work):
begin MenuMode if (MenuMode 1007) ; never fires else ; works fine endifend;; orbegin MenuMode 1007 ; never firesend
Those methods don't work as well:begin MenuMode if IsPlayerMovingIntoNewSpace == 1 ; never fires endif if IsTimePassing == 1 ; only fires from wait/sleep menu and never from loading screen endifend
The Quest is running with a high frequency (0.1...0.25). Am I doing it wrong?0 -
LukeDuke, is should not store those arrays if debugging is disabled, it must be something else then. BTW, you can try opening your .nvse in the Notepad or whatever else you prefer, string variables are stored as plain text, so by analyzing the contents you can try figuring out what mod may be bloating the save

0 -
LukeDuke, save file growth still might be actually from me, but it's not bloating, sorta a feature, check my answer in the UDEE thread.
0 -
LukeDuke, here is an afterthought. My mod stores the debug log in an array. This array gets nulled every time you start or load a game, but if you play with debug features enabled for some time, it can indeed occupy an enormous amount of space. Turning off the debug in UDEE options should solve this issue (well, it's not actually an issue, it's just made this way
)
0 -
I think that after installing your mod my nvse save file is getting really big quickly, at the start of new game it is 174kb already..
Hmm, I'll look into that, might have missed some string_var bloating, but I was trying to be very accurate with that, can't say if that's me or something else, haven't actually saved much yet %)
BTW, all of my .nvse files in the save folder vary from 150 to 300 kb, with or without UD.
Does making an UD-clean save free space?
0 -
Ok, you got me with that one! I was so busy trying to get it to work, I guess I forgot! Anyway, I'll be playing it and enjoying it today, thanks Alex!

And here I thought I've spent half a night writing it for a reason
Anyway, good for you

I was just trying to do things better and finally came to a point where I turned everything into a complete havoc, I should probably go to sleep now %))))
0 -
Like I said, it does have a bit of a learning curve but wow, is it ever worth it! And remember, chances are there won't be a FOMM for FO4.
Well, we'll see then

Now that your mod is working, do I just click on the hotkey and see what happens or is it combat related only? How do I fuck my companion through your mod?
Ehm, that's configurable... you could probably read the description page?
0 -
LadyM, that was some chain of actions, I got lost somewhere in the middle, glad it worked although. That's why I like FOMM - you don't have to do any of that manually, it has a very good file overwrite tracker

Thanks, but I think I'll stick to FOMM still, it's as easy as 2*2 and has proved to be reliableAlex, this is the link for MO, it's an awesome utility! It just needs a little finesse once in awhile.
0 -
It really shouldn't...Does this mod have incompatibilities with other sexout mods?
That is weird, you get errors from BuildRef. Is it possible that you have renamed Sexout.esm? It still looks like as if you really have an older Sexout.esm where there was no "fnSexoutGetAnimsForActors" function, so BuildRef fails to get a valid form.Edit: Ok, my game crashed so as I thought after I restarted it, I got the error message I posted earlier. I also grabbed the screenshots.
TTW shouln't have any matter at all.Thank you for trying! I do have TTW and I use Mod Organizer if that helps anyone.
I don't know what "Mod Organizer" is and how reliable it is, I've never used anything but FOMM. Theoretically, it may be possible that it renamed something or failed to update a file without your knowing...
Try the attached version, it should now report any BuildRef action it performs so we can pinpoint the problem. Be warned that this is a currently in development version, so although it contains some nice new features, may be unstable.
If everything is OK, you should get something like on the screenshots below:
EDIT:
Oh, yeah, Securenym is right, I haven't even looked at Sexout messages before I've read his post, lol )))my game shows Sexout version 2.10.95b7, but yours shows 2.10.94
Your Sexout reports itself that it is '94 beta 100.
0 -
LadyM, I have absolutely no idea how something like this may be even possible... You could probably get ver. 0.0.0 beta 0 because of an error, but exactly 2.10.94 beta 100? I don't have anything like that hardcoded anywhere inside the mod %)
You can try enabling all of the debug features, saving, and then reloading. There should be short reports about basic checks in the console, you can make a screenshot. UDEE logs are prefixed with a "__UD:".
0 -
Yup!So it's the Sexout NG I need to check to see if I've got the most up-to-date version?
0 -
UDEE gets version number directly from Sexout, so if it reports '94 beta 100 then you really do have a sexout.esm from that version installed.Alex, I too got the message that I have the wrong version but I have the most up to date version of Sexout Beta.
I'm currently using '95 beta 7 myself, no issues.
What? Why? No. It will just overwrite Sexout with an even more old version, and probably mess up resources.My question is do I need to put in the old mod from here as well as the other one to get your mod to work?
That wouldn't have had any effect on version detection functionI also added that .esm file you had uploaded on your support thread.
0

Unethical Deeds EE (WIP)
in Downloads - Fallout Sexout
Posted
Ozlander68, but does Forced Talk still work at all, i.e. do the dialogues with random NPCs pop up? Are you just missing Sexout Sex lines? If you save game after the dialogues have broken and then reload it/restart the game, will the dialogues work again or not? I have no idea how anything from UDEE could possibly affect Sexout Sex and can't reproduce it. What exactly are you doing to get this error?
Are there any error messages in the console?