Secret Sarcophagus Passageway, Help!

Post » Wed Jun 20, 2012 4:20 am

Hello. I'm in the process of building my own dungeon, and I wanted to add a puzzle effect to it, so I set up a few puzzle pillars and want them to open up a passageway (No problems with that so far). My problem, is that I want the puzzle, when solved correctly, to cause a passage to open up through a certain sarcophagus model, 'NorSarcophagusVertBottomSecret'. I can tell there's supposed to be some way of having a hidden door inside this model, but I'm not sure what to look for. Is there some lid made for it that's animated to fall off? Is there a secret hollow backing to it that can slide down? Does this model even have a hidden door that corrisponds with it? Thank you for your help.

To clarify, I'm not having any trouble with the puzzle part, or even the activation, I just don't know where to look for the right activator, marker, or door. If 'NorSarcophagusVertBottomSecret' could be considered a unique doorframe, I'm looking for the unique door that fits that frame. (For those of you who don't know the model and can't check, it looks like any normal upright nordic sarcophagus, only it's backing has been cut out creating a passage straight through it.)
User avatar
marie breen
 
Posts: 3388
Joined: Thu Aug 03, 2006 4:50 am

Post » Wed Jun 20, 2012 1:49 am

Do you know where the model is in the vanilla game?
  • If you do, go to it in the vanilla game (in the game, not the CK)
  • Popup the console and then click on the object with your mouse
  • In the console an ID will be displayed
  • Write down the ID and then search for it in the CK
  • You should then find the object you are looking for
User avatar
Steven Hardman
 
Posts: 3323
Joined: Sun Jun 10, 2007 5:12 pm

Post » Wed Jun 20, 2012 10:00 am

No, sadly, I'm not sure. I believe there may be one in the starting quest sequence, when you go underground into the caves below the burning town. I'll try there and see if I can find it. Thanks for the lead!

Edit: Scratch that, I just found out how to see each cell that any object is used in, and traced one down.

Turns out they're just using a regular lid on it, and it's only script is 'NorSarcophagusTopAnim01SCRIPT', which says it animates the lid when activated, but I can't figure out how it's being activated, there is a lever a little ways away, but it isn't connected to the lid through any activate parents and that sort of stuff. The only thing the lid is connected to is by 'Enable Parent' and that's a 'BlockerMarker (XMarker)' That's off in a room floating in the void like a test room. This BlockerMarker isn't connected to anything at all, and it doesn't have any scripts either, and it's been placed in an unreachable location. What's going on here? (I'm in the cell 'ReachcliffCave01')
User avatar
StunnaLiike FiiFii
 
Posts: 3373
Joined: Tue Oct 31, 2006 2:30 am

Post » Wed Jun 20, 2012 9:26 am

Well an enableparent means the item will essentially vanish when that parent is disabled. Your path to find out how it works lies in checking that Xmarker and seeing what disables it.
User avatar
Aman Bhattal
 
Posts: 3424
Joined: Sun Dec 17, 2006 12:01 am

Post » Wed Jun 20, 2012 1:26 am

Your path to find out how it works lies in checking that Xmarker and seeing what disables it.
Hmmm, that's probably the answer, my only problem is that the XMarker itself doesn't show any scripts, linked refs, parents, anything. The one and only thing it shows itself connect to is the lid by that one Enable Parent form. How would I go about finding the object that disables the XMarker?
User avatar
Jarrett Willis
 
Posts: 3409
Joined: Thu Jul 19, 2007 6:01 pm

Post » Wed Jun 20, 2012 4:19 am

The easiest one to examine I think is in DustmansCairn02 - it's the shortcut exit back to the entrance from the boss.


Hmmm, that's probably the answer, my only problem is that the XMarker itself doesn't show any scripts, linked refs, parents, anything. The one and only thing it shows itself connect to is the lid by that one Enable Parent form. How would I go about finding the object that disables the XMarker?

it is most likely done in a quest. Find the quest that particular dungeon is involved in, and there you will find your answer, Grasshopper.
User avatar
Cassie Boyle
 
Posts: 3468
Joined: Sun Nov 05, 2006 9:33 am

Post » Wed Jun 20, 2012 11:06 am

You speak words of infinite wisdom. I would continue to search for how they did their sarcophagus passageway as you said, but I'm creating mine to be activated via a 'PullChain', do you know how I could rig it so the lid vanishes (or preferably becomes animated and pops off, like when a draugr's inside) on a sucessful chain pull?
User avatar
Lavender Brown
 
Posts: 3448
Joined: Tue Jul 25, 2006 9:37 am

Post » Wed Jun 20, 2012 5:14 am

Try a variation on this theme (Put this script on the lid)

Scriptname RotateTrapdoor extends ObjectReference  bool property Closed = True Auto ; tells us whether it's "open" or "Closed" - Starts closed by default.Float Property AngleXOpen Auto ; The Rotation on the X Axis when opened.Float Property AngleYOpen Auto ; The Rotation on the Y Axis when opened.Float Property AngleZOpen Auto ; The Rotation on the Z Axis when opened.Float Property XOffset Auto ; The offset on the X Axis when opened.Float Property YOffset Auto ; The offset on the Y Axis when opened.Float Property ZOffset Auto ; The offset on the Z Axis when opened. ; Set these in the properties tab. The others are computed.Float Property XOpen Auto ; The offset on the X Axis when opened.Float Property YOpen Auto ; The offset on the Y Axis when opened.Float Property ZOpen Auto ; The offset on the Z Axis when opened.Float Property XClosed Auto ; The offset on the X Axis when Closed.Float Property YClosed Auto ; The offset on the Y Axis when Closed.Float Property ZClosed Auto ; The offset on the Z Axis when Closed. ;Float Property AngleXClosed Auto ; The Rotation on the X Axis when Closed.Float Property AngleYClosed Auto ; The Rotation on the Y Axis when Closed.Float Property AngleZClosed Auto ; The Rotation on the Z Axis when Closed.event OnCellLoad() ; Store the start position. The other position should be set in the Properties window.    if Closed        XClosed = X        YClosed = Y        ZClosed = Z        XOpen = X+XOffset        YOpen = Y+YOffset        ZOpen = Z+ZOffset        AngleXClosed = GetAngleX()        AngleYClosed = GetAngleY()        AngleZClosed = GetAngleZ()    endifEndEventEvent OnActivate(Objectreference PullChain)    if Closed        TranslateTo(XOpen,YOpen,ZOpen,AngleXOpen,AngleYOpen,AngleZOpen,10.0,10.0)        Closed = False    else        TranslateTo(XClosed,YClosed,ZClosed,AngleXClosed,AngleYClosed,AngleZClosed,10.0,10.0)        Closed = True    endifEndEvent

Set the distance and rotation you want the lid to wind up at after it is open, and see how that works.
User avatar
Paul Rice
 
Posts: 3430
Joined: Thu Jun 14, 2007 11:51 am

Post » Wed Jun 20, 2012 6:33 am

Wow, I think that's exactly what I'm looking for! Thanks a ton, I'll get to work on putting that in and tell you the results.
User avatar
FABIAN RUIZ
 
Posts: 3495
Joined: Mon Oct 15, 2007 11:13 am

Post » Wed Jun 20, 2012 3:17 am

Updated the script...be sure to use the activator version of the lid when you make your copy, the static one can't have a script attached.
User avatar
Richard
 
Posts: 3371
Joined: Sat Oct 13, 2007 2:50 pm

Post » Wed Jun 20, 2012 10:57 am

Okay, progress update. I got all of the coordinates for where I want the lid to end up and everything (and I think I know where to plug them in), but every time I try to make a new script, it crashes the creation kit. I'm going to the scripts page on the item itself, clicking add, and then clicking [new script]. I then copy and paste the script with the added in coordinates and hit done, the window vanishes, and the creation kit stops responding. Sorry about being such a burden, but I have a feeling this isn't supposed to happen, what am I doing wrong? (There's an "Extends:______" form inside the new script window and I leave that set to it's default, which is something like "ObjectPreferences".)
User avatar
Jack
 
Posts: 3483
Joined: Sat Oct 20, 2007 8:08 am

Post » Wed Jun 20, 2012 5:37 am

Dunno what could be causing your CK to crash...it compiled fine on mine...the version there works, if it's a bit slow (May want to speed it up to speed 50.0 with 40 degree capped rotation instead of 10.0 speed with 10 degree capped rotatation.
User avatar
Nuno Castro
 
Posts: 3414
Joined: Sat Oct 13, 2007 1:40 am

Post » Wed Jun 20, 2012 11:02 am

All right, I have no doubts the crashing is a seperate issue, so I'll look into fixing it. Once I do, I'm sure your script will work. Thank you for your script and all of your help, I couldn't have even began to do any of this without it! You have filled a major grey area for beginner/non scripters like me. (I'm not sure if you have your own youtube tutorials for the creation kit, but this would be a great one to make. Various uses of the secret sarcophagus.) Thanks again!

PS: Lost a tiny bit of progress in the CK and almost launched myself into a blue inferno. I've never seen so many sparks inside an electrical outlet when a power cord was loose.

PSS: Okay, I need help again! This should be the last time though. I accidentally replaced the NorSarcophagusTopAnim01SCRIPT.psc script with the one you gave me, and it seems to carry over to default Skyrim even with the mod inactive, how can I fix this?

PSSS: I solved my issue, just copied the file in which the script is saved from another computer that I didn't pulverise.
User avatar
Czar Kahchi
 
Posts: 3306
Joined: Mon Jul 30, 2007 11:56 am

Post » Wed Jun 20, 2012 5:44 pm

Ouchie...well here's the vanilla script...

scriptName NorSarcophagusTopAnim01SCRIPT extends ObjectReference{This script causes the sarcophagus lid to animate when activated}import debugimport utility;bool onLoadDone;bool onResetDonebool isOpened = false;*******************************************Event onReset()    onLoad()endEvent;*******************************************Event onLoad()    if(!isOpened)        playAnimation("SnapClosed")    endifendEvent;*******************************************Auto State waiting    Event onActivate (objectReference triggerRef)        gotoState ("busy")        isOpened = true        playAnimation("OpenStart")        endEventendState;*******************************************State busy    Event onActivate (objectReference triggerRef)        ;do nothing    endEventendState;*******************************************

That will teach you to go willy nilly editing vanilla scripts!
User avatar
Ray
 
Posts: 3472
Joined: Tue Aug 07, 2007 10:17 am

Post » Wed Jun 20, 2012 1:35 pm

Haha, thanks. Oh, and also, I figured out how to temporarily bypass the script creation crash, I just created the script in notepad and put it in "skyrim/data/scripts/source" and it's showing up! Judging from my success in mangling the default script, I should be capable of editing scripts without it crashing. Thanks, and I'll get to work strapping the script to the lid.

Edit: Eh, I got a little ahead of myself. It shows up in the papyrus script manager, but I can't put it on the lid. If I try to drag and drop it into the lid's scripts, it says it had errors while loading and wasn't added. I guess that's what I get for trying to practice alternative ways of scripting.
User avatar
Katie Louise Ingram
 
Posts: 3437
Joined: Sat Nov 18, 2006 2:10 am

Post » Wed Jun 20, 2012 2:27 am

Drag and drop? can you do that? I just click "attach" and pick my script...
User avatar
anna ley
 
Posts: 3382
Joined: Fri Jul 07, 2006 2:04 am

Post » Wed Jun 20, 2012 4:51 am

Here's a more sophisticated version...in addition to the variables you can use to set where it goes, you can also tell it to move to up to 3 references on it's opening sequence, at different speeds. Works best if you disable the references so the player doesn't see them of course.

Scriptname TrapdoorControlScript extends ObjectReference  bool property Closed = True Auto ; tells us whether it's "open" or "Closed" - Starts closed by default.ObjectReference Property FirstStage Auto ; Objectreferences can be used instead of absolute coordinates. Disable the objectreferences being used so they don't show up and make them not HavokSettle.ObjectReference Property SecondStage AutoObjectReference Property ThirdStage AutoFloat property OpenSpeed1 AutoFloat property OpenSpeed2 AutoFloat property OpenSpeed3 Auto ; The speeds for the various stages of opening.Float property OpenRot1 AutoFloat property OpenRot2 AutoFloat property OpenRot3 Auto ; Rotation caps for the various stages of opening.Int OpenStage ; Used to control the various translations when using references to open.Bool Moving = FalseFloat Property AngleXOpen Auto ; The Rotation on the X Axis when opened.Float Property AngleYOpen Auto ; The Rotation on the Y Axis when opened.Float Property AngleZOpen Auto ; The Rotation on the Z Axis when opened.Float Property XOffset Auto ; The offset on the X Axis when opened.Float Property YOffset Auto ; The offset on the Y Axis when opened.Float Property ZOffset Auto ; The offset on the Z Axis when opened. ; Set these in the properties tab. The others are computed. These are only used if there are no references being used.Float Property XOpen Auto ; The offset on the X Axis when opened.Float Property YOpen Auto ; The offset on the Y Axis when opened.Float Property ZOpen Auto ; The offset on the Z Axis when opened.Float Property XClosed Auto ; The offset on the X Axis when Closed.Float Property YClosed Auto ; The offset on the Y Axis when Closed.Float Property ZClosed Auto ; The offset on the Z Axis when Closed. ;Float Property AngleXClosed Auto ; The Rotation on the X Axis when Closed.Float Property AngleYClosed Auto ; The Rotation on the Y Axis when Closed.Float Property AngleZClosed Auto ; The Rotation on the Z Axis when Closed.event OnCellLoad() ; Store the start position. The other position should be set in the Properties window, either by explicit numbers, or with hidden reference objects.	if Closed		XClosed = X		YClosed = Y		ZClosed = Z		XOpen = X+XOffset		YOpen = Y+YOffset		ZOpen = Z+ZOffset		AngleXClosed = GetAngleX()		AngleYClosed = GetAngleY()		AngleZClosed = GetAngleZ()	endifEndEventEvent OnActivate(Objectreference PullChain)	if !Moving ; Once it's in motion, it won't respond to the activator until it finishes opening or closing.		Moving = True		if Closed			if !FirstStage				TranslateTo(XOpen,YOpen,ZOpen,AngleXOpen,AngleYOpen,AngleZOpen,OpenSpeed1,OpenRot1)		    else				TranslateToRef(FirstStage,OpenSpeed1,OpenRot1)				OpenStage = 1			endif		else			if !FirstStage || !SecondStage ; If there's only one stage of opening/closing, or using explicit coordinates				Moving = True				TranslateTo(XClosed,YClosed,ZClosed,AngleXClosed,AngleYClosed,AngleZClosed,OpenSpeed1,OpenRot1)				OpenStage = 0			elseif ThirdStage				TranslateToRef(SecondStage,OpenSpeed3,OpenRot3)				OpenStage = 2			elseif SecondStage				TranslateToRef(FirstStage,OpenSpeed2,OpenRot2)				OpenStage = 1			endif		endif	endifEndEventEvent OnTranslationComplete()	if Closed ; we are opening		If ThirdStage ; If  there is a third stage reference			if OpenStage == 3				Closed = False				Moving = False			elseif OpenStage == 2 ; we have reached the second stage on the Opening sequence				TranslateToRef(ThirdStage,OpenSpeed3,OpenRot3)				OpenStage = 3			else ; OpenStage == 1 - OpenStage 0 doesn't happen when opening.				TranslateToRef(SecondStage,OpenSpeed2,OpenRot2)				OpenStage = 2			endif		elseif SecondStage ; There is a stage 2 but no stage 3			If OpenStage == 2				Closed = False				Moving = False			else				TranslateToRef(SecondStage,OpenSpeed2,OpenRot2)			endif		else ; Only one stage, or using explicit movement.			Closed = False			Moving = False		endif	else ; We are Closing		If ThirdStage ; If  there is a third stage reference			if OpenStage == 0				Closed = True				Moving = False			elseif OpenStage == 2 ; we have reached the second stage on the Closing sequence				TranslateToRef(FirstStage,OpenSpeed2,OpenRot2)				OpenStage = 1			else ; OpenStage == 1 - OpenStage 3 doesn't happen when Closing.				TranslateTo(XClosed,YClosed,ZClosed,AngleXClosed,AngleYClosed,AngleZClosed,OpenSpeed1,OpenRot1)				OpenStage = 0			endif		elseif SecondStage ; There is a stage 2 but no stage 3			If OpenStage == 0				Closed = True				Moving = False			else ; OpenStage == 1				TranslateToRef(FirstStage,OpenSpeed2,OpenRot2)				OpenStage = 0			endif		else ; Only one stage, or using explicit movement.			Closed = True			Moving = False		endif	endifEndEvent
User avatar
Quick draw II
 
Posts: 3301
Joined: Thu Nov 08, 2007 4:11 pm

Post » Wed Jun 20, 2012 4:18 pm

Heh, wow, that is amazing, but I'm apparently not of the sophisticated type. There has been progress made. I found out that I can create scripts without it crashing (a one lined script that says "Hi! Im a script!" made it past the creation stage successfully), but I guess I'm plugging in your script incorrectly or something. Could you perhaps put my coordinates properly into the script for me? I must have trouble with that step or something. If it doesn't work after this step I'll start some serious troubleshooting.

Edit: Okay, big progress update. Turns out on the last Endif, I was missing the if. Luckily the compiler gave me a general idea as to why this occured. The script is now saved, and properly placed into the lid, but when I pull the lever nothing happens. It's either a problem with my connection between the lever to lid, or I still don't have the script right. I'll post my script below, just to make sure I put enough information into it. I'll get to work troubleshooting the lever.


... Oh my gosh... I retried the lever connection, pulled it, and the lid... it started moving! Imagine that! It was the most magical thing I've ever seen! I swear, I'll have looping dreams of that thing moving for atleast a week. You've done it Redwood Elf! You've made my lid-based dreams come true! I'm going to do what you said about speeding it, and perhaps tweak it where it can only be opened once and never closed. Thanks! This is exactly what I imagined and thought could never be reality!

I did add the script "default2stateactivator" to the lid, I had heard that may or may not be required in things being activated with a lever, and I think that may have helped.
User avatar
sam
 
Posts: 3386
Joined: Sat Jan 27, 2007 2:44 pm


Return to V - Skyrim