User talk:Tibixe

From the Oblivion ConstructionSet Wiki
Revision as of 11:16, 16 August 2006 by imported>DragoonWraith (formatting)
Jump to navigation Jump to search

Dragoon Wraith TALK 22:27, 15 August 2006 (EDT): About your request for SetRefEssential for OBSE: Couldn't you use CreateFullActorCopy and SetEssential to create an essential version of an actor which is referenced repeatedly?

Tibixe 04:49, 16 August 2006 (EDT)

My problem was to make an Actor Copy essential. But setessential acts like a return function when it is used with a reference variable. (That caused my mod to create a new actor every frame...) I also added an entry to SetEssential, but marked it as minor edit (I thought a line is a minor edited, now I know it isn't).

Dragoon Wraith TALK 10:17, 16 August 2006 (EDT): Twas a good edit, don't worry. Anyway, it being a return statement isn't a problem, you know. I'd do something like this:
if ( GetDisabled == 0 )
  set copy to CreateFullActorCopy
  copy.SetEssential
  Disable  ;disable the original
endif
If you'd like, you could post your code and I'll see what's up with it.
For now, though, I'm going to take SetRefEssential off the Wish List.
Tibixe 10:29, 16 August 2006 (EDT)

Not that it also act like a return statement, it acts exactly like it and does nothing else than stops the script for the current frame.

Reference.SetEssential really works? I must try it... I am going to make a scroll with your code, test it on an NPC, and see what happens... I bet it will duplicate forever (if it compiles)
Tibixe 10:46, 16 August 2006 (EDT): I displays an error message:
Line 8,(the setessential is here)
Missing parameter ActorBase. 
Just as I expected. I think we need that SetRefEssential :)

I've got an image of the script and the error message, if you think I made a mistake...

Dragoon Wraith TALK 12:16, 16 August 2006 (EDT): Ah, you are correct, I screwed up that script (silly of me). And the idea isn't that SetEssential works on references - it's that CreateFullActorCopy creates a new object, not a new reference.
Try this script, instead (make it a spell, easier testing):
scn EssentializationScript

short state

ref copy

Begin ScriptEffectUpdate  ;same as GameMode

  if ( state == 0 )
    set copy to CreateFullActorCopy
    set state to 1
  elseif ( state == 1 )
    set state to 2
    copy.SetEssential
  elseif ( state == 2 )
    Disable
  endif

End
If SetEssential is a return, it won't matter here, since no code needs to run after SetEssential runs (the disable will run on the next frame). I hope that clears things up?