Unfortunately, it doesn't seem to work quite right. I must have done something wrong.
First, it was working backwards if I had not read the letter, but didn't work forwards properly, if I read the letter first.
So I tweaked it as best I could and now it works perfectly forwards, but if I find the book before reading the letter, it goes to Stage 20 instead of 30 when I read the book.
I had a Quest Stage 21 as well, but it did not go from 11 to 21, just to 20 and finished the quest without the final journal entry of Stage 30. Is it because 10, 20, 30 has an extra Objective compared with 11, 21, 30? I can't seem to fix it. If I use If, Else, it won't compile, but if I use If, ElseIf it compiles fine.
If I read the note it starts Stage 10, then when I take the book from the corpse, it goes to Stage 20 and updates the journal, then when I read the book and it goes to Stage 30 and completes with the correct journal entry.
If I do not read the note and take the book from the corpse, the Quest Starts and it displays Stage 11, then when I read the book it updates but with the Stage 20 journal entry instead of Stage 30 and completes.
Each journal entry has slightly different text so I can tell which Stage it belongs to and if I do not read the note first, it goes from 11 to 20 instead of 11 to 30. EG, stage 20 mentions the character who owns the letter while Stage 11 does not, it's just "I've found a book, I must
read it".
Stage 20 mentions this must be THE book the character is looking for, I should
study it, then, when it is read it should go to Stage 30.
I tried it with a Stage 21, but that didn't work properly either.
Scriptname SWSQ_QuestStartSCRIPT extends ObjectReferenceQuest Property SWSQ_Quest Autoint Property SWSQ_Quest_Stage AutoObjectReference Property SWSQ_MapMRKR AutoObjectReference Property SWSQ_Note AutoEvent onRead() If SWSQ_Quest.GetStage() &--#60; 10 SWSQ_Quest.setStage(10) SWSQ_Quest.SetObjectiveDisplayed(10) SWSQ_MapMRKR.addtomap() ElseIf SWSQ_Quest.GetStage() &--#60; 10 SWSQ_Note.Disable() EndIfEndEvent Scriptname SWSQ_QuestStopSCRIPT extends ObjectReference Quest Property SWSQ_Quest AutoPerk Property SWSQ_QuestPerk autoObjectReference Property SWSQ_Note Auto Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer); Note is read first If SWSQ_Quest.GetStage() == 10 SWSQ_Quest.SetObjectiveCompleted(10) ; "I have found THE book" SWSQ_Quest.SetStage(20) SWSQ_Quest.SetObjectiveDisplayed(20) ; "I must study the book"; Book is discovered first ElseIf SWSQ_Quest.GetStage() &--#60; 10 SWSQ_Note.Disable() SWSQ_Quest.SetStage(11) ; "I have found A book" SWSQ_Quest.SetObjectiveDisplayed(11) ; "I must read this book" EndIfEndEventEvent onRead(); Letter to Farengar is read first If SWSQ_Quest.GetStage() == 20 SWSQ_Quest.SetStage(30) SWSQ_Quest.SetObjectiveCompleted(20) Game.GetPlayer().AddPerk(SWSQ_QuestPerk); Book is discovered first ElseIf SWSQ_Quest.GetStage() == 11 SWSQ_Quest.SetStage(30) SWSQ_Quest.SetObjectiveCompleted(11) Game.GetPlayer().AddPerk(SWSQ_QuestPerk) EndIfEndEvent
The Quest Fragments from the Aliases for the Map Marker and the NPC marker are:
;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment;NEXT FRAGMENT INDEX 12 Scriptname QF_SWSQ_Quest_02000D7C Extends Quest Hidden;BEGIN ALIAS PROPERTY SWSQ_NPC_MRKR;ALIAS PROPERTY TYPE ReferenceAlias ReferenceAlias Property Alias_SWSQ_NPC_MRKR Auto;END ALIAS PROPERTY;BEGIN ALIAS PROPERTY SWSQ_MapMRKR;ALIAS PROPERTY TYPE ReferenceAlias ReferenceAlias Property Alias_SWSQ_MapMRKR Auto;END ALIAS PROPERTY;END FRAGMENT CODE - Do not edit anything between this and the begin comment
Is there anything you can see that might cause this? Stage 20 is being completed even if it is set at Stage 11 and should go to Stage 30.
But if it IS at Stage 20, it goes to Stage 30 as intended.
Cheers!
~