Jump to content

[SexLab Scipts] Help - get Players Mouth State per Stage


Recommended Posts

Posted

Long story short, I want to control expressions and sound via my own mod instead of Sexlab (Sexlab Expressions and Sound turned off)

To do this I need to somehow track the State of things for the PC on each stage... and there I cannot follow the Sexlab Scripts.

I can already track stages and stage changes, but I do not understand how I can scan for the 

 

"Sound" that is supposed to play during the scene (Oral sound or Squising), but more importanly I want to check if the "open_mouth" tag is provided by the SLAL animation.

 

I found the OpenMouth in ssBaseAnimation and sslActorAlias but I dont really understand the scripts or where to start working with them...

 

";sslBaseAnimation
;    bool function UseOpenMouth(int Position, int Stage)
;    return FlagsArray(Position)[FlagIndex(Stage, kOpenMouth)] as bool
;endFunction

seems what I need, but I cannot compile the script.

sslBaseAnimation .UseOpenMouth(pPosition, sStage)
says I have to use it on a variable not a type or alone 

 

Posted

Do you need sounds for the currently running Sexlab scene? In that case you could probably get them from the sslThreadController directly. We can catch any Sexlab event, use 

 

SslThreadController thread = SexLab.GetController(threadID)

 

and get any variable we need from Thread. For example,

 

 Actor[] actorList = thread.Positions

 

will return a list of actors in SexLab scene. For the currently playing sound it should be

 

Sound CurrentlyPlayingSound = thread.SoundFX

 

It's been a while since I looked at Sexlab scripts, but if memory services me it should look like that. :)

Posted
1 hour ago, Nymra said:

seems what I need, but I cannot compile the script.

sslBaseAnimation .UseOpenMouth(pPosition, sStage)
says I have to use it on a variable not a type or alone 

sslBaseAnimation is the script name.  That's why it doesn't compile.  Use the instance of the current animation to call UseOpenMouth.

Posted
41 minutes ago, AndrewLRG said:

Do you need sounds for the currently running Sexlab scene? In that case you could probably get them from the sslThreadController directly. We can catch any Sexlab event, use 

 

SslThreadController thread = SexLab.GetController(threadID)

 

and get any variable we need from Thread. For example,

 

 Actor[] actorList = thread.Positions

 

will return a list of actors in SexLab scene. For the currently playing sound it should be

 

Sound CurrentlyPlayingSound = thread.SoundFX

 

It's been a while since I looked at Sexlab scripts, but if memory services me it should look like that. :)

 

ah, thx. it compiles. Will play around with that. 

 

29 minutes ago, Hex Bolt said:

sslBaseAnimation is the script name.  That's why it doesn't compile.  Use the instance of the current animation to call UseOpenMouth.


hmm, how do I get the instance of an animation? the "thread." thingy is not the thing I need here?
At least I tried with it and it still does not compile.

I mean this exists:
    if sslBaseExpression.IsMouthOpen(cfgqst.PlayerRef)
    Debug.messageBox("USE OPEN MOUTH") 
    endif   

AND IT compiles, but "IsMouthOpen" seems to only check for the applied mfg expressions and not IF the mouth is supposed to be open, hmm.

 

my script at the moment: 

	int threadID = SexLab.FindActorController(cfgqst.PlayerRef)
	SslThreadController thread = SexLab.GetController(threadID)
	Int SceneStage = thread.Stage
	Sound CurrentlyPlayingSound = thread.SoundFX
	
	if thread.UseOpenMouth(1, SceneStage)
	Debug.messageBox("USE OPEN MOUTH") 
	endif  

 

 

Posted
18 minutes ago, Nymra said:

my script at the moment: 

	if thread.UseOpenMouth(1, SceneStage)
	Debug.messageBox("USE OPEN MOUTH") 
	endif  

 

 

 

I'm surprised it compiles. Function UseOpenMouth() belongs to sslBaseAnimation, I thought it should be: 

if thread.Animation.UseOpenMouth(1, SceneStage)

 

Posted
31 minutes ago, Nymra said:

hmm, how do I get the instance of an animation? the "thread." thingy is not the thing I need here?

    sslThreadController tc = SexLab.GetController(tid)
    sslBaseAnimation anim = tc.Animation

Posted
7 hours ago, Hex Bolt said:

    sslThreadController tc = SexLab.GetController(tid)
    sslBaseAnimation anim = tc.Animation

 

7 hours ago, AndrewLRG said:

 

I'm surprised it compiles. Function UseOpenMouth() belongs to sslBaseAnimation, I thought it should be: 

if thread.Animation.UseOpenMouth(1, SceneStage)

 

 

got it to work, thx alot

 

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