jbezorg Posted November 27, 2013 Share Posted November 27, 2013 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
Ashal Posted November 27, 2013 Share Posted November 27, 2013 I'd try this: Record kMaster's X,Y,Z location kMaster.MoveTo(akSlave) to load them into the cell kMaster.Disable() to make them non-visble Perform the faction sync kMaster.Enable() to make them visible again 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
Ashal Posted November 27, 2013 Share Posted November 27, 2013 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
jbezorg Posted November 27, 2013 Author Share Posted November 27, 2013 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
Ashal Posted November 27, 2013 Share Posted November 27, 2013 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
jbezorg Posted November 27, 2013 Author Share Posted November 27, 2013 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
jbezorg Posted November 27, 2013 Author Share Posted November 27, 2013 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
Ashal Posted November 27, 2013 Share Posted November 27, 2013 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
jbezorg Posted November 28, 2013 Author Share Posted November 28, 2013 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
jbezorg Posted November 28, 2013 Author Share Posted November 28, 2013 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
jbezorg Posted December 3, 2013 Author Share Posted December 3, 2013 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
Feldspare Posted December 3, 2013 Share Posted December 3, 2013 some one help this man D: Link to comment
linknut888 Posted December 4, 2013 Share Posted December 4, 2013 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
Recommended Posts
Archived
This topic is now archived and is closed to further replies.