Jump to content

Force an actor to load into the game outside the player's zone?


jbezorg

Recommended Posts

Any suggestions?

 

The following is pretty much the same code I use for SD. I know it works but only for actors that have been loaded in the game. For SD it's not a problem since that mod is combat related the master is guaranteed to be loaded.

 

For the slavery framework, the master may not be loaded or is in a different cell and/or zone. The actor has a reference but hasn't been defined. In that case, the factions don't sync because GetNumItems() returns 0.

 

Is there a way to force load an actor that is outside the players zone and/or cell? The only thing I can think of doing now is pop them into the player's cell, sync factions, then put them back.

int function _syncFactions(Actor akSlave, Actor akMaster) Global
	bool bVerbose = slavery.verbose()

	if !akSlave
		Debug.TraceConditional("slavery._syncFactions:: akSlave is none", bVerbose)
		return -1
	elseIf !akMaster
		Debug.TraceConditional("slavery._syncFactions:: akMaster is none", bVerbose)
		return -2
	else
		_sf_ActorSlot slot      = slavery.GetActorInstance(akSlave) as _sf_ActorSlot
		ObjectReference kMaster = akMaster as ObjectReference

		form[] forms
		form nthForm

		int idx = kMaster.GetNumItems()
		while idx > 0
			idx -= 1
			nthForm = kMaster.GetNthForm(idx)
			if nthForm && nthForm.GetType() == 11
				forms = sslUtility.PushForm(nthForm, forms)
				akSlave.AddToFaction(nthForm as Faction)
			endIf
		endWhile

		Debug.TraceConditional("slavery._syncFactions::"+akSlave+" joined:"+forms.length, bVerbose)
		slot.joinedFactions = forms
		return 1
	endIf
endFunction
Link to comment

I'd try this:

 

  1. Record kMaster's X,Y,Z location
  2. kMaster.MoveTo(akSlave) to load them into the cell
  3. kMaster.Disable()  to make them non-visble
  4. Perform the faction sync
  5. kMaster.Enable() to make them visible again
  6. kMaster.SetPosition(X, Y, Z) to move them back to their original location

Potential problems:

  • I'm not sure if the objectreferences X,Y,Z will be obtainable while not loaded
  • disabling them might make it so you can't get their items again, in which case you could instead do a kMaster.MoveTo(akSlave, 0, 0, (akSlave.GetPositionZ() - 50.0)) to move them below the geometry and out of site.
Link to comment

As a semi unrelated aside: If there is a lot of factions, like 5+, I would suggest avoiding sslUtility.PushForm, it's terribly slow since it has recreate the array every single time.

 

What I've taken to doing instead is counting the number of slots I'll need and from what indexes, then just doing a sslUtility.FormArray(count) and then looping through that length to add the forms directly to it.  This way instead of repeatedly recreating the array everytime you call PushForm, you just make it once after recording the indexes/count of the items you need to pull exactly.

 

Edit: With current development builds of 1.30 I actually made an additional array function to help with exactly this, which removes all nones from a form array, using it your loop would basically look like this:


int idx = kMaster.GetNumItems()
form[] forms = sslUtility.FormArray(idx)
form nthForm

while idx > 0
	idx -= 1
	nthForm = kMaster.GetNthForm(idx)
	if nthForm && nthForm.GetType() == 11
		forms[idx] = nthForm
		akSlave.AddToFaction(nthForm as Faction)
	endIf
endWhile

forms = sslUtility.ClearNone(forms)

With this method you're only at max creating 2 form arrays, 1 to store the valid forms + nones for invalid, and another from ClearNone() which recreates it just once with all the none elements removed.

 

I've done some benchmarking with using this method vs the traditional PushForm(), and the speed gain between 5 PushForms() and feeding a 20 length array into ClearNone() to be cut down to a 5 length,  was very significant.

Link to comment

xyz should be available, I can use MoveTo to place the slave at the master in console.

 

I can use PlaceAtMe to drop an XMarkHeading where the master is and make it persistent so I have a referance to move kMaster back

kMarkHeading = kMaster.PlaceAtMe(Game.GetForm(0x00000034), abForcePersist = true)

Or,

 

Since I'm only concerned about factions I could, in theory, clone the master with PlaceAtMe and the clone should generate the same faction list. Then, just discard the clone.

 

 

ObjectReference kClone = Game.GetPlayer().PlaceAtMe(akMaster, abForcePersist = true) as ObjectReference

 

kClone.Disable()

 

; sync

 

kClone.Delete()

Link to comment

Are you expecting the master's faction list to change while away, or for master to be unloaded at the time they became flagged as master?  Knowing nothing about what you're trying to do, I can't see why you'd need to do either of those things, so why not just cache the masters faction list whenever you have them available? Either at the time of flagging them, or whenever an alias they are in receives the OnCellLoad() event

Link to comment

Yeah, master's factions can be added to but their base factions cannot change.

 

>>>>> most likely far too ambitious <<<<<

 

 

It's really a command hierarchy. A master can have up to 128 slaves ( subordinates )

 

In turn, a slave can be a master and can have 128 slaves themselves ( subordinates )

 

Up until I run out of alias slots. 

 

Each slot alias has the following properties and can be filled by a master or slave.

Scriptname _sf_ActorSlot extends ReferenceAlias  

ActiveMagicEffect property slaveAbility   auto hidden
ActiveMagicEffect property masterAbility  auto hidden
Form[]            property joinedFactions auto hidden

_sf_resources     property resources      auto hidden
Actor             property seffRef        auto hidden

Actor myMaster = none
Actor property master hidden
	function Set(Actor akActor)
		int idx = slavery.GetActorIndex(akActor)
		if idx > 0
			myMaster = akActor
			GetActorReference().SetFactionRank(resources._sf_link_fact, idx); <-- not used atm
		endIf
	endFunction
	Actor function Get()
		return myMaster
	endFunction
endProperty
ReferenceAlias function GetActorInstance(Actor akActor) Global
	Quest in = GetInstance()
	int idx  = in.GetNumAliases()
	while idx > 0
		idx -= 1
		ReferenceAlias nthAlias = in.GetNthAlias(idx) as ReferenceAlias

		if akActor == nthAlias.GetReference() as Actor
			return nthAlias
		endIf
	endWhile

	return none
endFunction

int function GetActorIndex(Actor akActor) Global
	Quest in = GetInstance()
	int idx  = in.GetNumAliases()
	while idx > 0
		idx -= 1
		ReferenceAlias nthAlias = in.GetNthAlias(idx) as ReferenceAlias

		if akActor == nthAlias.GetReference() as Actor
			return idx
		endIf
	endWhile

	return -1
endFunction

Getting a slave's immediate master & chain of command.

Actor function GetMaster(Actor akSlave, Bool abSilent = false) Global
	if !akSlave
		Debug.TraceConditional("slavery.GetMaster:: akSlave is none", !abSilent)
		return none
	else
		return ( GetActorInstance(akSlave) as _sf_ActorSlot ).master
	endIf
endFunction

Actor[] function GetAllMasters(Actor akSlave) Global
	bool bVerbose = verbose()

	if akSlave == none
		Debug.TraceConditional("slavery.GetAllMasters:: akSlave is none", bVerbose)
		return none
	else
		actor[] kMasters = new actor[1]
		kMasters[0] = GetMaster(akSlave, true)

		while GetMaster(kMasters[kMasters.length - 1], true) && kMasters.length < 128
			kMasters = PushActor(GetMaster(kMasters[kMasters.length - 1]), kMasters)
		endWhile

		return kMasters
	endIf
endFunction
Link to comment

Getting a master's slaves

Actor[] function GetSlaves(Actor akMaster) Global
	actor[] kSlaves = new actor[1]
	bool bVerbose = verbose()

	if akMaster == none
		Debug.TraceConditional("slavery.GetSlaves:: akMaster is none", bVerbose)
	else
		Quest in = GetInstance()
		int idx  = in.GetNumAliases()
		while idx > 0 && kSlaves.length < 128
			idx -= 1
			ReferenceAlias nthAlias = in.GetNthAlias(idx) as ReferenceAlias

			if akMaster == ( nthAlias as _sf_ActorSlot ).master
				kSlaves = PushActor(nthAlias.GetActorReference(), kSlaves)
			endIf
		endWhile
	endIf

	return kSlaves
endFunction
Link to comment

A lot of that seems like it would be really slow to run honestly, especially the constant looping through grabbing aliases, repeatedly getting them, and then casting them twice no less, upwards of 128 times, is going to be costly. The aliases on a quest are always going to be the same, no reason to do get and cast over and over again from a global function, would be better to cache them in a quest script at load, and create a  separate lookup array+function to serve as a registry for searching and retrieving an alias or actor.

 

But in anycase, personally I'd just write a general syncing function into a master/slaves OnCellLoad(), the information is theoretically always going to be there to pull from, or even potentially reversed before the master/slave even needs to make use of it, so why spend the time doing something before it's relevant in anyway.

Link to comment

Yeah, beating the 128 array limit may not be worth it.

 

Though, I wonder if I can load the aliases into a form list on game load and get the advantage of the native find function.

 

Nevermind. Still would have to loop through the form list.

Link to comment

Thanks for catching the excessive looping. Got rid of it. Still working on different solutions for the faction issue.

 

I'm posting the scripting just in case others may find it useful.

 

SetAliasID & ClearAliasID are used in the alias script and the value is set when the alias script selfRef property is set.

 

Quest Alias Script

int property selfId auto hidden
Actor mySelfRef = none
Actor property selfRef hidden
	function Set(Actor akActor)
		if akActor != none
			mySelfRef = akActor
			selfId    = GetID()
			slavery.SetAliasID(mySelfRef, selfId)
		else
			slavery.ClearAliasID(mySelfRef)
			mySelfRef = none
		endIf
	endFunction
	Actor function Get()
		return mySelfRef
	endFunction
endProperty
Quest Script

ReferenceAlias function SetActorInstance(Actor akActor)
	int idx  = self.GetNumAliases()

	Debug.TraceConditional("slavery.SetActorInstance::"+akActor+" out of "+idx, verbose)
	while idx > 0
		idx -= 1
		ReferenceAlias nthAlias = self.GetNthAlias(idx) as ReferenceAlias

		if !nthAlias.GetReference()
			_sf_ActorSlot slot = nthAlias as _sf_ActorSlot
			slot.slavery        = self as _sf_slavery
			slot.resources      = resources
			slot.SelfRef        = akActor
			nthAlias.ForceRefTo( akActor )

			Debug.TraceConditional("slavery.SetActorInstance::"+slot.SelfRef+" at "+idx, verbose)
			return nthAlias
		endIf
	endWhile

	return none
endFunction

ReferenceAlias function GetActorInstance(Actor akActor)
	if !akActor
		return none
	endIf

	ReferenceAlias slot
	int idx = GetAliasID(akActor)
	if idx > 0
		slot = self.GetAlias(idx) as ReferenceAlias
	endIf

	if slot && slot.GetActorReference() == akActor
		return slot
	else
		return none
	endIf
endFunction

_sf_ActorSlot function GetActorScript(Actor akActor)
	if !akActor
		return none
	endIf

	_sf_ActorSlot slot = none
	int idx = GetAliasID(akActor)
	if idx > 0
		slot = self.GetAlias(idx) as _sf_ActorSlot
	endIf
	
	if slot && slot.selfRef == akActor
		return slot
	else
		return none
	endIf
endFunction

; +/- 16256
int function GetAliasID(Actor akActor)
	int mult = akActor.GetFactionRank(resources._sf_mult_fact)
	int modu = akActor.GetFactionRank(resources._sf_modu_fact)
	int sign = akActor.GetFactionRank(resources._sf_sign_fact)
	
	if mult < 0 || modu < 0
		return -2147483648
	else
		return (mult * 127 + modu) * sign
	endIf
endFunction 

; +/- 16256
int function SetAliasID(Actor akActor, int aiVal)
	int abso = math.abs(aiVal) as int
	int mult = abso / 127 ;int division is floored
	int modu = abso % 127
	int sign = 1
	
	if aiVal < 0
		sign = -1
	endIf
	
	akActor.SetFactionRank(resources._sf_mult_fact, mult)
	akActor.SetFactionRank(resources._sf_modu_fact, modu)
	akActor.SetFactionRank(resources._sf_sign_fact, sign)
endFunction

function ClearAliasID(Actor akActor)
	akActor.RemoveFromFaction(resources._sf_mult_fact)
	akActor.RemoveFromFaction(resources._sf_modu_fact)
	akActor.RemoveFromFaction(resources._sf_sign_fact)
endFunction
Link to comment

Bah..... 

 

I don't think I can use GetNthForm to get an actor's faction list anymore.

 

This is the function I used in Sanguine's Debauchery to get actor factions and was compiled under an older version of SKSE and dumps to a form list.

Function syncActorFactions( Actor akMaster, Actor akSlave, FormList alFactionListOut = None )

	Int iFormIndex = ( akMaster as ObjectReference ).GetNumItems()
	While ( iFormIndex > 0 )
		iFormIndex -= 1
		Form nthForm = ( akMaster as ObjectReference ).GetNthForm(iFormIndex)
		If ( nthForm && nthForm.GetType() == 11 )
			If ( alFactionListOut != None )
				alFactionListOut.AddForm( nthForm as Faction )
			EndIf
			akSlave.AddToFaction( nthForm as Faction )
		EndIf
	EndWhile

EndFunction

This is the slavery framework script. Using GetNumItems()  produces the same result in the following log.

 

It's a very similar function and looping through an actor's items no longer finds the actor's factions ( GetType() == 11 ).

form[] function getMyFactions(actor akActor, int aiType = 11)
	form[] forms1 = new form[128]

	int idx = 0
	int cnt = 0
	form nthForm = (akActor as ObjectReference).GetNthForm(idx)
	while nthForm
		Debug.TraceConditional("> > > > > > > > > >"+akActor+":"+nthForm+":"+nthForm.GetType(), slavery.verbose)

		if nthForm.GetType() == aiType
			forms1[cnt] = nthForm
			cnt += 1
		endIf
		idx += 1
		nthForm = (akActor as ObjectReference).GetNthForm(idx)
	endWhile

	Debug.TraceConditional("> > > > > > > > > >slavery:getMyFactions:count:"+akActor+":"+cnt, slavery.verbose)
	
	form[] forms2 = sslUtility.FormArray(cnt)
	while cnt > 0
		cnt -= 1
		forms2[cnt] = forms1[cnt]
	endWhile

	return forms2
endFunction

And this is the output of the trace.

 

 

 

[12/02/2013 - 07:32:03PM] SC::startEnslavement: akActors=[[Actor < (00000014)>], [Actor < (FF001208)>]], akSlave=[Actor < (00000014)>]
[12/02/2013 - 07:32:13PM] slaveryTrigger.SendStoryEvent
[12/02/2013 - 07:32:22PM] SLAVERY STARTING
[12/02/2013 - 07:32:22PM] SC::OnStoryScript: aiValue1=1, aiValue2=0
[12/02/2013 - 07:32:23PM] slavery.GetActorInstance::[Actor < (0001AE9B)>] at -2147483648
[12/02/2013 - 07:32:23PM] slavery.SetActorInstance::[Actor < (0001AE9B)>] out of 12
[12/02/2013 - 07:32:23PM] slavery.SetActorInstance::[Actor < (0001AE9B)>] at 11
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (0001AE9B)>]:[Form < (0001398E)>]:41
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (0001AE9B)>]:[Armor < (0006F398)>]:26
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (0001AE9B)>]:[Armor < (00013911)>]:26
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (0001AE9B)>]:[MiscObject < (0000000F)>]:32
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (0001AE9B)>]:[Form < (00013984)>]:41
[12/02/2013 - 07:32:23PM] > > > > > > > > > >slavery:getMyFactions:count:[Actor < (0001AE9B)>]:0
[12/02/2013 - 07:32:23PM] slavery.initActorInstance::return:[_sf_actorslot <alias ActorSlot000 on quest _sf_slavery (0C0012C7)>]
[12/02/2013 - 07:32:23PM] slavery.GetActorInstance::[Actor < (00000014)>] at -2147483648
[12/02/2013 - 07:32:23PM] slavery.SetActorInstance::[Actor < (00000014)>] out of 12
[12/02/2013 - 07:32:23PM] slavery.SetActorInstance::[Actor < (00000014)>] at 10
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[MiscObject < (0000000A)>]:32
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Light < (0001D4EC)>]:31
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[MiscObject < (0000000F)>]:32
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (0003EADD)>]:46
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EAE0)>]:46
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (310048B4)>]:26
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (030398E6)>]:41
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0301DB9B)>]:26
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00065A65)>]:46
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00063B45)>]:32
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000398F4)>]:46
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (0003EAE3)>]:46
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Ingredient < (00034CDD)>]:30
[12/02/2013 - 07:32:23PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (960043B4)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (96005968)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (00065C97)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Ingredient < (03017008)>]:30
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF000F53)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[ActorBase < (FF001052)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF000FDD)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (03016E1C)>]:23
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000D6949)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0301952C)>]:23
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (03014480)>]:23
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44B6)>]:23
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000965AE)>]:23
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000FC00E)>]:26
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000AE723)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EAE2)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4FB)>]:52
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EAE8)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4E3)>]:52
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB31)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0008632A)>]:32
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44BE)>]:23
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4FC)>]:52
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Armor < (73000D77)>]:26
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Book < (0301E99F)>]:27
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF00109B)>]:46
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00036343)>]:31
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4F3)>]:52
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4F4)>]:52
[12/02/2013 - 07:32:24PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4FF)>]:52
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB37)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB3A)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000DABA7)>]:32
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[SoulGem < (0002E500)>]:52
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00039CFB)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4E6)>]:52
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4E4)>]:52
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44BB)>]:23
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00039BE1)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00039B8A)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (34000D84)>]:26
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (0003EB3E)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB2C)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000C8915)>]:26
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (310048B5)>]:26
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (310048B3)>]:26
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (310048B2)>]:26
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (310048B1)>]:26
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (310048B0)>]:26
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[ActorBase < (FF000DB9)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000E0CD5)>]:23
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB2E)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB36)>]:46
[12/02/2013 - 07:32:25PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (0003EB39)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[MiscObject < (0302145A)>]:32
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44B0)>]:23
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000218F2)>]:23
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44C4)>]:23
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A449D)>]:23
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A449E)>]:23
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0301CD6D)>]:30
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Ingredient < (03017E97)>]:30
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (6A005954)>]:27
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF000F07)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00041F95)>]:32
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Ingredient < (00059B86)>]:30
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Ingredient < (0003AD5E)>]:30
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB3F)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44BD)>]:23
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003995A)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB05)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (030390E0)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[ObjectReference < (FF00112F)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF001155)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF001158)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF00115F)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (FF00116B)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[ObjectReference < (FF001170)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (0003EADE)>]:46
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44AE)>]:23
[12/02/2013 - 07:32:26PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4E5)>]:52
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB14)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Book < (0301E99C)>]:27
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EAE4)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00029B78)>]:41
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0004DEE3)>]:41
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Armor < (28065518)>]:26
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (28050C4F)>]:26
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0301AADF)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (0003EADF)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EB02)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (7200EB32)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (0003EAE1)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0002E4E2)>]:52
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (00039BE8)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A44BC)>]:23
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[MiscObject < (03017749)>]:32
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EAF2)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0003EAFC)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (0004DED8)>]:41
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Form < (000A698A)>]:41
[12/02/2013 - 07:32:27PM] > > > > > > > > > >[Actor < (00000014)>]:[Potion < (00065C98)>]:46
[12/02/2013 - 07:32:27PM] > > > > > > > > > >slavery:getMyFactions:count:[Actor < (00000014)>]:0 

 

 

Link to comment

Random idea, no clue if it could work. Would there be a way to keep a cell loaded all the time? I seem to recall something about that while I was skimming through Bethesda's code repository site. If so, it could be possible to hold the master in "reference" and move him as needed, without having to teleport/disable or something like that. Just throwing this out there, as I only know so much about game coding, so I really have no clue what's possible.

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...