Thu, 01/19/2012 - 04:04 — brutal7
| Project: | Morroblivion |
| Component: | Quests - Misc Quests |
| Category: | bug report |
| Priority: | minor |
| Assigned: | Unassigned |
| Status: | fixed |
Jump to:
Description
I have a simple problem. In this quest, there are two backup options for this dumner trader...But when you decide which plan to take they only appear as "Backup plan" and "Backup plan" So its hard to tell the difference of which plan your going with. I chose the one I wanted luckily, but maybe we could change this to say"Backup plan one: Use the love potion" and "Backup plan two: Try Glathel"
Oh and heres the quest of UESP http://www.uesp.net/wiki/Morrowind:For_the_Love_of_a_Bosmer
UPDATE: New bug, your supposed to have to wait ten days to get the robe, but I was able to get it instantly.
Comments
I've run into similar glitches in several quests. The quests (all of them in my opinion) were put together quickly and never actually finished. I don't do quests (I'm too dumb to comprehend), but someone who knows how should rework all of them so they perform correctly.
It's not really a 'simple' problem ...
Well it can be done with a script and conditions on dialogue topics that are based on a quest variable (which is in a script) -- i.e. the dialogue topic is enabled once the quest variable "ScriptState" is set to 2.
I think this will work anyway...
; ExampleQuest stages:
; 80 = have talked to the NPC that gives the item, but we are still in the waiting period (10 days)
; 90 = wait is over, can now return to the NPC and get the item
; first we declare a couple of variables.
; ScriptState is what is used for dialogue conditions to enable the NPC's dialogue
; response to get the item when ScriptState == 2
Short ScriptState
; EndWaitDay is the day when the wait is over and you can go and get the item
Short EndWaitDay
; we only want to run this script if the Quest is at stage 80 (the player is in the waiting period)
If GetStage ExampleQuest != 80
Return
; if the quest is at stage 80, then we do this:
ElseIf GetStage ExampleQuest = 80
If ScriptState == 0
; set a variable for the date when the wait is over
; GameDaysPassed is a special Global Variable in Oblivion that keeps track of time
Set EndWaitDay to GameDaysPassed + 10
; and make sure we only set this variable once
Set ScriptState to 1
ElseIf ScriptState == 1
; then we check to see if the GameDaysPassed
; is a larger number than the EndWaitDay we set earlier
If GameDaysPassed >= EndWaitDay
; if the wait is over, then we set the variable that enables the NPC's "give item" dialogue
Set ScriptState to 2
; and we update the player's journal so they know the wait is over
SetStage ExampleQuest to 90
EndIf
EndIf
EndIf
I guess this or similar should be done for just about all quests and dialog topics then ..
An example: The 'Join the Mages Guild' topic remains in the list after you join. Yes, it tells you you're already a member if you click it, but I think if it wasn't there you wouldn't be tempted to click it after you've become a Mages Guild member.
This quest will be fixed in v051.
Beave released a mod that attempted to clean up dialog after the quest was over in exactly the way Steph is suggesting, but everybody hated the idea. Thermador had responded that it was a good thing to have dialog existant that indicates the quest has been completed.
So, no matter what we do, somebody is not going to like it.
The mod is what it is. If you would like it to be something different, then create a mod...