Guest tomm434 Posted June 25, 2014 Posted June 25, 2014 No, I didn't edit any script since I named all mutants according to their references(right before beta14). Nothing odd with player. I have no scripts running in gamemode block which affect player(at least from my mod).
prideslayer Posted June 25, 2014 Author Posted June 25, 2014 Yeah I asked that before I saw my idiocy, sorry. 21 is up, idiocyfix. Lets see how it fails this time!
Guest tomm434 Posted June 25, 2014 Posted June 25, 2014 First sex is okay. Second is the same(sounds). Sexout21.rar
nyaalich Posted June 25, 2014 Posted June 25, 2014 Silly, tomm. He's not asking how good the sex was. >.> <.<
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 Ok, we're almost there. Another few minutes to another beta. edit: maybe I'm gonna hulkrage soon. scof pre-truncation becoming.. more prevalent and problematic.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 2.6.85b22 in OP - watch your refs! They might be.. THE SAME (dun dun dun)
Guest tomm434 Posted June 26, 2014 Posted June 26, 2014 I get the same result. He's not asking how good the sex was. oh, you got me there. Sexout22.rar
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 Ok, thanks for keeping at it. I know what's going on, just not why. Something is smoking the actid, or failing to set/copy it, at times. The only common factor I see right now is that whenever it happens, it's because the CIOS was done on an actor not involved in the act.. e.g. the last one that failed in the log was supposed to be Mutant06 + Sydney, and the spell to start it was cast on the player. That's abnormal but should work fine, unless the player is already involved in another act and that act ending is clearing out the vars.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 Ah messed up some clears. Meant to replace them, wrote the new code, forgot to take the old code out.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 2.6.85b23 in OP - remove old wrong code. 23rd time's a charm? hah. unlikely!
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 I just need to pay more attention to what I'm doing. Been staring at this too many hours.. days.. etc. heh. You'll nave another one in a minute.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 2.6.85b24 in OP - The sanitizer CIOS for actual sex now cast on correct actor (one of a/b/c) regardless of who it was initially cast on. NX spelltarget var updated. A note to all if I wasn't clear about this -- Sexout:Start now goes away pretty rapidly when sexout starts. It first gets a new actID and copies Sexout:Start::* to Sexout:Start:{actid}::*, removes Sexout:Start::*, then casts the sanitizer. When the sanitizer is ready to proceed (if it doesn't abort), it copies Sexout:Start:{actid}:: to Sexout:Started (on all involved actors, even X), clears Sexout:Start:{actid}::, and casts the main processing effect. Code looking for Sexout:Start NX vars should switch to Sexout:Started instead. I had to rename it so that subsequent misbehaving calls (that do not check inuse) did not stomp on the NX vars sexout itself still needs internally for a while.
Guest tomm434 Posted June 26, 2014 Posted June 26, 2014 Prideslayer, it works! I ran scene 2 times to make sure. From here on in I consider 24 to be my lucky number. I would change my nickname to Tomm424 right now but I'm afraid that people won't recognize me if I do that. There is only one thing - in 12 stage sex with supermutan01 for player didn't happen. (on both tries) Everything else works!! I'm sure you're happy now. ps. and I noticed bigger delay(about 1 second) between player undressing and sex starting. I guess this happens because of new system. Sexout24.rar
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 Glad it's working, I will look into that issue about stage12 sex. Glad we're making some progress! The undressing delay should be roughly the same as the old one, but I did rewrite it. The more items the character is wearing, the longer it takes. It's one of those things I want to toy with. I can definitely make it faster (it only removes a max of one item per frame right now) but that may introduce more bugs, so I'm waiting until current issues are solved.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 The stage12 issue actually started before that.. I'm seeing echos of the same buggy.. stuff there still. I will look more in depth tomorrow. fnSoCSv: Heelka (00000014) 'Sexout:Start:33::' -> MS15SuperMutant06RotundaRef (28151B83) 'Sexout:Started::' fnSoNXSEVFo MS15SuperMutant06RotundaRef (28151B83) Sexout:Started::spellTarget MS15SuperMutant06RotundaRef (28151B83) fnSoNXClr Sexout:Start:33:: MS15SuperMutant06RotundaRef (28151B83) fnSoCSv: Heelka (00000014) 'Sexout:Start:33::' -> Heelka (00000014) 'Sexout:Started::' fnSoNXSEVFo Heelka (00000014) Sexout:Started::spellTarget MS15SuperMutant06RotundaRef (28151B83) fnSoNXClr Sexout:Start:33:: Heelka (00000014) SexoutNGBES (0): SES A=MS15SuperMutant01RotundaRef (060205DE) CBD=<no name> (00000000) SexoutNGBES (0): SES B=Sydney (06003A77) CBD=<no name> (00000000) SexoutNGBES (0): SES C=<no name> (00000000) CBD=<no name> (00000000) SexoutNGBES (0): SES X=<no name> (00000000) CBD=<no name> (00000000) Those 0's in the last 4 lines at the start indicate the actid was again lost somehow. That is probably related to problems in followup acts. The purpose of that number is to avoid collisions between acts, but if more than one act thinks it's 0.. well.. collision time. The clears look like they fired in the right order this time though so it needs a more thorough investigation.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 actually looking at it, I bet it's still the same problem. The call sorter (CSE) needs to pass the act ID that it moved all the NX vars into on to the sanitizer (SAN). Currently it does this by setting an NX var on the target before CIOSing the SAN. SAN copies that value (to find where the other NX vars were copied to) and then clears the NX var. If somehow the same actor was involved in both acts, one may clear the var the other needs (or the vars overwrite each other). That is what is happening here it seems. I need a better way to tell SAN the actID. Edit: With the UDFs taking care of the maximum script length issue, maybe it's time for me to roll CSE and SAN back into a single spell. That should alleviate the problem. I don't need to pass the data to a spell if I don't need to cast the spell in the first place.
Halstrom Posted June 26, 2014 Posted June 26, 2014 WOOT! Well done for your perseverance guys, have a cookie
Guest tomm434 Posted June 26, 2014 Posted June 26, 2014 I see what you did with Undress token. So, you think that if you replace all "elseif 18 == nStage" with "if 18 == nStage", there might be problems?
nyaalich Posted June 26, 2014 Posted June 26, 2014 A note to all if I wasn't clear about this -- Sexout:Start now goes away pretty rapidly when sexout starts. It first gets a new actID and copies Sexout:Start::* to Sexout:Start:{actid}::*, removes Sexout:Start::*, then casts the sanitizer. When the sanitizer is ready to proceed (if it doesn't abort), it copies Sexout:Start:{actid}:: to Sexout:Started (on all involved actors, even X), clears Sexout:Start:{actid}::, and casts the main processing effect. Code looking for Sexout:Start NX vars should switch to Sexout:Started instead. I had to rename it so that subsequent misbehaving calls (that do not check inuse) did not stomp on the NX vars sexout itself still needs internally for a while. To verify: SAN is cast before callbacks, so timings aren't going to be fucked up, right? That is, no need to worry that somehow CBs are going to be looking for Started vars before they exist, right? EDIT: Tried w/ Resize, and it seems to work as it did before. Just paranoid/good to verify. You may want to add this/update the API OP. And by "may want to" I mean "reduce future 'why isn't this working?'". That said, I do wonder how many old mods that are still in use have stopped being updated post-NX introduction. Hence, their chance of being broken. EDIT EDIT : P : I imagine that there is, but I didn't see it in skimming. Is there a way for a mod to get the current version of SO and possibly which beta it is, if applicable? Thought maybe I should add a message to tell people to download the right version of Resize if they're using the wrong version of it for the version of SO that they're using.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 I see what you did with Undress token. So, you think that if you replace all "elseif 18 == nStage" with "if 18 == nStage", there might be problems? That should work fine, I'll just wait to start trying that kind of stuff until I'm on the 86 cycle. What I found some time ago is that because armor/clothing can have it's own scripts/effects and wearing/removing causes a graphics update, it was best to not try them all at once.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 A note to all if I wasn't clear about this -- Sexout:Start now goes away pretty rapidly when sexout starts. It first gets a new actID and copies Sexout:Start::* to Sexout:Start:{actid}::*, removes Sexout:Start::*, then casts the sanitizer. When the sanitizer is ready to proceed (if it doesn't abort), it copies Sexout:Start:{actid}:: to Sexout:Started (on all involved actors, even X), clears Sexout:Start:{actid}::, and casts the main processing effect. Code looking for Sexout:Start NX vars should switch to Sexout:Started instead. I had to rename it so that subsequent misbehaving calls (that do not check inuse) did not stomp on the NX vars sexout itself still needs internally for a while. To verify: SAN is cast before callbacks, so timings aren't going to be fucked up, right? That is, no need to worry that somehow CBs are going to be looking for Started vars before they exist, right? EDIT: Tried w/ Resize, and it seems to work as it did before. Just paranoid/good to verify. Yes, SAN comes before all that. You may want to add this/update the API OP. And by "may want to" I mean "reduce future 'why isn't this working?'". I've been working on a rewrite of the whole thing. That said, I do wonder how many old mods that are still in use have stopped being updated post-NX introduction. Hence, their chance of being broken. EDIT EDIT : P : I imagine that there is, but I didn't see it in skimming. Is there a way for a mod to get the current version of SO and possibly which beta it is, if applicable? Thought maybe I should add a message to tell people to download the right version of Resize if they're using the wrong version of it for the version of SO that they're using. SexoutNG.nVerMaj == 2, SexoutNG.nVerMin == 6, SexoutNG.nVerRelN == 85.. You only really have to check nVerRelN, it never goes down.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 SexoutNG.iBetaN That number (and nVerMin) will both reset to 0 on occasion. nVerMaj and nVerRelN only ever go up.
prideslayer Posted June 26, 2014 Author Posted June 26, 2014 Sweet jesus.. first test after breaking the SAN functions out into UDFs, putting them in CSE, and updating CSE to do the old SAN waitloop (and blanking SAN spell/script in the process)... worked. Two acts in a row with the freeze test. That's what I like to see. Got a UDF error to iron out but act proceeded as normal. Debugging things like this is really tedious! Error in script 0c097aa1 Operator == failed to evaluate to a valid result File: Sexout.esm Offset: 0x7E85 Command: <unknown>
Recommended Posts