Hi,
The
SendMessage() sequencer command's second parameter is the argument that's sent to StartCombat. Try changing this:
Code: Select all
SendMessage(StartCombat, listener)@1.0;
to this:
Code: Select all
SendMessage(StartCombat, , listener)@1.0;
The former tries to run StartCombat("listener") on the speaker.
The latter runs StartCombat() on the listener.
That may fix the issue. If it doesn't, please read on:
Are you using a Dialogue System Trigger to start the conversation? If so, what is the
Conversation Conversant field set to? If it's unassigned, it will default to the Dialogue System Trigger's GameObject.
If the Dialogue System Trigger is set to
OnUse or
OnTriggerEnter, the
Conversation Actor field will default to the GameObject that set off the trigger (typically the Player).
In articy, are any entities assigned to the Dialogue?
or this Dialogue Fragment?
In the images above, the conversation's primary actor will be the green guy (Player), and the primary conversant will be the red guy (NPC). When the NPC is speaking, its GameObject will be the sequence's 'speaker'. The Player GameObject will be the 'listener'.
One way to get to the bottom of this is to temporarily set the Dialogue Manager's
Other Settings > Debug Level to
Info. This will log a lot of info to the Console window / output log file.
Look for a line like this:
Code: Select all
Dialogue System: Starting conversation 'Private Hart', actor=Player (UnityEngine.Transform), conversant=Private Hart (UnityEngine.Transform).
It will report the conversation's primary actor and conversant.
Further down, look for a line like this:
Code: Select all
Dialogue System: Sequencer: SendMessage(StartCombat, , Private Hart)
(Note the two commas between StartCombat and Private Hart, indicating that StartCombat() takes no argument.)