簡體   English   中英

我可以在 Inline Fulfillment Dialogflow 編輯器中跨對話存儲計數器嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM