我想让应用程序变量递减计数而不是递增计数。我将以下内容放在一条规则的后记中:

fired {
  app:pies -= 1 from 10;
}


变量app:pies从10减少到1,但从未达到零。我用完时需要停止散发馅饼。为什么变量永远不会达到零?有一个更好的方法吗?

最佳答案

似乎减少一个应用程序变量永远不会导致它低于1。我不知道为什么会这样。您可以使应用程序变量小于1。例如,以下代码将变量从-2开始并从该位置开始递增,这样可以正常工作:

app:test += 1 from -2;


递减似乎似乎不起作用...

我建议仅将计数调整为1,这样您就假装1表示0。在这种情况下,您的应用程序可能看起来像这样:

rule morePies {
  select when web pageview ".*"

  if (app:pies > 1) then {
    notify("You get a pie", "Yay!");
  }

  fired {
    app:pies -= 1 from 11;
  }
}

rules piesAreGone {
  select when web pageview ".*"

  if (app:pies <= 1) then {
    notify("No pies left", "Sorry.");
  }
}

08-05 05:18