Quick Questions, Quick Answers - Thread #51

Post » Wed Mar 11, 2015 10:50 am

Perhaps the actors containers are included in the count and only exist in cells, the player is currently in?

User avatar
Shannon Lockwood
 
Posts: 3373
Joined: Wed Aug 08, 2007 12:38 pm

Post » Tue Mar 10, 2015 10:52 pm

Are not the actors themselves in essence containers?

User avatar
Wayne W
 
Posts: 3482
Joined: Sun Jun 17, 2007 5:49 am

Post » Wed Mar 11, 2015 2:57 am

This issue kind of sort of reminds me of another engine quirk I discovered recently, which is that leveled lists may only have 255 entries. As soon as you add the 256th, the list will just silently become completely empty, no matter if you're building it in the CK or dynamically with AddForm(). It turns out that's because leveled only use a single byte to store their size.

Since it is also possible to look up quest aliases by index, perhaps they are also limited to 255 on a single quest, beyond which it corrupts the stack or does something else strange?

User avatar
Peter P Canning
 
Posts: 3531
Joined: Tue May 22, 2007 2:44 am

Post » Wed Mar 11, 2015 10:34 am

Thanks for your reply! I had been printing their name and content for a while, but this time I went ahead and got their actual IDs and tracked down the lone container in the CK. It turns out it is the chest just before the snowy area with the waterfall. The one particular thing about it: it is being referred to by a FireballScroll which has a script to add itself to said container. That must be what makes it stand out and stay in kContainer.

I can live with executing my script while in the cell if there isn't a magical way to make them work. I am still curious, however, as to all of this works.

Spoiler
Scriptname noobspell extends activemagiceffect{Test script 2}Cell property testCell autoFunction countActorsAndContainers()	Debug.Trace("Test| Found actors:" + testCell.GetNumRefs(43)) ; kNPC = 43	Int iIndex = testCell.GetNumRefs(43)	While iIndex		iIndex -= 1				ObjectReference currentActor = testCell.GetNthRef(iIndex, 43)		String actorName = currentActor.GetBaseObject().GetName()				Debug.Trace("Test| Actor name: [" + actorName + "] [" + currentActor + "]")	EndWhile		Debug.Trace("Test| Found containers:" + testCell.GetNumRefs(28)) ; kNPC = 28	Int iIndex2 = testCell.GetNumRefs(28)	While iIndex2		iIndex2 -= 1				ObjectReference currentContainer = testCell.GetNthRef(iIndex2, 28)		String containerName = currentContainer.GetBaseObject().GetName()				Debug.Trace("Test| Container name: [" + containerName + "] [" + currentContainer + "]")	EndWhileEndFunction

Output from inside the cell:

[03/08/2015 - 10:35:12PM] Test| Found actors:48[03/08/2015 - 10:35:12PM] Test| Actor name: [Prisoner] [[Actor < (00000014)>]][03/08/2015 - 10:35:12PM] Test| Actor name: [Skeleton] [[ObjectReference < (000C3B0E)>]][03/08/2015 - 10:35:12PM] Test| Actor name: [Skeleton] [[ObjectReference < (000C3B1D)>]][03/08/2015 - 10:35:12PM] Test| Actor name: [Skeleton] [[ObjectReference < (000C3B1E)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [Restless Draugr] [[masterambushscript < (000800A9)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [draugr] [[masterambushscript < (000800A6)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [Restless Draugr] [[masterambushscript < (000800A3)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[masterambushscript < (0008009E)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [draugr] [[masterambushscript < (00080097)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [skeever] [[ObjectReference < (0004FD0B)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [draugr] [[masterambushscript < (000383F7)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [draugr] [[masterambushscript < (000383F8)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [draugr] [[masterambushscript < (000383EC)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[masterambushscript < (000380B3)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [draugr] [[masterambushscript < (000380B4)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[masterambushscript < (000380B5)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[masterambushscript < (000380B7)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[masterambushscript < (000380B8)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[masterambushscript < (000380B9)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[masterambushscript < (000380BB)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [] [[Actor < (0001D219)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9F9)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9F8)>]][03/08/2015 - 10:35:13PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9F7)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EE)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9ED)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EC)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EB)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EA)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9E9)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9E7)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9E6)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [bandit] [[ObjectReference < (000373A6)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [bandit] [[ObjectReference < (000375AA)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (00040D8D)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (00040D8E)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [skeever] [[ObjectReference < (00040D8F)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [] [[ObjectReference < (00039FE1)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [] [[ObjectReference < (00039FE2)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [] [[ObjectReference < (00039FE4)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [] [[masterambushscript < (000E9986)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [] [[Actor < (000F4A39)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [Skeleton] [[ObjectReference < (0010D4C2)>]][03/08/2015 - 10:35:14PM] Test| Actor name: [Arvel the Swift] [[ObjectReference < (00039655)>]][03/08/2015 - 10:35:15PM] Test| Actor name: [Wounded Frostbite Spider] [[masterambushscript < (0003A1E1)>]][03/08/2015 - 10:35:15PM] Test| Actor name: [Restless Draugr] [[ObjectReference < (000380BA)>]][03/08/2015 - 10:35:15PM] Test| Actor name: [Frost Troll] [[ObjectReference < (0001D218)>]][03/08/2015 - 10:35:15PM] Test| Actor name: [Thomas] [[ObjectReference < (0001CE86)>]][03/08/2015 - 10:35:15PM] Test| Found containers:44[03/08/2015 - 10:35:15PM] Test| Container name: [chest] [[ObjectReference < (000800D1)>]][03/08/2015 - 10:35:15PM] Test| Container name: [Burial Urn] [[ObjectReference < (000EF03B)>]][03/08/2015 - 10:35:15PM] Test| Container name: [chest] [[ObjectReference < (00080122)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (000800A5)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (000800A4)>]][03/08/2015 - 10:35:15PM] Test| Container name: [chest] [[ObjectReference < (000800D6)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (000800A1)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (000800A0)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (0008009D)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (0008009C)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (0008009B)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (0008009A)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (00080099)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (00080096)>]][03/08/2015 - 10:35:15PM] Test| Container name: [draugr] [[ObjectReference < (00080095)>]][03/08/2015 - 10:35:15PM] Test| Container name: [chest] [[ObjectReference < (00054B11)>]][03/08/2015 - 10:35:15PM] Test| Container name: [Web Sac] [[ObjectReference < (00048701)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Dessicated Corpse] [[ObjectReference < (000486FA)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Web Sac] [[ObjectReference < (000486FE)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Dessicated Corpse] [[ObjectReference < (000486FC)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Web Sac] [[ObjectReference < (000486F9)>]][03/08/2015 - 10:35:16PM] Test| Container name: [chest] [[ObjectReference < (0003A7C1)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (0003A7C2)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (0003A7C3)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Urn] [[ObjectReference < (0003906D)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Urn] [[ObjectReference < (0003906E)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Urn] [[ObjectReference < (00039001)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Urn] [[ObjectReference < (00039005)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (00039007)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (00039008)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (00039009)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (0003900A)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Urn] [[ObjectReference < (00039015)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (00037385)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (0003733D)>]][03/08/2015 - 10:35:16PM] Test| Container name: [Burial Urn] [[ObjectReference < (00037308)>]][03/08/2015 - 10:35:16PM] Test| Container name: [chest] [[ObjectReference < (000371E9)>]][03/08/2015 - 10:35:17PM] Test| Container name: [Egg Sac] [[ObjectReference < (0003E4A3)>]][03/08/2015 - 10:35:17PM] Test| Container name: [Egg Sac] [[ObjectReference < (0003E63E)>]][03/08/2015 - 10:35:17PM] Test| Container name: [Egg Sac] [[ObjectReference < (0003E642)>]][03/08/2015 - 10:35:17PM] Test| Container name: [Dessicated Corpse] [[ObjectReference < (00044965)>]][03/08/2015 - 10:35:17PM] Test| Container name: [chest] [[ObjectReference < (0003FA69)>]][03/08/2015 - 10:35:17PM] Test| Container name: [Dessicated Corpse] [[ObjectReference < (000AEBF0)>]][03/08/2015 - 10:35:17PM] Test| Container name: [chest] [[ObjectReference < (00067DCC)>]]

Output from outside the cell:

03/08/2015 - 10:35:29PM] Test| Found actors:47[03/08/2015 - 10:35:29PM] Test| Actor name: [Skeleton] [[ObjectReference < (000C3B0E)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [Skeleton] [[ObjectReference < (000C3B1D)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [Skeleton] [[ObjectReference < (000C3B1E)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [Restless Draugr] [[masterambushscript < (000800A9)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [draugr] [[masterambushscript < (000800A6)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [Restless Draugr] [[masterambushscript < (000800A3)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[masterambushscript < (0008009E)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [draugr] [[masterambushscript < (00080097)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [skeever] [[ObjectReference < (0004FD0B)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [draugr] [[masterambushscript < (000383F7)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [draugr] [[masterambushscript < (000383F8)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [draugr] [[masterambushscript < (000383EC)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[masterambushscript < (000380B3)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [draugr] [[masterambushscript < (000380B4)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[masterambushscript < (000380B5)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[masterambushscript < (000380B7)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[masterambushscript < (000380B8)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[masterambushscript < (000380B9)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[masterambushscript < (000380BB)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [] [[Actor < (0001D219)>]][03/08/2015 - 10:35:30PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9F9)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9F8)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9F7)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EE)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9ED)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EC)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EB)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9EA)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9E9)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9E7)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (0003B9E6)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [bandit] [[ObjectReference < (000373A6)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [bandit] [[ObjectReference < (000375AA)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (00040D8D)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (00040D8E)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [skeever] [[ObjectReference < (00040D8F)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [] [[ObjectReference < (00039FE1)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [] [[ObjectReference < (00039FE2)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [] [[ObjectReference < (00039FE4)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [] [[masterambushscript < (000E9986)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [] [[Actor < (000F4A39)>]][03/08/2015 - 10:35:31PM] Test| Actor name: [Skeleton] [[ObjectReference < (0010D4C2)>]][03/08/2015 - 10:35:32PM] Test| Actor name: [Arvel the Swift] [[ObjectReference < (00039655)>]][03/08/2015 - 10:35:32PM] Test| Actor name: [Wounded Frostbite Spider] [[masterambushscript < (0003A1E1)>]][03/08/2015 - 10:35:32PM] Test| Actor name: [Restless Draugr] [[ObjectReference < (000380BA)>]][03/08/2015 - 10:35:32PM] Test| Actor name: [Frost Troll] [[ObjectReference < (0001D218)>]][03/08/2015 - 10:35:32PM] Test| Actor name: [Thomas] [[ObjectReference < (0001CE86)>]][03/08/2015 - 10:35:32PM] Test| Found containers:1[03/08/2015 - 10:35:32PM] Test| Container name: [chest] [[ObjectReference < (00067DCC)>]]
User avatar
SHAWNNA-KAY
 
Posts: 3444
Joined: Mon Dec 18, 2006 1:22 pm

Post » Tue Mar 10, 2015 9:23 pm

If you're trying to count actors and containers in a cell that isn't loaded, those results make perfect sense. Non-persistent objects don't exist until the cell gets loaded. That one persistent chest would be the only container the game knows about until it loads the entire cell into memory. And while all actors are persistent, only those that are individually placed with unique references will exist before the cell loads.
User avatar
CArla HOlbert
 
Posts: 3342
Joined: Wed Feb 21, 2007 11:35 pm

Post » Wed Mar 11, 2015 2:09 am

So yeah, I could mess with actor's processes this way. But would I be able to force the actor's eyes open again after doing this?

Anyone?

User avatar
Andrea Pratt
 
Posts: 3396
Joined: Mon Jul 31, 2006 4:49 am

Post » Wed Mar 11, 2015 11:26 am

Thank you for the clarification! I thought as much about objects in a cell I hadn't visited yet but wasn't so sure about them ceasing to exist once I leave (perhaps the game generating the loot in them would have changed their status somehow). Makes perfect sense though! :)

User avatar
suzan
 
Posts: 3329
Joined: Mon Jul 17, 2006 5:32 pm

Post » Wed Mar 11, 2015 6:35 am

On a similar subject:

Will an actor spawned in an unloaded cell still carry out a travel package in real time if made persistent by putting him in a ReferenceAlias? Or does the player have to be there for him to actually walk from point A to point B?

- Hypno
User avatar
Suzie Dalziel
 
Posts: 3443
Joined: Thu Jun 15, 2006 8:19 pm

Post » Wed Mar 11, 2015 1:20 am

The game approximates movement for actors in all unloaded cells. The calculations are done periodically and whenever the player changes cells and gets a loadscreen. That's how your followers can both get lost and then catch up with you after you fast-travel and enter or leave a building. You can watch the process if you have an NPC that travels tracked by a quest. (Try recovering Kharjo's amulet but don't return it to him to watch movement in the Tamriel worldspace. I'm not sure who would be best to track movement into and out of cities and interior cells.)
User avatar
Cedric Pearson
 
Posts: 3487
Joined: Fri Sep 28, 2007 9:39 pm

Post » Wed Mar 11, 2015 6:15 am

Does anyone have experience with Movement Types? I wanted to slow down swimming so tweaked "NPC_Swimming_MT" but it doesn't seem to do anything.

Then I went into specific races like this http://puu.sh/gu6sc/6e0c33c9a2.png because I also wanted to make khajiits run faster but adding in them Movement Types manually seem to doesn't do anything either, the only races that seem to use these Movement Type settings are a few animals, like rabbits: http://puu.sh/gu6FD/f8c1028636.png, as you can see that box i've circled isn't available on other races, anyone know?

User avatar
Laura Elizabeth
 
Posts: 3454
Joined: Wed Oct 11, 2006 7:34 pm

Previous

Return to V - Skyrim