Jump to content

Any idea how to reset activator animation state?


Recommended Posts

I am creating a cave/dungeon interior which has the bloodskaal puzzle door : TempleEntrancePuzzle01 + TempleEntrancePuzzle02 - as the entrance.
Instead of opening via bloodskaal blade, the player must put their blood into a blood basin etc.

Opening the door is fine - that plays without a hitch.
However... I would like the door to eventually close again.
I am conscious that there is no closing animations for these objects, so the closest I think we could do would be to 'reset' the object somehow - when it is off-screen.

I've tried a number of things - but nothing seems to close the door.

I've tried using onCellAttach and onCellDetach etc
But everytime I coc to the cell - the door is in its open state.
Even using console and doing disable/enable - the door/entrance disappears, reappears, and then re-opens etc
The debug statement does play.

Event OnCellAttach()
   resetDoor()
endEvent


Function resetDoor()
    Debug.Notification("Reset Door")
    Door01.playAnimation("NONE")
    Door02.playAnimation("NONE")
Door01.Reset()
Door02.Reset()
Endfunction

Any ideas?

Link to comment
Share on other sites

Managed to achieve a pseudo reset via deleting the doors and respawning new ones in their place

Function resetDoor()
    Debug.Notification("Reset Door")
    ObjectReference obTemp = Door01.PlaceAtMe(ReplacementDoor01)
    ObjectReference obTemp2 = Door02.PlaceAtMe(ReplacementDoor02)
    
    if !obTemp
        Debug.Notification("Respawn failed")
        return
    endif
        
    float fPosX = Door01.GetPositionX()
    float fPosY = Door01.GetPositionY()
    float fPosZ = Door01.GetPositionZ()
    
    obTemp.SetPosition(fPosX, fPosY, fPosZ)
    obTemp2.SetPosition(fPosX, fPosY, fPosZ)
    
    Door01.DisableNoWait()
    Door02.DisableNoWait()
    Door01.Delete()
    Door02.Delete()


Door01 = obTemp     
   Door02 = obTemp2 
Endfunction
Link to comment
Share on other sites

Stay classy peeps. Really

 

Anyway an actual helpful answer OP. I looked at the behavior this uses and there are animations by name that operate it

 

<hkcstring>Done</hkcstring>
<hkcstring>Reset</hkcstring>
<hkcstring>Play01</hkcstring>
<hkcstring>Left</hkcstring>
<hkcstring>Play02</hkcstring>
<hkcstring>Play03</hkcstring>
<hkcstring>Play04</hkcstring>
<hkcstring>Event00</hkcstring>
<hkcstring>Play05</hkcstring>
<hkcstring>SoundPlay.OBJBloodskalPuzzleStoneMove</hkcstring>
<hkcstring>SoundPlay.OBJBloodskalPuzzleDoorOpen</hkcstring>
<hkcstring>SoundPlay.OBJBloodskalPuzzleEnergyRise</hkcstring>
</hkparam>

 

Going off memory ATM but try PlayAnimation("Reset") and if that doesnt work try PlayGamebryoAnimation("Reset",True)

 

Outside all of that, you can also try just resetting the Ref itself. ABCRef.Reset()

 

Hope this helps

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...