我正在使用内联编辑器在对话框流中进行多人测验。目前,我已经完成了第一轮和第二轮的工作,但分数尚未计算。
所以也许这很愚蠢,但我想‘哦,我会创建一个 var 并在其中存储一个计数。每当一个函数得到一个好的答案时,de count 就会执行++ 等操作。”
我制作了一个包含两个问题的片段,以便您理解我的问题。我读过很多关于“哦,你必须将其存储在用户存储中”的内容,但我不明白如何存储。已经阅读了dialogflow的文档,但我的技术不太好,所以很难。
var pointsp1 = 0;
var pointsp2 = 0;
//round 2 player 1
function vraag1triva(agent) {
const goed = agent.parameters.goed;
const fout = agent.parameters.any;
if (goed=='tv tas') {
pointsp1++;
agent.add("<speak><audio src=\"https://actions.google.com/sounds/v1/transportation/ship_bell.ogg\"></audio>uit welk land komt de avocado?</speak>");
} else if (fout) {
agent.add("Je antwoord is fout, het juiste antwoord was tv-tas,uit welk land komt de avocado?");
}
}
//round 2 player 2
function vraag2triva(agent) {
const goed = agent.parameters.goed;
const fout = agent.parameters.any;
if (goed=='mexico') {
pointsp2++;
agent.add("Goedzo, Mexico is het juiste antwoord. Van wie is het nummer Don't worry, be happy?");
} else if (fout) {
agent.add("Je antwoord is fout, het juiste antwoord was mexico, Van wie is het nummer Don't worry, be happy?");
}
}
//score
function totalscore(agent) {
if (pointsp1>pointsp2) {
agent.add("Player 1 wins");
}else if (pointsp1<pointsp2)
agent.add("Player 2 wins");
}
我预计当我将函数称为“总分”时。它表示根据最好的答案,哪位玩家赢得了这一轮。
编辑,尝试用户存储:
let conv = agent.conv(); // create an instance
conv.data.pointspt1 = 0;
conv.data.pointsp2 = 0;
//score
function totalscore(agent) {
if (conv.data.pointsp1>conv.data.pointsp2) {
agent.add("Player 1 wins round 2");
}else if (conv.data.pointsp1<conv.data.pointsp2)
agent.add("Player 2 wins round2");
}
//round 2 player 1
function vraag1triva(agent) {
const goed = agent.parameters.goed;
const fout = agent.parameters.any;
if (goed=='tv tas') {
//save score
agent.add("<speak><audio src=\"https://actions.google.com/sounds/v1/transportation/ship_bell.ogg\"></audio>uit welk land komt de avocado?</speak>");
conv.user.storage.pointspt1++;
} else if (fout) {
agent.add("Je antwoord is fout, het juiste antwoord was tv-tas,uit welk land komt de avocado?");
}
}
最佳答案
您可以在内联编辑器中存储计数。有两种用于存储数据的选项,您可以根据是要在对话内还是跨对话保存数据进行选择。如果它在对话中(您当前 session 的游戏得分),请使用 conversationToken
。示例:
let conv = agent.conv(); // create an instance
conv.data.pointspt1 = 0;
conv.data.pointsp2 = 1;
const total = conv.data.pointspt1 + conv.data.pointspt2;
agent.add(`Your total score is ${total}`);
// If you want to save data across conversations
conv.user.storage.pointspt1 = 0; // This works only for verified users
请参阅以下链接了解更多信息:Save data in conversation
关于javascript - 我可以在内联履行对话流编辑器中存储跨对话的计数器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58427725/