Difference between revisions of "Resurrect"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Fella
imported>Talkie Toaster
(Changing the abysmally-written script)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Syntax:'''
'''Syntax:'''
  Resurrect ''AnimateFlag (optional)''  
  Resurrect ''AnimateFlag''


Resurrects the calling actor. If the AnimateFlag argument is 1, the actor will animate getting up (as if from a knockdown). Scripting or AI packages may interrupt the animation, so one should be careful to avoid these.


Resurrects the calling actor.  
The AnimateFlag appears to be optional when Resurrect is used from the Console, but not when used in script.


AnimateFlag = 1: The actor will animate getting up (as if from a knockdown)For the
Resurrect may remove items from some actors, including items flagged as unplayable.   
animation to complete, make sure no script commands or AI packages affects the actor, otherwise the animation will not complete.


It appears that the animation flag is '''not''' optional. Using the command from a script without the flag will cause a CTD. (Oddly, this problem does not appear when the command is called from the console.)
== Animation Example ==
The following code is used to allow the actor time to get up before continuing to execute. This may not always be necessary- if you're adding items, packages or factions to them, for example, whether or not they're getting up off the floor has no bearing:
short FlagDead  ;Set to 1 when actor is dead and to 0 when resurection anim is
                  ;complete
float Timer      ;Counts time since resurrection
Begin GameMode
  ;If the actor's dead, make a note of it- it'll take some time to revive them.
  if ( Actor.GetDead )
    set FlagDead to 1
    Actor.resurrect 1
    set Timer to 0
  elseif( FlagDead )
      if(Timer < 3)
        ;Wait two seconds for the animation to finish playing
        set Timer to Timer + GetSecondsPassed
      else
        set FlagDead to 0
        ;If it's been over three seconds, they're standing up.
        ;Now you can play animations on them and so on.
      endif
    endif
End


  example:
== Using on Player ==  
  short FlagDead  ;Set to 1 when actor is dead and to 0 when resurection anim is
                    ;complete
 
  short ResurrectAminTimer  ;Counts frames since resurrection
 
  begin gamemode
 
  ;Set actor's Death Flag to 1 on death,(Note:You might have to interupt the current
  ;AI package here)
  if (Actor.GetDead==1)
        set FlagDead to 1
        Actor.resurrect 1
  endif
 
  ;Timer that prevents the script from running before resurrection animation is
  ;finished(including AI packages).  Starts when actor is resurrected.
  if (FlagDead==1) && (Actor.GetDead ==0)
      set ResurrectAminTimer to ResurrectAminTimer+1
  endif
 
  ;After 200 frames (enough for  resurrection animation to complete), resume script
  if ResurrectAminTimer>200
        set FlagDead to 0
        set ResurrectAminTimer to 0
    endif
 
    ;when actor is alive and resurrect anim complete, Run main script
    if FlagDead == 0
        ;Do stuff on actor
    endif


Using Resurrect on the player will result in loss of magic and racial abilities and cause camera problems (camera becomes centered on player's feet). See [http://www.uesp.net/wiki/Tes4Mod:Resurrecting_the_Player UESP: Resurrecting the Player] for analysis and alternate approaches.


AnimateFlag = Nothing or 0: the actor will simply reset and snap back to its alive state.
== See Also ==
* [[Kill]]
===Using on Player===  
Using resurrect on the player will result in loss of PC abilities and camera problems (camera becomes centered on players feet). See [http://www.uesp.net/wiki/Tes4Mod:Resurrecting_the_Player UESP: Resurrecting the Player] for analysis and alternate approaches.


[[Category: Functions]]
[[Category: Functions]]

Latest revision as of 15:17, 16 July 2009

Syntax:

Resurrect AnimateFlag

Resurrects the calling actor. If the AnimateFlag argument is 1, the actor will animate getting up (as if from a knockdown). Scripting or AI packages may interrupt the animation, so one should be careful to avoid these.

The AnimateFlag appears to be optional when Resurrect is used from the Console, but not when used in script.

Resurrect may remove items from some actors, including items flagged as unplayable.

Animation Example[edit | edit source]

The following code is used to allow the actor time to get up before continuing to execute. This may not always be necessary- if you're adding items, packages or factions to them, for example, whether or not they're getting up off the floor has no bearing:

short FlagDead   ;Set to 1 when actor is dead and to 0 when resurection anim is
                 ;complete 

float Timer      ;Counts time since resurrection

Begin GameMode

  ;If the actor's dead, make a note of it- it'll take some time to revive them.
  if ( Actor.GetDead )
    set FlagDead to 1
    Actor.resurrect 1
    set Timer to 0

  elseif( FlagDead )
     if(Timer < 3)
        ;Wait two seconds for the animation to finish playing
        set Timer to Timer + GetSecondsPassed

     else
        set FlagDead to 0
        ;If it's been over three seconds, they're standing up. 
        ;Now you can play animations on them and so on.
     endif
   endif
End

Using on Player[edit | edit source]

Using Resurrect on the player will result in loss of magic and racial abilities and cause camera problems (camera becomes centered on player's feet). See UESP: Resurrecting the Player for analysis and alternate approaches.

See Also[edit | edit source]