Guest user29 Posted August 16, 2012 Posted August 16, 2012 Oh, so I could just call that specific animation and be on my way though? So long as you set it not to tfc. I do apologize if i'm being too much of a hassle. I just want to get a feel for how much work this would be for everyone. If it is I'm just not going to go that route. It was just an idea.
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 Oh' date=' so I could just call that specific animation and be on my way though? So long as you set it not to tfc. [/quote'] Right. This is all kinda supposition right now. I will have to put it in a new place in the directory structure, but I'm looking into doing that for all of the anims anyway (big data pack restructuring). The way things are right now, you cannot play an animation on the player unless you're in tfc, which requires you to start in 3rd person (or be invisible). According to the GECK wiki (which may well be lying), I can play animations with playidle, on the player, without switching to tfc if I move all the animations outside the character directory. In order to assign the animation files to an animation in the geck though, I'll have to hack them up in fnvedit, since the geck won't let you pick files outside the directory belonging to the actor type. I need to try this first and make sure it actually works. If it doesn't, then there can be no 1st person anims in sexout, because being in 3rd person is a requirement to get them to play.
Borisni Posted August 16, 2012 Posted August 16, 2012 I wanted to get duration of sex act, so I tried 'Set fDur To rActor.NX_GetEVFl "Sexout:Start::duration"', but it returns zero, so I'm using it wrong. Could you help me with this, or am I asking question in wrong thread? About that 1st person anim thing, one can return from tfc after sex begins, and get to 1st person view (with a few commands), but camera is not position where it should be, so you don't see through players eyes in the fact. This was just something that came to mind, and hope it's not a complete nonsense, in which case I'm very sorry.
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 I wanted to get duration of sex act' date=' so I tried 'Set fDur To rActor.NX_GetEVFl "Sexout:Start::duration"', but it returns zero, so I'm using it wrong. Could you help me with this, or am I asking question in wrong thread? [/quote'] If you want the remaining duration in an act that's already started, that isn't available yet. I'll add it to the beta. If you want the duration that the act was started with, your code is fine. If that value is 0, then you want to look at Sexout.dfTime, which is the default time acts last. Also, if lust is active on the act, the time varies and you can't really know how much time it started with, or how much remains. Again, something I hope to address in the beta. About that 1st person anim thing, one can return from tfc after sex begins, and get to 1st person view (with a few commands), but camera is not position where it should be, so you don't see through players eyes in the fact. This was just something that came to mind, and hope it's not a complete nonsense, in which case I'm very sorry. The camera positioning and other stuff is why, I think, we need different anims for 1st and 3rd person. All the anims in the vanilla game are paired that way as well. If it was just a matter of playing the animation without caring about what camera you're in, the vanilla game wouldn't have a 1p animation for every 3p animation -- or almost every one.
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 Oh I have to ask though *why* you want to know the remaining time. There are about a dozen things that can change it, so if you're thinking of using it for some kind of timing or delay, you should probably "think again."
DoctaSax Posted August 16, 2012 Posted August 16, 2012 According to the GECK wiki (which may well be lying)' date=' I can play animations with playidle, on the player, without switching to tfc if I move all the animations outside the character directory. [/quote'] It may well be lying. According to wiki, playidle on player only works if - in tfc mode - somethin' else I don't understand the point of unless you place the anims outside the character folder & change the filename. But I tested on the vanilla sweeping anim - about 2 months ago - and all I really had to do was copy LooseSweeping from the Loose folder to a new folder in the idle anims widget, under the main folder for people. Definitely not 'outside the chars folder' in either widget or meshes. Worked in regular 3rd person without having to tfc first. PC could just walk about, sweeping when stopping. Not sure what this means for 1st person anims, or non-vanilla anims, but playidle definitely looks like one of those things the wiki doesn't know much about, and what it does know looks wrong
Guest user29 Posted August 16, 2012 Posted August 16, 2012 That would be fantastic if it's that easy. Just have an MCM option to toggle on first person and voilla all your animations are already good to go.
Borisni Posted August 16, 2012 Posted August 16, 2012 Well, I never fully understood why there are different 1st and 3rd person anims, I haven't seen that in few other game engines, I guessed it's all started when they wanted to show hands in front of player while in 1st person, even if they are not there actualy when looking relative in world perspective. I'm still talking nonsense, so it's best to stop thinking about this I don't need remaining time in the fact, just the real duration of sex, but that could help me also. Why I need it is very simple, in the fact. In my mod some tokens are working like this: do something with actor (cios equipStrapon), than wait for sex to end (using var04), and after sex do something else (dispel equipStrapon). All that is working very good and simple, BUT since the start of my problems with my game few days ago, one of things that happens sometimes is that sex does not start, well there's no animation playing, but flagInUse returns true, and that token never finishes work. So, I wanted to make a simple sanity check while waiting for sex to end, just measure has token waited much longer than sex should last (that's why I need only maximal possible duration of sex), and if it has gone for too long just abort and clean my stuff. This way it wouldn't be a disaster, at least for my mod, if for some reason there's something wrong with Sexout, and sex is not working as it should. I suck in explaining things.. :/ EDIT: Just to add, in my test version this aborting if sex is lasting too long thing is vorking as it should, but I had to use a constant (30sec), and that won't work in real world.
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 It may well be lying. Wouldn't be the first time' date=' obviously. I have a feeling that when the pages first go up with those oblivion CK links, eventually someone just gets tired of clicking, and copy/pastes the content without saying "oh FYI I just copy/pasted this from oblivion and it might be wrong." According to wiki, playidle on player only works if - in tfc mode - somethin' else I don't understand the point of unless you place the anims outside the character folder & change the filename. The "somthin else" is in reference to having like a talking activator or scripted token or whatever start the animation. Sexout doesn't actually use playidle right now, it uses pickidle and lets the game engine pick the right idle to play -- it will only pick sexout idles if you have the right tokens, and they are checked before the vanilla idles, so that part doesn't apply to us. That is why all the other idle anim mods like dance mods and poses break it. When you add a new top level anim group, it modifies the adjacent groups (linked list type thing). If you don't go in with fnvedit afterwards and delete the modification to the vanilla idles, add-on idles like sexouts get shoved to the bottom of the list -- after the vanilla idles. Switching to playidle will get rid of that incompatibility since idles are played by name. But I tested on the vanilla sweeping anim - about 2 months ago - and all I really had to do was copy LooseSweeping from the Loose folder to a new folder in the idle anims widget, under the main folder for people. Definitely not 'outside the chars folder' in either widget or meshes. Worked in regular 3rd person without having to tfc first. PC could just walk about, sweeping when stopping. Can you explain a bit more? You would've also made an idle in the GECK that linked to that animation file. You just called playidle on it, and it worked? You have to have done something else, because in 3rd person (not in tfc) or 1st person, playidle on sexout idles does not work on the player, just like the wiki says. Not sure what this means for 1st person anims, or non-vanilla anims, but playidle definitely looks like one of those things the wiki doesn't know much about, and what it does know looks wrong Yay! I don't need remaining time in the fact' date=' just the real duration of sex, [/quote'] I can only give that to you if lust isn't involved. It manipulates the time as it's running. Also any other mod can manipulate it the same way, by adding a pausing the act or ending it early. but that could help me also. Why I need it is very simple, in the fact. In my mod some tokens are working like this: do something with actor (cios equipStrapon), than wait for sex to end (using var04), and after sex do something else (dispel equipStrapon). All that is working very good and simple, You should be using the hooks for this. Either the sex callback or the global notification. What you're trying to do is easier done by: 1. add and equip strapon. You need to do this first for sexout to pick the right anim anyway. 2. start sex via cios sexoutbegin, with a token or spell callback for the actor wearing the strapon. 3. In that token or spell script, remove the strapon. Just to add, in my test version this aborting if sex is lasting too long thing is vorking as it should, but I had to use a constant (30sec), and that won't work in real world. You shouldn't even be trying this to be honest. If sex isn't stopping, or starting, it's time to find out why. Trying to work around bugs in sexout by adding kludgy hacks is a recipe for future disaster.
Borisni Posted August 16, 2012 Posted August 16, 2012 Of course that would be easier, but where would all the fun go? Besides, I'm doing just what you described, just not through callbacks (because I use them for something else), but have a token that manages different sex situations, and takes care of spells. Then, I don't really see any benefit from doing all the work with forms and lists for global notif, when I can simply wait for sex to end, inUseFlag works perfectly, and I used that for a month with no bugs whatsoever. And about the last thing, I wasn't clear on the last part of why I'm doing this. I'm not making a 'hack' to bypass bugs, I'm notifying myself what went wrong in details and sanitize, so I can try to repeat the same bug without doing cleanup from console or reloading. When I do stuff like that, I sometimes find bugs in some other mod, or vanila, and sometimes I discover that it was caused by my mistake. As you maybe remmeber, I have gremlins in my game from two days ago, and all this is directed to adressing that issue. That's allso one of the reasons I'm not updating my mods for a few days. I can't get my freshly installed game to work as it should, even without my mods. I hope I described things better now.
DoctaSax Posted August 16, 2012 Posted August 16, 2012 Can you explain a bit more? You would've also made an idle in the GECK that linked to that animation file. You just called playidle on it' date=' and it worked? You have to have done something else, because in 3rd person (not in tfc) or 1st person, playidle on sexout idles does not work on the player, just like the wiki says. [/quote'] I just dug up that test esp to make sure. It appears I did do some more stuff to get it right, although I'm not sure all of it is necessary. What I was looking for at the time was some way of getting household stuff to work on the player. Like sweeping. I made a new folder in the idle anims widget, under characters\_male\idleanims, right above the sexout folders for people although it probably works under it too, copied LooseSweeping to there. I did rename it, apparently, to somethin' like SOFOSweeping, changed the anim data from "wholebody" to "special" and checked the 'loop forever' box. And there's an IsSpellTarget condition on it too. Don't think that one makes a difference though. The reason for the spell was having an easy timer in place. I playidled SOFOSweeping on ScriptEffectStart, and playidled SexoutNGReset on ScriptEffectFinish to have it end. Spell duration was about a minute, and while active, the PC swept while standing still and walked with broom in hand while walking. Again, I can't be sure if everything I did is necessary to get it to work - just a case of tweaking stuff until it did, and not wanting to ruin a working result by reverting anything. I also have no idea whatsoever if the same would apply to 1st person stuff. But in any case, tfc was never in the picture, and the anim was never 'outside the characters folder'.
mojodajojo Posted August 16, 2012 Posted August 16, 2012 If I leave two npcs having sex in an exterior cell and go into an interior cell there are no problems' date=' however if I leave them doing it in an interior cell and I go to an exterior cell they usually get stuck in an infinite sex loop. Is this something I've screwed up on my end (again), or is it just how things are? [/quote'] -snip It's an .ini setting on my end... I put back in the original .inis and it stopped. I must have had something in there unloading nearby cells too soon or something stupid.
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 Of course that would be easier' date=' but where would all the fun go? Besides, I'm doing just what you described, just not through callbacks (because I use them for something else), [/quote'] The callbacks part is the important part. That's the only way to know, for sure, if/when sex has stopped. Running a scanner will impact performance, and can miss the switch up between acts. You can use multiple callbacks. If you're using the global hook, you can add as many spells as you like to the list. If you're using the per act callback, each actor can have their own callbacks, and the phantom 4th actor (actorX) can be used as well. Don't set any of the actors to the same ref though.. actora=alice, actorx=alice, cbspella =foo, cbspellx=bar will not work. but have a token that manages different sex situations, and takes care of spells. Then, I don't really see any benefit from doing all the work with forms and lists for global notif, when I can simply wait for sex to end, inUseFlag works perfectly, and I used that for a month with no bugs whatsoever. It won't work indefinitely, once NX can properly save and load, that is going away as well, in favor of NX vars for everything. It was a clever idea at the time (variable 04) and I implemented it before I had any real hope of save/load hooks in NX. Now that I actually have them, I don't need in game variables, tokens, or anything else to hold data. Really.. use the hooks or the normal per-call callbacks. I can add more callbacks if they are really needed, but they almost never are. One callback spell on the actor (or one token item) can have a script that looks at other vars and then hands out other tokens and casts spells, as many as it wants to. That's allso one of the reasons I'm not updating my mods for a few days. I can't get my freshly installed game to work as it should, even without my mods. I hope I described things better now. Adding more complex code to try and find bugs in already complex code sounds very counter-productive.. If sex doesn't end, there's a bug. You don't need to do automated 'cleanup'. Just hand over a 'finish now' token and then when that's done, 'removeallitems.' A 'forceav variable04 0' might be needed as well to ensure that inuse flag actually gets cleared. That said, if vanilla sexout isn't working for you, on a fresh install, with basic "proven" mods, then the problem isn't one you can solve from within a mod...
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 I made a new folder in the idle anims widget' date=' under characters\_male\idleanims, right above the sexout folders for people although it probably works under it too, copied LooseSweeping to there. I did rename it, apparently, to somethin' like SOFOSweeping, changed the anim data from "wholebody" to "special" and checked the 'loop forever' box. And there's an IsSpellTarget condition on it too. Don't think that one makes a difference though. [/quote'] Wow well that's interesting. Did you copy the .kf file out of the BSA and put it somewhere else, or did you just leave it alone? Again, I can't be sure if everything I did is necessary to get it to work - just a case of tweaking stuff until it did, and not wanting to ruin a working result by reverting anything. I also have no idea whatsoever if the same would apply to 1st person stuff. But in any case, tfc was never in the picture, and the anim was never 'outside the characters folder'. Well something 'odd' is going on for sure. I will have to do some experimenting of my own. If I don't have to move all the .kf files around and can make this work some other way, that makes things a lot easier. It sounds like you weren't actually using pickidle though (except to reset) -- you were doing what sexout does. Setup an idle anim in the GECK, with conditions, and then let the game engine pick it for you via its internal pickidle. You didn't actually ever call "playidle SOFOSweeping" in a script, right?
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 If I leave two npcs having sex in an exterior cell and go into an interior cell there are no problems' date=' however if I leave them doing it in an interior cell and I go to an exterior cell they usually get stuck in an infinite sex loop. Is this something I've screwed up on my end (again), or is it just how things are? [/quote'] -snip It's an .ini setting on my end... I put back in the original .inis and it stopped. I must have had something in there unloading nearby cells too soon or something stupid. One more bug down, damn I'm good!
DoctaSax Posted August 16, 2012 Posted August 16, 2012 Wow well that's interesting. Did you copy the .kf file out of the BSA and put it somewhere else' date=' or did you just leave it alone? [/quote'] Left it in the BSA. You didn't actually ever call "playidle SOFOSweeping" in a script, right? I did. Playidle SOFOSweeping, not pickidle. Edit: the spell script to clarify - not a pickidle in sight: scn SOFOSweepingScpt begin ScriptEffectStart player.playidle SOFOSweeping end begin ScriptEffectFinish player.playidle SexoutNGReset end
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 Hmmm that's pretty interesting, thanks for the info. I've always just thought that the conditions on an idle are ignored if PlayIdle is directly called.. don't know where I got that, but maybe it's wrong. Time to do a little experimenting.
Guest user29 Posted August 16, 2012 Posted August 16, 2012 Hmmm that's pretty interesting' date=' thanks for the info. I've always just thought that the conditions on an idle are ignored if PlayIdle is directly called.. don't know where I got that, but maybe it's wrong. Time to do a little experimenting. [/quote'] aww man. Everyone back up your sexout installs
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 Ah doesn't seem to be that.. whatever it is, going to require more digging. Doesn't work if not in TFC on a standard sexout anim.. player.setrestrained 1 player.additem xx01932D 101 1 player.playidle SexoutNGMast101FasF Just.. doesn't do anything but print the KF file name. Toggle tfc and it does as it's supposed to.
Borisni Posted August 16, 2012 Posted August 16, 2012 It won't work indefinitely' date=' once NX can properly save and load, that is going away as well, in favor of NX vars for everything. It was a clever idea at the time (variable 04) and I implemented it before I had any real hope of save/load hooks in NX. Now that I actually have them, I don't need in game variables, tokens, or anything else to hold data. Really.. use the hooks or the normal per-call callbacks. I can add more callbacks if they are really needed, but they almost never are. One callback spell on the actor (or one token item) can have a script that looks at other vars and then hands out other tokens and casts spells, as many as it wants to. [/quote'] I didn't know this, it changes things dramaticaly. If I only read all the docs I'll shift to callbacks asap, it will even make things simpler for me. Adding more complex code to try and find bugs in already complex code sounds very counter-productive.. If sex doesn't end, there's a bug. You don't need to do automated 'cleanup'. Just hand over a 'finish now' token and then when that's done, 'removeallitems.' The code is not complex, it's very simple, but that's not the point. Right now, there are very few mods that do what I need and don't have bugs, so it's the only way for me. And what's wrong with writing a symple script to test something to indicate the problem if you can't find it any other way?? And another reason is that finding out how some tings work is very amusing for me, so I've made a bunch of little mods in the last year, that I used just for testing how stuff works in this silly game. So, I'm not tring to fix anything wiht this, just to be clear on that. I am using what you called 'finish now token', it's a spell and not a token, and it does exactly what you said, removes all items and spells and resets few vars. That's what it should do, if I'm not mistaken, it's just I called it 'sanitize spell', what I guess is wrong term for this. Thank you for your time, and all nice instructions, I'll use them wisely
DoctaSax Posted August 16, 2012 Posted August 16, 2012 Hang on. Just noticed that it does point to a kf not in the bsa. The path is to the same anim but a copy that's under the groovatron's folder. Which is still under _male\idleanims though: Characters\_Male\IdleAnims\GroovyAnims\0sweeping.kf Like I said, it was 2 months ago. And all I really wanted to point out was the wiki was probably wrong In any case, here's the structure & conditions I had there:
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 I didn't know this' date=' it changes things dramaticaly. If I only read all the docs I'll shift to callbacks asap, it will even make things simpler for me. [/quote'] The hook thing is mentioned in the docs. The per-call callback usage pattern isn't, but I thought it was obvious that you could make a spell like "mySexCallback", do "set SexoutNG.CBSpellA to mySexCallback" and then inside that script do "if x then cios something elseif y then cios somethingelse elseif..." If you are the one initiating sex (calling CIOS sexoutbegin) then you should be using the per-call callback rather than the notification hook, to save on resources. The code is not complex, it's very simple, but that's not the point. Right now, there are very few mods that do what I need and don't have bugs, so it's the only way for me. What is 'what you need' a mod to do? I thought you were trying to get to the bottom of a problem with your install? It would help a lot if you could explain just what you're trying to do, if not this. There's no such thing as a 'very simple' script in gamebryo. Every single command has some kind of side effects and/or gotchas. My point is that trying to find a bug in *other* complex code (like sexout) by writing even more code, is somewhat futile. This isn't a real development environment, and we don't have nice contained unit and functional tests we can run. I have some mods that emulate this behavior somewhat, but their effacy is limited. The ones that test NX and extender calls are the most useful. And what's wrong with writing a symple script to test something to indicate the problem if you can't find it any other way?? There's always another way. All that's "wrong with it" is you may find a bug, or a solution, that is not at all what you think, if the bug is in your test script -- or caused by some interaction (usually timing) between it and the thing you're trying to test. I am using what you called 'finish now token', it's a spell and not a token, and it does exactly what you said, removes all items and spells and resets few vars. That's what it should do, if I'm not mistaken, it's just I called it 'sanitize spell', what I guess is wrong term for this. Thank you for your time, and all nice instructions, I'll use them wisely There is a spell built into sexout called SexoutNGFinishNow, which is what I was talking about, and that's the "proper" way to abort sex. Anything else risks variables getting left behind in half baked states both in the sexout quests and in NX, tokens getting left on the actors, or -- just as bad -- stuff being removed or reset that shouldn't be. SexoutNGFinishNow checks var04, removes any pause tokens on the actor, adds a SexoutNGTokenStop token, and dispels itself. The main sexout spell always watches for the stop token and will stop instantly and properly clean up after itself if it finds one.
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 Hang on. Just noticed that it does point to a kf not in the bsa. The path is to the same anim but a copy that's under the groovatron's folder. Which is still under _male\idleanims though: Characters\_Male\IdleAnims\GroovyAnims\0sweeping.kf Like I said' date=' it was 2 months ago. And all I really wanted to point out was the wiki was probably wrong In any case, here's the structure & conditions I had there: [/quote'] hmmmmmmmm
prideslayer Posted August 16, 2012 Author Posted August 16, 2012 So far the wiki doesn't seem... 'wrong'. The sexout anim group in idle anims is basically identical to what you have.. if I do what (it would seem? maybe not?) looks like the same code in the console as you describe, it doesn't work, due to not being in TFC. I have fewer and different conditions on the idle anim itself, but I don't understand how/why that should matter.
DoctaSax Posted August 16, 2012 Posted August 16, 2012 So far the wiki doesn't seem... 'wrong'. The sexout anim group in idle anims is basically identical to what you have.. if I do what (it would seem? maybe not?) looks like the same code in the console as you describe' date=' it doesn't work, due to not being in TFC. I have fewer and different conditions on the idle anim itself, but I don't understand how/why that should matter. [/quote'] Well, here's the esp (after cleaning some unrelated stuff out). If you have the groovatron's resources in place, the pc should start sweeping after activating an item on Doc Mitchell's fireplace ("list of chores") when you're in 3rd person. No tfc is called. No FNVEdit wizardry to place the anim outside the characters folder.
Recommended Posts