markmce Posted September 2, 2016 Share Posted September 2, 2016 I'm trying to make it so that when a certain quest stage has pasted, new Dialogue options appear and then go away again once the quest is completed. I'm also having a problem with quests completing. I have it set that when stage 30 is completed, the quest should complete, but in game, it sticks around with all objectives complete. Yeah, I know it's basic stuff, but I looked around and couldn't find out how to do it, because whenever I do Getstage <questname> == 30, the dialogue option doesn't appear, even though it's on stage 30. I don't know what I need to show, so tell me what I need to screenshot and show you to help me. Link to comment Share on other sites More sharing options...
senterpat Posted September 2, 2016 Share Posted September 2, 2016 For the dialogue you just have to add a condition "getstage questid == 20" For the quests advancing how are you advancing from the previous stage to 30? Try adding a printc command to the same script as the one setting the stage to 30 to see if it gets triggered. Link to comment Share on other sites More sharing options...
markmce Posted September 3, 2016 Author Share Posted September 3, 2016 In the end script of a persons dialogue, I have it saysetobjectivecomplete <questname> 20 1 setobjectivedisplayed <questname> 30 1I'm guessing that's the wrong way to do it Link to comment Share on other sites More sharing options...
rickerhk Posted September 3, 2016 Share Posted September 3, 2016 Getstage returns the highest stage number that has been set for the quest. To see if a specific stage has been set, use GetStageDone. When you're looking at the final stage of your quest, make sure the box 'complete quest' is checked. That marks the quest completed. There's many ways to do this, but for your dialog conditions, you can use these two together: Getstagedone <myquest> 30 == 1 AND GetQuestCompleted <myquest> == 0 Link to comment Share on other sites More sharing options...
RoyBatterian Posted September 4, 2016 Share Posted September 4, 2016 For dialogue conditions you may want to put a variable in the quest script and manipulate that with the stage scriptlets instead. It can cause issues if you have dialogue altering the quest stages. That goes for other things which are running in the same "thread" at the same time. Link to comment Share on other sites More sharing options...
markmce Posted September 4, 2016 Author Share Posted September 4, 2016 Right. I have no idea what I'm doing right now. I don't know how to put a variable in to make it so it hides it if stage 20 isn't done. I'm guessing it's something to do with scripts and putting them in the individual stages of the quest, but I don't know what to put in the script. Link to comment Share on other sites More sharing options...
RoyBatterian Posted September 5, 2016 Share Posted September 5, 2016 in your quest script add something like short MyVariable in the scriptlet for stage 20, put set MyQuest.MyVariable to 1 Then in your dialogue check you can check that quest variable if it's equal to 1. In the final stage of your quest, put in the scriptlet set MyQuest.MyVariable to 0 That will make it stop showing again. Link to comment Share on other sites More sharing options...
markmce Posted September 5, 2016 Author Share Posted September 5, 2016 Thank you so much. I think that solves all my problems with dialogue. Link to comment Share on other sites More sharing options...
Recommended Posts