prideslayer Posted September 27, 2014 Author Posted September 27, 2014 1. Some vars are only on the spelltarget, others are shared. That's why there is "Sexout:Started::spellTarget" Â 2. The UDF system is no different from the others.
Guest tomm434 Posted September 27, 2014 Posted September 27, 2014 1. Some vars are only on the spelltarget, others are shared. That's why there is "Sexout:Started::spellTarget" Â 2. The UDF system is no different from the others. Â 1. I didn't get it. So, Is list of the actors a shared NX var? Â 2) Okay. Who will be the spell target here? call fnSexoutActPrep call fnSexoutActSetRef "actorA" aaMutantMarcusActorRef call fnSexoutActSetRef "actorB" playerRef call fnSexoutActRun
DoctaSax Posted September 27, 2014 Posted September 27, 2014 1. What pride means is you can get the actor that has all the vars by checking the "Sexout:Started::spellTarget" EVFo on any of the actors. Once you have the spelltarget actor you should be able to get the actorA etc from them, as well as anything else.
Guest tomm434 Posted September 27, 2014 Posted September 27, 2014 1. What pride means is you can get the actor that has all the vars by checking the "Sexout:Started::spellTarget" EVFo on any of the actors. Once you have the spelltarget actor you should be able to get the actorA etc from them, as well as anything else. Â oh thanks! That makes things easier. Don't have to add spells to Sexout spells formlists anymore
prideslayer Posted September 27, 2014 Author Posted September 27, 2014 What doc said. Â You can look at the code for FinishNow if you want, which does exactly that lookup, but it's really that simple.
Guest tomm434 Posted September 27, 2014 Posted September 27, 2014 Thanks, I already did the code!  I also have 3 questions if you don't mind:   1) Who will be the spell target here? call fnSexoutActPrep call fnSexoutActSetRef "actorA" aaMutantMarcusActorRef call fnSexoutActSetRef "actorB" playerRef call fnSexoutActRun 2) Can I somehow know if Actor is having animation right now? (now I can only check if he is locked by Sexout but he is still locked when he is falling after sex or when he does Sex callback)  3) If I kill actor after he is done with animation (but have callback dialogue or falling down after sex) - will Sexout take care of that? I remember you told me that it will but please confirm.  So I have 2 cases  1)Actor has dialogue callback 2)Actor hasn't got dialogue callback  In first case I want for Actor to die just after animation is ended. Will Sexout take care of the rest? In second case I want the same. And question is the same.
prideslayer Posted September 27, 2014 Author Posted September 27, 2014 Thanks, I already did the code!  I also have 3 questions if you don't mind:   1) Who will be the spell target here? call fnSexoutActPrep call fnSexoutActSetRef "actorA" aaMutantMarcusActorRef call fnSexoutActSetRef "actorB" playerRef call fnSexoutActRun  Probably actorA but not sure. Just look at either one of them, both will have the var set on them.  2) Can I somehow know if Actor is having animation right now? (now I can only check if he is locked by Sexout but he is still locked when he is falling after sex or when he does Sex callback) Err.. maybe, but I wouldn't. Why?  3) If I kill actor after he is done with animation (but have callback dialogue or falling down after sex) - will Sexout take care of that? I remember you told me that it will but please confirm. I think it will but I've never tested it. I'm pretty sure startconversation itself doesn't work on dead actors though, which isn't a sexout thing.  So I have 2 cases  1)Actor has dialogue callback 2)Actor hasn't got dialogue callback  In first case I want for Actor to die just after animation is ended. Will Sexout take care of the rest? In second case I want the same. And question is the same. Is this a scripted event? If you kill the actor *during* sex, I'm really not sure what will happen. I know I only check for death at the start, so sexout is going to try to "finish" everything once it's started, including redressing and such. If the event is scripted you can tell sexout to not redress that actor to at least cover for some of the 'weirdness'.  My suggestion.. try what you're talking about in the console. You can do it with the classic interface, e.g. set xxxxxx.actora to foo, set xxxxxx.actorb to bar, ....... cios yyyyyy. Even the CBs can be set that way.  Then kill the actor with the console at the appropriate time and see what happens.
Guest tomm434 Posted September 27, 2014 Posted September 27, 2014 Err.. maybe, but I wouldn't. Why? If I kill actor when he does animations - he freezes while other actors continue to do their animation. That's why I want to do it after anim is ended.  I'm more worried about NX vars getting stuck to the savegame. So if inUse fuction returns 0 -does it mean that all Sexout related NX vars are gone? I can test if Sexout clears everything that way then.
prideslayer Posted September 27, 2014 Author Posted September 27, 2014 Sexout doesn't generally clear "everything". The vars on the actor will stick around until they're manually cleared, or until the actor is no longer valid (e.g. deleted). If I were you I'd just use the post-sex hook or one of the CBs to do what you want, when sex is done. It can be as simple as scripting an item to do whatever it is you need to do (like even NX_Clr.. on everything on that actor), and giving that item to the actor when sexout tells you to. Â Have the script just keep checking inuse until it's clear, and then let it run. Â The animation ending is not the signal that sexout is 'done' by any means. After the animation is done it still has to handle callbacks, redressing, knockdown, etc.
Guest tomm434 Posted September 27, 2014 Posted September 27, 2014 I get it. I made SexoutKiller mod and I wanted for actor to die just as he finishes animation. But it seems like it's going to be a disaster and may cause problems - that's why I will stick to checking inUse and only then kill poor gal\guy.
prideslayer Posted September 27, 2014 Author Posted September 27, 2014 Yeah. It may be a bit jarring and maybe I can come up with a nicer looking workaround later, but for now, it's best if you just let sexout finish and then do your thing.
Copperrobot Posted November 2, 2014 Posted November 2, 2014 Excuse me, I am new to this and I do not know anything about modding. I have been looking for mods to spice up my gameplay with. I tried "humping the mojave" and it worked ok, only allowing me to have sex with companions. Â Now is this mod only for making sex mods? or for having sex ingame? I don't really understand much what you're talking about and I feel a bit confused. I fear I might have bit off more than I can swallow. Â I am currently looking at guides you guys have posted but little makes sense.
Swyke Posted December 8, 2014 Posted December 8, 2014 So what am I doing wrong?  Adding a quest to a mod. The quest includes only a questscript which contains the following sexout calls:  Questscript: scn SoActQuestSCRIPT ref rZGive ref rZTake ; ref rZThrd ; ref rZCall ; ref rZRape int iPos begin gamemode if eval((0 == call fnSexoutActorInuse rZGive) && (0 == call fnSexoutActorInuse rZTake)) call fnSexoutActPrep ; if (iRape) ; set iRape to 0 ; call fnSexoutActSetRef "Raper" rZRape ; endif if (iPos == 1) call fnSexoutActSetInt "isVaginal" 1 elseif (iPos == 2) call fnSexoutActSetInt "isAnal" 1 elseif (iPos == 3) call fnSexoutActSetInt "isOral" 1 endif ; if (iCall == 1) ; set iCall to 0 ; call fnSexoutActSetRef "CBDialogA" rCall ; endif call fnSexoutActSetRef "actora" rZGive call fnSexoutActSetRef "actorb" rZTake call fnSexoutActRun endif let iPos := 0 StopQuest SoActQuest end In various topic result scripts I start the quest (which quits itsself) let SoActQuest.rZGive := GetSelf let SoActQuest.rZTake := PlayerREF let SoActQuest.iPos := 0 ; 0 = random, 1 = vaginal, 2 = anal, 3 = oral StartQuest SoActQuest The animation starts, and runs flawles till the end. But at the moment the actors get up, the game crashes.  The UDF-calls are new for me, I made the same with the NX-calls and they worked fine.  First I thought, that the script runs more than once and so something gets confused, but as I stop the quest in the last line of the script that shouldn't happen? Or should I use a 'security-variable' to prevent the script from running more than once?  I have to add, that I was trying to 'repair' sexout-kings for myself, so maybe there is something in the mod which conflicts with my edits. But before I keep on trying, maybe you see something I made obviously wrong  Thank you! Â
prideslayer Posted December 8, 2014 Author Posted December 8, 2014 Script looks OK at a glance. Yes you should always have the 'security variable'. Part of testing is actual testing though, you know where the problem MIGHT be, so test it and see if that's the case. Unfortunately a debug log likely won't be much help, since in CTDs, the logfile is rarely written all the way to the end.
Swyke Posted December 8, 2014 Posted December 8, 2014 Thank you for your fast reply, Pride!  Made some tiny changes, a additional variable to be sure the sexout call runs only once. But it didn't help. Still CTD at the end of the animation.  I think the next step will be putting the script in a little extra mod to figure out if it works there. But this will be on wednesday or sunday or later ... still much to much to do in RL.     Questscript: scn SoActQuestSCRIPT ref rZGive ref rZTake ; ref rZThrd ; ref rZCall ; ref rZRape int iPos int iCtr begin gamemode if iCtr == 1 let iCtr := 0 if eval((0 == call fnSexoutActorInuse rZGive) && (0 == call fnSexoutActorInuse rZTake)) call fnSexoutActPrep ; if (iRape) ; set iRape to 0 ; call fnSexoutActSetRef "Raper" rZRape ; endif if (iPos == 1) call fnSexoutActSetInt "isVaginal" 1 elseif (iPos == 2) call fnSexoutActSetInt "isAnal" 1 elseif (iPos == 3) call fnSexoutActSetInt "isOral" 1 endif let iPos := 0 ; if (iCall == 1) ; set iCall to 0 ; call fnSexoutActSetRef "CBDialogA" rCall ; endif call fnSexoutActSetRef "actora" rZGive call fnSexoutActSetRef "actorb" rZTake call fnSexoutActRun endif endif StopQuest SoActQuest end Topic Result Script: let SoActQuest.iCtr := 1 let SoActQuest.rZGive := GetSelf let SoActQuest.rZTake := PlayerREF let SoActQuest.iPos := 0 ; 1 = vaginal, 2 = anal, 3 = oral StartQuest SoActQuest  Â
Odessa Posted December 9, 2014 Posted December 9, 2014 I'd suggest putting debug prints at the start and end of your script so you know for sure when it runs. Â I can't spot anything wrong at a glance though, perhaps the CTD is caused by another mod running a sexend effect, since presumably you aren't doing anything then. Â I have found crashes caused by having multiple UDF calls on the same if-eval line in the past, and always split them up out of paranoia now.
prideslayer Posted December 9, 2014 Author Posted December 9, 2014 A few suggestions for further debugging.. Â 1. Go ahead and try to capture the output with sexoutdebug mode on, and scof. Â 2. Turn on debug text as well (enter 'tdt' in the console) and capture with fraps/gamecamxp. This will possibly capture more of the log than #1. Â 3. Load your whole load order (that you are resting with) in fnvedit. Look for any overwritten records in sexout.esm. Be especially wary of any that modify scripts or quests.
Swyke Posted December 9, 2014 Posted December 9, 2014 Thanks a lot! Â ... and once again, just another question. Didn't have any time to try anything with the existing scripts, so this is just theoretic: Â Is there any use in still making quests (or spells) like the one I posted above, to initiate 'generic' Sexout animations, or wouldn't it be easyier/better to make a UDF instead? Â For example: Â You have a quest-mod with a couple of dozend topic results which lead into sex scenes. So the animations have to be started with the topic result script. From the topic result script you can only see four lines (if you won't scroll, and won't go into the edit window, and yes, I am lazy and I like to see what a mod is doing ). So you try to get the topic result script as short as possible. Using the ancient sexout calls it was possible within 3 or 4 lines, but with NX or UDF you need more ... and we all shoud use some 'security checks' (And at last Prideslayer has strongly recomended not to put the sexout calls into the topic result scripts.) So it is better to put the animation script into a quest or spell and set only the few changing variables for the specivic scene. (As I made it in the examples a few posts above) But now ... while searching for a way to read single bits out of a integer ... I took a little glimpse into the UDF itsself. So I was considering that maybe instead of putting the sexout calls into a quest script or spell script you could put them into a UDF script instead and put the variables (sextype) and refs (partner) into the arguments. For example i would only need two lines in the result scrip to declare an entire animation: let rPartner := GetSelf call GenericSexForThePlayerUDF rPartner, (0 == random; 1 == vaginal; 2 == anal; 3 == oral), (0 == consensual; 1 == raped; 2 == raper); (maybe the callback or a threesome too) So you had still two visible lines for other scripting needs. Â Â Or are there some obvious errors in my reasoning? Â (As I have written above, this is only theorie, it's unlikely that I can get back to modding in the next days.)
DoctaSax Posted December 9, 2014 Posted December 9, 2014 Nothing wrong with that, tomm, I switched to calling a UDF rather than set acts directly in topic results a while back in sofo. The only thing you need to be wary about is that you can't declare variables in the result script. However, if you call from a result script, the udf will be called on the dialog partner anyway, so do the getself inside the udf.
prideslayer Posted December 10, 2014 Author Posted December 10, 2014 Doing sexout calls from an "internal" UDF is probably better than making direct calls -- especially in dialog/quest result scripts. The reason is that internally for that prep/wait/set/wait/run thing to work, sexout uses the formID of the calling script as a key so it knows what act to 'run' when multiple scripts/mods have acts prepped. Â I can't get the formID of a dialog/quest result script, yet anyway. NVSE returns 0 for those. It probably (I have not looked) gives me a good value from a UDF though.
MrAlthalus Posted January 22, 2015 Posted January 22, 2015 *Headdesk* 3 hours after finding this site, the new animations stopped lining up. 5 hours afterwards, The textures escaped their prisons. and 7 hours after discovery, the escaped textures begin insta-gibbing everybody in Vegas.
aryaankhan123 Posted February 2, 2015 Posted February 2, 2015 hey guys im using zaz animations with console command like set .actora to getself.............i would like to know how can i set actor to raper with console....theres command on sexoutapi set .raper but dont know how to use it.
prideslayer Posted February 4, 2015 Author Posted February 4, 2015 You're using the quest interface or the NX one? For the quest you set '.raper' on the Sexout quest, not the SexoutNG quest. For NX, you set 'raper' just like everything else. You really should be using NX from the console except for very basic testing with the quest interface.
Guest tomm434 Posted April 4, 2015 Posted April 4, 2015 What if I want to set a "rape" check but I don' want "knockback" to happen after rape? (will break the scene) I could't find the int on the Sexout API.
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