Hi Onion,
I have been going through the same wringer as you it seems. This certainly appears to be a gap in construct 2`s functionality.
My first impulse was to use Arrays (object gives an array index to look up the appropriate text) or Dictionary (same but dictionary key passed). First major problem with this is that these can only be populated at run time from the event sheet, not much use when I want to define dialogues for each level.
Also for my game I want occasional events to start the dialog, with sets of dialogues chained together to make conversations, possible with arrays but not ideal.
My current solution is to use just one pipe separated string like:
Hello Joe|Hi how are you|Not too good can you help?|Sure, I`m the hero aren`t I?|{end}
Then my events pass an ID to the dialogue text object (which has an 'is ID >0' event waiting) and that uses tokenat(dialogue.txt,ID,"|") to get the correct string. The rest of the conversation goes in sequence from that until it gets to a {end} string.
This way I can have a different instance of the dialogue text object per level with several different conversations in it.
Still a little clumsy to edit the string so not ideal (although you could read it from a text file and use newline as a separator). * - Also not too sure how many characters the text object allows?
Hopefully Scirra will see the need and implement something more useful.
I hope this helps someone with similar problems.
RR