[英]Can I store a counter across conversation in Inline Fulfillment Dialogflow editor?
我正在使用內聯編輯器在對話流中進行多人測驗。 目前,我已經完成了第 1 輪和第 2 輪的工作,但還沒有計分。
所以也許這很愚蠢,但我想'哦,我會制作一個 var 並在其中存儲一個計數。 每次 function 是一個很好的答案時,計數都會做 ++ 等等。”
我制作了一個包含 2 個問題的片段,以便您了解我的問題。 我讀過很多關於哦,你必須將它存儲在用戶存儲中,但我不明白如何。 已經閱讀了 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");
}
我預計當我將 function 稱為“總分”時。 它會根據最佳答案顯示哪個玩家贏得了回合。
編輯,嘗試用戶存儲:
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?");
}
}
您可以將計數存儲在內聯編輯器中。 有兩種存儲數據的選項,您可以根據是要在對話中還是跨對話保存數據來選擇。 如果它在對話中(您當前會話的游戲得分),請使用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
有關詳細信息,請參閱以下鏈接: 在對話中保存數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.