Jump to content

Best way to trigger conditional quest start walking in dungeon?


primem0ver

Recommended Posts

It has been a while since I tested it last, but I have had a problem getting a quest to start properly. (It doesn't seem to start at all). I want a quest to start the moment the player walks through a specific hallway in a dungeon which leads to a room. However, it only starts if another quest has not started yet. So this is how I set it up:

 

I have a defaultActivateSelfTrigger. I have an additional script tied to the object with the following code:

auto State waiting
	Event onTriggerEnter(objectReference triggerRef)
		Debug.Notification("KilkreathTrigger!")
		Actor actorRef = triggerRef as Actor
		; check whether we care if the player is activating
		if(actorRef == game.getPlayer())
			Debug.Notification("Triggered By Player!")
			if HasRun == FALSE
			Debug.Notification("Running once!")
				if SBDRecruit.GetStage() == 0
					Debug.Notification("Starting Errand Quest with stage 5!")
					SBMErrand.Start()
					SBMErrand.SetStage(5)
				else
					Debug.Notification("Quest Past Stage 0")
				endif
				HasRun = TRUE
				Self.Disable()
				gotoState("allDone")
			endif
		endif
	endEvent
endState

State allDone
	;do nothing
endState

The quest has 4 aliases. Alias 0 is a chest. Alias 1 is a person (who you bring aliases 2 and 3 to). Alias 2 is a "tattered journal" that is created along with alias 3 (a "mysterious artifact") when the quest begins. Both of the last two aliases are supposed to be newly created references to their base objects "in" the chest. However, both objects fail to be created. My guess is that something is wrong with the above setup. I don't recall whether or not the messages appeared (from the script) but I don't believe so. What is the best way to get this to work? The items should ONLY appear in the chest if the SBDRecruit quest has not begun.

 

Perhaps something in the dungeon has already walked through the defaultAcitvateSelf trigger and invalidated it. Since it wasn't the player, it would not start the quest?

Edited by primem0ver
Link to comment
Share on other sites

Instead of SBDRecruit.GetStage() == 0 use !SBDRecruit.IsRunning() this ensures that the other quest is not running at all. Otherwise the other quest could be active but sitting at stage 0 and still trigger.

 

I don't see your properties listed on your script. Make sure you have properties for your quests and that they have been filled correctly. An empty property will cause it to not work as intended. Also test on a new game to rule out anything left behind in the save file preventing the script from properly executing.

Link to comment
Share on other sites

Instead of SBDRecruit.GetStage() == 0 use !SBDRecruit.IsRunning() this ensures that the other quest is not running at all. Otherwise the other quest could be active but sitting at stage 0 and still trigger.

Thanks for the advice here. Will do that. However, this points out what would make it run when it is not supposed too. I am trying to figure out why it isn't running at all.

 

I don't see your properties listed on your script. Make sure you have properties for your quests and that they have been filled correctly. An empty property will cause it to not work as intended.

Yup. They are filled correctly. I double checked in both CK and SSEEdit.

 

Also test on a new game to rule out anything left behind in the save file preventing the script from properly executing.

I have done this already. However, In a new game, one cannot access Kilkreath. You have to get Meridia's beacon which isn't located anywhere specific. So I have to cheat to get in without playing for a while to find the beacon. Not sure if this matters or not. I wouldn't think so though...

 

Is there another way to approach this? Any reason a defaultActivateSelfTrigger wouldn't work?

 

Link to comment
Share on other sites

  • 3 weeks later...

Thanks for your interest. Juggling a lot in my life right now. I may or may not have done that in the past. It is certainly worth trying... I am still finishing up my new tool that plan on contributing before I try playing Skyrim again. It should be up in the next month or so. I will get back to working on this then.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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