Odessa Posted June 21, 2014 Posted June 21, 2014 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 . - 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. Submitter Odessa Submitted 06/21/2014 Category Framework & Resources Requires Sexout '84 or later
Odessa Posted June 21, 2014 Author Posted June 21, 2014 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
Guest Posted June 21, 2014 Posted June 21, 2014 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
Odessa Posted June 21, 2014 Author Posted June 21, 2014 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.
Halstrom Posted June 22, 2014 Posted June 22, 2014 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?
Odessa Posted June 22, 2014 Author Posted June 22, 2014 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.
emo877 Posted July 1, 2014 Posted July 1, 2014 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 "spitroast" (5000-5200 afaik) and other nicelooking DP subtypes.
Nessa Posted July 5, 2014 Posted July 5, 2014 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.
KainsChylde Posted August 3, 2014 Posted August 3, 2014 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.
prideslayer Posted August 3, 2014 Posted August 3, 2014 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?
KainsChylde Posted August 3, 2014 Posted August 3, 2014 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?
Odessa Posted August 3, 2014 Author Posted August 3, 2014 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), ""
NicoleDragoness Posted August 3, 2014 Posted August 3, 2014 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.
KainsChylde Posted August 4, 2014 Posted August 4, 2014 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.
Odessa Posted August 4, 2014 Author Posted August 4, 2014 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.
galgat Posted October 11, 2014 Posted October 11, 2014 Very nicely done! I will have to play with this some too. A lot of good stuff here.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now