Jump to content

Recommended Posts

Posted
View File

Adds a new call method for sexout animations.

 

call SexoutEZ Actors:array Description:string

 

That's it. I think this UDF is powerful enough to replace 90% of all sexout calls in all existing mods, and be more reliable. You don't even need Sexout as a master, just buildref the function.

 

Actors: a list of all the actors you want involved

Description: a string describing what kind of act you want. It sort of speaks English.

 

The order of terms in each isn't important. Nor are the terms. Pass it whatever garbage you want and it will sort through it and start the closest act possible matching your request. It error checks everything and will degrade gracefully.

 

Want to start conversation, give a token or cast a spell after sex? just stick them in the actors list and it'll figure it out. If sex isn't possible for some reason, it will still do the token/spell.

 

examples:

>>> call SexoutEZ (Ar_List TheKingREF, SunnyREF, MyToken), "long clothed cunnilingus"

 

The King remains clothed and performs cunnilingus on naked Sunny for twice the default duration. At sexend, MyToken is given to Sunny.

 

- It chooses the King as ActorB, because its cunnilingus. He keeps his clothes on but Sunny doesn't because that makes most sense.

- If one of the actors was invalid, the other would masturbate clothed for double duration, then get the token, while a warning is printed to console

- If both the actors are invalid, no animation plays and an error prints to console, but- the player gets given the (presumably scripted) token, hopefully preserving your plans.

 

>>> call SexoutEZ (Ar_List SunnyREF, TheKingREF), "quick doggy style anal rape"

 

Makes The King rape Sunny Smiles anally using a random doggy style animation, and duration is half the normal.

 

- It chooses the King as Actor A because Sunny is female and its doggystyle, it makes him the raper because thats what makes sense for it.

- If 1 of those actors is invalid for sexout, a warning will print to console, and the other will masturbate for half standard duration; the other parts of description would be ignored because they don't make sense for masturbation anims.

 

>>> call SexoutEZ (Ar_List PlayerREF), "Will you please crucify me, Odessa?"

 

- Crucifies the player if ZAZ is loaded, else masturbates. Technically it just sees 'cruci' and ignores the rest, but you may speak to it in English if it pleases you.

More examples

 

 

Something dubious:

 

>>> call SexoutEZ (Ar_List SunnyREF, 9mmPistol, TheKingREF, GeckoREF, EasyPeteREF, MyToken, MySpell, KlamathBobRef), "I don't know what I'm doing"

 

Starts a threesome animation with A: TheKing, B: SunnyREF, and C: EasyPeteREF (assuming those are valid), at the end MyToken is given to ActorA and MySpell is cast on them. You'll also get a bunch of warnings in the console, but whatever :P.

 

- Sunny, The King and Easy Pete are the first 3 valid actors, the function can't make any sense of the description so it just ignores it, and defaults.

- 9mmPistol is a weapon which is not allowed, so its skipped, GeckoREF would be actorA in a two-some if there was not already 2 actors, creatures threesomes aren't possible, Klamath Bob is valid, but there are already 3 valid actors.

 

>>> let aActors := Ar_List scan and grab every ref in the cell

>>> call SexoutEZ aActors, "2P acrobatic vaginal"

 

- Starts an acrobatic animation with the first 2 valid actors in the cell. Type is vaginal

 

>>> call SexoutEZ (Ar_List PlayerREF, MySpell), "crucify"

 

- starts a ZAZ crucify animaton for the player if ZAZ is loaded, otherwise defaults to masturbate. At sexend (or if player busy) MySpell is cast on them.

 

>>> call SexoutEZ (Ar_List TheKingREF, EasyPeteREF, KlamathBobREF), "rough 2P"

 

- starts rough looking anim with the first 2 valid actors. They are all male so it defaults ActorA to the first valid one, and B (the reciever) to the second.

 

>>> call SexoutEZ (Ar_List PlayerREF), ""

 

- The player masturbates.

 

>>> call SexoutEZ (Ar_List SunnyREF, TheKingREF), "vaginal"

 

- The King and Sunny have vaginal sex, Sunny is B (reciever) since she is female. If Sunny was male, she would be A (penetrator) instead and it would be anal.

 

 

 

Actor Array List:

Actors: You can provide as many as you want, it will choose the first 3 valid ones (or first 2 if one is a creature). ActorA/B/C default to your specified order, if I can't see anything more appropriate for your description.

 

Spells: You can include 1 spell, it is cast on ActorA at sexend (CBSpellA), or cast on the player immediately if no sexout act is valid.

Tokens: You can include 1 Misc item, it is given to ActorA at sexend (CBItemA), or given to the player immediately if no sexout act is valid.

Dialogue: You can include 1 dialogue line, it is spoken to the player by ActorA (or B if A==Player) at sexend (CBDialogA/B). If no sex act with an NPC is valid, then it will not be spoken, but will print an error message.

 

If you provide more than 1 Spell/Token/Dialogue then only the last one is used, and a warning is printed. If you provide anything other than an Actor reference, spell, misc item or dialogue, it will skip it and print a warning.

 

Description

There are a lot of possible terms you can include to describe your animation, the order does not matter. It will always start a 'sane' act, and so terms may be ignored if they don't make sense. The case of strings doesn't matter. Recognized terms:

 

Orifices: 'Anal', 'Oral', 'Vaginal'

 

Durations: 'quick' (50% default), 'long' (200% default)

 

General: 'clothed' : actor leaves clothes on if appropriate, 'rape' (the contextually appropriate actor is the raper, eg the Cowgirl/queener or ActorA.)

 

Limit max number of actors: '1P' (maximum 1 actor), '2P' (maximum 2 actors). Otherwise, it will use 3 if at least 3 are valid.

 

Styles - if none of these are specified, it uses the default sexout random picker, otherwise it uses my specialized random picker to choose an animation, and ensures all other sexout actor settings are appropriate.

'Doggy Style', 'Cow Girl', 'Missionary', '69', 'fellatio', 'irrumatio', 'cunnilingus', 'queen', 'grind' (female rubs on clothed partner), 'rough', 'acrobatic', 'whip', 'post', 'pillory', 'boxed bitch', 'crucify'

 

If you specify a ZAZ anim and ZAZ is not loaded, it will ignore that term. Most style terms are only relevant to 2-person anims.

 

An empty description : "" is valid, it will just use sexout defaults.

 

-----

 

To use SexoutEZ, just copy/paste this script (must be type: object script) into your plugin:

 

scn SexoutEZ; * either calls SexoutEZ or does a fade to black; * argsarray_var aActorsstring_var style; * localint iIndexref rSexoutEZBegin Function { aActors, style }    if eval (IsModLoaded "SexoutEZ.esp") ; * if sexout is loaded, play this animation	    let iIndex := GetModIndex "SexoutEZ.esp"	    let rSexoutEZ := BuildRef iIndex, 2786	    call rSexoutEZ aActors, style    else ; * fade to black.	    imod FadeToBlack4sISFX    endif    ; * side note, you don't need to sv_destruct the string_var style, because its an argumentEnd

Then any time you want sex in your mod you can just write: call SexoutEZ (Ar_List X, Y, Z..), "whatever style" (you call your mod local UDF, which in turn calls the SexoutEZ.esp version). If players have SexoutEZ loaded, they see sexout otherwise they see fade to black. Your mod needs no masters.

 

Or, do your own buildref. Or if you prefer, just copy my actual scripts into your own plugin (although that means you'll need maintain updates yourself), consider all mod assets to be free to use/copy/modify/share/etc for any purpose.

 

Requires Sexout '84 or later.


 

Posted

Heres a little test plugin to prove it works. It will start sex every 3 seconds for whoever it can grab in the cell.

 

SexoutEZ will spam the console with warnings, thats intentional- the test plugin is meant to give it a hard time.

 

It is just 1 quest script:

 

 

scn SEZTestScript

int iIndex
ref rSEZ
ref rActor
array_var aActors
array_var aStyles
string_var style

Begin GameMode

    if eval (IsModLoaded "SexoutEZ.esp")
        let iIndex := GetModIndex "SexoutEZ.esp"
        let rSEZ := BuildRef iIndex, 2786
        let aActors := Ar_List PlayerREF
        let rActor := GetFirstRef 200, 0
        while rActor != 0
            Ar_Append aActors, rActor
            let rActor := Pencil01
            let rActor := GetNextRef
        loop
        if GetRandomPercent < 75
            let style := "2P "
        else
            let style := " "
        endif
        let aStyles := Ar_List "anal ", "oral ", "boxed ", "clothed ", "rape ", "fellatio ", "queening ", "acrobatic ", "rough ", "69 ", "pillory ", "whip ", "grind ", "cowgirl ", "quick ", "long ", "missionary ", "cunnilingus "
        while GetRandomPercent < 75
            let style += aStyles[(Rand 0, 18)]
        loop
        call rSEZ aActors style
    endif

End

 

 

sez-test.esp

Posted

Nice one :)

 

By the way, no chances to call a spell at start?

 

EDIT: if you were casting a spell at start, I was asking if you could cast a spell at end. It's how it goes, with annoying questions.

..

...

...

No I'm kidding :) I just wonder if you invoke your own spell (in your script) at the end, or you use a SO CBspell, if there's a way to call the CBSpell at start which is the one I use usually

Posted

Spells, tokens and dialog all use the usual Sexout CB, and are applied to ActorA (except dialogue, its B if A==Player). However, if it detects the act is invalid it will cast/give the spell/token to the player itself instead. A workaround for dialog would be more involved, but may be in a later version.

Posted

This sounds great, Pregnancy doesn't call sex of course but it does check for the spells on actors like SexoutVerify for adding Semen & Fertility so I'm assuming that stuff still all happens?

Posted

Yes, SexoutEZ sorts out the information you give it and then estimates how that can be best expressed as a vanilla sexout '84+ UDF call. Hence, it is essentially just an extra layer between you and the sexout API, and everything sexout normally does still happens.

  • 2 weeks later...
Posted

Thank you!

I never seen anything more encouraging to do sexout modding. Program interface seems very clever and comfortable.
As for "keywords", i'd like to meet my dearest :shy: "spitroast" (5000-5200 afaik) and other nicelooking DP subtypes.
 

Posted

Hmmm... I may give this a go for my AKitH TTW extension. The idea being, if sexout is present, do a sexout anim, if not, do a vanilla fade to black. It would be a great way to include sexout content only if the player has sexout loaded. :angel:

  • 4 weeks later...
Posted

Possibly a dumb question, but here goes...

 

Say I wanted to expand on Sexout Willow, which currently doesn't support the handfull of threesome scenes available. I get that the buildref for actors would be player, willowREF, and the third party. And not specifying an act will automatically call a threesome because three actors are specified. How do you hook it to the dialogue, though, to start the act?

 

Sorry if I missed something obvious, me and even basic scripting don't get along too well.

Posted

It's common (but bad practice / discouraged) to start a sex act in a dialog result script. You should just set a quest stage (that a gamemode quest script is watching for), cast a spell, or something like that. If that isn't what you're asking then.. errr.. dunno?

Posted

Well, let me give an example, see if that clears anything up.

 

If you complete the Thorn quests, you're rewarded with a fade-to-black scene with Red Lucy. If you have Willow with you and you've progressed the relationship far enough, she'll protest you cheating on her. If you have Lady Killer/Chercheze La Femme, you can sweet-talk her into a threesome. You then go into Red Lucy's quarters and complete things as normal with Willow participating.

 

How do you link in EZ to get a threesome animation instead of a ftb?

Posted

Copy/Paste the short script at the end of OP into the plugin (scn SexoutEZ ...), save, close and forget about it.

 

Then add this to the sex scene:

 

Call SexoutEZ (Ar_List PlayerREF, WillowREF, RedLucyREF), ""

Posted

Even if I'm not a modder (and probably I'll never be because I'm idiot about papyrus and similar things), this sounds extremely interesting.

 

Maybe it would lead also to a "user selection" of the animations or some MCM implementations to set which animations will be played and which one will not.

Posted

Thank you Odessa, that's what I needed to know.

 

And for any other threesome scenes, I'd just change redlucyREF to whoever the third actor is, right? Just want to be 100% sure I'm understanding correctly.

Posted

Yes, give it any 3 valid actors and it will start a threesome, with a female in the middle if possible.

 

If the middle actor you specify isn't female it will swap them for the first or third if they are- because thats what makes sense for animations.

  • 2 months later...

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