Using Inventory Master: Error when condition checks for item on player while talking to NPC
Posted: Mon Feb 13, 2017 12:49 pm
Hi, I'm using the Inventory Master asset and am using the Inventory Master Lua script that you emailed me about a week ago.
When I attach the Inventory Master Lua script on the Dialogue Manager in my own scene and set an NPC dialogue node with the following condition: PlayerHasItem("Normerica Lens") == true
I receive this error as the dialogue starts when scene starts:
The ending of the error changes slightly when I go and talk to the character again :
I've attached an image to show that I put the code in the Condition parameter and it's only on the right most node in the node view window.
If I change my item name which is already set in the item database in Inventory Master, and replace it with one that already exists in the database, I still get the same error.
Just in case this matters, I'm using the Proximity Selector on my character to detect NPC's when facing them. This does not occur at all when I'm in the example scene that you made for the IM asset.
Might I be missing a component or setting a parameter wrong somewhere?
When I attach the Inventory Master Lua script on the Dialogue Manager in my own scene and set an NPC dialogue node with the following condition: PlayerHasItem("Normerica Lens") == true
I receive this error as the dialogue starts when scene starts:
Code: Select all
Dialogue System: Lua code 'return PlayerHasItem("Normerica Lens") == true' threw exception 'Exception has been thrown by the target of an invocation.'
UnityEngine.Debug:Lo.DialogueSystem.ConversationModel:EvaluateLinksAtPriority(ConditionPriority, DialogueEntry, List`1, List`1, List`1, Boolean)
PixelCrushers.DialogueSystem.ConversationModel:EvaluateLinks(DialogueEntry, List`1, List`1, List`1, Boolean)
PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry, Boolean, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationModel:.ctor(DialogueDatabase, String, Transform, Transform, Boolean, IsDialogueEntryValidDelegate, Int32, Boolean, Boolean)
PixelCrushers.DialogueSystem.DialogueSystemController:StartConversation(String, Transform, Transform, Int32)
PixelCrushers.DialogueSystem.DialogueSystemController:StartConversation(String, Transform, Transform)
PixelCrushers.DialogueSystem.DialogueManager:StartConversation(String, Transform, Transform)
PixelCrushers.DialogueSystem.ConversationStarter:StartConversation(Transform)
PixelCrushers.DialogueSystem.ConversationStarter:TryStartConversation(Transform, Transform)
PixelCrushers.DialogueSystem.ConversationStarter:TryStartConversation(Transform)
PixelCrushers.DialogueSystem.<StartConversationAfterOneFrame>c__Iterator19:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)gError(Object)
PixelCrushers.DialogueSystem.Lua:RunRaw(String, Boolean, Boolean)
PixelCrushers.DialogueSystem.Lua:Run(String, Boolean, Boolean)
PixelCrushers.DialogueSystem.Lua:IsTrue(String, Boolean, Boolean)
PixelCrushers
Code: Select all
PixelCrushers.DialogueSystem.ConversationTrigger:OnUse(Transform)
UnityEngine.GameObject:BroadcastMessage(String, Object, SendMessageOptions)
PixelCrushers.DialogueSystem.ProximitySelector:Update() (at Assets/Dialogue System/Scripts/Supplemental/Utility/ProximitySelector.cs:173)
If I change my item name which is already set in the item database in Inventory Master, and replace it with one that already exists in the database, I still get the same error.
Just in case this matters, I'm using the Proximity Selector on my character to detect NPC's when facing them. This does not occur at all when I'm in the example scene that you made for the IM asset.
Might I be missing a component or setting a parameter wrong somewhere?