Search Unity

[RELEASED] Dialogue System for Unity - easy conversations, quests, and more!

Discussion in 'Assets and Asset Store' started by TonyLi, Oct 12, 2013.

  1. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    OK, so this was my own doing. I had Dialogue System objects in every scene because it's easier to test by just running the individual scenes instead of having to start from the main menu where the first instance of DS is located. I had thought that it would just destroy the duplicate instances and everything would work fine, but that's not the case.

    Thanks for the tip.

    I think everything is working smoothly now. I'll be adding a lot more of my own savers so hopefully everything will continue to work as expected.
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hmm, it should be the case. I'll try to reproduce this. But I'm glad you got it all working despite this.
     
  3. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    No problem. I'm going to add a reference to my DS prefab on my main game object and it will search for the DS object in the scene. If it doesn't find it then it'll create an instance. So, that should allow me to run each scene stand-alone without worrying about this issue.
     
  4. jaytwist28

    jaytwist28

    Joined:
    Jul 18, 2017
    Posts:
    50
    Hey I have a question. I know that you have an integration made for ummorpg. Any plans to do one for ummorpg2d?
     
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    H @jaytwist28 - It also works for uMMORPG2D. If you notice any compatibility issues, please let me know. uMMORPG and uMMORPG2D versions aren't always in sync.
     
  6. jaytwist28

    jaytwist28

    Joined:
    Jul 18, 2017
    Posts:
    50
    Okay, thats great. I'll play around with it and let you know if I have any problems.
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    The same setup steps apply: uMMORPG Support.

    A couple things to keep in mind if you're using the Dialogue System's quest system:
    • The Dialogue System's quest system is completely separate and independent from uMMORPG's.
    • To make active quests appear in the quest tracker HUD, tick their Trackable and Track On Start checkboxes.
    • Hook up your quests button to DialogueSystem_uMMORPG.ToggleQuestLogWindow to make the Dialogue System's quest log window appear instead of uMMORPG's.
     
  8. SamRock

    SamRock

    Joined:
    Sep 5, 2017
    Posts:
    250
    Hi @TonyLi
    Thanks for the awesome asset. I am trying to build a cutscene where my Player interacts with a NPC, there are about 4 to 5 dialogues between both. I am using Timeline and Cinemachine to add some animations. I have used "Conversation Track" & selected the Conversation. Then I added the "Continue track" to resume dialogues. I have few questions:
    1. I want my Player's conversation to resume without any interaction, but the "Continue" track doesnt seem to work. I have to manually click the text to proceed. I have added "WaitForMessage(Forever);" in the Sequence
    2. What object should I be selecting for the "Conversation Track" ? Can I leave it blank?
     
  9. Alic

    Alic

    Joined:
    Aug 6, 2013
    Posts:
    137
    Hey Tony,
    You've probably answered this before somewhere in this incredible thread of support, but I can't find it.

    I want to do a classic JRPG behavior with NPC dialogue where I have one dialogue the character says if you talk to them once, and a second dialogue if you initiative conversation with them again after that dialogue has completed. Sim Status conditions seemed like the right approach, but I'd like to have the state reset when exiting the area and returning, as a quiet way to let the player repeat the original conversations if they want to.

    So maybe Sim Status isn't the right tool for this job, since it's updating global variables. Just curious what the cleanest way to do this with the Dialogue System would be. I don't need a full implementation or anything, I'm just curious what your approach would be.

    Thanks for your time!
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @SamRock - It's the player's lines that you need to click, right? If so, untick the Dialogue Manager's Input Settings > Always Force Response Menu, and tick Subtitle Settings > Show PC Subtitles During Line.

    Other things to check: Is the Dialogue Manager's Subtitle Settings > Continue Button mode set to Never? See this page for more info. If that doesn't help, are there any errors or warnings in the Console window?

    Assign the conversation actor, which is typically the player. If you leave it blank, it will use whatever GameObject has a Dialogue Actor component whose Actor dropdown is set to Player. If no GameObject has a Dialogue Actor set to Player, it will look for a GameObject named "Player". (If you've renamed the Player actor in your dialogue database, it will use the name you chose instead of "Player".)

    It's probably simpler to use a variable. Add a Boolean variable in the Dialogue Editor. For example, let's say it's named "TalkedToNPC".

    In the conversation, set dialogue entries' Conditions to check if TalkedToNPC is true or not true, and branch accordingly. Also set TalkedToNPC to true.

    In the scene, create an empty GameObject. Add a Dialogue System Trigger. Select Add Action > Run Lua Code. Configure the Lua Code field to set TalkedToNPC false.

    Then add a Timed Event component to the GameObject. Tick Activate On Start. Change Mode to Frames, and set Frames to 2. If your Dialogue Manager has a Save System component and its Frames To Wait Before Apply Data is higher than 2, set Frames to a number one higher than this. Configure the OnTimeReached() event to call the Dialogue System Trigger's DialogueSystemTrigger.OnUse method.

    This will reset TalkedToNPC to false when the scene starts, such as when leaving and returning to it.
     
    Alic likes this.
  11. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    Hey, Tony. Is it possible to make barks work the same as normal dialogues? Like, instead of working automatically, they need the player's input to continue and blah blah. In other words, I need text bubbles. Is there any way to pull this off with this system? Thanks.
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @Sigma266 - Yes. Add a continue button to the bark UI and tick the bark UI's Wait For Continue Button checkbox. Configure the continue button's OnClick() event to call the Standard Bark UI component's OnContinue method.

    If you want to play multiple lines, play a conversation. Add a Dialogue Actor component to the barker. Set Dialogue UI Settings > Subtitle Panel Number to Custom. Assign the Bubble Template Standard UI Subtitle Panel to the Custom Subtitle Panel field. Add a continue button to the panel.
     
    Sigma266 likes this.
  13. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @TonyLi I'm now seeing why I had the additional Dialogue System Saver on my object that had the Destructible Saver component. When I take it away and I load a saved game, it starts displaying messages that those objects were destroyed. It also was happening on scene changes, but I only see it now when I do a Quick Save and reload the scene. But since the main Dialogue prefab has a Dialogue System Saver on it, I don't know how to get around this issue.
     
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @magique - Would you please post those messages here or PM them to me?
     
  15. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I'm not sure what messages you mean. It's just the Alerts coming up saying that they were destroyed. I don't see any console messages. But maybe there is a debug option to print them?
     
  16. SamRock

    SamRock

    Joined:
    Sep 5, 2017
    Posts:
    250
    Thank you so much for the quick response! Will try this when I am back on my PC today.

    BTW, I want this option only in Cutscenes, however during regular Conversations, I want the player response to be clickable. The above setting will apply to all conversations right? Is there something I can setup only for this cutscene conversation to work differently??

    Ignore the above red text, I figured it out myself :) I additionally unchecked "Skip PC Subtitle After Response Menu" and it works fine , else my character stops moving and doesnt seem to be reach the intended stop in timeline.
    This is how my conversation setting looks like. Do I need WaitForMessage in all three Sequence??
    tmp.PNG

    Also is there a way to know exactly at what point to place the "Continue track clip"?? Right now I am ballparking its position on the timeline
     
    Last edited: Jun 4, 2019
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    You wrote "it starts displaying messages that those objects were destroyed." I'm not sure exactly what the problem is. I was hoping those messages would provide a little more info. Are they alerts coming from the dialogue UI's Alert Panel? Or something else?

    You can set it on a per-conversation basis. Inspect the conversation in the Dialogue Editor window, and click on empty canvas space to see the conversation's properties. Then click Override Display Settings.

    No, it's up to you. If you want the text to line up with some action in the timeline, put the continue clip there.
     
  18. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Sorry, I didn't mean console messages. Yes, they are the Dialogue UI's Alert Panel. It is displaying the IncrementOnDestroy script's Alert Message. I only have one of these objects in the scene and it shows the alert twice.
     
  19. SamRock

    SamRock

    Joined:
    Sep 5, 2017
    Posts:
    250
    Thanks! You are the best! I figured it out. And it works perfectly fine now.
    I have edited and attached screenshot of my settings. If time permits pls have a look :)
     
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hmm, is there perhaps another IncrementOnDestroy hiding somewhere in the scene? What if you enter "t:IncrementOnDestroy" in the Hierarchy window's search bar?

    When you change scenes, Unity destroys the GameObjects in the old scene. IncrementOnDestroy will act on this unless you change scenes using the Save System -- for example, using ScenePortal, SaveSystem.LoadScene, or SaveSystem.LoadFromSlot. The Save System tells components such as IncrementOnDestroy to ignore the next OnDestroy message since the GameObject are being destroyed due to a scene change.

    Looks good. And it's fine to have WaitForMessage(Forever) in all three fields.
     
  21. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    No, just one. If I turn off the one object then this all goes away.

    I'm using the EMM system for loading a slot so maybe there's some more integration required to get it working correctly together? I have to take off, but I'll dig deeper when I get back this evening. Or if you have any other ideas based on this response.
     
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    It looks like you may need to edit LoadSlotIdentifier.cs. Add this line of code:
    Code (csharp):
    1.     public void LoadSceneSaved()
    2.     {
    3. #if PIXELCRUSHERS_SAVESYSTEM
    4.         if (PixelCrushers.SaveSystem.HasSavedGameInSlot(slotId))
    5.         {
    6.             PixelCrushers.SaveSystem.BeforeSceneChange(); // <--ADD THIS.
    7.             Time.timeScale = 1;
    And double-check that LoadingScreen.cs still has this code:
    Code (csharp):
    1.     IEnumerator LoadSceneProgress()
    2.     {
    3. #if PIXELCRUSHERS_SAVESYSTEM
    4.         PixelCrushers.SaveSystem.BeforeSceneChange();
    5. #endif
    6.         asyncOperation = SceneManager.LoadSceneAsync(sceneToLoad);
     
  23. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Thanks. I'll give that a try tonight.
     
  24. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    UGH YOU'RE SO FAST DUDE. BEST SUPPORT EVER. Thanks a lot!
     
  25. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @TonyLi I tried the fix for the issue reported above and it's working. Thanks for the continued awesome support.
     
    hopeful likes this.
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Thanks for letting me know. I updated the instructions on the original ScenePortalEMM page of this thread, too.
     
    magique likes this.
  27. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @TonyLi I'm trying to get Inventory Pro integration working now, but seeing some Lua errors when trying to play the Quest Example DS2 scene. If I interact with the General Starr character, when it gives me the codes it throws the following console errors:

    Dialogue System: Lua code 'AddItem("0", 1)' threw exception 'Exception has been thrown by the target of an invocation.'
    UnityEngine.Debug:LogError(Object)
    PixelCrushers.DialogueSystem.Lua:RunRaw(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:219)
    PixelCrushers.DialogueSystem.Lua:Run(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:120)
    PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry, Boolean, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:233)
    PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:297)
    PixelCrushers.DialogueSystem.ConversationController:OnFinishedSubtitle(Object, EventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Controller/ConversationController.cs:224)
    PixelCrushers.DialogueSystem.ConversationView:FinishSubtitle() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:383)
    PixelCrushers.DialogueSystem.ConversationView:OnFinishedSubtitle() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:390)
    PixelCrushers.DialogueSystem.Sequencer:FinishSequence() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Sequencer/Sequencer.cs:469)
    PixelCrushers.DialogueSystem.Sequencer:Update() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Sequencer/Sequencer.cs:462)
     
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @magique - Are you using the latest versions of the Dialogue System, Inventory Pro, and the integration package that's included in the Dialogue System's Third Party Support folder?
     
  29. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Yes, all of them are the very latest.
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    What Unity version? I'll test the same as soon as I get back to the office in about 2 hours.
     
  31. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    2017.1.5f1
     
  32. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    316
    Hi Tony, I'm using Dialogue System with Adventure Creator & Opsive UCC and am testing save functionality.
    Do we need to manually use a Save DS data action with Adventure Creator when changing scenes, even if the "Remember Dialogue System" script is applied to the Persistent Engine prefab? I ask because I just tested changing scenes (without including a save action), and my UCC player inventory and attributes were not saved (the UCC saver is on the character).
     
  33. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @magique - Select Tools > Inventory Pro > Integrations. In Inventory Pro's Integrations window, tick Dialogue System.

    Then verify that the Inventory Manager Dialogue System component on Inventory Pro's _Managers GameObject looks good. If it has a yellow warning, find the script (InventoryManagerDialogueSystem.cs), right-click it, and select Reimport.

    @Deckard_89 - Currently "Remember Dialogue System" only saves dialogue database info and persistent data components. It doesn't save "Saver" components such as UCC Saver. Version 2.1.7, which I expect to release tomorrow end of day, will also save "Saver" components.
     
    Deckard_89 likes this.
  34. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Yep, I did all that before. All the scripts were recompiled and the Dialogue System was ticked on Inventory Pro.
     
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Does the script look OK on _Managers?
     
  36. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Yes, it does. It was originally bad and so was the one on the LootQuest object, but I got them to recompile and they are all good now.
     
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Did you perhaps delete Inventory Pro's demo files? The demo scene relies on item assets in Assets / Devdog / InventoryPro / Demos.
     
  38. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    No, I did a full fresh import just yesterday and didn't delete anything.
     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Is there another red error in the Console above this one?

    Dialogue System: Lua code 'AddItem("0", 1)' threw exception 'Exception has been thrown by the target of an invocation.'
     
  40. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I don't know. I'll have to check when I get back to my dev computer. It'll be later tonight.
     
  41. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Yes, there is one I didn't notice. here it is.

    NullReferenceException: Object reference not set to an instance of an object
    Devdog.InventoryPro.Integration.DialogueSystem.InventoryDialogueLootQuest.OnAddedItem (IEnumerable`1 items, UInt32 amount, Boolean camefromcollection) (at Assets/Devdog/InventoryPro/Scripts/Integration/DialogueSystem/Other/InventoryDialogueLootQuest.cs:75)
    Devdog.InventoryPro.ItemCollectionBase.NotifyItemAdded (IEnumerable`1 item, UInt32 amount, Boolean cameFromCollection) (at Assets/Devdog/InventoryPro/Scripts/Collections/ItemCollectionBase.cs:766)
    Devdog.InventoryPro.ItemCollectionBase.AddItem (Devdog.InventoryPro.InventoryItemBase item, ICollection`1 storedItems, Boolean repaint, Boolean fireEvents) (at Assets/Devdog/InventoryPro/Scripts/Collections/ItemCollectionBase.cs:1175)
    Devdog.InventoryPro.InventoryManager.AddItem (Devdog.InventoryPro.InventoryItemBase item, ICollection`1 storedItems, Boolean repaint) (at Assets/Devdog/InventoryPro/Scripts/Managers/InventoryManager.cs:345)
    Devdog.InventoryPro.Integration.DialogueSystem.InventoryManagerDialogueSystem.AddItem (System.String itemID, Single amount) (at Assets/Devdog/InventoryPro/Scripts/Integration/DialogueSystem/Managers/InventoryManagerDialogueSystem.cs:62)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    Language.Lua.LuaMethodFunction.InvokeMethod (Language.Lua.LuaValue[] args) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/LuaValue/LuaMethodFunction.cs:35)
    UnityEngine.Debug:LogException(Exception)
    Language.Lua.LuaMethodFunction:InvokeMethod(LuaValue[]) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/LuaValue/LuaMethodFunction.cs:40)
    Language.Lua.FunctionCall:Evaluate(LuaValue, LuaTable) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/Expr/FunctionCall.cs:41)
    Language.Lua.PrimaryExpr:Evaluate(LuaTable) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/Expr/PrimaryExpr.cs:15)
    Language.Lua.ExprStmt:Execute(LuaTable, Boolean&) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/Chunk/ExprStmt.cs:11)
    Language.Lua.Chunk:Execute(Boolean&) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/Chunk/Chunk.cs:42)
    Language.Lua.Chunk:Execute() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/Chunk/Chunk.cs:15)
    Language.Lua.LuaInterpreter:Interpreter(String, LuaTable) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Interpreter/LuaInterpreter.cs:36)
    PixelCrushers.DialogueSystem.Lua:RunRaw(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:214)
    PixelCrushers.DialogueSystem.Lua:Run(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:120)
    PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry, Boolean, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:233)
    PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:297)
    PixelCrushers.DialogueSystem.ConversationController:OnFinishedSubtitle(Object, EventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Controller/ConversationController.cs:224)
    PixelCrushers.DialogueSystem.ConversationView:FinishSubtitle() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:383)
    PixelCrushers.DialogueSystem.ConversationView:OnFinishedSubtitle() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:390)
    PixelCrushers.DialogueSystem.Sequencer:FinishSequence() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Sequencer/Sequencer.cs:469)
    PixelCrushers.DialogueSystem.Sequencer:Update() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Sequencer/Sequencer.cs:462)

    The ExampleLootQuest object has a missing reference, but not sure what it's supposed to be.

    upload_2019-6-6_20-41-12.png
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
  43. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    When I went to the IP main editor there were a bunch more errors that identified other scripts that hadn't compiled so I reimported all of them. Now, I'm down to just one issue. I'm trying to select the apple item, but the object picker comes up empty. Here is a screenshoot showing the IP database along with the error and also the empty object picker. I'm not sure what is wrong here exactly.

    upload_2019-6-7_6-38-27.png
     
  44. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @magique - That's an issue with Inventory Pro. Try deleting the Demos folder (which contains assets like the Apple item) and reimporting it from the Asset Store.
     
  45. MilziPPG

    MilziPPG

    Joined:
    Oct 9, 2018
    Posts:
    21
    Hi @TonyLi! I bought the dialogue system and quest system the other day. Really enjoying them so far!

    Just having a slight issue that I'm struggling to get around. I know you have seen this question probably a hundred times (as have I because I have looked through the forum so much!).

    In a nutshell, I'm just trying to make an example kill quest so I know how it works. I have set everything up (using one of your tutorials and the documentation you have provided) but for some reason, the game does not increase the number of enemies killed i.e. I can't get the Increment on Destroy to work.

    I'd like to add that I'm using the MoreMountain's top down engine just in case I have to do something special because of it. I have attached screenshots of how I have set up the enemy. It looks like it should work so I'm not sure what's going on.

    If you would like me to send more screenshots or information, I can do!

    Thank you so much again for the system! Screenshot 2019-06-07 at 16.43.13.png
     
  46. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    It ended up messing it up more. I might have to reimport a lot more now and try the process over. Or maybe I'll just get IP integrated with the game first and then add on the DS integration from scratch instead of trying to use the demo scene.
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @MilziPPG - Thanks for using the Dialogue System! When a TopDown Engine (TDE) character dies, its GameObject is not destroyed or deactivated, so IncrementOnDestroy won't trigger on its own.

    Instead, the Dialogue System's TDE integration has an OnDeathEvent script. Add this to the character, and configure the OnDeath() event to call IncrementOnDestroy.TryIncrement.

    In the integration's example scene, two characters use OnDeathEvent. "Ninja-Bark" disables its BarkOnIdle component when dead, and "Ninja-Conversation" deactivates its GameObject when dead.

    @magique - Good plan. It sounds like your Inventory Pro import has issues.
     
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Dialogue System 2.1.7 Released!

    Version 2.1.7 is now available on the Pixel Crushers customer download site and should be available on the Asset Store in 3-10 business days. (If you need access to the download site, PM me your Asset Store invoice number.)

    This release includes several improvements and bug fixes. It also adds support for Spine 2D animation in dialogue UIs.


    Version 2.1.7 Release Notes:
    Core:
    • Dialogue Editor:
      • Improved: Can now drag components onto Sequence field to generate sequencer commands.
      • Improved: If holding Shift down while creating a new node, uses same actor assignments instead of swapping.
    • Improved: Standard UI Quest Log Window can optionally use different templates for heading of currently-selected quest.
    • Improved: Added QuestLog and quest log window option to allow only one quest to be tracked at a time.
    • Improved: Added 'x' (remove) button to Dialogue System Trigger > Run Lua Code action.
    • Improved: Added ProximitySelector method RemoveGameObjectFromDetectedList().
    • Improved: Added IncrementOnDestroy option Manually.
    • Improved: Added DialogueManager.ResetDatabase() option with no param.
    • Improved: Custom sequencer commands may now be in any assembly.
    • Improved: OnConversationCancelled message is now sent to participants as well as Dialogue Manager.
    • Fixed: Bug in localization import of quest Display Name and Group.
    • Fixed: Removing database at runtime didn't remove all database contents.
    • Fixed: If Show PC Subtitles and Skip PC Subtitles After Response Menu were both ticked, and response menu was preceded by a blank, non-group node with a zero-length sequence, player's menu choice would still appear as subtitle.
    • Fixed: Did not use player actor's override response menu when conversation had not previously shown a subtitle.
    • Fixed: Can now delete malformed links in Dialogue Editor.
    • Fixed: Input Device Manager System.IndexOutOfRangeException when first importing asset if project's Input Manager is not ready.
    • Fixed: MissingReferenceException if using Camera() sequencer commands with default Main Camera and scene changed during conversation.
    • Fixed: Sequence "+" GameObject couldn't set Alt+drag options.
    • Fixed: Inspector headings in 2019.1+.
    • Fixed: Adjusted VN & JRPG template dialogue UI prefabs' borders to fully cover subtitle panel.
    • Fixed: SetActive() sequencer command can now resolve 'speaker' and 'listener' keywords.
    • Fixed: Bug that occurred when a Continue() sequencer command was marked required and listened for a sequencer message that hadn't occurred yet.
    • Save System:
      • Improved: Added SaveSystem methods LoadAdditiveScene, UnloadAdditiveScene.
      • Improved: Savers can now implement optional ApplyDataImmediate and OnRestartGame methods.
      • Fixed: Moved DiskSavedGameDataStorer initialization code from Start to Awake so other scripts can check for saved games in their own Start methods.
      • Dialogue System Saver: Save Across Scene Changes is now ticked by default; SaveSystem.RestartGame() automatically resets dialogue database.
    Third Party Support:
    • Adventure Creator: RememberDialogueSystem script now uses Pixel Crushers Save System component and Savers if present.
    • Invector: Fixed auto equip issue when loading saved games or changing scenes.
    • Opsive controllers: Added uccEquipItem() and uccUnequipItem() Lua functions, updated UCC Saver.
    • Spine: Added support.
    • uMMORPG: Fixed bug in removing items by using AddPlayerItemAmount() with a negative amount.
     
    Deckard_89, DMRhodes and Akshara like this.
  49. DavidNLN

    DavidNLN

    Joined:
    Sep 27, 2018
    Posts:
    90
    Hya @TonyLi I bought the asset a while ago and I plan to go into using it for my game soon, I thought about using the new UIElements when they release it for in game useage, will you support this feature ?
     
  50. MilziPPG

    MilziPPG

    Joined:
    Oct 9, 2018
    Posts:
    21
    Hurrah! Worked liked a charm. Thank you so much @TonyLi!