Page 1 of 1
Custom Sequence not sending message when at the beginning
Posted: Sat Feb 01, 2020 4:57 am
by UrasawaX
Hi there,
thanks for providing such an awesome tool and support!
I have a little problem with a custom sequence command. It does not seem to send a message when it plays immediately at the beginning of a node.
The custom sequence consists of a Start() that plays a coroutine which moves a character. Stop() is at the end of it and it is reached.
The command works fine if it is not played immedietely at the beginning of a node. I can write "Move(actor,10, 10,1)@0.1->Message(test); " to get it to work, but I would rather not have to write @0.1 on all custom commands.
Cheers and thanks again.
Re: Custom Sequence not sending message when at the beginning
Posted: Sat Feb 01, 2020 8:07 am
by Tony Li
Hi,
Let's say you have two nodes, A --> B.
When the conversation switches from node A to node B, node A's sequence will end on the same frame that node B's sequence starts.
Is it possible that something is happening at the end of node A that is causing node B's sequencer command to stop immediately instead of running its coroutine? (e.g., something on an OnDestroy() method of one of node A's sequencer commands?) If so, this would explain why adding @0.1 seems to "fix" the problem, since it makes the sequencer command wait 0.1 seconds instead of starting on the same frame that node A finishes.
Re: Custom Sequence not sending message when at the beginning
Posted: Sun Feb 02, 2020 4:19 am
by UrasawaX
Hey Tony,
I don't think so. I just added a node with "Delay(1);Continue()" before the node with the Move command and it still doesn't send a message.
I also noticed that when I enter 2 commands like
Move(NPC 0,15931, 12432,2)->Message(a);
Move(NPC 1,16031, 12732,1)->Message(b);
which should play at the same time, the second line actually sends a message. The first one not.
Re: Custom Sequence not sending message when at the beginning
Posted: Sun Feb 02, 2020 10:58 am
by Tony Li
Hi,
The second line should send the message "b" after 1 second, and the first line should send "a" after 2 seconds.
Would it be possible for you to send a reproduction project to tony (at) pixelcrushers.com?
Re: Custom Sequence not sending message when at the beginning
Posted: Mon Feb 03, 2020 4:01 am
by UrasawaX
Hey Tony,
please note that I'm not using the MoveTo command but my custom Move command (targetpos x, targetpos y, speed). But for testing I stripped down the command to this:
Code: Select all
public void Start()
{
string name = GetParameter(0);
float x = GetParameterAsFloat(1);
float y = GetParameterAsFloat(2);
float speed = GetParameterAsFloat(3);
Debug.Log("test");
Stop();
}
Ok, while writing here I made further discoveries. It has nothing to do with the command above or custom commands in perticular.
So these commands in the first node cause the problem:
Code: Select all
Fade(in)->Message(FadedIn);
Continue() @Message(FadedIn);
This causes the next first line that tries to send a message to not send it. This line can be several nodes away. After a message was ignored once it works fine on the following nodes.
For example:
Node 1:
Code: Select all
Fade(in)->Message(FadedIn);
Continue() @Message(FadedIn);
Node 2:
Code: Select all
Move(NPC 0,15931, 12432,2)->Message(test1);
Move(NPC 1,16031, 12732,1)@Message(test1);
Continue()@3;
test1 is not sent
Node 3:
Code: Select all
Delay(1)->Message(test1);
Continue() @Message(test1);
Since one message sent on a first line was already ignored, it works again on Node 3 and Delay is sending a message.
If you switch Node 2 and 3 around, The message sent by delay is ignored.
(I also created a brand new conversation with a starting node, node 1 and node 3 and it doesn't work.)
As answered in my previous post, there can be several nodes between node 1 and node 2 and the msg is still not triggered. So I don't believe it has something to do with the last line of node 1 being on the same frame as the first line of node 2.
btw. Changing node 1 to
does not cause any problems.
Do you have any idea why this happens? Did I made a mistake? Sorry, a reproduction project might take a while, so If you don't have any further ideas with the information I provided I'll have to keep it at this for the meanwhile.
Thank you very much for your help, Tony!
Re: Custom Sequence not sending message when at the beginning
Posted: Mon Feb 03, 2020 10:59 am
by Tony Li
Hi,
What version of the Dialogue System are you using?
Would you please try importing the patch provided in
this post?
The fix in that patch will be included in the next release.