Либо неправильно представляете, либо неправильно описали. Классика жанра - это 1 реплика персонажа и n ответов главного героя. Даже если вам надо разбивать реплику на несколько экранов - это 1 запрос. Т.е. у вас неверен пункт 1. Плюс непонятно откуда возьмется номер вопроса и что это вообще такое. Я бы делал так:
1) дергаем скрипт Speak, передаем ему ID игрока (если его достаточно)
2) получаем 1 реплику, ее ID, ответы и их ID, либо сигнал окончания диалога
3) если не получен сигнал окончания диалога - после реакции от игрока дергаем Speak, передаем ID игрока, ID реплики и ID ответа. Переходим к пункту 2.
4) Если получен сигнал окончания диалога (из п.2) - выход.
Можно убрать пункт 1, но это оптимизация, не более.
Все это можно красиво завернуть в XML/JSON.