Jump to content

GECK/NVSE - Cell Depth


srayesmanll

Recommended Posts

I've being looking through some of the GECK and NVSE ref based command (GetFirstRef, GetFirstRefInCell, etc). They have a parameter that I cannot find much info on called "cell depth". I've found a couple of vague references on the web, but I nothing that specified what it is or what values are normally used. Can someone give some quick guidance on it? Thanks.

Link to comment

You use that param to tell the command how many cells away (a radius) to scan.

 

The whole world is broken up into cells. By default it will only scan one cell (the cell the ref is in) and will not return references in other cells -- which may mean a reference that's just 2 feet away, if you're close to a cell border.

Link to comment

So to make sure I understand:

 

1) a cell depth of 0 would be ONLY the specified cell.

2) a cell depth of 1 would be the specified cell plus 1 cell away. Assuming a perfect rectangle for cells, this would would result in 9 cells total being examined (specified cell in the center plus 8 adjacent cells in the typical tic-tac-toe pattern - otherwise known as the Brady Bunch effect)

3) a cell depth of 2 would expand this to each cell adjacent to the previous 9 cells, for a total of 25 cells.

 

Ok this makes sense. So unless I need a ref for something that might be "miles" away, limiting to 1 is the safest bet to get nearby refs to cover being near a cell border. Thanks for the info, prideslayer. You have been a great help as usual.

Link to comment

Yeah, that's how it works. I should adjust the sexout scanner to scan with a depth of 1, while we're on the subject. Depth of 1 is enough for just about everything, save weird mods like HUDs displaying the location of NPCs and stuff like that.

 

Interior spaces are always just one cell. To venture into another, you need to go through a loading screen doorway, and (I don't think) interior cells that are physically adjacent are always adjacent when it comes to scanning.

Link to comment

prideslayer - Couple of questions if your not too busy (noticed you just updated SexoutNG):

 

1) What is the depth currently set to for the scanner?

 

2) I've been looking at the Scanner API info located in the main sexoutNG thread, and it looks like this might be the beginnings of what I was looking for to help with the GB scenario in my Rapist mod. I wanted to ask if creatures were included in the scan. I swear I just read 5 minutes ago that they weren't included in the formlist, but I can't find where I read that so I thought I'd ask.

 

By the ways, thanks for the API and other documentation in the SexoutNG thread. They have been really helpful.

Link to comment

prideslayer - Couple of questions if your not too busy (noticed you just updated SexoutNG):

 

1) What is the depth currently set to for the scanner?

0 (it doesn't set one). I'm going to bump it to 1 for the next release.

 

2) I've been looking at the Scanner API info located in the main sexoutNG thread' date=' and it looks like this might be the beginnings of what I was looking for to help with the GB scenario in my Rapist mod. I wanted to ask if creatures were included in the scan. I swear I just read 5 minutes ago that they weren't included in the formlist, but I can't find where I read that so I thought I'd ask.

[/quote']

 

All NPCs, including creatures, are included in the scan, it is a getfirst/getnextref on type 200 which is just 'actor'. Initially it was going to skip creatures that did not have an animation, but I never got around to adding that. If you turn on debug mode for sexout in MCM it will print a message for each actor it adds -- but it only does this once every 5 seconds, to prevent spam from the scanner which runs 10 times a second.

 

By the ways, thanks for the API and other documentation in the SexoutNG thread. They have been really helpful.

 

You bet!

Link to comment
Guest Loogie

I would check again to see if creatures are picked up. I tried with Violet's dogs and the feral ghouls in the sewers, neither seemed to respond.

Link to comment

I just now saw there are other (different) types I may/should use.. 200 is actor but there is also..

 

42 - NPC

43 - Creature

44 - LeveledCreature

45 - LeveledCharacter

 

It's possible that NVSE added 200 and 201 itself and did not include them. I can scan for those types as well though.. guess it's time for another beta.

Link to comment

I knew I read it somewhere, it was when I was looking at Sewer Slave.

 

You know it might not be a bad idea to make these an option - do "All" by default, but have a SexoutNG variable that can be set to NPC or Creature. Not sure if the "Leveled" options would be necessary as separate options, but as we say at work, "more options is more (work for us)". Maybe also a setting to change default cell depth (although I think changing the default to 1 is probably good enough).

Link to comment

It would be a massive pain in the ass (at present) to have the option to choose different settings for the scanner on a per-mod basis, just FYI. It would be very easy on the other hand to have one setting for all mods that is controlled by the player. The only real ways to implement the first version are either:

 

1. Registration via the NVSE extender. This will work fine but you'll have to do it in a restarted/loaded block for now, on every init, until the save/load hooks are in place.

 

2. I duplicate the scanner into at least two different scanners; the current one, and one that scans for 43. This would require more formlists and so on of course. I doubt 42 (NPC) is needed, as it seems to pick them up fine already.

 

First step is going to be just changing that hard coded 200 to a variable so it can be manipulated in the console for testing purposes. Just loading sexout (and no sexout mods) and turning debug mode on in MCM will be enough to see in the console if creatures etc. are being picked up or not. Will put this in the next beta, probably tomorrow.

Link to comment

prideslayer - In a couple of my posts, you mentioned a couple of changes that you were going to get into the next beta. Did you have a chance to add them? Specifically:

 

1) From this post - setting the default on the scanner to 1 for cell depth.

 

2) From http://www.loverslab.com/showthread.php?tid=9695 - the "sexoutReady" quest variable. You may have added that to a previous release, but I'm currently at work and cannot check. It wasn't mentioned in the release notes.

Link to comment

You bet.

 

As a bit of a teaser, I think I will be able to fairly easily get away with a 3rd calling convention to sexout that works as transparently as the two that already exist. In the early versions, before I started work on it, everything was done through "set Sexout....". When I initially introduced NG, I (stupidly, in retrospect) introduced a new spell too, SexoutBeginNG... and then a third, SexoutBeginNGRnd.. and then had an uphill fight, once I realized my mistake, getting everyone back to using just SexoutBegin and having the script auto-detect which calling method was used.

 

So before I actually make the 3rd version (which will, of course, still be invoked via SexoutBegin), I need to make sure I'm not high on crazy pills.

 

In any case my thought is to simply use NX vars rather than Sexout/SexoutNG quest vars to initiate the sequence. Code like this:

 

set SexoutNG.actorA to tom
set SexoutNG.actorB to alice
set Sexout.Raper to tom
set Sexout.anim to 123
set SexoutNG.CBDialogA to HowWasThat
set ....
tom.cios SexoutBegin

 

Becomes

 

tom.NX_SetEVFl "Sexout:Start::CallVer" 1
tom.NX_SetEVFo "Sexout:Start::ActorB" alice
tom.NX_SetEVFl "Sexout:Start::IsRape" 1
tom.NX_SetEVFl "Sexout:Start::anim" 123
tom.NX_SetEVFo "Sexout:Start::CBDialogA" HowWasThat
...
tom.cios SexoutBegin

 

ActorA is implied as the ref that the vars are set on and the cios called on -- both must be the same obviously.

 

I believe this would reduce the variable contention to nearly zero.

 

The '::' is a 'maybe' thing, intended in this example to act as a placeholder for some kind of transparently generated identifier or act #. I'm not sure yet.

 

The ideal situation is:

 

1. You can queue up multiple acts on a given actor and have sexout iterate through them all.

 

2. Multiple scripts calling sex acts on the same actor would fire in sequence, rather than the first one 'winning' and the rest generating a 9.2.

 

Again there are problems with it that I can see that I'm trying to resolve before acutally "publishing" the new calling convention.

Link to comment

Love the idea. Being able to queue up the sex acts would take a load off the scripting. I am working on the GB part of the mod and it's kicking my butt. I think I have the scanning working. I decided to go with my own scan rather than the sexout version since I didn't need something that fired every 1/10 seconds. I basically fire off the scan after closing a normal dialog, or after exiting the companion wheel. Early tests seem to show the form list being created. Still have to do more tests (need some more followers) plus I don't have any slaves yet to test those. Currently I'm having a problem using the Variable04 FlagInUse option you added recently. I've already posted a question in the main sexoutNG mod about this so you may have answered by the time I've typed this one, so I won't double post. Again, love where you are going. Oh, it seems like this would also allow multiple sex acts to be applied to multiple npcs - for example, having Sunny give a bj to one npc, while my PC was getting a hummer from another npc. Do you think that would be possible with this change? If so, I see a rape orgy for the mod...(Damn my dark soul)

Link to comment
Guest Loogie

You bet.

 

As a bit of a teaser' date=' I think I will be able to fairly easily get away with a 3rd calling convention to sexout that works as transparently as the two that already exist. In the early versions, before I started work on it, everything was done through "set Sexout....". When I initially introduced NG, I (stupidly, in retrospect) introduced a new spell too, SexoutBeginNG... and then a third, SexoutBeginNGRnd.. and then had an uphill fight, once I realized my mistake, getting everyone back to using just SexoutBegin and having the script auto-detect which calling method was used.

 

So before I actually make the 3rd version (which will, of course, still be invoked via SexoutBegin), I need to make sure I'm not high on crazy pills.

 

In any case my thought is to simply use NX vars rather than Sexout/SexoutNG quest vars to initiate the sequence. Code like this:

 

set SexoutNG.actorA to tom
set SexoutNG.actorB to alice
set Sexout.Raper to tom
set Sexout.anim to 123
set SexoutNG.CBDialogA to HowWasThat
set ....
tom.cios SexoutBegin

 

Becomes

 

tom.NX_SetEVFl "Sexout:Start::CallVer" 1
tom.NX_SetEVFo "Sexout:Start::ActorB" alice
tom.NX_SetEVFl "Sexout:Start::IsRape" 1
tom.NX_SetEVFl "Sexout:Start::anim" 123
tom.NX_SetEVFo "Sexout:Start::CBDialogA" HowWasThat
...
tom.cios SexoutBegin

 

ActorA is implied as the ref that the vars are set on and the cios called on -- both must be the same obviously.

 

I believe this would reduce the variable contention to nearly zero.

 

The '::' is a 'maybe' thing, intended in this example to act as a placeholder for some kind of transparently generated identifier or act #. I'm not sure yet.

 

The ideal situation is:

 

1. You can queue up multiple acts on a given actor and have sexout iterate through them all.

 

2. Multiple scripts calling sex acts on the same actor would fire in sequence, rather than the first one 'winning' and the rest generating a 9.2.

 

Again there are problems with it that I can see that I'm trying to resolve before acutally "publishing" the new calling convention.

[/quote']

 

Would this also allow calling of simultaneous sex acts on multiple characters? I am sick unto death of using perfectly timed tokens to get the player, Cass, Veronica and Sunny into the act at the same time.

Link to comment

When I initially introduced NG' date=' I (stupidly, in retrospect) introduced a new spell too, SexoutBeginNG... and then a third, SexoutBeginNGRnd.. and then had an uphill fight, once I realized my mistake, getting everyone back to using just SexoutBegin and having the script auto-detect which calling method was used. [/quote']

 

Erm, so we're not supposed to use sexoutNGBegin? First I heard of that :D

Link to comment

When I initially introduced NG' date=' I (stupidly, in retrospect) introduced a new spell too, SexoutBeginNG... and then a third, SexoutBeginNGRnd.. and then had an uphill fight, once I realized my mistake, getting everyone back to using just SexoutBegin and having the script auto-detect which calling method was used. [/quote']

 

Erm, so we're not supposed to use sexoutNGBegin? First I heard of that :D

 

hahah no.. :D

 

Everyone is supposed to just be using SexoutBegin..

Link to comment
Guest Loogie

I've tried my best to convert all the calls in the Tryouts to SexoutBegin, but I always still find SexoutNGBegins lurking in there no matter how many keyword searches I do. Fiends Tryout occasionally has a SexoutBeginRandom or whatever it is pop up.

Link to comment

It's no harm, all three of the spells use the same base effect and do the same thing now, it was just a mistake to create them to begin with. They're so 'stuck' in different mods now that I can't remove them anyway.

 

There's a (very small) chance that one day sexoutbegin will behave differently from the others though, which is why I recommend just using sexoutbegin.

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...