I am trying to get a NPC character to change its FSM Behaviour Controller from FSM Civilian to FSM Melee. There is an option in Dialogue System Events to change the FSM Behavior and it works fine. (I can do this using the On Conversation End (Transform)). However, I want this Event to fire when the Player responds in a particular way - not at the end of the conversation. So, if the Player chooses a response option the NPC "doesn't like", it immediately becomes an Enemy and attacks. So what can I use in the particular conversation node script or condition that will link to the Dialogue System Events and therefore fire the change of FSM?
Please remember I don't know LUA and I'm a relative beginner, (but I did really try to do this myself).
EDIT: Ah, just read one of your posts where you indicate "abandoned" is equivalent to "cancelled". So there is an Event called On Conversation Cancelled so if I use script in the appropriate conversation node to SetQuestState("****", "abandoned"); then I can use the On Conversation Cancelled to make the transition. Is that right? (I'll try it anyway).
EDIT 2: Sadly, it didn't work. I'll wait for expert advice.
Invector integration: How do I link a conversation node to Dialogue System Events.
Re: Invector integration: How do I link a conversation node to Dialogue System Events.
Hi,
- Open the scene with the NPC.
- Inspect the node. Expand the "OnExecute() Events" foldout and click Add Scene-Based Event. This will add a UnityEvent.
- Configure it to change the NPC's FSM.