Conversation Nodes by Eric Eve

This topic is for discussions related to Conversation Nodes by Eric Eve

I noticed something which I think is a bug today (Version 7 of Conversation Nodes by Eric Eve).

If I have an open convnode that loops back to itself (i.e. conv-time is 1 and next-node is itself) and I try to manually switch nodes using say “[node foo]”, the timer running out overwrites the switch to the foo node and we stay in the original node.

Is this intended? At the moment I’m working around it by having conv-time set really high, which is fine for my little test code, but won’t work when I want to be able to both have a timed switch to another node and be able to switch manually.

Gosh it’s a long time since I’ve looked at any of this! I’ve taken a quick look now and I think I can see the problem to which you refer. At a first attempt the fix may be to alter the definition of the To advance the conversation node phrase to:


To advance the conversation node:
now the node of the current interlocutor is the next-scheduled-node;
now the node-timer is the node-time of the current node;
now the next-scheduled-node is the null-node; [added this]
follow the node-introduction rules for the current node;[/code]

And then of the node-switching rule to:

Every turn when the current node is not the null-node and the current node is open and the node-timer < 1 and the next-scheduled-node is the null-node (this is the node-switching rule): [changed this]
    now the next-scheduled-node is the next-node of the current node;
    node switches in 0 turns from now.

This should prevent the node-switching rule from overwriting a next-scheduled-node set by [node foo].

I’ve tried testing this and it seems to work, but perhaps you’d like to test it in your game to confirm that it fixes the problem.

Thanks Eric, this fixes it for my case, too - I have the node-time as 1 and everything works as I expected.