Jump to content

SexLab Framework Development


Recommended Posts

Posted

I use "E" as my sexlab-(1.60RC2Full)-selection key. This worked great before.

Allowing that something somewhere in one of my mods is at fault,

pressing "e" today to select a dremora-outcast caused an instant freeze.

 

Very close to the beginning of the game,

in proudspire manor.

Please ignore the papyrus log, I'm attaching it for legal reasons.

This is Not a bug, God forbid no, but it points to an incompatibility.

I intend to reassign "E" to a less dangerous key (maybe "Y")

------

The points from another mod (MME) were completely erased after the freeze,

As if Peaches hadn't been working hard to get to "level 3" of that mod.

I offer the incident as (um) something relevant, I hope.

My NMM says I also use "PapyrusUtilv30_RC1".

So I hope that helps someone.

Thanks.

 

Posted

 

right ... jump is not deactivated while using sex lab and it looks weird and shitty... i have just changed the hotkey.... anyways its a bug.

 

Not a SexLab bug. It's a bug with your install or another mod messing with the player movement controls, overriding SexLab's call to disable player controls.

 

Is there either a way to find out which mod does this or can you give me a pointer where to look to disable player movement controls? I have a randompatch-mod I load almost as last mod and could fix the issue there (for myself)

Posted

minor observation regarding a specific animation tag

 

In sslCreatureAnimationAnimationDefault.psc the DragonTongue animation has the "Oral" tag in it twice.

 

Base.SetTags("Gone,Creature,Bestiality,Dirty,Oral,Dragon,Oral")

Posted

While I'm on here...

 

I'm testing a 1.60 RC2 install and I know I shouldn't install NSAP, but what about More Nasty Critters?

 

I'm trying to get a handle on what animations are in SL 1.60 RC2 by default as I know some were already added from NSAP into SL 1.60, but.... 

Is there a list or reference anywhere or should I just go through the script sources for these and try to come up with something on my own?

 

List would be:

 

What's in SL1.60 (creature and humanoid)....... NSAP animation list..................MNC animation list

 

to see what all is included.

Posted

 

Should it be possible to pick creature animations with GetAnimationByName()? I don't seem to get anything back for "(Wolf) Doggystyle".

 

I'm using the latest version pulled from git.

 

No, that's what GetCreatureAnimationByName() is for.

 

Normal and creature animations are kept in separate lists from each other, so they have their own separate functions for doing searches that search only within their associated animation list.

 

I missed that one, thanks.

 

 

 

I can add them for "modder use", but I'm hesitant to actually use them like they are used in normal animations.

 

Most creatures only have 1 or 2 animations, and the few that do have more than that still don't have more than a dozen or so at most if MNC installed, even fewer without it. So restricting animations to ones that do or don't have the aggressive tag will leave the majority of creatures either with no valid animations, or a reduced variety in a scenario where the variety is already pretty slim to begin with.

 

I assumed that would be the case and that it would be down to the triggering mod to perform filtering and appropriate fallback.

 

I've actually recompiled both SL with Aggressive tags for testing but now I find myself at an impasse.

 

What should be the normal procedure for filtering creature animations by tag? GetAnimationsByTags() returns animations for all races while GetByRace() returns animations with all tags. I'm not sure how to properly prepare a set of creature animations based on tag suitable to send to StartSex().

 

My apologies if I'm missing anything obvious but this is new territory for me.

Posted

 

 

...

 

 

What should be the normal procedure for filtering creature animations by tag? GetAnimationsByTags() returns animations for all races while GetByRace() returns animations with all tags. I'm not sure how to properly prepare a set of creature animations based on tag suitable to send to StartSex().

 

...

 

Today there is no easy way (both 1.59c and .160RC2) to find creature animations by tags.

 

You can find creature animations by name, race, raceid, but not by tag.

The only anims that you can search by tag are the normal ones (no creatures involved.)

 

You can try to filter the animations after you get them with the function "RemoveTagged".

But really you cannot "find creature animations by tag" in this version.

Posted

 

 

What should be the normal procedure for filtering creature animations by tag? GetAnimationsByTags() returns animations for all races while GetByRace() returns animations with all tags. I'm not sure how to properly prepare a set of creature animations based on tag suitable to send to StartSex().

 

Today there is no easy way (both 1.59c and .160RC2) to find creature animations by tags.

 

You can find creature animations by name, race, raceid, but not by tag.

The only anims that you can search by tag are the normal ones (no creatures involved.)

 

You can try to filter the animations after you get them with the function "RemoveTagged".

But really you cannot "find creature animations by tag" in this version.

 

 

GetAnimationsByTags() works for creatures if called on sslCreatureAnimationSlots but there doesn't seem to by any real use for the list it returns: it will almost always be rejected by StartSex() since the animations are for different races.

 

I tried to filter using the creature's race key as a tag but there doesn't appear to be a simple way to retrieve a key for any given race.

 

I'm looking at RemoveTagged() but the caveat in this instance is that all creature animations would have to be tagged as Aggressive or Consensual in order to provide a means of filtering for either.

 

Similarly this is not going to work well for filtering oral animations (for example) as the only way to do this is to exhaustively filter out all non-oral animations.

 

It seems like we need a GetCreatureAnimationsByTags() function that will take a creature race, number of participants, and lists of tags to include and exclude. Or some helper function that works on the lists returned by GetAnimationsByTags() or GetByRace() to further refine them.

Posted

Hello, @Sailing Rebel.

You should considering using the Sexlab Threads and not the generic simple "StartSex".

With a thread you have way more control of what you can do in the animation.

 

 

I think that a GetCreatureAnimationsByTags() function is a reasonable request.

 

Posted

 

Should there be a list of animations and saying that Sexlab is ready in the console, i only get that it says its ready with no animation list in the console or MCM menu. How or What should I do to bring them back?

 

Did you click install in MCM after a first time install?

 

Yes i did and the animations didnt come up in the previous versions except for 1.57(cos I started using SexLab from 1.57)

Posted

While I'm on here...

 

I'm testing a 1.60 RC2 install and I know I shouldn't install NSAP, but what about More Nasty Critters?

 

I'm trying to get a handle on what animations are in SL 1.60 RC2 by default as I know some were already added from NSAP into SL 1.60, but.... 

Is there a list or reference anywhere or should I just go through the script sources for these and try to come up with something on my own?

 

List would be:

 

What's in SL1.60 (creature and humanoid)....... NSAP animation list..................MNC animation list

 

to see what all is included.

 

I have both NSAP and MNC installed with RC 2 and have faced no significant issues thus far. I've tested all creature animations and have actually played the game for a quite a few days.

Posted

Issue with SetStartAnimationEvent():

Log:

 

 

[PAHESex] punish([Actor < (FF00105E)>], [Actor < (00000014)>], Vaginal, True, )
SEXLAB - Thread[0]  - Entering Making State
[PAHESexScript]: ZapWriPose07
Error: Array index -1 is out of range (0-4)
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.ActorAlias() - "sslThreadModel.psc" Line 949
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9
Error: Cannot call SetStartAnimationEvent() on a None object, aborting function call
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9

 

 

 

My code:

 

 

Function punish(Actor _target, Actor _player, String _tag = "", bool _aggressive = false, String _tag2 = "")
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESex] punish(" + _target + ", " + _player + ", " + _tag + ", " + _aggressive + ", " + _tag2 + ")")
                                        EndIf
    target = _target
    String supress = ""
    animIn = ""
    animOut = ""
    String tag = _tag

    bool aggressive = _aggressive || PAH.bAlwaysAggressive

    sslThreadModel Model = SexLab.NewThread()

    If target.IsInFaction(PAHBETied)
        If target.GetAV("Morality") < 2
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose07")
                                        EndIf
Line 38 ->  model.SetStartAnimationEvent(target, "ZapWriPose07")
        Else
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose06")
                                        EndIf
            model.SetStartAnimationEvent(target, "ZapWriPose06")
        EndIf

 

 

Posted

 

 

 

Should it be possible to pick creature animations with GetAnimationByName()? I don't seem to get anything back for "(Wolf) Doggystyle".

 

I'm using the latest version pulled from git.

 

No, that's what GetCreatureAnimationByName() is for.

 

Normal and creature animations are kept in separate lists from each other, so they have their own separate functions for doing searches that search only within their associated animation list.

 

 

 

 

 

 

I tryed it again. Install the latest skeleton but still the same problem. Game crashes in dayspring valey trying to approach dawnguard.

 

Here's the log

attachicon.gifPapyrus.0.log

 

 

I don't in anyway see how SexLab could have an effect on a region, as SexLab doesn't touch a single cell or nor modify anything that isn't added solely by it.

 

There are a lot of issues in the papyrus log though.

 

 

First off, assuming this is the full, unedited log, there is a distinct lack of these 2 important lines anywhere in the log:

SexLab MCM Loaded CurrentVerison: 15992 / 15992
SEXLAB - LOADED: Version 15992 / 15992
 
Which suggests the updated files either haven't been fully installed, are being overridden by another mod, or something happened to the main sexlab quests in your game to stop them from loading their alias scripts.
 

 

 

[08/10/2015 - 10:48:41PM] warning: Function sslActorAlias.animating.OnUpdate in stack frame 0 in stack 27253318 differs from the in-game resource files - using version from save

[08/10/2015 - 10:48:41PM] warning: Function sslBaseVoice..Moan in stack frame 1 in stack 27253318 differs from the in-game resource files - using version from save
[08/10/2015 - 10:48:41PM] warning: Function sslActorAlias.animating.OnUpdate in stack frame 0 in stack 25932776 differs from the in-game resource files - using version from save
[08/10/2015 - 10:48:41PM] warning: Function sslBaseVoice..Moan in stack frame 1 in stack 25932776 differs from the in-game resource files - using version from save

 

Suggests you updated sexlab files while it was in the middle of doing something and now these scripts are likely stuck infinite looping, which is probably the source of your bloat issue.  The best way to fix this would be to uninstall all sexlab mods and make a clean save, run papyrus script scalpel to clean the save with sexlab all disabled, then reinstall SexLab on that cleaned save.

 

If for some reason uninstalling all sexlab mods isn't an option, because you don't want to lose a bunch of devious devices or quest progress on a sexlab related mod, you might be able to get away with just using papyrus scalpel to remove all instances and threads using the script sslBaseVoice then running a few cycles of save, quit, clean save, load save; then running the clean system function from sexlab's mcm so it resets the quests and rebuilds the voice files. This wouldn't fix the other issue mentioned though, for that you'll either have to do the full clean save or find the offending 3rd party sexlab mod.

 

 

 

 

My bad, I didn't express it correctly. I didnt think that Sexlab was actually changing any regions, But somehow 1.60 is so "heavy" (because something is not working right in my save) that in turn causes all the other issues. If I remove 1.60 and go back to 1.59 for example, SOS MCM losses all the addons.

Regarding a cell crashing I did had that again a while back when leaving the cave where you find the read eagle sword.  Running a bit uphill, the game would crash at exactly the same place every time. That However was fixed but removing 1.60, reiinstalling 1.59, saving and reiinstalling 1.60 again. 

 

I must have done this like 5-7 times in my game  :cool:

 

This time however the crash was cause by a bizzard Skyrim bug and was fixed by pregressing the downguard quest with the consol.

 

In the past, Deleting all the mod's form and sslbacevoice script from the save did manage to make a stuck game playable again.

 

I will check for those two lines that are missing from my log. I have now updated Jcontainers and USKPs and everything seems to be running smoothly. 

Posted

Issue with SetStartAnimationEvent():

Log:

 

 

[PAHESex] punish([Actor < (FF00105E)>], [Actor < (00000014)>], Vaginal, True, )
SEXLAB - Thread[0]  - Entering Making State
[PAHESexScript]: ZapWriPose07
Error: Array index -1 is out of range (0-4)
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.ActorAlias() - "sslThreadModel.psc" Line 949
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9
Error: Cannot call SetStartAnimationEvent() on a None object, aborting function call
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9

 

 

 

My code:

 

 

Function punish(Actor _target, Actor _player, String _tag = "", bool _aggressive = false, String _tag2 = "")
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESex] punish(" + _target + ", " + _player + ", " + _tag + ", " + _aggressive + ", " + _tag2 + ")")
                                        EndIf
    target = _target
    String supress = ""
    animIn = ""
    animOut = ""
    String tag = _tag

    bool aggressive = _aggressive || PAH.bAlwaysAggressive

    sslThreadModel Model = SexLab.NewThread()

    If target.IsInFaction(PAHBETied)
        If target.GetAV("Morality") < 2
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose07")
                                        EndIf
Line 38 ->  model.SetStartAnimationEvent(target, "ZapWriPose07")
        Else
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose06")
                                        EndIf
            model.SetStartAnimationEvent(target, "ZapWriPose06")
        EndIf

 

 

 

 

You can't set a start event on an actor that doesn't exist in the thread yet, same applies to any other thread functions for modifying things with specific actors. You have to Model.AddActor(target) first so the thread knows they exist and can initialize their defaults.

 

Also with start animation events, you really need to give the function it's 3rd argument "float PlayTime" Since it's at the start of an animation; the thread needs to know how long it should wait for the custom start animation event to finish playing before it should move on and begin playing the animations first stage. I'll probably alter the function in for the final release of 1.60 so this argument is no longer optional. If it's just a pose or some kind of reset animation and the playtime isn't actually important to the animation, than you can likely get away with simply putting a low number like 0.1.

 

For end animation events, there is no float playtime argument as there's no risk of the thread overriding the animation with anything at the end.

Posted

 

 

 

 

Should it be possible to pick creature animations with GetAnimationByName()? I don't seem to get anything back for "(Wolf) Doggystyle".

 

I'm using the latest version pulled from git.

 

No, that's what GetCreatureAnimationByName() is for.

 

Normal and creature animations are kept in separate lists from each other, so they have their own separate functions for doing searches that search only within their associated animation list.

 

 

 

 

 

 

I tryed it again. Install the latest skeleton but still the same problem. Game crashes in dayspring valey trying to approach dawnguard.

 

Here's the log

attachicon.gifPapyrus.0.log

 

 

I don't in anyway see how SexLab could have an effect on a region, as SexLab doesn't touch a single cell or nor modify anything that isn't added solely by it.

 

There are a lot of issues in the papyrus log though.

 

 

First off, assuming this is the full, unedited log, there is a distinct lack of these 2 important lines anywhere in the log:

SexLab MCM Loaded CurrentVerison: 15992 / 15992
SEXLAB - LOADED: Version 15992 / 15992
 
Which suggests the updated files either haven't been fully installed, are being overridden by another mod, or something happened to the main sexlab quests in your game to stop them from loading their alias scripts.
 

 

 

[08/10/2015 - 10:48:41PM] warning: Function sslActorAlias.animating.OnUpdate in stack frame 0 in stack 27253318 differs from the in-game resource files - using version from save

[08/10/2015 - 10:48:41PM] warning: Function sslBaseVoice..Moan in stack frame 1 in stack 27253318 differs from the in-game resource files - using version from save
[08/10/2015 - 10:48:41PM] warning: Function sslActorAlias.animating.OnUpdate in stack frame 0 in stack 25932776 differs from the in-game resource files - using version from save
[08/10/2015 - 10:48:41PM] warning: Function sslBaseVoice..Moan in stack frame 1 in stack 25932776 differs from the in-game resource files - using version from save

 

Suggests you updated sexlab files while it was in the middle of doing something and now these scripts are likely stuck infinite looping, which is probably the source of your bloat issue.  The best way to fix this would be to uninstall all sexlab mods and make a clean save, run papyrus script scalpel to clean the save with sexlab all disabled, then reinstall SexLab on that cleaned save.

 

If for some reason uninstalling all sexlab mods isn't an option, because you don't want to lose a bunch of devious devices or quest progress on a sexlab related mod, you might be able to get away with just using papyrus scalpel to remove all instances and threads using the script sslBaseVoice then running a few cycles of save, quit, clean save, load save; then running the clean system function from sexlab's mcm so it resets the quests and rebuilds the voice files. This wouldn't fix the other issue mentioned though, for that you'll either have to do the full clean save or find the offending 3rd party sexlab mod.

 

 

 

 

My bad, I didn't express it correctly. I didnt think that Sexlab was actually changing any regions, But somehow 1.60 is so "heavy" (because something is not working right in my save) that in turn causes all the other issues. If I remove 1.60 and go back to 1.59 for example, SOS MCM losses all the addons.

Regarding a cell crashing I did had that again a while back when leaving the cave where you find the read eagle sword.  Running a bit uphill, the game would crash at exactly the same place every time. That However was fixed but removing 1.60, reiinstalling 1.59, saving and reiinstalling 1.60 again. 

 

I must have done this like 5-7 times in my game  :cool:

 

This time however the crash was cause by a bizzard Skyrim bug and was fixed by pregressing the downguard quest with the consol.

 

In the past, Deleting all the mod's form and sslbacevoice script from the save did manage to make a stuck game playable again.

 

I will check for those two lines that are missing from my log. I have now updated Jcontainers and USKPs and everything seems to be running smoothly. 

 

 

 

My advice is still the same. Clean your save file and do a fresh install of 1.60.

 

There is going to be no avoiding this if you want to properly keep your save file and use 1.60+

Posted

 

Issue with SetStartAnimationEvent():

Log:

 

 

[PAHESex] punish([Actor < (FF00105E)>], [Actor < (00000014)>], Vaginal, True, )
SEXLAB - Thread[0]  - Entering Making State
[PAHESexScript]: ZapWriPose07
Error: Array index -1 is out of range (0-4)
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.ActorAlias() - "sslThreadModel.psc" Line 949
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9
Error: Cannot call SetStartAnimationEvent() on a None object, aborting function call
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9

 

 

 

My code:

 

 

Function punish(Actor _target, Actor _player, String _tag = "", bool _aggressive = false, String _tag2 = "")
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESex] punish(" + _target + ", " + _player + ", " + _tag + ", " + _aggressive + ", " + _tag2 + ")")
                                        EndIf
    target = _target
    String supress = ""
    animIn = ""
    animOut = ""
    String tag = _tag

    bool aggressive = _aggressive || PAH.bAlwaysAggressive

    sslThreadModel Model = SexLab.NewThread()

    If target.IsInFaction(PAHBETied)
        If target.GetAV("Morality") < 2
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose07")
                                        EndIf
Line 38 ->  model.SetStartAnimationEvent(target, "ZapWriPose07")
        Else
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose06")
                                        EndIf
            model.SetStartAnimationEvent(target, "ZapWriPose06")
        EndIf

 

 

 

 

You can't set a start event on an actor that doesn't exist in the thread yet, same applies to any other thread functions for modifying things with specific actors. You have to Model.AddActor(target) first so the thread knows they exist and can initialize their defaults.

 

Also with start animation events, you really need to give the function it's 3rd argument "float PlayTime" Since it's at the start of an animation; the thread needs to know how long it should wait for the custom start animation event to finish playing before it should move on and begin playing the animations first stage. I'll probably alter the function in for the final release of 1.60 so this argument is no longer optional.

 

For end animation events, there is no float playtime argument as there's no risk of the thread overriding the animation with anything at the end.

 

Hadn't thought of that, will fix it.

 

What I expected the float to do is send the animEvent and sort of "idle" until the thread is ready to run, while setting a longer float would delay the thread artificially. Since I just don't want the target to go into FNIS default stance, I don't really care about the length of time ;)

 

Would it be possible for you to have the animation play once when the float is left out and play it for the given time if it's specified?

Posted

 

 

Issue with SetStartAnimationEvent():

Log:

 

 

[PAHESex] punish([Actor < (FF00105E)>], [Actor < (00000014)>], Vaginal, True, )
SEXLAB - Thread[0]  - Entering Making State
[PAHESexScript]: ZapWriPose07
Error: Array index -1 is out of range (0-4)
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.ActorAlias() - "sslThreadModel.psc" Line 949
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9
Error: Cannot call SetStartAnimationEvent() on a None object, aborting function call
stack:
    [SexLabThread00 (0D061EEF)].sslthreadcontroller.SetStartAnimationEvent() - "sslThreadModel.psc" Line 522
    [PAHPersonalityEvenToned (0B02C44D)].PAHPunishmentRapeScript.Punish() - "PAHPunishmentRapeScript.psc" Line 38
    [topic info AE0045E4 on quest PAHPersonalityEvenToned (0B02C44D)].PAHE_SexDialogueSCR.Fragment_1() - "PAHE_SexDialogueSCR.psc" Line 9

 

 

 

My code:

 

 

Function punish(Actor _target, Actor _player, String _tag = "", bool _aggressive = false, String _tag2 = "")
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESex] punish(" + _target + ", " + _player + ", " + _tag + ", " + _aggressive + ", " + _tag2 + ")")
                                        EndIf
    target = _target
    String supress = ""
    animIn = ""
    animOut = ""
    String tag = _tag

    bool aggressive = _aggressive || PAH.bAlwaysAggressive

    sslThreadModel Model = SexLab.NewThread()

    If target.IsInFaction(PAHBETied)
        If target.GetAV("Morality") < 2
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose07")
                                        EndIf
Line 38 ->  model.SetStartAnimationEvent(target, "ZapWriPose07")
        Else
                                        If PAH.enableDebug
                                            Debug.trace("[PAHESexScript]: ZapWriPose06")
                                        EndIf
            model.SetStartAnimationEvent(target, "ZapWriPose06")
        EndIf

 

 

 

 

You can't set a start event on an actor that doesn't exist in the thread yet, same applies to any other thread functions for modifying things with specific actors. You have to Model.AddActor(target) first so the thread knows they exist and can initialize their defaults.

 

Also with start animation events, you really need to give the function it's 3rd argument "float PlayTime" Since it's at the start of an animation; the thread needs to know how long it should wait for the custom start animation event to finish playing before it should move on and begin playing the animations first stage. I'll probably alter the function in for the final release of 1.60 so this argument is no longer optional.

 

For end animation events, there is no float playtime argument as there's no risk of the thread overriding the animation with anything at the end.

 

Hadn't thought of that, will fix it.

 

What I expected the float to do is send the animEvent and sort of "idle" until the thread is ready to run, while setting a longer float would delay the thread artificially. Since I just don't want the target to go into FNIS default stance, I don't really care about the length of time ;)

 

Would it be possible for you to have the animation play once when the float is left out and play it for the given time if it's specified?

 

 

There's no way to know once an animation has been finished "playing once" or any number of times, which is what makes setting the playtime of the event necessary.

 

The last thing an actor does before telling the thread they are ready for animation, is send their start event (if one is set) then the actors script goes idle for the specified amount of playtime before telling the thread script it's finished preparing the actor and is ready to begin sexlab animation. Once all actors in the thread have given the thread the ready signal, the sexlab animation begins playing the first stage.

 

Since this occurs last in the thread startup procedure, after sexlab has already reset an actors idle to default, stripped them, locked their movement, and other misc stuff. So if you're sole goal is to prevent sexlab from resetting their idle before animation, currently this won't do that, they'll still be reset momentarily during the stripping phase and all that. I can change this and have it disable the idle reset when a start animation is defined, it may have unintended consequences though.

EDIT: I may have remembered incorrectly here, I don't think 1.60 resets the actors idle before startup anymore, or at least I'm not seeing where it would reset them if it does as the idle reset that is in startup has been commented out for awhile now. So you should be fine to do what you're trying to do, so long as the actor is added to the thread first.

Posted

Is this the correct usage for GetByRace() or should I be doing something else to get the race from an actor?

sslBaseAnimation[] raceAnims = SexLabCreatures.GetByRace(2, akAttacker.GetRace())

I'm not getting anything back form it but sending the same akAttacker to StartSex() or via the thread model functions works as normal.

 

This is a fragment from the log at the point that GetByRace() is called and there are no obvious errors. "[slac] no animations found for Prisoner / Horse" is logged when raceAnims length is less than 1.

 

 

[08/12/2015 - 09:24:19PM] [slac] chicken has no animations
[08/12/2015 - 09:24:19PM] [slac] You are being pursued by an aroused Horse
[08/12/2015 - 09:24:19PM] [slac] Horse: Prisoner(selected21-0)
[08/12/2015 - 09:24:21PM] [slac] Dog: Prisoner(busy:slac_Pursuit_00)
[08/12/2015 - 09:24:21PM] [slac] Dog could not find any partners
[08/12/2015 - 09:24:23PM] [slac] no animations found for Prisoner / Horse
[08/12/2015 - 09:24:23PM] SEXLAB - Thread[1]  - Entering Making State
[08/12/2015 - 09:24:23PM] SEXLAB - NOTICE: ValidateActor(Horse) -- TRUE -- CREATURE
[08/12/2015 - 09:24:23PM] SEXLAB - ActorAlias[Horse] SetActor([Actor < (8405BBAE)>]) - [sslActorAlias <alias ActorAlias004 on quest SexLabThread01 (0A062452)>]
[08/12/2015 - 09:24:23PM] SEXLAB - NOTICE: ValidateActor(Prisoner) -- TRUE -- HIT
[08/12/2015 - 09:24:23PM] SEXLAB - ActorAlias[Prisoner] SetActor([Actor < (00000014)>]) - [sslActorAlias <alias ActorAlias003 on quest SexLabThread01 (0A062452)>]
[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1]  - CreatureRef: [Race <HorseRace (000131FD)>]
[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1]  - Selecting new creature animations - []
[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1]  - Creature Genders: [0, 1, 1, 0]
[08/12/2015 - 09:24:24PM] SEXLAB - Found Animations - [(Horse) Doggystyle][(Horse) Doggystyle Alt][(Horse) Groping][(Horse) Doggystyle2][(Horse) Panic Horse Sucking]
[08/12/2015 - 09:24:24PM] [CF][Creature Apply] Failure on ["Nazeem" [WIDeadBodyCleanupScript < (0001A6A4)>]]; creature isn't registered; race=["Redguard" [Race <RedguardRace (00013748)>]] skin=["" [Armor < (00000D64)>]]
[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1] Adjustment Profile - NordRaceF.HorseRaceC
[08/12/2015 - 09:24:24PM] [slac] Horse engaged with Prisoner

 

 

Posted

Is this the correct usage for GetByRace() or should I be doing something else to get the race from an actor?

sslBaseAnimation[] raceAnims = SexLabCreatures.GetByRace(2, akAttacker.GetRace())

I'm not getting anything back form it but sending the same akAttacker to StartSex() or via the thread model functions works as normal.

 

This is a fragment from the log at the point that GetByRace() is called and there are no obvious errors. "[slac] no animations found for Prisoner / Horse" is logged when raceAnims length is less than 1.

 

 

[08/12/2015 - 09:24:19PM] [slac] chicken has no animations

[08/12/2015 - 09:24:19PM] [slac] You are being pursued by an aroused Horse

[08/12/2015 - 09:24:19PM] [slac] Horse: Prisoner(selected21-0)

[08/12/2015 - 09:24:21PM] [slac] Dog: Prisoner(busy:slac_Pursuit_00)

[08/12/2015 - 09:24:21PM] [slac] Dog could not find any partners

[08/12/2015 - 09:24:23PM] [slac] no animations found for Prisoner / Horse

[08/12/2015 - 09:24:23PM] SEXLAB - Thread[1]  - Entering Making State

[08/12/2015 - 09:24:23PM] SEXLAB - NOTICE: ValidateActor(Horse) -- TRUE -- CREATURE

[08/12/2015 - 09:24:23PM] SEXLAB - ActorAlias[Horse] SetActor([Actor < (8405BBAE)>]) - [sslActorAlias <alias ActorAlias004 on quest SexLabThread01 (0A062452)>]

[08/12/2015 - 09:24:23PM] SEXLAB - NOTICE: ValidateActor(Prisoner) -- TRUE -- HIT

[08/12/2015 - 09:24:23PM] SEXLAB - ActorAlias[Prisoner] SetActor([Actor < (00000014)>]) - [sslActorAlias <alias ActorAlias003 on quest SexLabThread01 (0A062452)>]

[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1]  - CreatureRef: [Race <HorseRace (000131FD)>]

[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1]  - Selecting new creature animations - []

[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1]  - Creature Genders: [0, 1, 1, 0]

[08/12/2015 - 09:24:24PM] SEXLAB - Found Animations - [(Horse) Doggystyle][(Horse) Doggystyle Alt][(Horse) Groping][(Horse) Doggystyle2][(Horse) Panic Horse Sucking]

[08/12/2015 - 09:24:24PM] [CF][Creature Apply] Failure on ["Nazeem" [WIDeadBodyCleanupScript < (0001A6A4)>]]; creature isn't registered; race=["Redguard" [Race <RedguardRace (00013748)>]] skin=["" [Armor < (00000D64)>]]

[08/12/2015 - 09:24:24PM] SEXLAB - Thread[1] Adjustment Profile - NordRaceF.HorseRaceC

[08/12/2015 - 09:24:24PM] [slac] Horse engaged with Prisoner

 

 

 

You should use: SexLab.GetCreatureAnimationsByRace(2, akAttacker.GetRace())

Posted

Just wanted to offer my suggestions for default aggressive tags on creature animations:

 

 

 

(Bear) Doggystyle

(Seeker) Hugging

(Dog) Dominate

(Dragon) Tongue

(Draugr) Doggystyle

(Draugr) Gangbang 3P

(Draugr) Gangbang 4P

(Draugr) Gangbang 5P

(Draugr) Holding

(Falmer) Doggystyle

(Falmer) Gangbang 3P

(Falmer) Gangbang 4P

(Falmer) Gangbang 5P

(Falmer) Holding

(Gargoyle) Doggystyle

(Gargoyle) Holding

(Giant) Penetration

(Horse) Doggystyle

(Sabre Cat) Doggystyle

(Troll) Holding

(Troll) Missionary

(Troll) Dominate

(Troll) Grabbing

(Vampire Lord) Holding

(Vampire Lord) Missionary

(Werewolf) Rough Doggystyle

(Werewolf) Doggystyle

(Werewolf) Holding

(Werewolf) Missionary

(Wolf) Doggystyle

(Wolf) Dominate

(Giant) Harrassment

(Giant) Holding

(Riekling) Threesome

 

 

 

This is the order they appear in sslCreatureAnimationDefaults.psc.

 

These are animations that do not require the participants to physically cooperate or are obviously hostile (such has holding an actor down or holding them by the throat and so on).

 

Dragons are so worth more than just tongue. Have you not seen the dragon animation with the penetration? I'd love more animations, but I do understand dragons are hard to animate for, especially considering their massive endowment. (besides, I've never, EVER managed to get that tongue animation to line up even close to correctly)

Posted

 

Is this the correct usage for GetByRace() or should I be doing something else to get the race from an actor?

sslBaseAnimation[] raceAnims = SexLabCreatures.GetByRace(2, akAttacker.GetRace())

 

You should use: SexLab.GetCreatureAnimationsByRace(2, akAttacker.GetRace())

 

That's got it working. Thanks!

Posted

I need to verify. There is a big difference between having something, versus having support for something. I asked a question the other day and got an answer that only really verifies support, thanks to an and/or statement (that or tho)

 

Will this thing come with (heterosexual / straight) sexual animations between men and creatures? (male human on female dog, for example) ??? I understand it has support for such animations, but will it come packaged with actual working animations?

 

I wish I could test this right now, and help out at that, but it seems my PC has been totally rekt by Windows 10 and downgraded to Windows 8 permanently... cus I can't get it to upgrade, and I can't get my graphics drivers to install... can't even use this reasonably until I get a driver that installs, or a new PC. I just want to know these things before I get a functioning gaming PC again.

 

Male actor on female critter will probably be supported, but there aren't many animations with that particular combination to serve up at the moment.  The animators try to do what they can, but there is an insatiable and never ending list of animations and combinations to work on at any given moment. 

 

To be honest, the demand for Male -> Female Critter has never been very strong historically.  Or, if it has, no one told the animators about it :D

Posted

 

I need to verify. There is a big difference between having something, versus having support for something. I asked a question the other day and got an answer that only really verifies support, thanks to an and/or statement (that or tho)

 

Will this thing come with (heterosexual / straight) sexual animations between men and creatures? (male human on female dog, for example) ??? I understand it has support for such animations, but will it come packaged with actual working animations?

 

I wish I could test this right now, and help out at that, but it seems my PC has been totally rekt by Windows 10 and downgraded to Windows 8 permanently... cus I can't get it to upgrade, and I can't get my graphics drivers to install... can't even use this reasonably until I get a driver that installs, or a new PC. I just want to know these things before I get a functioning gaming PC again.

 

Male actor on female critter will probably be supported, but there aren't many animations with that particular combination to serve up at the moment.  The animators try to do what they can, but there is an insatiable and never ending list of animations and combinations to work on at any given moment. 

 

To be honest, the demand for Male -> Female Critter has never been very strong historically.  Or, if it has, no one told the animators about it :D

 

 

I wanna fuck bitches!!!

(female dogs)

 

 

And what of the humanoid creatures? Do they just get human animations? Throw in some females.

 

If a Spider had a vagina, idk where it'd be... but still. Think outside the box?

Posted

 

 

I wanna fuck bitches!!!

(female dogs)

 

 

And what of the humanoid creatures? Do they just get human animations? Throw in some females.

 

If a Spider had a vagina, idk where it'd be... but still. Think outside the box?

 

 

[said in a good-natured way...]  Then get off your ass and learn how to create the animations you want, then Ashal / dentarr (MNC) will be able to add the animations.  :)  It's hard to add things that don't exist, you know.

Posted

 

 

 

I wanna fuck bitches!!!

(female dogs)

 

 

And what of the humanoid creatures? Do they just get human animations? Throw in some females.

 

If a Spider had a vagina, idk where it'd be... but still. Think outside the box?

 

 

[said in a good-natured way...]  Then get off your ass and learn how to create the animations you want, then Ashal / dentarr (MNC) will be able to add the animations.  :)  It's hard to add things that don't exist, you know.

 

 

Yeah, maybe when I fix up my PC to the point that I can finally play this game again (with these mods) I'll start animating ... but that'll probably be some time after the official release of the newest version  :@ I'm currently stuck on the side lines anticipating what I might come back to when I finally completely fix my PC.

 

Pro tip: Don't upgrade to Windows 10. At least not yet.

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...