Jump to content

The Sexoutng Api (How-To For Modders)


prideslayer

Recommended Posts

Posted

AJ, I've fixed the TFC thing in MCM in my dev version so it's ready for next beta release, however, two notes.

 

1. Nobody should use this. With TFC off, the player will stand there naked unable to move the camera any direction except up and down (no side to side, no spin/rotate) and will not play the animation.

 

2. This has nothing to do with first person vs. third person. Sexout always switches you to 3rd person for the act, if you're in first person. This is (was) because, if it didn't, TFC will turn you invisible.

 

So I think... you're also asking for a toggle to enable/disable switching to 3rd person?

Posted

In looking into creating a switch positions mod, there's already a SexoutSwitchPos spell.

 

 

 

scn SexoutSwitchPosScript

int bInit
int anim
int nTemp
ref actorA
ref actorB
ref actorC

Begin ScriptEffectStart
  set bInit to 1

  set anim to Sexout.anim
  set actorA to SexoutNG.actorA
  set actorB to SexoutNG.actorB
  set actorC to SexoutNG.actorC

  set Sexout.anim to 0
  set SexoutNG.actorA to 0
  set SexoutNG.actorB to 0
  set SexoutNG.actorC to 0
  
  if actorA
    if actorA.IsActor
      set nTemp to actorA.GetItemCount SexoutNGAnimCounter
      actorA.removeItem SexoutNGAnimCounter nTemp 1
      actorA.addItem SexoutNGAnimCounter anim 1
      actorA.pickidle
    endif
  endif

  if actorB
    if actorB.IsActor
      set nTemp to actorB.GetItemCount SexoutNGAnimCounter
      actorB.removeItem SexoutNGAnimCounter nTemp 1
      actorB.addItem SexoutNGAnimCounter anim 1
      actorB.pickidle
    endif
  endif

  if actorC
    if actorC.IsActor
      set nTemp to actorC.GetItemCount SexoutNGAnimCounter
      actorC.removeItem SexoutNGAnimCounter nTemp 1
      actorC.addItem SexoutNGAnimCounter anim 1
      actorC.pickidle
    endif
  endif
End

Begin ScriptEffectUpdate
  if bInit == 1
    set bInit to 0
    Dispel SexoutSwitchPos
  endif
End

 

 

 

Even though it exists, I don't think that this spell is in use.  Should it be a part of this?  I feel like my way of writing the mod will be better.  However, I'm not sure of two things:

  1. Does actor.pickidle just rely on the randomizer to pick another position?
  2. Will I too need to get rid of all anim tokens prior to setting the new position?
Posted

Three steps to channging the currently playing animation.

 

- Pick a new animation #

- Updates actor tokens

- Calls pickidle

 

The built in spell that runs the script you quoted does the last two for you. It doesn't do the first one.

 

If you didn't originate the scene (and in this case you didn't) you will want one more step there too -- you need to look at the NX spellTarget var on the target, and use that ref to get the correct actor vars. The sexout spell needs to be cast on all of them.

 

I suppose I could change it to do that itself but there are some cases where it's an A+B animation, but you might only want to change the position of one of them.

Posted

Honestly you might want to wait to start on this until the next beta. Right now it will be very difficult for you to pick a random animation on your own, or to even know which ones you should pick from. The beta I'm going to put out this weekend (I hope) will have all that solved.

 

Right now, for random, you'll have to duplicate (basically) the entire randomize script in sexout, which changes every time animations are enabled/disabled/added/removed. For next/prev you'll have to duplicate most of it as well because there are large gaps. If it's currently playing 505 and you raise it to 506, it may be invalid -- and there may not be another valid one until 5005.

Posted

Quick Question about Sexout.useVoice && Sexout.realVoice

Currently I have Pregnancy birthing sounds enabled by a SCR MCM variable SexoutSQVAR.iSexoutSounds

I'm thinking I can depreciate that to use a check against the 2 above instead?

Posted

You can, but when the current beta is done, there will be a new sound interface that'll be easier to deal with, and there are sound changes coming that I promised a long time ago to enable/disable different sound stuff on a per-act basis as well. There will be NX flags for those on the spelltarget actors.

 

If you want to go ahead and use the quest ones anyway...

 

Sexout.useVoice enables/disables sexout 'voice' sounds as a whole. It must be true for sexout to play any of the voice sounds.

 

Sexout.realVoice only has an effect if useVoice is true & the act is rape, in which case:

- Male or Female rape vicitms play a random 'hit' voice sound. ('ow', 'oof', 'ugh' etc).

- Male rapists play an 'attack' voice sound. ('you like that?' etc).

 

Otherwise it picks randomly from the sexout sounds.

 

There's a longstanding oversight in this script that you may have noticed: Female rapists always play sexout sounds, never 'attack' sounds, even if useVoice is true. UDLR was a sexist! Females can be rapists! :)

Posted

So I think... you're also asking for a toggle to enable/disable switching to 3rd person?

I think I could force that (I think...) scripting disableplayercontrols, so no I don't think it's necessary. anyway I want to try that. Thank you.

Posted

 

So I think... you're also asking for a toggle to enable/disable switching to 3rd person?

I think I could force that (I think...) scripting disableplayercontrols, so no I don't think it's necessary. anyway I want to try that. Thank you.

 

I fixed the TFC toggle as requested, but if anyone unchecks it now, sex does not work -- pickidle on the player doesn't work unless you're in the ufo cam. It won't work until I've switched sexout over to using playidle instead of pickidle.

 

For first person concerns I need to add a toggle in there for 3rd person anyway, and then restrict the TFC toggle to only being available if the 3rd person setting is enabled.

Posted

 

int fnSexoutActorInuse(ref) -- Given a reference, will return:

0 - Actor not in use by sexout

1 - Actor in use by sexout

2 - Reference invalid

3 - Reference not an actor

 

What's the difference between 2 and 3?  2 = you passed it an int, float, other non-ref var, and 3 = it's an oven?

Posted

 

int fnSexoutActorInuse(ref) -- Given a reference, will return:

0 - Actor not in use by sexout

1 - Actor in use by sexout

2 - Reference invalid

3 - Reference not an actor

 

What's the difference between 2 and 3?  2 = you passed it an int, float, other non-ref var, and 3 = it's an oven?

 

3: IsReference ref failed.

2: #3 succeeded, ref.IsActor failed.

Posted

Oh you can't pass it a float or the wrong thing, geck will catch that. It's there to catch you passing it a ref var that's empty (0), or refers to a ref that doesn't exist any more -- like it was temporary/placeatme'd, or the game was saved and a mod removed, then loaded.

Posted

@tomm:  Not exactly what you're looking for, but here are the vars and which mods (as of whenever the hell the GECK's wiki was last updated) use the other variables.

 

I presume that you're asking out of concern.  My understanding is that the var4 will be moved away from, but I don't recall if that's for our checking it (UDF replacing a direct check) or if he's going to do something else to track it.

 

 

 

User Defined Actor Values

There are ten user defined actor values. They have no defined game functions, but can be used by quests to establish permanent data on the actor. Keep in mind that setting one of the variables on an actor implicitly defines that variable for all actors.

Using these values to store extra information has the potential to cause conflicts with other mods. If you need to store information on an actor, use a token (an unplayable, therefore invisible, piece of armour) instead. If for very, very specific reasons you must use an AV, record it here.

  • Variable01
    • Used by doctors to conditionalize the medical services packages/dialogue
    • Used by generic protectrons ("ticket checking" robots)
    • Variety of FFE stuff uses this value for specific things
    • Used in Chargen in a couple of places to conditionalize packages
    • ... actually used all over the place. SUMMARY: Don't use this for anything non-specific.
  • Variable02
    • Evergreen Mills slave script
    • CG04 guard packages
    • Super Mutant captives
  • Variable03
    • Used by vendors to initiate following the player if he goes into back rooms, etc.
  • Variable04
  • Variable05
    • TenpennyResidentSCRIPT
The above script is actually never used by the game.
  • Variable06
  • Variable07
    • LenfantMutantMoveScript
The game only uses this actor variable on one placed creature (the Mutant referenced above).
  • Variable08
  • Variable09
    • MS13CollarScript
This script can easily be changed to not use an AV by using a token item instead.
  • Variable10
    • Water beggars
    • Player addiction
Setting it to 2 on the beggars will kill them immediately. Mod Usage
  • Variable01
  • Variable02
  • Variable03
  • Variable04
  • Variable05
  • Variable06
    • Mart's Mutant Mod uses Var06 for tracking Increased Spawns, on NPCs only.
  • Variable07
    • Impervious Power Armour uses Var07 for tracking Damage Reduction on PCs and NPCs.
  • Variable08
    • Impervious Power Armour uses Var08 for tracking Damage Reduction on PCs and NPCs.
  • Variable09
  • Variable10

 

 

Guest tomm434
Posted

@tomm:  Not exactly what you're looking for, but here are the vars and which mods (as of whenever the hell the GECK's wiki was last updated) use the other variables.

 

I presume that you're asking out of concern.  My understanding is that the var4 will be moved away from, but I don't recall if that's for our checking it (UDF replacing a direct check) or if he's going to do something else to track it.

 

 

 

User Defined Actor Values

There are ten user defined actor values. They have no defined game functions, but can be used by quests to establish permanent data on the actor. Keep in mind that setting one of the variables on an actor implicitly defines that variable for all actors.

Using these values to store extra information has the potential to cause conflicts with other mods. If you need to store information on an actor, use a token (an unplayable, therefore invisible, piece of armour) instead. If for very, very specific reasons you must use an AV, record it here.

  • Variable01
    • Used by doctors to conditionalize the medical services packages/dialogue
    • Used by generic protectrons ("ticket checking" robots)
    • Variety of FFE stuff uses this value for specific things
    • Used in Chargen in a couple of places to conditionalize packages
    • ... actually used all over the place. SUMMARY: Don't use this for anything non-specific.
  • Variable02
    • Evergreen Mills slave script
    • CG04 guard packages
    • Super Mutant captives
  • Variable03
    • Used by vendors to initiate following the player if he goes into back rooms, etc.
  • Variable04
  • Variable05
    • TenpennyResidentSCRIPT
The above script is actually never used by the game.
  • Variable06
  • Variable07
    • LenfantMutantMoveScript
The game only uses this actor variable on one placed creature (the Mutant referenced above).
  • Variable08
  • Variable09
    • MS13CollarScript
This script can easily be changed to not use an AV by using a token item instead.
  • Variable10
    • Water beggars
    • Player addiction
Setting it to 2 on the beggars will kill them immediately. Mod Usage
  • Variable01
  • Variable02
  • Variable03
  • Variable04
  • Variable05
  • Variable06
    • Mart's Mutant Mod uses Var06 for tracking Increased Spawns, on NPCs only.
  • Variable07
    • Impervious Power Armour uses Var07 for tracking Damage Reduction on PCs and NPCs.
  • Variable08
    • Impervious Power Armour uses Var08 for tracking Damage Reduction on PCs and NPCs.
  • Variable09
  • Variable10

 

 

 

I'm asking because I came in with an interesting idea. I'm doing companion mod on my part time and I want her to make her react if player is having sex(like "You might have asked me to get out of the room") without making dependency. So, I'm asking if there are any other mods which use variable04 beside Sexout so there will be no conflicts.

 

 

Posted

I picked that one because it looked like it had the least chance of conflict. However, I'm retiring variable04 usage. I suggest you IsModLoaded + BuildRef instead. You probably can't call the UDF that way, but you can check for the 00SexoutActor token.

Posted

<.<

>.>

I thought that tokens were going away as well.

 

Also, are you talking about buildref for the token, cause that doesn't make sense to me if Sexout is the master.

Posted

I picked that one because it looked like it had the least chance of conflict. However, I'm retiring variable04 usage. I suggest you IsModLoaded + BuildRef instead. You probably can't call the UDF that way, but you can check for the 00SexoutActor token.

 

why not :) ? I think DoctaSax already tried.

Posted

He's talking about sexout not being a master. So IsModLoaded + Buildref will get a ref to the token that you can use with GetItemCount. The token is probably going to go away, this is the first time though I've had a reason to maybe keep it around.

Guest tomm434
Posted

He's talking about sexout not being a master. So IsModLoaded + Buildref will get a ref to the token that you can use with GetItemCount. The token is probably going to go away, this is the first time though I've had a reason to maybe keep it around.

ookay,thanks.Token is risky but  I'll keep that in mind.

Posted

If he tried buildrefing a UDF and the call worked, then by all means, do that instead. :)

 

Yeah, I can't underline this enough: you can buildref UDFs & call them just like that.

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