Re: Quiz using Dialogue System with questions of type Rank Order Scaling
Posted: Sun Oct 18, 2020 1:42 pm
Hello!
Thank you so much for giving the insights.
Based upon what you said, I do have a conversation set up. My conversation does begin with the first question, based upon the workflow given below.
Now, in the same conversation, how do I move to next question? The conversation above, contains 1 question, with four options, looping till integers are assigned. I have created one variable called "order", with initial value of 1. In script section of every response, variable order is being incremented by 1. At the NPC Node (Node: "Assign Integer" in this case), I have added a condition: Variable["order"] <= 4. This is currently looping as intended, but now, I want to move to next question, after an integer is assigned to every response. Also, I have a situation, where I require 2 extra buttons(clear and submit buttons), which need to be activated/displayed, only after every response is assigned an integer. Clear button, would clear all the assigned integers to responses of that question, and at that instance, player has to loop through same question, again. Only after an integer is assigned to every response for that particular question again, those two extra buttons (clear and submit) get activated again. And Only after submit button is pressed, the conversation should proceed to next question.
Now, when next question is displayed, the variable "order" needs to be reset again, so that an integer could be re-assigned, for every new response which came with next question. The cycle of looping through all options, needs to be played, and once every response (4 responses in our case) is allocated an integer, then clear and submit buttons get activated/displayed again. On pressing clear button, the allocated integer next to every response needs to be reset, and the same question needs to be shown, where looping for assigning integers must once again take place, and once every response is assigned an integer, the clear and submit buttons need to be displayed again. And when submit button is pressed, the conversation should proceed to next question indeed.
This chain must go on, for about 100 questions.
Is there any dynamic way of implementing the quiz, for large number of questions, with each question having 4 unique options? It could help a lot, if questions, along with their options could be loaded dynamically, at runtime, displayed in same manner, where the cycle of assigning the integer needs to take place and on clicking submit button, content for next question and it's relevant responses, gets fetched from external resource. New question is displayed again, and same process goes on, till all questions are covered and conversation ends.
Also, I wanted to know, if there was a way by which the questions and their relevant responses, created in Dialogue System Database's conversation, could be referenced/used, outside of Dialogue System, as I need to record player responses, and have to send them to external server.
Group of 1 Question (question number and it's content), and it's 4 responses (along with integer assigned next to every response and content of every responses).
Such groups for all questions(~100), need to be recorded and sent to server.
How can I record data of such groups? As I might need references of such groups, for every question, outside of the Dialogue System, for future use, at the time of sending the data to server. Is there any way by which this could be done?
Apologies for the inconvenience, but I am yet not able to create such a functionality. I have tried various ways, and it's been daunting/overwhelming as a beginner, even after referring to documentation.
I'm trying to implement what you've suggested throughout, and I can't thank enough, for support which I've received from your end. It is due to the help I've received, that I have a partial system, running as intended.
Any help regarding how to progress ahead, might do wonders!
Your help would be much appreciated.
Thank you so much for giving the insights.
Based upon what you said, I do have a conversation set up. My conversation does begin with the first question, based upon the workflow given below.
Now, in the same conversation, how do I move to next question? The conversation above, contains 1 question, with four options, looping till integers are assigned. I have created one variable called "order", with initial value of 1. In script section of every response, variable order is being incremented by 1. At the NPC Node (Node: "Assign Integer" in this case), I have added a condition: Variable["order"] <= 4. This is currently looping as intended, but now, I want to move to next question, after an integer is assigned to every response. Also, I have a situation, where I require 2 extra buttons(clear and submit buttons), which need to be activated/displayed, only after every response is assigned an integer. Clear button, would clear all the assigned integers to responses of that question, and at that instance, player has to loop through same question, again. Only after an integer is assigned to every response for that particular question again, those two extra buttons (clear and submit) get activated again. And Only after submit button is pressed, the conversation should proceed to next question.
Now, when next question is displayed, the variable "order" needs to be reset again, so that an integer could be re-assigned, for every new response which came with next question. The cycle of looping through all options, needs to be played, and once every response (4 responses in our case) is allocated an integer, then clear and submit buttons get activated/displayed again. On pressing clear button, the allocated integer next to every response needs to be reset, and the same question needs to be shown, where looping for assigning integers must once again take place, and once every response is assigned an integer, the clear and submit buttons need to be displayed again. And when submit button is pressed, the conversation should proceed to next question indeed.
This chain must go on, for about 100 questions.
Is there any dynamic way of implementing the quiz, for large number of questions, with each question having 4 unique options? It could help a lot, if questions, along with their options could be loaded dynamically, at runtime, displayed in same manner, where the cycle of assigning the integer needs to take place and on clicking submit button, content for next question and it's relevant responses, gets fetched from external resource. New question is displayed again, and same process goes on, till all questions are covered and conversation ends.
You mentioned this, but I'm not able to get it, in what manner should I use this? Like, should I create a new script, which just contains those two methods and attach it to Dialogue Manager? Are there any other things, connected to doing that, which might be required, in order for that to work as required? Or would addition of script on Dialogue Manager alone, would work?Tony Li wrote: ↑Sat Oct 10, 2020 9:45 am Alternatively, you can consider reading the questions and answers from an external source, and filling it in at runtime. Add a script to the Dialogue Manager that has OnConversationLine and OnConversationResponseMenu methods. (See Script Methods.) Rough example:Code: Select all
void OnConversationLine(Subtitle subtitle) { subtitle.formattedText.text = // get question text from external source } void OnConversationResponseMenu(Response[] responses) { for (int i = 0; i < 4; i++) { responses[i].formattedText.text = // get answer text for answer i from external source } }
Also, I wanted to know, if there was a way by which the questions and their relevant responses, created in Dialogue System Database's conversation, could be referenced/used, outside of Dialogue System, as I need to record player responses, and have to send them to external server.
Group of 1 Question (question number and it's content), and it's 4 responses (along with integer assigned next to every response and content of every responses).
Such groups for all questions(~100), need to be recorded and sent to server.
How can I record data of such groups? As I might need references of such groups, for every question, outside of the Dialogue System, for future use, at the time of sending the data to server. Is there any way by which this could be done?
Apologies for the inconvenience, but I am yet not able to create such a functionality. I have tried various ways, and it's been daunting/overwhelming as a beginner, even after referring to documentation.
I'm trying to implement what you've suggested throughout, and I can't thank enough, for support which I've received from your end. It is due to the help I've received, that I have a partial system, running as intended.
Any help regarding how to progress ahead, might do wonders!
Your help would be much appreciated.