Talk menu bug [RESOLVED]

User avatar
Midknightprince
Posts: 1324
Joined: Fri Aug 11, 2017 6:51 am
Location: San Antonio TX
Contact:

Talk menu bug [RESOLVED]

Post by Midknightprince »

When you talk to NPC's, and "tell me about", and if you have any extra topics, like from a leftover quest or something, it just goes unresponsive, and you have to restart (you can still play normally, you just can't talk to npc's, and ask them stuff, like locations of shops etc).
Now these topics in these screens are left over from a quest or something, I don't know where they come from, but that's the only thing I can track it down too...
My one guy who doesn't have them, dialogue works fine.
But my other guy, where they show up, once I click on "tell me about", nothing, and I've pretty much tried everything else.
Attachments
this one doesn't mess up
this one doesn't mess up
Nothing in tell me about.jpg (807.26 KiB) Viewed 3663 times
here's where it messes up
here's where it messes up
Question 1.jpg (708.05 KiB) Viewed 3663 times
this one too
this one too
Question 2.jpg (701.41 KiB) Viewed 3663 times
Check out my YouTube Channel!

User avatar
Interkarma
Posts: 7236
Joined: Sun Mar 22, 2015 1:51 am

Re: Talk menu bug

Post by Interkarma »

Thanks for the report. :)

It might be handy to zip and attach your output log for these ones. That will give us a better idea of what's failing in background.

User avatar
Midknightprince
Posts: 1324
Joined: Fri Aug 11, 2017 6:51 am
Location: San Antonio TX
Contact:

Re: Talk menu bug

Post by Midknightprince »

Okay, here it is.
I hope I did it right, let me know if I messed something up in the process.
Attachments
output_log.zip
(6.75 KiB) Downloaded 129 times
Check out my YouTube Channel!

User avatar
Interkarma
Posts: 7236
Joined: Sun Mar 22, 2015 1:51 am

Re: Talk menu bug

Post by Interkarma »

That log looks pretty clean, no errors in there. The log is rebuilt every run, so you'll need to reproduce problem in game first, then exit and zip up log.

Thanks for the help finding bugs. :)

User avatar
Midknightprince
Posts: 1324
Joined: Fri Aug 11, 2017 6:51 am
Location: San Antonio TX
Contact:

Re: Talk menu bug

Post by Midknightprince »

Ok, here it is again.
So reproduce bug before i save, then send off output log, got it.
I actually love this stuff, so it's no problem, you are the man Interkarma :)
Attachments
output_log.zip
(6.74 KiB) Downloaded 119 times
Check out my YouTube Channel!

User avatar
Interkarma
Posts: 7236
Joined: Sun Mar 22, 2015 1:51 am

Re: Talk menu bug

Post by Interkarma »

Cheers mate! Would you perhaps be able to attach a zip of that save game as well made after reproducing bug? In theory we should be able to isolate using that.

Here's the exception itself for Nystul and myself to look at. Error happens in top line calling "QuestMacroHelper.ExpandQuestMessage (DaggerfallWorkshop.Game.Questing.Quest parentQuest, .Token[]& tokens, Boolean revealDialogLinks)" inside DaggerfallTalkWindow.Update().

Looks like one of the macros isn't able to be resolved and isn't being cleanly caught. Possibly a reference that macro needs (e.g. to a person/place) isn't set yet. If we can work out which macro it is, we should be able to fix.

Code: Select all

NullReferenceException: Object reference not set to an instance of an object
  at DaggerfallWorkshop.Utility.QuestMacroHelper.ExpandQuestMessage (DaggerfallWorkshop.Game.Questing.Quest parentQuest, .Token[]& tokens, Boolean revealDialogLinks) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.TalkManager.GetNewsOrRumors () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.TalkManager.GetAnswerText (DaggerfallWorkshop.Game.ListItem listItem) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.DaggerfallTalkWindow.SelectTopicFromTopicList (Int32 index) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.DaggerfallTalkWindow.ButtonOkay_OnMouseClick (DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent sender, Vector2 position) [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent/OnMouseClickHandler:invoke_void__this___BaseScreenComponent_Vector2 (DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent,UnityEngine.Vector2)
  at DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent.MouseClick (Vector2 clickPosition) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Button.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.UserInterfaceWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallBaseWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallPopupWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.DaggerfallTalkWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.DaggerfallUI.Update () [0x00000] in <filename unknown>:0 

User avatar
Midknightprince
Posts: 1324
Joined: Fri Aug 11, 2017 6:51 am
Location: San Antonio TX
Contact:

Re: Talk menu bug

Post by Midknightprince »

Ok here you go, also in this save, I replicated the questpack quests not showing up in the console, maybe it'll shorten the process..
Attachments
SAVE26.zip
(223.2 KiB) Downloaded 115 times
Check out my YouTube Channel!

User avatar
Nystul
Posts: 1501
Joined: Mon Mar 23, 2015 8:31 am

Re: Talk menu bug

Post by Nystul »

thanks for the bug report

first screenshot shows the answer to a generic rumor which is just not implemented completely - especially the macro handling fails here due to lack of implementation
Interkarma wrote: Thu May 10, 2018 1:14 am Cheers mate! Would you perhaps be able to attach a zip of that save game as well made after reproducing bug? In theory we should be able to isolate using that.

Here's the exception itself for Nystul and myself to look at. Error happens in top line calling "QuestMacroHelper.ExpandQuestMessage (DaggerfallWorkshop.Game.Questing.Quest parentQuest, .Token[]& tokens, Boolean revealDialogLinks)" inside DaggerfallTalkWindow.Update().

Looks like one of the macros isn't able to be resolved and isn't being cleanly caught. Possibly a reference that macro needs (e.g. to a person/place) isn't set yet. If we can work out which macro it is, we should be able to fix.

Code: Select all

NullReferenceException: Object reference not set to an instance of an object
  at DaggerfallWorkshop.Utility.QuestMacroHelper.ExpandQuestMessage (DaggerfallWorkshop.Game.Questing.Quest parentQuest, .Token[]& tokens, Boolean revealDialogLinks) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.TalkManager.GetNewsOrRumors () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.TalkManager.GetAnswerText (DaggerfallWorkshop.Game.ListItem listItem) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.DaggerfallTalkWindow.SelectTopicFromTopicList (Int32 index) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.DaggerfallTalkWindow.ButtonOkay_OnMouseClick (DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent sender, Vector2 position) [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent/OnMouseClickHandler:invoke_void__this___BaseScreenComponent_Vector2 (DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent,UnityEngine.Vector2)
  at DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent.MouseClick (Vector2 clickPosition) [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.BaseScreenComponent.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Button.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.Panel.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.UserInterfaceWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallBaseWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallPopupWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.UserInterface.DaggerfallTalkWindow.Update () [0x00000] in <filename unknown>:0 
  at DaggerfallWorkshop.Game.DaggerfallUI.Update () [0x00000] in <filename unknown>:0 
will take a look

update1:
usually quests should delete those entries after quest was finished. not sure how they remain there.
Did you start the quests with the newest dfunity version or were they started with an older and saved and then loaded in newest version?
the exception is thrown because talkmanger tries to resolve a quest resource that is no longer available because quest is finished (both tell me about entry as well as quest induced rumors will fail that try to resolve it). I will add additional exception handling but most importantly we need to find out why these entries do not get deleted

update2:
Quest.TombstoneQuest() correctly makes these calls

Code: Select all

            // remove quest rumors (rumor mill command) for this quest from talk manager
            GameManager.Instance.TalkManager.RemoveQuestRumorsFromRumorMill(this.UID);

            // remove all quest topics for this quest from talk manager
            GameManager.Instance.TalkManager.RemoveQuestInfoTopicsForSpecificQuest(this.UID);
RumorsPostsuccess, RumorsPostfailure and questor post quest messages are deleted in Qeust.EndQuest() function

Code: Select all

            // remove quest progress rumors for this quest from talk manager
            GameManager.Instance.TalkManager.RemoveQuestProgressRumorsFromRumorMill(this.UID);

            // remove all quest's questor messages about quest success/failure
            GameManager.Instance.TalkManager.RemoveQuestorPostQuestMessage(this.UID);
not sure how you could end up with such entries...

also declining a quest should remove the entries since there is a corresponding code in the DaggerfallQuestPopupWindow.OfferQuest_OnButtonClick function - removing rumors might be missing here (but this does not explain the tell me about entries)

update3:
yep removing rumors is necessary on quest decline as well
still no idea how the "tell me about" entries did not get removed there...

User avatar
Midknightprince
Posts: 1324
Joined: Fri Aug 11, 2017 6:51 am
Location: San Antonio TX
Contact:

Re: Talk menu bug

Post by Midknightprince »

Well, I had been trying to get certain quests from the TG, and FG to test stuff, so I did decline a few, and this guy is from a few builds ago.
But I don't think any of the quests mentions any of these topics, and what the heck is the scroll of ban-dar ? never heard of it..
Check out my YouTube Channel!

User avatar
Nystul
Posts: 1501
Joined: Mon Mar 23, 2015 8:31 am

Re: Talk menu bug

Post by Nystul »

Midknightprince wrote: Thu May 10, 2018 10:37 pm Well, I had been trying to get certain quests from the TG, and FG to test stuff, so I did decline a few, and this guy is from a few builds ago.
But I don't think any of the quests mentions any of these topics, and what the heck is the scroll of ban-dar ? never heard of it..
this is either from quest N0C00Y10 (mage-guild non-member missing book quest) or A0C00Y12 (merchant missing book quest)

but there was definitely a bug with rumors, thx for your report - especially the savegame was very valuable - the rumors related bug should be fixed in next build
the entries in the "tell me about" section are hopefully related to savegame data in old format used in older builds - if not I will still have to investigate. Other possible reason might be that entry removal on quest end did not kick in as planned - we will have to test more ;)

if you want to get rid of orphaned entries you can delete the ConversationData.txt file in the savegame folder. just make sure that no quests are running otherwise this will break dialog options in quests

Locked