Jump to content

Monitoring another quest


Recommended Posts

I want to make a patch for Helgen Reborn such that at a certain stage in the HR quest my patch script does something.  However there is no source for HR and decompiling a quest fragment doesn't seem wise.

Is there a way to have a quest of mine monitor/ be informed when another quest (in this the HR one) reaches a certain stage and would this be a hog in the background?  I thought to use the conditions in the 'quest stages' tab of a new quest but although the HR quest is listed I can't find a way to reference its quest stage.

 

diziet

 

edit:  ooh, I may have found it, I was looking at the conditions called GetQuest etc. but I just found one called 'GetStageDone' which looks promising.

Still have the question about performance, since I would have to make my quest start enabled, right?

Link to comment
Share on other sites

You can definitely decompile the  fragment script for that quest in order to see what it does.     I see no issue, as long as you don't try to include your own replacement script in the mod. 

You can use "GetStage"  condition on a quest to determine if a quest is at or before or has progressed past a certain stage.    GetStageDone  specifically tells you if a certain stage has been visited.   I.e. GetStage might return 100, but that is no guarantee that quest ever been at stage 60.

As to monitoring a quest:    highly dependent on what sort of effect are you going for.    Is it something that a player is supposed to experience immediately, regardless of where a player currently is - or player will not notice the effect until visiting  a specific location?  Also, looking at the monitored quest flow.    As in, exactly what happens in that quest  when it reaches that stage?    If it changes state of a certain object adds an item somewhere, removes an item etc. 

You could put your monitoring quest on a 'RegisterForSingleUpdate' loop to check the quest stage every 5-10 min.   Or ,if the effect is only observed when player enters some place, you could check that quest only on player location change.   Or, you could fill an alias with an object that HR quest somehow changes at that stage, and monitor for that change.

 

Link to comment
Share on other sites

I've managed to get the condition you mention to fire.  I'm trying to get my quest to notice that Helgen Reborn has started the construction phase and then add a keyword to the Helgen Location.  I successfully got papyrusextender AddKeyWordToForm to do this (according to the console anyway).  But the SKSE dll based mod that this is a helper patch for (Smart Harvest) only reacts to the new keyword if I save, exit and restart.  Save and reload doesn't do it.  I'm trying a locationalias in the quest with a keyword and filling that at the appropriate stage with the actual helgen location, but I can't make it work yet.  I can't find a way to debug in my script whether the alias has a keyword,  HasKeyword function doesn't sem to apply to a locationalias:(

 

diziet

 

edit: it seems that I got confused when reading about aliases with keywrods that were referencealiases, the keyword on the locationalias doesn't mean what I thought it meant.  seems i can't use this way to add a keyword to a location.

Link to comment
Share on other sites

I'm trying to make a patch for Helgen Reborn and Smart Harvest.  SH uses the keyword LocTypeTown as one of the keywords it uses to control whether to loot or not.

Helgen doesn't have the keyword attached to its location in the vanilla game.  I could add it in a patch to that location but then Helgen would be subject to no looting rules at the beginning of the game when it is a ruin.

I have worked out how to make a small quest that has the quest stage of HR where construction of houses begins as a condition, when the stage is reached I have successfully attached a keyword using PapyrusExtender to the Helgen location and then shutoff my quest.  Unfortunately the keyword - while the console says it is there - select a ref and do "locationhaskeyword".  The SH mod doesn't respond to that, unless I save, exit the game and restart.

I thought this might be an SKSE thing since SH is an SKSE dll so I found myslef going down an enormous rabbit hole to set up an SKSE dev environment so I could take a look, and gave up very quickly:)

It's not a big deal, this was just to be a patch for me, I'll save and restart when the time comes, but it would have been nice to have something I could publish:)

 

diziet

Link to comment
Share on other sites

  • Recently Browsing   0 members

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