Difference between revisions of "Reference Variables for Nearby Actors"

Byline removed
imported>DragoonWraith
(made everything work well on the wiki)
imported>QQuix
(Byline removed)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Originally posted on [http://www.elderscrolls.com/forums/ Elder Scrolls Forums] by Tegid


----
This is much easier to do with OBSE's [[GetFirstRef|Reference walking functions]].
----




Line 12: Line 14:
  scriptname EntityFinderEffect
  scriptname EntityFinderEffect
   
   
short runOnce
  short NotReported
  short NotReported
  ref self
  ref self
Line 33: Line 36:
     return
     return
   else
   else
     set timer to 0.5
     if (runOnce == 0)
      set timer to 0.5
      set runOnce to 1
    else
   endif
   endif
   if (NotReported == 1)
   if (NotReported == 1)
     if (EnemyFinderRef1.RefsRequested == 0)
     if (EnemyFinderRef1.RefsRequested == 0)
       set NotReported to 0
       set NotReported to 0
     else
     elseif (EnemyFinderRef1.RefsRequested == 1)
      if (EnemyFinderRef1.RefsRequested == 1)
        if (EnemyFinderRef1.ref1full == 0)
        if (EnemyFinderRef1.ref1full == 0)
          set EnemyFinderRef1.ref1full to 1
          set EnemyFinderRef1.ref1full to 1
          set EnemyFinderRef1.reference1 to self
          set EnemyFinderRef1.reference1 to self
  ;       Message "Reported to Reference1",1
  ;         Message "Reported to Reference1",1
          set NotReported to 0
          set NotReported to 0
        elseif (EnemyFinderRef1.ref2full == 0)
        elseif (EnemyFinderRef1.ref2full == 0)
          set EnemyFinderRef1.ref2full to 1
          set EnemyFinderRef1.ref2full to 1
          set EnemyFinderRef1.reference2 to self
          set EnemyFinderRef1.reference2 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference2",1
  ;         Message "Reported to Reference2",1
        elseif (EnemyFinderRef1.ref3full == 0)
        elseif (EnemyFinderRef1.ref3full == 0)
          set EnemyFinderRef1.ref3full to 1
          set EnemyFinderRef1.ref3full to 1
          set EnemyFinderRef1.reference3 to self
          set EnemyFinderRef1.reference3 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference3",1
  ;         Message "Reported to Reference3",1
        elseif (EnemyFinderRef1.ref4full == 0)
        elseif (EnemyFinderRef1.ref4full == 0)
          set EnemyFinderRef1.ref4full to 1
          set EnemyFinderRef1.ref4full to 1
          set EnemyFinderRef1.reference4 to self
          set EnemyFinderRef1.reference4 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference4",1
  ;         Message "Reported to Reference4",1
        elseif (EnemyFinderRef1.ref5full == 0)
        elseif (EnemyFinderRef1.ref5full == 0)
          set EnemyFinderRef1.ref5full to 1
          set EnemyFinderRef1.ref5full to 1
          set EnemyFinderRef1.reference5 to self
          set EnemyFinderRef1.reference5 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference5",1
  ;         Message "Reported to Reference5",1
        elseif (EnemyFinderRef1.ref6full == 0)
        elseif (EnemyFinderRef1.ref6full == 0)
          set EnemyFinderRef1.ref6full to 1
          set EnemyFinderRef1.ref6full to 1
          set EnemyFinderRef1.reference6 to self
          set EnemyFinderRef1.reference6 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference6",1
  ;         Message "Reported to Reference6",1
        elseif (EnemyFinderRef1.ref7full == 0)
        elseif (EnemyFinderRef1.ref7full == 0)
          set EnemyFinderRef1.ref7full to 1
          set EnemyFinderRef1.ref7full to 1
          set EnemyFinderRef1.reference7 to self
          set EnemyFinderRef1.reference7 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference7",1
  ;         Message "Reported to Reference7",1
        elseif (EnemyFinderRef1.ref8full == 0)
        elseif (EnemyFinderRef1.ref8full == 0)
          set EnemyFinderRef1.ref8full to 1
          set EnemyFinderRef1.ref8full to 1
          set EnemyFinderRef1.reference8 to self
          set EnemyFinderRef1.reference8 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference8",1
  ;         Message "Reported to Reference8",1
        elseif (EnemyFinderRef1.ref9full == 0)
        elseif (EnemyFinderRef1.ref9full == 0)
          set EnemyFinderRef1.ref9full to 1
          set EnemyFinderRef1.ref9full to 1
          set EnemyFinderRef1.reference9 to self
          set EnemyFinderRef1.reference9 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference9",1
  ;         Message "Reported to Reference9",1
        elseif (EnemyFinderRef1.ref10full == 0)
        elseif (EnemyFinderRef1.ref10full == 0)
          set EnemyFinderRef1.ref10full to 1
          set EnemyFinderRef1.ref10full to 1
          set EnemyFinderRef1.reference10 to self
          set EnemyFinderRef1.reference10 to self
          set NotReported to 0
          set NotReported to 0
  ;       Message "Reported to Reference10",1
  ;         Message "Reported to Reference10",1
        endif
        endif
      endif
      endif
    endif
    endif
  endif
  End
  End
   
   
  Begin ScriptEffectFinish
  Begin ScriptEffectFinish
; if (NotReported == 1)
  if (NotReported == 1)
return
    return
; else
  else
;I have never seen the following code execute.  It isn't necessary anyhow, but it was an attempt to directly
;return the reference
     MessageBox "Activating the EnemyFinder"
     MessageBox "Activating the EnemyFinder"
     EnemyFinderRef1.Activate self 1
     EnemyFinderRef1.Activate self 1
; endif
  endif
  End
  End


Line 207: Line 208:
   endif
   endif
  End
  End
 
  Begin OnDrop
  Begin OnDrop
    
    
Anonymous user