Tyrant99 Posted October 19, 2018 Author Posted October 19, 2018 11 minutes ago, ercramer69 said: I also just had this happen, SLAdventures was on the last member of a gangbang when a wisp appeared and then a netch showed up. The netch didn't wait for the guard to finish so sexlab was jumping back and forth between the two scenes. It runs this check before sex can start for all creatures: If PlayerRef.GetDistance(CreatureAlias.GetActorReference()) < 150 && SPCreatureSexDone.GetValueInt() == 0 && CreatureAlias.GetActorReference().IsEnabled() && !Sexlab.IsActorActive(PlayerRef) (The Player is not in a SL scene). And does this if a SL scene is playing: ElseIf Sexlab.IsActorActive(PlayerRef) && SPCreatureSexDone.GetValueInt() == 0 (The Player is in a SL scene). Debug.Notification("Your holes are already stuffed!") ClearDisableAliases() SPPheromonesQuest.Stop() NPCStopQuests() I've tested this and it worked whenever I was in a sex scene when a creature showed up. The one common denominator is you guys both reported this with SL Adventures... So maybe there's an issue with that Mod? Is Adventures calling a scene through SexLab? Or is it just calling animations directly? - The latter might not register as a SL scene... 1
ercramer69 Posted October 19, 2018 Posted October 19, 2018 3 minutes ago, Hugh Reckum said: It runs this check before sex can start for all creatures: If PlayerRef.GetDistance(CreatureAlias.GetActorReference()) < 150 && SPCreatureSexDone.GetValueInt() == 0 && CreatureAlias.GetActorReference().IsEnabled() && !Sexlab.IsActorActive(PlayerRef) (The Player is not in a SL scene). And does this if a SL scene is playing: ElseIf Sexlab.IsActorActive(PlayerRef) && SPCreatureSexDone.GetValueInt() == 0 (The Player is in a SL scene). Debug.Notification("Your holes are already stuffed!") ClearDisableAliases() SPPheromonesQuest.Stop() NPCStopQuests() I've tested this and it worked whenever I was in a sex scene when a creature showed up. The one common denominator is you guys both reported this with SL Adventures... So maybe there's an issue with that Mod? Is Adventures calling a scene through SexLab? Or is it just calling animations directly? - The latter might not register as a SL scene... They are called from sexlab I believe animations are all random. could it be that we both just happened to be in the pause between one scene ending and the next scene starting when the check went off and didn't see the character in a scene? I ask that because I think the wisp showed up just as the last scene started so the netch came like it should hit once and then that scene started.
Tyrant99 Posted October 19, 2018 Author Posted October 19, 2018 If the SexLab function got called from this Mod before it was called from the other Mod, and the other Mod doesn't have a check to prevent a scene if another scene is active, then yes, it's possible. Or maybe if the timing was just perfect and it somehow got past the Papyrus logic during the second or something that SexLab API takes to update things, then maybe, but I think the first possibility is more likely. It could be possible for other Mods to interrupt this Mod's scenes, but not the other way around, the logic is there to shut everything down and despawn the creatures if an active SexLab scene is playing when the creatures from this Mod show up...
Psalam Posted October 19, 2018 Posted October 19, 2018 I recently finished Wolfskull cave and Dead Mans Respite with Draugr Pheromones active. In both cases when the Draugr came upon me they evidently made enough noise to wake the dead (sorry I couldn't help myself) and other opponents showed up (necromancers in Wolfskull and more draugr in DMR). In both cases the new opponents did not target me until the sex was over. They did battle my follower, if that makes any difference. I do NOT have SL Adventures in my load order.
Slorm Posted October 19, 2018 Posted October 19, 2018 Thanks for the update Hugh I think there might still be some issues with the timers, though it may be more to do with cell boundary changes or possibly spawn points (I'm guessing here). If I stay in a place and wait a couple of hours the creatures spawn no problem but if I'm running (in this case from Whiterun to around Fort Amol and back) I don't seem to get any spawns at all. So I was wondering if the many cell changes are somehow disrupting the timer or whether in fact there actually is a spawn but it's a cell or two behind the pc so doesn't have a chance to catch up. Another example was with skeever pheromone, I took the carriage both ways Whiterun to Riften and back and not a sniff of a skeever anywhere I haven't tested this in depth except the static waits which are working. It could also be that I was simply unlucky, the game engine can be flaky with timers and the RNG at the best of times
Psalam Posted October 19, 2018 Posted October 19, 2018 Spoiler 5 minutes ago, Slorm said: Thanks for the update Hugh I think there might still be some issues with the timers, though it may be more to do with cell boundary changes or possibly spawn points (I'm guessing here). If I stay in a place and wait a couple of hours the creatures spawn no problem but if I'm running (in this case from Whiterun to around Fort Amol and back) I don't seem to get any spawns at all. So I was wondering if the many cell changes are somehow disrupting the timer or whether in fact there actually is a spawn but it's a cell or two behind the pc so doesn't have a chance to catch up. Another example was with skeever pheromone, I took the carriage both ways Whiterun to Riften and back and not a sniff of a skeever anywhere I haven't tested this in depth except the static waits which are working. It could also be that I was simply unlucky, the game engine can be flaky with timers and the RNG at the best of times I think you're right about the cell change. I had active Giant pheromones running from Rorikstead to Dawnstar (past Morthal). About where I would have passed Meepo (he wasn't there because I'd been this way many times before) I got a notice that I had escaped pursuit. When I came back that way later there was a giant in the road there - there is never a giant in that area otherwise!
Tyrant99 Posted October 19, 2018 Author Posted October 19, 2018 17 minutes ago, Slorm said: Thanks for the update Hugh I think there might still be some issues with the timers, though it may be more to do with cell boundary changes or possibly spawn points (I'm guessing here). If I stay in a place and wait a couple of hours the creatures spawn no problem but if I'm running (in this case from Whiterun to around Fort Amol and back) I don't seem to get any spawns at all. So I was wondering if the many cell changes are somehow disrupting the timer or whether in fact there actually is a spawn but it's a cell or two behind the pc so doesn't have a chance to catch up. Another example was with skeever pheromone, I took the carriage both ways Whiterun to Riften and back and not a sniff of a skeever anywhere I haven't tested this in depth except the static waits which are working. It could also be that I was simply unlucky, the game engine can be flaky with timers and the RNG at the best of times Have you tried turning on the debug mode? It will tell you if you're in a valid spawn location. 10 minutes ago, Psalam said: I think you're right about the cell change. I had active Giant pheromones running from Rorikstead to Dawnstar (past Morthal). About where I would have passed Meepo (he wasn't there because I'd been this way many times before) I got a notice that I had escaped pursuit. When I came back that way later there was a giant in the road there - there is never a giant in that area otherwise! Giants are just slooowww. The AI pack is set to run, but Skyrim behavior files doesn't seem to allow it unless the Giant is in combat...
Slorm Posted October 19, 2018 Posted October 19, 2018 27 minutes ago, Hugh Reckum said: Have you tried turning on the debug mode? It will tell you if you're in a valid spawn location. I have on the static test. I'll do another test run with it on the whole time but I think the whole road is wilderness unless you deviate off at Darkshade which is a dungeon. I'll get a log as well
Tyrant99 Posted October 19, 2018 Author Posted October 19, 2018 Some cells can be surprising... The timers themselves are pretty much just based on Utility.WaitGameTime()... Not much can really go wrong there.
Psalam Posted October 19, 2018 Posted October 19, 2018 Spoiler 11 minutes ago, Hugh Reckum said: Some cells can be surprising... The timers themselves are pretty much just based on Utility.WaitGameTime()... Not much can really go wrong there. Should I add that to my list of famous last words? ?
Slorm Posted October 19, 2018 Posted October 19, 2018 I think we have a problem. I was infected with skeever pheromone, debug was on and ran from Whiterun to Fort Amol and back. Attack setting was on 2.5 hours per vanilla load of SP and round trip takes something over 4 game hours. During that time for which I was continuously running except for a couple of few second stops there were no debug messages on screen, the only one I saw was after first taking the pheromone in Whiterun where it say's something about NPC's. All the way there and back there were no further messages on screen. I took a log, not sure if it'll be of any use. As a further thought, I was wondering if the pc is moving then it's somehow blocking the whole process from firing Papyrus.0.log EDIT: Going back to the Carriage, if you recall I reported there wasn't an issue when being chased by ash hoppers, I noticed on the trip to Riften and back nothing spawned so it seems that something in the trigger mechanism has changed perhaps
Tyrant99 Posted October 19, 2018 Author Posted October 19, 2018 I noticed in the logs that it was producing some none callstacks, this script should fix that at least: SPPlayerAliasBaseScript.pex As for the timer, there is a function where if something broke for some reason it will cycle through a couple of times before resetting... Don't see why running would cause an issue though.
Slorm Posted October 19, 2018 Posted October 19, 2018 21 minutes ago, Hugh Reckum said: I noticed in the logs that it was producing some none callstacks, this script should fix that at least: SPPlayerAliasBaseScript.pex As for the timer, there is a function where if something broke for some reason it will cycle through a couple of times before resetting... Don't see why running would cause an issue though. I'll give that a try but I may have stumbled onto the problem As an extra test I went to my normal test place at Fort Greymoor which is wilderness and waited a couple of times for a few hours and nothing happened and no debug messages. Tried drinking some water which gave me a new pheromone for Hagraven and everything started working normally. I was originally infected while in Whiterun so I'm wondering if that is the problem and the infection place of origin is causing the problem We are tantalisingly close, I can feel it in my water
Slorm Posted October 19, 2018 Posted October 19, 2018 By Jove I think we have it, a Buggity Bug Bug I commenced the test from scratch, clean pc no pheromones, debug on stealth off equipped with a hagraven and skeever pheromone. I was in Whiterun and to prove my theory took the Hagraven pheromone (which worked last time) COC'd to Fort Greymoor waited for 3 hours and the same as before no debug messages. I then took the skeever pheromone and it started working immediately and in a few seconds a Hagraven appeared. So if a pheromone is imbibed in a safe place it seems that it doesn't work even in an unsafe place (like wilderness) until another pheromone is triggered. The one thing I don't know is if the skeever pheromone still works or if it takes on the issue with the pheromone ingested in Whiterun. I've attached another log Papyrus.0.log I love it 100% reproducible not one of those nasty stinky intermittent bugs
Slorm Posted October 20, 2018 Posted October 20, 2018 I'm going to call it a night but before I go I did some further testing and you'll not like this I'm afraid though it does confirm my posting above. I started clean pc in wilderness (Fort Greymoor) and took skeever pheromone. Skeevers spawned immediately and had some fun. Ran towards Fort Amol after an hour or so gametime stopped near Hillgrund's Tomb (confirmed wilderness) but no further attacks. Waited 1 hour 3 times in a row still nothing. I then took hagraven pheromone, immediately process fired and skeevers appeared. To sum up, if pheromone is ingested in a safe area then nothing happens until another is ingested in an unsafe area. If pheromone is ingested in an unsafe area it will fire once only but not again until another pheromone is ingested. Interpolating the above I would say that a pheromone is only firing once on ingestion. As it can't operate in a habitable area (Whiterun) nothing happens, in wilderness it will just fire the once and no longer until another pheromone is ingested. Here's another log, now I'm going to bed, nighty night Papyrus.0.log
nigwriter Posted October 20, 2018 Posted October 20, 2018 6 hours ago, Hugh Reckum said: I initially had disableplayercontrols running throughout sex scenes, and that has a built in feature to disable attacks vs the Player. But, apparently it was messing with SLSO UI, so I renabled it more quickly so it would fix that compatibility. But, I guess I could add a check so it will only reenable early if SLSO is installed. In that case, without SLSO you will be safe from attacks during sex, but with SLSO attacks could happen but there won't be a UI issue... Guess that's the best I can do atm. Thank you SO much. I know it's a pain in the ass getting the balance right, but the creativity and hard work is very much appreciated.
PubliusNV Posted October 20, 2018 Posted October 20, 2018 I'm still on version 1.2.1 of this mod. Somewhere between Markarth and Broken Tower Redoubt my PC ingested giant spider pheromones. On the bridge approaching Broken Tower from Karthwasten a giant frozen spider appeared and attacked from behind (i.e. I didn't see it approach). It did some minor attacks, but instead of running a sex scene as I expected it continued to do its minor attacks until it accidentally hit my follower, who then attacked and killed it. Inside the final zone of Broken Tower (where the Sybil is being held) another spider appeared and the same thing happened. I've never had a giant spider attack before, so I don't know how long the initial attack should take. But it did seem like it was taking a lot longer than it should. One thing that could have messed things up is that in both cases my PC had been in combat immediately before the spider showed up and had a flame cloak spell active, so the spider could have taken damage from that. Don't know if that would have made a difference.
Tyrant99 Posted October 20, 2018 Author Posted October 20, 2018 @Slorm Quick question, when you were starting Pheromones for the first time, was it done by drinking a specific pheromones potion in all cases? I looked through the scripts, and if the first pheromones were started by an attack or by a proc from a random drink, it looked like it was hooking into the loop correctly. But the specific potions may not have been, so I updated the script... Try this script out and see if your issue goes away: SPPlayerAliasBaseScript.pex 3 hours ago, nigwriter said: Thank you SO much. I know it's a pain in the ass getting the balance right, but the creativity and hard work is very much appreciated. YW 1 hour ago, PubliusNV said: I'm still on version 1.2.1 of this mod. Somewhere between Markarth and Broken Tower Redoubt my PC ingested giant spider pheromones. On the bridge approaching Broken Tower from Karthwasten a giant frozen spider appeared and attacked from behind (i.e. I didn't see it approach). It did some minor attacks, but instead of running a sex scene as I expected it continued to do its minor attacks until it accidentally hit my follower, who then attacked and killed it. Inside the final zone of Broken Tower (where the Sybil is being held) another spider appeared and the same thing happened. I've never had a giant spider attack before, so I don't know how long the initial attack should take. But it did seem like it was taking a lot longer than it should. One thing that could have messed things up is that in both cases my PC had been in combat immediately before the spider showed up and had a flame cloak spell active, so the spider could have taken damage from that. Don't know if that would have made a difference. I guess there's a couple possiblities. One is, make sure that you have some animations installed for giant spiders, otherwise the SexLab scene will fizzle out before ever launches. The other is, once a creature is attacked, sometimes the base game behavior will override the AI, and the creature can become hostile 'for real', which could potentially keep things from firing up. One other thing is, the scenes starting is based on how close the creatures gets to the Player. But, the 'hitbox' of the creatures, as designed by Bethesda, may not match the actual creature model very well, so certain bigger creatures will have a little bit harder time getting close enough to the Player. (Mammoths for instance). I made the range requirement more generous to the creatures in an earlier update to compensate for this, bumped it from 125 to where it is right now at 250 distance units, and that seems about right. Mammoths and Giant Spiders would work OK in my testing. But I don't want to make the distance too much larger for balance reasons, or creatures might capture the Player from clear accross the room, and that feels less fun. But, depending on how the hitboxes are designed compared to the model, it's possible that some bigger creatures might have a little bit of a harder time getting close enough to the Player... Just something to watch out for.
Reesewow Posted October 20, 2018 Posted October 20, 2018 28 minutes ago, Hugh Reckum said: But, depending on how the hitboxes are designed compared to the model, it's possible that some bigger creatures might have a little bit of a harder time getting close enough to the Player... Just something to watch out for. While I haven't tested this recently, I did notice on earlier test runs that on occasion a creature would get stuck in "attack" mode but not actually be close enough to trigger a sex scene, unless the player actively moved into their hitbox. This typically happened with the larger creatures like mammoths or giants, altho I could also see it being an issue with "longer" creatures like horses and giant spiders (which often have issues with Sexlab itself as they tend to push the player away when trying to walk close enough to start a sex scene, until Sexlab gives up and teleports both actors). It was also the type of thing that is more obvious in test mode than actual gameplay, since a PC standing still is more likely to have the creature stop just out of trigger range and start flailing than a PC running around doing other stuff and getting suprised. Seems to be one of those things where there may be a trade-off. Personally I wouldn't mind the capture zone to be big enough to dodge the issue, but it certainly could make it unfair to dodge some of the faster creatures. The slow-walking giants and mammoths however IMO need all the help they can get catching the player.
Slorm Posted October 20, 2018 Posted October 20, 2018 6 hours ago, Hugh Reckum said: @Slorm Quick question, when you were starting Pheromones for the first time, was it done by drinking a specific pheromones potion in all cases? I looked through the scripts, and if the first pheromones were started by an attack or by a proc from a random drink, it looked like it was hooking into the loop correctly. But the specific potions may not have been, so I updated the script... Try this script out and see if your issue goes away: SPPlayerAliasBaseScript.pex Thanks Hugh I tried the new script and it's definitely an improvement as the cycle now repeats correctly after taking a pheromone. Unfortunately it led to another problem which I was able to test both with pheromones and by getting one through drinking water (results seem to be the same for both. Taking a Pheromone (attack time set at 2 hours) First ! took a skeever pheromone, skeevers appeared immediately and had fun. Waited 2 hours cycle repeated correctly again I then took hagraven pheromone, it shows in the effects menu but nothing happens Advanced time 1 hour nothing Advanced time 1 hour skeevers spawn Advanced time 2 hours skeever spawn. I then reloaded and repeated the test but (taking the hagraven pheromone first and got the same result except this time only the hagravens would spawn Drinking Water (Chance set to 100%) Deactivated all creatures except skeevers and drank water, skeevers appeared immediately and had fun. Waited 2 hours cycle repeated correctly again Deactivated skeevers, activated hagraven in menu and drank water, again it shows in the effects menu but nothing happens Advanced time 1 hour nothing Advanced time 1 hour skeevers spawn So it looks like only the first ingested pheromone time cycle is operating rather than having multiple cycles (one for each infection)
Tyrant99 Posted October 20, 2018 Author Posted October 20, 2018 25 minutes ago, Slorm said: Thanks Hugh I tried the new script and it's definitely an improvement as the cycle now repeats correctly after taking a pheromone. Unfortunately it led to another problem which I was able to test both with pheromones and by getting one through drinking water (results seem to be the same for both. Don't think that's enough for confirming a mathematical pattern. I've flipped quarters before that have come up heads 10 times in a row for instance... They were added to the active Formlist or they wouldn't be spawning, and it literally does this if in a wilderness cell: int RndCreature = SPActiveCreatures.GetSize() - 1 RndCreature = utility.RandomInt(0, RndCreature) If PlayerRef.GetCurrentLocation() == None (SPCurrentCreature.AddForm(SPActiveCreatures.GetAt(RndCreature))) Utility.Wait(2.0) EvaluateForms() Return That's grabbing the size of the Formlist and getting a fully random result out of the index. It works the same no matter how the pheromones get applied... So it should be fully random in wilderness cells. I'd suggest trying it in a wilderness cell with more pheromones active simultaneously, maybe 7-8, if you got the same result 4-5 times in a row, then there's more likely a mathematical pattern.
Slorm Posted October 20, 2018 Posted October 20, 2018 35 minutes ago, Hugh Reckum said: Don't think that's enough for confirming a mathematical pattern. I've flipped quarters before that have come up heads 10 times in a row for instance... They were added to the active Formlist or they wouldn't be spawning, and it literally does this if in a wilderness cell: int RndCreature = SPActiveCreatures.GetSize() - 1 RndCreature = utility.RandomInt(0, RndCreature) If PlayerRef.GetCurrentLocation() == None (SPCurrentCreature.AddForm(SPActiveCreatures.GetAt(RndCreature))) Utility.Wait(2.0) EvaluateForms() Return That's grabbing the size of the Formlist and getting a fully random result out of the index. It works the same no matter how the pheromones get applied... So it should be fully random in wilderness cells. I'd suggest trying it in a wilderness cell with more pheromones active simultaneously, maybe 7-8, if you got the same result 4-5 times in a row, then there's more likely a mathematical pattern. Ahh spot on, that did the trick, RNG has always been prone to clustering in Skyim. Tried with 8 active and got something different each time, so looks like we're running well now (I'm assuming there's only one time cycle running for all active creatures rather than each having their own separate cycle) I've attached a log as there are still some of those "ERROR: Cannot call Delete() on a None object, aborting function call" items, not sure if they matter or not Papyrus.1.log
Tyrant99 Posted October 20, 2018 Author Posted October 20, 2018 34 minutes ago, Slorm said: Ahh spot on, that did the trick, RNG has always been prone to clustering in Skyim. Tried with 8 active and got something different each time, so looks like we're running well now (I'm assuming there's only one time cycle running for all active creatures rather than each having their own separate cycle) Yeah, they're all running on the same timer, because otherwise it would be... madness... lol. I mean, if you had a couple dozen pheromones at once, they'd be waiting in line like a department store on black Friday. I don't think those errors would effect much, but, it's also a bit cleaner to not have them... Probably makes the script slightly more efficient too... So here you go: SLPheromonesControlScript.pex
Slorm Posted October 20, 2018 Posted October 20, 2018 1 hour ago, Hugh Reckum said: Yeah, they're all running on the same timer, because otherwise it would be... madness... lol. I mean, if you had a couple dozen pheromones at once, they'd be waiting in line like a department store on black Friday. I don't think those errors would effect much, but, it's also a bit cleaner to not have them... Probably makes the script slightly more efficient too... So here you go: SLPheromonesControlScript.pex Thanks Hugh Just tested and everything is working. There are still a couple of stack error warnings but most are gone now. I tested with chance at 100% skeever only in Breezehome so there's no spawn at that point (Habitable), then COC'd to wilderness test spot and waited 3 hours when it fired. Attached log below Papyrus.0.log
Slorm Posted October 20, 2018 Posted October 20, 2018 Oh no, it's me again, not a bug just a suggestion I think the chase speed needs to be faster as it's very easy for the pc to outrun the attacker. For example, I drank some water and got a hagraven but as I'd run on before she spawned she was a long way behind me and was moving quite slowly so never had a chance to get me . Tried again and got a troll and although it spawned closer as I'd dawdled I could easily out run it and the only way for some fun was to let it catch me I remember having this issue with the bandit chase in DH and from memory we got round it by speeding up the chasers to 125% of the pc speed. The idea was that the pc could still escape (barely) but she would need to use sprint a hell of a lot to get away with it. The other alternative might be to spawn directly where the pc is (or in front of the pc if it's possible to detect the direction she's facing)
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